Changes

535 bytes added ,  12:15, 29 June 2018
Line 1: Line 1:  
== Interrupts ==
 
== Interrupts ==
   −
Interrupt priority is 0-0xF. A priority of 0xF means that the interrupt is masked.
+
Interrupt priority is 0-0xF. A priority of 0xF means that the interrupt is disabled.
    
= Private Interrupts =
 
= Private Interrupts =
Line 30: Line 30:  
| 0x7
 
| 0x7
 
| Kernel
 
| Kernel
| MPCore software-interrupt. Used by, e.g., [[SVC|FlushProcessDataCache]].
+
| MPCore software-interrupt. See [[KCacheMaintenanceInterruptEvent]]
 
|-
 
|-
 
| 0x8
 
| 0x8
Line 38: Line 38:  
| 0x9
 
| 0x9
 
| Kernel
 
| Kernel
| MPCore software-interrupt. Used when handling exceptions that require termination of a process.
+
| MPCore software-interrupt. Used when handling exceptions that require termination of a thread or a process, and in some cases by svcSetDebugThreadContext, to store VFP registers in the thread's register storage.
 
|-
 
|-
 
| 0xA
 
| 0xA
Line 72: Line 72:  
| 0x28
 
| 0x28
 
| gsp, TwlBg
 
| gsp, TwlBg
| PSC0?
+
| PSC0
 
|-
 
|-
 
| 0x29
 
| 0x29
 
| gsp, TwlBg
 
| gsp, TwlBg
| PSC1?
+
| PSC1
 
|-
 
|-
 
| 0x2A
 
| 0x2A
 
| gsp, TwlBg
 
| gsp, TwlBg
| PDC0?
+
| PDC0 (VBlank0)
 
|-
 
|-
 
| 0x2B
 
| 0x2B
 
| gsp, TwlBg
 
| gsp, TwlBg
| PDC1?
+
| PDC1 (VBlank1)
 
|-
 
|-
 
| 0x2C
 
| 0x2C
 
| gsp, TwlBg
 
| gsp, TwlBg
| PPF?
+
| PPF
 
|-
 
|-
 
| 0x2D
 
| 0x2D
 
| gsp, TwlBg
 
| gsp, TwlBg
| ?
+
| P3D
 
|-
 
|-
 
| 0x30
 
| 0x30
Line 156: Line 156:  
| 0x4E
 
| 0x4E
 
| mvd (New3DS)
 
| mvd (New3DS)
| ?
+
| Y2R2 End Event
 
|-
 
|-
 
| 0x4F
 
| 0x4F
 
| mvd (New3DS)
 
| mvd (New3DS)
| ?
+
| Related to mvd services
 
|-
 
|-
 
| 0x50
 
| 0x50
Line 180: Line 180:  
| 0x54
 
| 0x54
 
| i2c, TwlBg
 
| i2c, TwlBg
| ?
+
| I2C Bus0 work done
 
|-
 
|-
 
| 0x55
 
| 0x55
 
| i2c, TwlBg
 
| i2c, TwlBg
| ?
+
| I2C Bus1 work done
 
|-
 
|-
 
| 0x56
 
| 0x56
Line 208: Line 208:  
| 0x5C
 
| 0x5C
 
| i2c, TwlBg
 
| i2c, TwlBg
| ?
+
| I2C Bus2 work done
 
|-
 
|-
 
| 0x60
 
| 0x60
 
| gpio, TwlBg
 
| gpio, TwlBg
| Asserted when shell is opened?
+
| Shell opened
 
|-
 
|-
 
| 0x62
 
| 0x62
 
| gpio, TwlBg
 
| gpio, TwlBg
| Asserted when shell is closed?
+
| Shell closed
 
|-
 
|-
 
| 0x63
 
| 0x63
Line 224: Line 224:  
| 0x64
 
| 0x64
 
| gpio, TwlBg
 
| gpio, TwlBg
| Headphone jack plugged in
+
| Headphone jack plugged in/out
 
|-
 
|-
 
| 0x66
 
| 0x66
Line 232: Line 232:  
| 0x68
 
| 0x68
 
| gpio, TwlBg
 
| gpio, TwlBg
| IR?
+
| IR
 
|-
 
|-
 
| 0x69
 
| 0x69
Line 264: Line 264:  
| 0x70
 
| 0x70
 
| gpio, TwlBg
 
| gpio, TwlBg
| Headphone jack plugged out
+
| ?
 
|-
 
|-
 
| 0x71
 
| 0x71
 
| gpio, TwlBg
 
| gpio, TwlBg
| MCU (HOME/POWER pressed)
+
| MCU (HOME/POWER pressed/released or WiFi switch pressed)
 
|-
 
|-
 
| 0x72
 
| 0x72
Line 285: Line 285:  
| ?
 
| ?
 
| Gamecard inserted
 
| Gamecard inserted
 +
|-
 +
| 0x78 to 0x7B
 +
| Kernel
 +
| Core 0-3 Performance monitor counter (any) overflow
 +
|-
 +
| 0x7A to 0x82 (PDN_MPCORE_CFG bit2 set) or
 +
0x7C to 0x84 (bit2 clear)
 +
| Kernel
 +
| ?
 
|}
 
|}
 +
(interrupts from 0x80 and up can't be mapped in available builds of the kernel)
      Line 303: Line 313:  
| 0x4
 
| 0x4
 
| u8
 
| u8
| Interrupt will be masked by the IRQ handler as soon as it is acknowledged
+
| Interrupt will be disabled by the IRQ handler as soon as it is acknowledged.
 +
Ignored for FIQ: the FIQ handler always sets bit2 of [[PDN_Registers#PDN_FIQ_CNT|PDN_FIQ_CNT]]
 
|-
 
|-
 
| 0x5
 
| 0x5
 
| u8
 
| u8
| Interrupt is masked
+
| Interrupt is disabled
 
|-
 
|-
 
| 0x6
 
| 0x6
115

edits