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 |