This should help people reversing iBoot and friends. It is a work in progress.
VIC (Vectored Interrupt Controller)
Base (vic0): 0x38E00000 Base (vic1): 0x38E01000 |
| Register |
Description |
| 0x0 |
IRQ Status |
| 0x4 |
FIQ Status |
| 0x8 |
Raw Interrupt Status |
| 0xC |
Interrupt Select (0=IRQ, 1=FIQ) |
| 0x10 |
Interrupt Enable (0=Disabled, 1=Enabled) |
| 0x14 |
Interrupt Enable Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled) |
| 0x18 |
Software Interrupt (0=Disabled, 1=Enabled) |
| 0x1C |
Software Interrupt Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled) |
| 0x20 |
Register Protection Mode. If bit 0 is set to 1, then Protection Mode is on and only privileged mode writes will work. |
| 0x24 |
Software Interrupt Priority Mask (0=Masked, 1=Not Masked) |
| 0x100 |
Vector Addresses |
| 0x200 |
Vector Priority Levels |
| 0xFE0 through 0xFEC |
Not sure what these four registers are, because I can confirm that at least SecureROM, probably iBoot and such too, will simply read them when initializing the vectored interrupt controller. It does nothing about the contents...I'll post a snippet from IDA in the discussion page, but if anyone knows what these do, put it here. |