Difference between revisions of "Hardware/Latte IRQs"
< Hardware
Jump to navigation
Jump to search
Line 80: | Line 80: | ||
==Register List== | ==Register List== | ||
− | The Latte IRQ | + | The Latte IRQ engine has two different register blocks: a global block compatible with the old Wii hardware (Wood), and a new SMP block split across the three Wii U's (Latte) PPC cores and the ARM core. Each core's region of the SMP block has registers equivalent to the old global block. |
− | === | + | |
− | {{reglist|Global | + | ===Compat block=== |
− | {{rla|0x0d800030|32| | + | {{reglist|Global compat block}} |
− | {{rla|0x0d800034|32| | + | {{rla|0x0d800030|32|LT_INTSR_PPC_COMPAT|Triggered IRQs for the PPC in vWii}} |
− | {{rla|0x0d800038|32| | + | {{rla|0x0d800034|32|LT_INTMR_PPC_COMPAT|Allowed IRQs for the PPC in vWii}} |
− | {{rla|0x0d80003c|32| | + | {{rla|0x0d800038|32|LT_INTSR_ARM_COMPAT|Triggered IRQs for the ARM in vWii}} |
+ | {{rla|0x0d80003c|32|LT_INTMR_ARM_COMPAT|Allowed IRQs for the ARM in vWii}} | ||
+ | {{rld|0x0d800040|32|LT_INTMR_ARM2x_COMPAT|Unknown}} | ||
|} | |} | ||
===SMP block=== | ===SMP block=== | ||
{{reglist|SMP block - PPC core 0}} | {{reglist|SMP block - PPC core 0}} | ||
− | {{rla|0x0d800440|32|LT_INTSR_AHBALL_PPC0|Triggered AHB | + | {{rla|0x0d800440|32|LT_INTSR_AHBALL_PPC0|Triggered AHB IRQs for PPC core 0 (all)}} |
− | {{rla|0x0d800444|32|LT_INTSR_AHBLT_PPC0|Triggered AHB | + | {{rla|0x0d800444|32|LT_INTSR_AHBLT_PPC0|Triggered AHB IRQs for PPC core 0 (Latte only)}} |
− | {{rla|0x0d800448|32|LT_INTMR_AHBALL_PPC0|Allowed AHB | + | {{rla|0x0d800448|32|LT_INTMR_AHBALL_PPC0|Allowed AHB IRQs for PPC core 0 (all)}} |
− | {{rla|0x0d80044c|32|LT_INTMR_AHBLT_PPC0|Allowed AHB | + | {{rla|0x0d80044c|32|LT_INTMR_AHBLT_PPC0|Allowed AHB IRQs for PPC core 0 (Latte only)}} |
|} | |} | ||
{{reglist|SMP block - PPC core 1}} | {{reglist|SMP block - PPC core 1}} | ||
− | {{rla|0x0d800450|32|LT_INTSR_AHBALL_PPC1|Triggered AHB | + | {{rla|0x0d800450|32|LT_INTSR_AHBALL_PPC1|Triggered AHB IRQs for PPC core 1 (all)}} |
− | {{rla|0x0d800454|32|LT_INTSR_AHBLT_PPC1|Triggered AHB | + | {{rla|0x0d800454|32|LT_INTSR_AHBLT_PPC1|Triggered AHB IRQs for PPC core 1 (Latte only)}} |
− | {{rla|0x0d800458|32|LT_INTMR_AHBALL_PPC1|Allowed AHB | + | {{rla|0x0d800458|32|LT_INTMR_AHBALL_PPC1|Allowed AHB IRQs for PPC core 1 (all)}} |
− | {{rla|0x0d80045c|32|LT_INTMR_AHBLT_PPC1|Allowed AHB | + | {{rla|0x0d80045c|32|LT_INTMR_AHBLT_PPC1|Allowed AHB IRQs for PPC core 1 (Latte only)}} |
|} | |} | ||
{{reglist|SMP block - PPC core 2}} | {{reglist|SMP block - PPC core 2}} | ||
− | {{rla|0x0d800460|32|LT_INTSR_AHBALL_PPC2|Triggered AHB | + | {{rla|0x0d800460|32|LT_INTSR_AHBALL_PPC2|Triggered AHB IRQs for PPC core 2 (all)}} |
− | {{rla|0x0d800464|32|LT_INTSR_AHBLT_PPC2|Triggered AHB | + | {{rla|0x0d800464|32|LT_INTSR_AHBLT_PPC2|Triggered AHB IRQs for PPC core 2 (Latte only)}} |
− | {{rla|0x0d800468|32|LT_INTMR_AHBALL_PPC2|Allowed AHB (all) IRQs for PPC core 2}} | + | {{rla|0x0d800468|32|LT_INTMR_AHBALL_PPC2|Allowed AHB IRQs for PPC core 2 (all)}} |
− | {{rla| | + | {{rla|0x0d80046c|32|LT_INTMR_AHBLT_PPC2|Allowed AHB IRQs for PPC core 2 (Latte only)}} |
+ | |} | ||
+ | |||
+ | {{reglist|SMP block - ARM core}} | ||
+ | {{rla|0x0d800470|32|LT_INTSR_AHBALL_ARM|Triggered AHB IRQs for ARM core (all)}} | ||
+ | {{rla|0x0d800474|32|LT_INTSR_AHBLT_ARM|Triggered AHB IRQs for ARM core (Latte only)}} | ||
+ | {{rla|0x0d800478|32|LT_INTMR_AHBALL_ARM|Allowed AHB IRQs for ARM core (all)}} | ||
+ | {{rla|0x0d80047c|32|LT_INTMR_AHBLT_ARM|Allowed AHB IRQs for ARM core (Latte only)}} | ||
+ | {{rld|0x0d800480|32|LT_INTMR_AHBALL_ARM2x|Unknown (all)}} | ||
+ | {{rld|0x0d800484|32|LT_INTMR_AHBLT_ARM2x|Unknown (Latte only)}} | ||
|} | |} |
Revision as of 19:02, 14 April 2016
Latte IRQs | |
Access | |
---|---|
Espresso | Partial |
Starbuck | Full |
Registers | |
Base | 0x0d800030, 0x0d800440 |
Length | 0x10, 0x48 |
Access size | 32 bits |
Byte order | Big Endian |
IRQ Sources
IRQ | Description |
---|---|
0 | Starbuck Timer |
1 | NAND Interface |
2 | AES Engine |
3 | SHA-1 Engine |
4 | USB Host Controller (EHCI) |
5 | USB Host Controller (OHCI0) |
6 | USB Host Controller (OHCI1) |
7 | SD Host Controller |
8 | 802.11 Wireless |
9 | Unknown |
10 | Latte GPIOs (Espresso) |
11 | Latte GPIOs (Starbuck) |
12 | Unknown |
13 | Undefined |
14 | Undefined |
15 | Undefined |
16 | Undefined |
17 | Power button (reset) |
18 | Drive Interface (DI) |
19 | Undefined |
20 | Unknown |
21 | Undefined |
22 | Undefined |
23 | Undefined |
24 | Undefined |
25 | Undefined |
26 | Undefined |
27 | Undefined |
28 | Unknown |
29 | Undefined |
30 | IPC (Espresso) |
31 | IPC (Starbuck) |
Register List
The Latte IRQ engine has two different register blocks: a global block compatible with the old Wii hardware (Wood), and a new SMP block split across the three Wii U's (Latte) PPC cores and the ARM core. Each core's region of the SMP block has registers equivalent to the old global block.
Compat block
Global compat block | |||
---|---|---|---|
Address | Bits | Name | Description |
0x0d800030 | 32 | LT_INTSR_PPC_COMPAT | Triggered IRQs for the PPC in vWii |
0x0d800034 | 32 | LT_INTMR_PPC_COMPAT | Allowed IRQs for the PPC in vWii |
0x0d800038 | 32 | LT_INTSR_ARM_COMPAT | Triggered IRQs for the ARM in vWii |
0x0d80003c | 32 | LT_INTMR_ARM_COMPAT | Allowed IRQs for the ARM in vWii |
0x0d800040 | 32 | LT_INTMR_ARM2x_COMPAT | Unknown |
SMP block
SMP block - PPC core 0 | |||
---|---|---|---|
Address | Bits | Name | Description |
0x0d800440 | 32 | LT_INTSR_AHBALL_PPC0 | Triggered AHB IRQs for PPC core 0 (all) |
0x0d800444 | 32 | LT_INTSR_AHBLT_PPC0 | Triggered AHB IRQs for PPC core 0 (Latte only) |
0x0d800448 | 32 | LT_INTMR_AHBALL_PPC0 | Allowed AHB IRQs for PPC core 0 (all) |
0x0d80044c | 32 | LT_INTMR_AHBLT_PPC0 | Allowed AHB IRQs for PPC core 0 (Latte only) |
SMP block - PPC core 1 | |||
---|---|---|---|
Address | Bits | Name | Description |
0x0d800450 | 32 | LT_INTSR_AHBALL_PPC1 | Triggered AHB IRQs for PPC core 1 (all) |
0x0d800454 | 32 | LT_INTSR_AHBLT_PPC1 | Triggered AHB IRQs for PPC core 1 (Latte only) |
0x0d800458 | 32 | LT_INTMR_AHBALL_PPC1 | Allowed AHB IRQs for PPC core 1 (all) |
0x0d80045c | 32 | LT_INTMR_AHBLT_PPC1 | Allowed AHB IRQs for PPC core 1 (Latte only) |
SMP block - PPC core 2 | |||
---|---|---|---|
Address | Bits | Name | Description |
0x0d800460 | 32 | LT_INTSR_AHBALL_PPC2 | Triggered AHB IRQs for PPC core 2 (all) |
0x0d800464 | 32 | LT_INTSR_AHBLT_PPC2 | Triggered AHB IRQs for PPC core 2 (Latte only) |
0x0d800468 | 32 | LT_INTMR_AHBALL_PPC2 | Allowed AHB IRQs for PPC core 2 (all) |
0x0d80046c | 32 | LT_INTMR_AHBLT_PPC2 | Allowed AHB IRQs for PPC core 2 (Latte only) |
SMP block - ARM core | |||
---|---|---|---|
Address | Bits | Name | Description |
0x0d800470 | 32 | LT_INTSR_AHBALL_ARM | Triggered AHB IRQs for ARM core (all) |
0x0d800474 | 32 | LT_INTSR_AHBLT_ARM | Triggered AHB IRQs for ARM core (Latte only) |
0x0d800478 | 32 | LT_INTMR_AHBALL_ARM | Allowed AHB IRQs for ARM core (all) |
0x0d80047c | 32 | LT_INTMR_AHBLT_ARM | Allowed AHB IRQs for ARM core (Latte only) |
0x0d800480 | 32 | LT_INTMR_AHBALL_ARM2x | Unknown (all) |
0x0d800484 | 32 | LT_INTMR_AHBLT_ARM2x | Unknown (Latte only) |