irq_controller
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
irq_controller [2025/04/13 20:26] – arisotura | irq_controller [2025/05/16 22:33] (current) – arisotura | ||
---|---|---|---|
Line 91: | Line 91: | ||
Some IRQ sources will not function correctly without the correct trigger type. For example, VBlank IRQs will only fire once if their trigger type is set to 5. | Some IRQ sources will not function correctly without the correct trigger type. For example, VBlank IRQs will only fire once if their trigger type is set to 5. | ||
+ | |||
+ | In practice, some IRQ lines likely stay active only for a very short time, while others will stay active as long as the underlying IRQ conditions are met (ie. from hardware components that have their own IRQ status registers; the IRQ line may stay active until the IRQ status register is cleared). | ||
+ | |||
+ | IRQ trigger type 5 seems to fail to register an interrupt when the pulse is too short (ie. doesn' | ||
+ | |||
+ | The trigger type might also play a role in whether/how the IRQ line is buffered or treated? Values 0-7 are possible. Different values affect the different bits (8/ | ||
+ | |||
+ | Typically, it seems that 1 is used for IRQ sources that are " | ||
Line 122: | Line 130: | ||
| 0x01 | 1 | Timer 1 | | | 0x01 | 1 | Timer 1 | | ||
| 0x02 | 1 | SDIO | | | 0x02 | 1 | SDIO | | ||
- | | 0x03 | 5 | + | | 0x03 | 5 |
- | | 0x04 | 5 | + | | 0x04 | 5 |
- | | 0x05 | 5 | + | | 0x05 | 5 |
| 0x06 | 5 | SPI | | | 0x06 | 5 | SPI | | ||
| 0x07 | 5 | SPI related? | | | 0x07 | 5 | SPI related? | | ||
Line 136: | Line 144: | ||
| 0x0F | 5 | I2C | | | 0x0F | 5 | I2C | | ||
| 0x10 | 5 | vcapt/ | | 0x10 | 5 | vcapt/ | ||
- | | 0x11 | 5 | + | | 0x11 | 5 |
- | | 0x12 | 5 | + | | 0x12 | 5 |
| 0x13 | 5 | ??? | | | 0x13 | 5 | ??? | | ||
- | | 0x14 | 5 | + | | 0x14 | 5 |
| 0x15 | 1 | VBlank end | | | 0x15 | 1 | VBlank end | | ||
| 0x16 | 1 | VBlank start | | | 0x16 | 1 | VBlank start | | ||
Line 155: | Line 163: | ||
| 0x22 | 1? | ??? | | | 0x22 | 1? | ??? | | ||
| 0x23 | 1? | ??? | | | 0x23 | 1? | ??? | | ||
- | | 0x24 | 1? | ??? | | + | | 0x24 | 1? | ??? (video related, 0xF00094F8) |
| 0x25 | 1? | ??? | | | 0x25 | 1? | ??? | | ||
- | | 0x26 | 1? | ??? | | + | | 0x26 | 1? | ??? (video related, 0xF000940C) |
| 0x27 | 1? | ??? | | | 0x27 | 1? | ??? | | ||
+ | |||
+ | Note: trigger type for IRQ 0x02 is set to 1, which can cause a SDIO IRQ to be missed if it fires while another SDIO IRQ is being processed. Changing it to 5 fixes that problem. The stock firmware doesn' | ||
IRQ 0x20..0x27 are actually FIQ sources. Not known what they' | IRQ 0x20..0x27 are actually FIQ sources. Not known what they' | ||
+ | The stock firmware doesn' |
irq_controller.1744576004.txt.gz · Last modified: 2025/04/13 20:26 by arisotura