Changes

2,825 bytes removed ,  05:35, 3 June 2009
←Redirected page to Hollywood Registers
Line 1: Line 1: βˆ’
This page lists the known [[Starlet]] I/O registers.  Much of this info comes from Segher & tmbinc's private notes.
+
#REDIRECT [[Hollywood Registers]]
βˆ’
 
  βˆ’
== IO Memory ==
  βˆ’
 
  βˆ’
{| class="wikitable"
  βˆ’
! base
  βˆ’
! function
  βˆ’
! offset
  βˆ’
! description
  βˆ’
! contents/example
  βˆ’
|-
  βˆ’
|0x0D800000
  βˆ’
| hollywood control
  βˆ’
| 0x400 bytes of control registers; these registers are mirrored every 0x400 bytes from 0x0D80000 to 0x0D805fff
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D800000
  βˆ’
|IPC
  βˆ’
|
  βˆ’
| reg 0: request pointer
  βˆ’
| To make an IOS request, the physical address of an IOS command struct is written here by the Broadway.  Then, Broadway sets bit 0 of IPC reg 1 to indicate a request is ready.
  βˆ’
|-
  βˆ’
|0x0D800004
  βˆ’
|IPC
  βˆ’
|
  βˆ’
| reg 1: semaphore flags
  βˆ’
| Broadway sets bits here as "doorbells" to indicate status; Starlet responds by setting flags here.
  βˆ’
|-
  βˆ’
|0x0D800008
  βˆ’
|IPC
  βˆ’
|
  βˆ’
|reg 2: Reply pointer
  βˆ’
|  When an IOS request has completed, IOS will modify the original command struct passed in IPC reg 0, copy that pointer to reg 2, then set reg 1 to 0x14 to indicate a reply is ready.
  βˆ’
|-
  βˆ’
|0x0D800010
  βˆ’
|timer (core clock divided by 128)
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D800014
  βˆ’
| alarm (interrupt 0 is fired when the timer reaches this value)
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D800030
  βˆ’
| something related to interrupts; typical value is 0x854DA94F.  Pressing the RESET button will set the 0x20000 bit.
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D800034
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D800038
  βˆ’
|active interrupts (write 1 to clear).  Pressing the RESET button will set the 0x20000 bit (interrupt 18).  Pressing the POWER button will set the 0x800 bit (interrupt 11).
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D80003C
  βˆ’
|enabled interrupts
  βˆ’
|
  βˆ’
|
  βˆ’
| clear 0x40000 for legacy di
  βˆ’
|-
  βˆ’
|0x0D800060
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|
  βˆ’
0x0D800070
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
| set 0x10 for legacy DI; 0x1 to allow write to exi boot buffer
  βˆ’
|-
  βˆ’
|0x0D8001EC
  βˆ’
|OTP
  βˆ’
|
  βˆ’
|
  βˆ’
| OTP read address (addresses run from 0x80000000..0x8000001F)
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x80000000 - 0x80000004 stores 20 bytes boot1 SHA-1 hash
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x80000005 - 0x80000008 common key
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x80000009 NG id
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x8000000a - 0x80000010 NG private
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x80000011 - 0x80000015 NAND HMAC
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x80000016 - 0x80000019 NAND AES
  βˆ’
|-
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
| 0x8000001A - 0x8000001D RNG key
  βˆ’
|-
  βˆ’
|0x0D8001F0
  βˆ’
|OTP
  βˆ’
|
  βˆ’
|
  βˆ’
| OTP data
  βˆ’
|-
  βˆ’
|0x0D800214
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
| Register is read 223 times while booting boot0 and boot1. Never written by boot0 or boot1.
  βˆ’
|-
  βˆ’
|0x0D800224 - 03FF
  βˆ’
|
  βˆ’
|
  βˆ’
| unused
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D806800
  βˆ’
|EXI
  βˆ’
| 0x40
  βˆ’
| ppc boot buffer
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4000
  βˆ’
| AMBA AHB registers
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4000
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4002
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4004
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4006
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4008
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B400A
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B400C
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B400E
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4026
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4074
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4076
  βˆ’
|???
  βˆ’
|
  βˆ’
|
  βˆ’
|
  βˆ’
|-
  βˆ’
|0x0D8B4228
  βˆ’
|
  βˆ’
|
  βˆ’
| AHB command
  βˆ’
| AHB memory flush command. Typical values: 1, 2, 4, 8, 15
  βˆ’
|-
  βˆ’
|0x0D8B422a
  βˆ’
|
  βˆ’
|
  βˆ’
| AHB acknowlegde
  βˆ’
| If AHB memory flush acknowledge, will be set to the command value.
  βˆ’
|}
  βˆ’
[[Category:Hardware]]