Editing Hardware Registers
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 451: | Line 451: | ||
Bits 6-11 = UART 0-5 | Bits 6-11 = UART 0-5 | ||
Bits 12-15 = APB ( | Bits 12-15 = APB (?) 0-3 | ||
Bits 16-17 = Audio 0-1 | Bits 16-17 = Audio 0-1 | ||
Bits | Bits 19-21 = ? | ||
Bit 22 = SIRCS (?) | |||
Bit 22 = SIRCS ( | |||
Bit 23 = GPIO | Bit 23 = GPIO | ||
Line 498: | Line 492: | ||
| 0xBC100064 || 4 || RW || SPI clock select | | 0xBC100064 || 4 || RW || SPI clock select | ||
|- | |- | ||
| 0xBC100068 || 4 || RW || | | 0xBC100068 || 4 || RW || 0xF - PLL get/set out select (PLL frequency?) | ||
|- | |- | ||
| 0xBC100070 || 4 || RW || Set Avc power | | 0xBC100070 || 4 || RW || Set Avc power | ||
Line 506: | Line 498: | ||
| 0xBC100074 || 4 || RW || Unknown | | 0xBC100074 || 4 || RW || Unknown | ||
|- | |- | ||
| 0xBC100078 || 4 || RW || I/O enable | | 0xBC100078 || 4 || RW || I/O enable (?) (TODO: verify indices) | ||
Bit 0 = NAND | |||
Bit | Bit 1 = USB | ||
Bit | Bit 2 = ATA | ||
Bits 3-4 = Memstick Interface | |||
Bit | Bit 5 = LCDC | ||
Bit | Bit 6-7 = Audio | ||
Bit | Bit 8 = IIC | ||
Bit | Bit 9 = SIRCS | ||
Bit 10 = Audio? | |||
Bit 11 = KEY | |||
Bit 12 = PWM | |||
Bits | Bits 13-18 = UART | ||
Bits 19-24 = SPI | |||
|- | |- | ||
| 0xBC10007C || 4 || RW || Either GPIO pin enable, or GPIO pin direction | | 0xBC10007C || 4 || RW || Either GPIO pin enable, or GPIO pin direction | ||
Line 873: | Line 856: | ||
|- | |- | ||
|} | |} | ||
= 0xBC700000: ? = | |||
= 0xBC800000: DMACPlus = | = 0xBC800000: DMACPlus = | ||
Line 1,497: | Line 1,482: | ||
| 0xBD700007 || 1 || RW || Command | | 0xBD700007 || 1 || RW || Command | ||
Cmd 0x08 = reset | |||
Cmd 0x08 = | |||
Cmd 0xA0 = packet | Cmd 0xA0 = packet | ||
Cmd 0xC8 = read | Cmd 0xC8 = read | ||
Line 1,515: | Line 1,490: | ||
Cmd 0xCA = write | Cmd 0xCA = write | ||
Cmd 0xE0 = standby now 1 | |||
Cmd 0xE0 = standby | |||
Cmd 0xE6 = sleep | Cmd 0xE6 = sleep | ||
Line 1,532: | Line 1,497: | ||
Cmd 0xEC = ID ATA | Cmd 0xEC = ID ATA | ||
Cmd 0xEF = set features | Cmd 0xEF = set features | ||
|- | |- | ||
Line 1,727: | Line 1,688: | ||
| 0xBDE00008 || 4 || RW || Set to 1 on error by the command subroutine | | 0xBDE00008 || 4 || RW || Set to 1 on error by the command subroutine | ||
|- | |- | ||
| 0xBDE0000C || 4 || RW || Set to 1 to start processing | | 0xBDE0000C || 4 || RW || Set to 1 to start processing | ||
|- | |- | ||
| 0xBDE00010 || 4 || RW || KIRK command | | 0xBDE00010 || 4 || RW || KIRK command | ||
Line 1,800: | Line 1,761: | ||
|} | |} | ||
= 0xBDF00000: | = 0xBDF00000: UMD = | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Address !! Size !! R/W !! Description | ! Address !! Size !! R/W !! Description | ||
|- | |- | ||
| 0xBC900008 || 4 || RW || Reset | | 0xBC900008 || 4 || RW || Reset | ||
Line 1,814: | Line 1,771: | ||
Bit 0 = reset | Bit 0 = reset | ||
|- | |- | ||
| | | 0xBC900010 || 4 || RW || Set command | ||
Value 0x01 = ? | Value 0x01 = ? | ||
Value 0x02 = | Value 0x02 = ? | ||
Value 0x03 = ? | Value 0x03 = ? | ||
Line 1,826: | Line 1,783: | ||
Value 0x05 = write QTGP3 () at the first transfer address | Value 0x05 = write QTGP3 () at the first transfer address | ||
Value 0x08 = | Value 0x08 = find region | ||
Value 0x09 = | Value 0x09 = ? | ||
Value 0x0A = | Value 0x0A = read data | ||
Value 0x0B = ? | Value 0x0B = ? | ||
|- | |- | ||
| 0xBD900014 || 4 || R? || Unknown | | 0xBD900014 || 4 || R? || Unknown | ||
|- | |- | ||
| | | 0xBD900018 || 4 || R? || Unknown flags | ||
|- | |- | ||
| 0xBD90001C || 4 || R? || Unknown | | 0xBD90001C || 4 || R? || Unknown | ||
Line 1,846: | Line 1,801: | ||
| 0xBD900024 || 4 || RW || Clear interrupt? | | 0xBD900024 || 4 || RW || Clear interrupt? | ||
|- | |- | ||
| | | 0xBD900028 || 4 || RW || Enable interrupt? | ||
|- | |- | ||
| 0xBD90002C || 4 || RW || Disable interrupt? | | 0xBD90002C || 4 || RW || Disable interrupt? | ||
|- | |- | ||
| | | 0xBD900030 || 4 || RW || Unknown, set to 4 | ||
|- | |- | ||
| 0xBD900038 || 4 || RW || Unknown, set to 4 | | 0xBD900038 || 4 || RW || Unknown, set to 4 | ||
Line 1,958: | Line 1,913: | ||
|- | |- | ||
| 0xBE0000D0 || 4 || ? || ?? | | 0xBE0000D0 || 4 || ? || ?? | ||
|- | |||
|} | |} | ||
= 0xBE100000: MagicGate | = 0xBE100000: MagicGate hardware for memory stick? = | ||
= 0xBE140000: LCDC = | = 0xBE140000: LCDC = | ||
Line 2,141: | Line 2,061: | ||
| 0xBE240018 || 4 || RW || Is rising edge (?) | | 0xBE240018 || 4 || RW || Is rising edge (?) | ||
|- | |- | ||
| 0xBE24001C || 4 || RW || | | 0xBE24001C || 4 || RW || Is interrupt enabled | ||
|- | |- | ||
| 0xBE240020 || 4 || R? || | | 0xBE240020 || 4 || R? || Is interrupt triggered | ||
|- | |- | ||
| 0xBE240024 || 4 || W || Acknowledge interrupt | | 0xBE240024 || 4 || W || Acknowledge interrupt | ||
|- | |- | ||
| 0xBE240030 || 4 || RW || | | 0xBE240030 || 4 || RW || Is capture port (?) | ||
|- | |- | ||
| 0xBD240034 || 4 || RW || | | 0xBD240034 || 4 || RW || Is timer capture enabled (?) | ||
|- | |- | ||
| 0xBE240040 || 4 || RW || Is input on (?) | | 0xBE240040 || 4 || RW || Is input on (?) | ||
Line 2,162: | Line 2,082: | ||
= 0xBE4C0000 & 0xBE500000: UART = | = 0xBE4C0000 & 0xBE500000: UART = | ||
There are two similar UART controllers: | There are two similar UART controllers: | ||
Line 2,215: | Line 2,133: | ||
= 0xBE580000: Syscon = | = 0xBE580000: Syscon = | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 2,280: | Line 2,195: | ||
|- | |- | ||
|} | |} | ||
= 0xBE600000: ? = | |||
= 0xBE740000: Display = | = 0xBE740000: Display = | ||
Line 2,322: | Line 2,239: | ||
|} | |} | ||
= 0xBFC00000 | = 0xBFC00000: MIPS Reset Vector = | ||
= 0xBFF00000: NAND DMA buffer = | = 0xBFF00000: NAND DMA buffer = |