Memory Map
Jump to navigation
Jump to search
EE Virtual/Physical Memory Map[edit | edit source]
- KUSEG: 00000000h-7FFFFFFFh User segment
- KSEG0: 80000000h-9FFFFFFFh Kernel segment 0
- KSEG1: A0000000h-BFFFFFFFh Kernel segment 1
- KSSEG: C0000000h-DFFFFFFFh Supervisor segment
- KSEG3: E0000000h-FFFFFFFFh Kernel segment 3
Virtual | Physical | Size | Description |
---|---|---|---|
00000000h | 00000000h | 32 MB | Main RAM (first 1 MB reserved for kernel) |
20000000h | 00000000h | 32 MB | Main RAM, uncached |
30100000h | 00100000h | 31 MB | Main RAM, uncached and accelerated |
10000000h | 10000000h | 64 KB | I/O registers |
11000000h | 11000000h | 4 KB | VU0 code memory |
11004000h | 11004000h | 4 KB | VU0 data memory |
11008000h | 11008000h | 16 KB | VU1 code memory |
1100C000h | 1100C000h | 16 KB | VU1 data memory |
12000000h | 12000000h | 8 KB | GS privileged registers |
1C000000h | 1C000000h | 2 MB | IOP RAM |
1FC00000h | 1FC00000h | 4 MB | BIOS, uncached (rom0) |
9FC00000h | 1FC00000h | 4 MB | BIOS, cached (rom09) |
BFC00000h | 1FC00000h | 4 MB | BIOS, uncached (rom0b) |
70000000h | --------- | 16 KB | Scratchpad RAM (only accessible via virtual addressing) |
IOP Physical Memory Map[edit | edit source]
- KUSEG: 00000000h-7FFFFFFFh User segment
- KSEG0: 80000000h-9FFFFFFFh Kernel segment 0
- KSEG1: A0000000h-BFFFFFFFh Kernel segment 1
Physical | Size | Description |
---|---|---|
00000000h | 2 MB | Main RAM (same as on PSX) |
1D000000h | SIF registers | |
1F800000h | 64 KB | Various I/O registers |
1F900000h | 1 KB | SPU2 registers |
1FC00000h | 4 MB | BIOS (rom0) - Same as EE BIOS |
FFFE0000h | Cache control (KSEG2) |
Hardware Mapped Registers[edit | edit source]
EE Map[edit | edit source]
EE Timers[edit | edit source]
Timer 0 | ||
---|---|---|
Address | Size | Description |
10000000h | T0_COUNT | |
10000010h | T0_MODE | |
10000020h | T0_COMP | |
10000030h | T0_HOLD | |
Timer 1 | ||
Address | Size | Description |
10000800h | T1_COUNT | |
10000810h | T1_MODE | |
10000820h | T1_COMP | |
10000830h | T1_HOLD | |
Timer 2 | ||
Address | Size | Description |
10001000h | T2_COUNT | |
10001010h | T2_MODE | |
10001020h | T2_COMP | |
Timer 3 | ||
Address | Size | Description |
10001800h | T3_COUNT | |
10001810h | T3_MODE | |
10001820h | T3_COMP |
Image Processing Unit (IPU)[edit | edit source]
Address | Size | Description |
---|---|---|
10002000h | 8h | IPU Command |
10002010h | 4h | IPU Control |
10002020h | 4h | IPU bit pointer control |
10002030h | 8h | Top of bitstream |
10007000h | 10h | Out FIFO (read) |
10007010h | 10h | In FIFO (write) |
Graphics Interface (GIF)[edit | edit source]
Address | Size | Description |
---|---|---|
10003000h | 4h | GIF_CTRL - Control register |
10003010h | 4h | GIF_MODE - Mode setting |
10003020h | 4h | GIF_STAT - Status |
10003040h | 4h | GIF_TAG0 - Bits 0-31 of tag before |
10003050h | 4h | GIF_TAG1 - Bits 32-63 of tag before |
10003060h | 4h | GIF_TAG2 - Bits 64-95 of tag before |
10003070h | 4h | GIF_TAG3 - Bits 96-127 of tag before |
10003080h | 4h | GIF_CNT - Transfer status counter |
10003090h | 4h | GIF_P3CNT - PATH3 transfer status counter |
100030A0h | 4h | GIF_P3TAG - Bits 0-31 of PATH3 tag when interrupted |
10006000h | 10h | GIF FIFO |
DMA Controller (DMAC)[edit | edit source]
VIF0 - Channel 0 | ||
---|---|---|
Address | Size | Description |
10008000h | 4h | D0_CHCR |
10008010h | 4h | D0_MADR |
10008020h | 4h | D0_QWC |
10008030h | 4h | D0_TADR |
10008040h | 4h | D0_ASR0 |
10008050h | 4h | D0_ASR1 |
VIF1 - Channel 1 | ||
Address | Size | Description |
10009000h | 4h | D1_CHCR |
10009010h | 4h | D1_MADR |
10009020h | 4h | D1_QWC |
10009030h | 4h | D1_TADR |
10009040h | 4h | D1_ASR0 |
10009050h | 4h | D1_ASR1 |
GIF - Channel 2 | ||
Address | Size | Description |
1000A000h | 4h | D2_CHCR |
1000A010h | 4h | D2_MADR |
1000A020h | 4h | D2_QWC |
1000A030h | 4h | D2_TADR |
1000A040h | 4h | D2_ASR0 |
1000A050h | 4h | D2_ASR1 |
from IPU - Channel 3 | ||
Address | Size | Description |
1000B000h | 4h | D3_CHCR |
1000B010h | 4h | D3_MADR |
1000B020h | 4h | D3_QWC |
to IPU - Channel 4 | ||
Address | Size | Description |
1000B400h | 4h | D4_CHCR |
1000B410h | 4h | D4_MADR |
1000B420h | 4h | D4_QWC |
1000B430h | 4h | D4_TADR |
SIF0 - Channel 5 | ||
Address | Size | Description |
1000C000h | 4h | D5_CHCR |
1000C010h | 4h | D5_MADR |
1000C020h | 4h | D5_QWC |
SIF1 - Channel 6 | ||
Address | Size | Description |
1000C400h | 4h | D6_CHCR |
1000C410h | 4h | D6_MADR |
1000C420h | 4h | D6_QWC |
1000C430h | 4h | D6_TADR |
SIF2 - Channel 7 | ||
Address | Size | Description |
1000C800h | 4h | D7_CHCR |
1000C810h | 4h | D7_MADR |
1000C820h | 4h | D7_QWC |
from SPR - Channel 8 | ||
Address | Size | Description |
1000D000h | 4h | D8_CHCR |
1000D010h | 4h | D8_MADR |
1000D020h | 4h | D8_QWC |
1000D080h | 4h | D8_SADR |
to SPR - Channel 9 | ||
Address | Size | Description |
1000D400h | 4h | D9_CHCR |
1000D410h | 4h | D9_MADR |
1000D420h | 4h | D9_QWC |
1000D430h | 4h | D9_TADR |
1000D480h | 4h | D9_SADR |
Common Registers | ||
Address | Size | Description |
1000E000h | 4h | D_CTRL - DMAC control |
1000E010h | 4h | D_STAT - DMAC interrupt status |
1000E020h | 4h | D_PCR - DMAC priority control |
1000E030h | 4h | D_SQWC - DMAC skip quadword |
1000E040h | 4h | D_RBSR - DMAC ringbuffer size |
1000E050h | 4h | D_RBOR - DMAC ringbuffer offset |
1000E060h | 4h | D_STADR - DMAC stall address |
1000F520h | 4h | D_ENABLER - DMAC disabled status |
1000F590h | 4h | D_ENABLEW - DMAC disable |
Interrupt Controller (INTC)[edit | edit source]
Address | Size | Description |
---|---|---|
1000F000h | 4h | INTC_STAT - Interrupt status |
1000F010h | 4h | INTC_MASK - Interrupt mask |
Subsystem Interface (SIF)[edit | edit source]
Address | Size | Description |
---|---|---|
1000F200h | 4h | MSCOM - EE->IOP communication |
1000F210h | 4h | SMCOM - IOP->EE communication |
1000F220h | 4h | MSFLAG - EE->IOP flags |
1000F230h | 4h | SMFLAG - IOP->EE flags |
1000F240h | 4h | Control register |
Privileged GS registers[edit | edit source]
Address | Size | Description |
---|---|---|
12000000h | 8h | PMODE - various PCRTC controls |
12000010h | 8h | SMODE1 |
12000020h | 8h | SMODE2 |
12000030h | 8h | SRFSH |
12000040h | 8h | SYNCH1 |
12000050h | 8h | SYNCH2 |
12000060h | 8h | SYNCV |
12000070h | 8h | DISPFB1 - display buffer for output circuit 1 |
12000080h | 8h | DISPLAY1 - output circuit 1 control |
12000090h | 8h | DISPFB2 - display buffer for output circuit 2 |
120000A0h | 8h | DISPLAY2 - output circuit 2 control |
120000B0h | 8h | EXTBUF |
120000C0h | 8h | EXTDATA |
120000D0h | 8h | EXTWRITE |
120000E0h | 8h | BGCOLOR - background color |
12001000h | 8h | GS_CSR - control register |
12001010h | 8h | GS_IMR - GS interrupt control |
12001040h | 8h | BUSDIR - transfer direction |
12001080h | 8h | SIGLBLID - signal |
IOP Map[edit | edit source]
Subsystem Interface (SIF)[edit | edit source]
Address | Size | Description |
---|---|---|
1D000000h | 4h | MSCOM - EE->IOP communication |
1D000010h | 4h | SMCOM - IOP->EE communication |
1D000020h | 4h | MSFLAG - EE->IOP flags |
1D000030h | 4h | SMFLAG - IOP->EE flags |
1D000040h | 4h | Control register |
CDVD Drive[edit | edit source]
Address | Size | Description |
---|---|---|
1F402004h | 1h | Current N command |
1F402005h | 1h | N command status (R) |
1F402005h | 1h | N command params (W) |
1F402006h | 1h | Error |
1F402007h | 1h | Send BREAK command |
1F402008h | 1h | CDVD I_STAT - interrupt register |
1F402009h | 1h | MSF mode |
1F40200Ah | 1h | Drive status |
1F40200Bh | 1h | Drive sticky status |
1F40200Ch | 1h | Minute |
1F40200Dh | 1h | Second |
1F40200Eh | 1h | Frame |
1F40200Fh | 1h | Disk type |
1F402013h | 1h | Spindle control |
1F402014h | 1h | Mechacon compatibility commands (only for emulation in ps1 mode?) |
1F402016h | 1h | Current S command |
1F402017h | 1h | S command status |
1F402018h | 1h | S command params |
1F402038h | 1h | Cdvd key is valid (heavily used by SCCS region) |
Interrupt Control[edit | edit source]
Address | Size | Description |
---|---|---|
1F801070h | 4h | I_STAT - Interrupt status |
1F801074h | 4h | I_MASK - Interrupt mask |
1F801078h | 1h | I_CTRL - Global interrupt disable |
DMA registers[edit | edit source]
MDECin - channel 0 | ||
---|---|---|
Address | Size | Description |
1F801080h | 4h | D0_MADR |
1F801084h | 4h | D0_BCR |
1F801088h | 4h | D0_CHCR |
MDECout - channel 1 | ||
Address | Size | Description |
1F801090h | 4h | D1_MADR |
1F801094h | 4h | D1_BCR |
1F801098h | 4h | D1_CHCR |
SIF2 (GPU) - channel 2 | ||
Address | Size | Description |
1F8010A0h | 4h | D2_MADR |
1F8010A4h | 4h | D2_BCR |
1F8010A8h | 4h | D2_CHCR |
CDVD - channel 3 | ||
Address | Size | Description |
1F8010B0h | 4h | D3_MADR |
1F8010B4h | 4h | D3_BCR |
1F8010B8h | 4h | D3_CHCR |
SPU2 Core0 - channel 4 | ||
Address | Size | Description |
1F8010C0h | 4h | D4_MADR |
1F8010C4h | 4h | D4_BCR |
1F8010C8h | 4h | D4_CHCR |
PIO - channel 5 | ||
Address | Size | Description |
1F8010D0h | 4h | D5_MADR |
1F8010D4h | 4h | D5_BCR |
1F8010D8h | 4h | D5_CHCR |
OTC - channel 6 | ||
Address | Size | Description |
1F8010E0h | 4h | D6_MADR |
1F8010E4h | 4h | D6_BCR |
1F8010E8h | 4h | D6_CHCR |
SPU2 Core1 - channel 7 | ||
Address | Size | Description |
1F801500h | 4h | D7_MADR |
1F801504h | 4h | D7_BCR |
1F801508h | 4h | D7_CHCR |
DEV9 - channel 8 | ||
Address | Size | Description |
1F801510h | 4h | D8_MADR |
1F801514h | 4h | D8_BCR |
1F801518h | 4h | D8_CHCR |
SIF0 - channel 9 | ||
Address | Size | Description |
1F801520h | 4h | D9_MADR |
1F801524h | 4h | D9_BCR |
1F801528h | 4h | D9_CHCR |
1F80152Ch | 4h | D9_TADR |
SIF1 - channel 10 | ||
Address | Size | Description |
1F801530h | 4h | D10_MADR |
1F801534h | 4h | D10_BCR |
1F801538h | 4h | D10_CHCR |
SIO2in - channel 11 | ||
Address | Size | Description |
1F801540h | 4h | D11_MADR |
1F801544h | 4h | D11_BCR |
1F801548h | 4h | D11_CHCR |
SIO2out - channel 12 | ||
Address | Size | Description |
1F801550h | 4h | D12_MADR |
1F801554h | 4h | D12_BCR |
1F801558h | 4h | D12_CHCR |
Common Registers | ||
1F8010F0h | 4h | DPCR - DMA priority control |
1F8010F4h | 4h | DICR - DMA interrupt control |
1F801570h | 4h | DPCR2 - DMA priority control 2 |
1F801574h | 4h | DICR2 - DMA priority control 2 |
1F801578h | 4h | DMACEN - Global DMA Enable |
1F80157Ch | 4h | DMACINTEN - Global DMA Interrupt Enable |
IOP Timers[edit | edit source]
Timer 0 | ||
---|---|---|
Address | Size | Description |
1F801100h | T0_COUNT | |
1F801104h | T0_MODE | |
1F801108h | T0_TARGET | |
Timer 1 | ||
Address | Size | Description |
1F801110h | T1_COUNT | |
1F801114h | T1_MODE | |
1F801118h | T1_TARGET | |
Timer 2 | ||
Address | Size | Description |
1F801120h | T2_COUNT | |
1F801124h | T2_MODE | |
1F801128h | T2_TARGET | |
Timer 3 | ||
Address | Size | Description |
1F801480h | T3_COUNT | |
1F801484h | T3_MODE | |
1F801488h | T3_TARGET | |
Timer 4 | ||
Address | Size | Description |
1F801490h | T4_COUNT | |
1F801494h | T4_MODE | |
1F801498h | T4_TARGET | |
Timer 5 | ||
Address | Size | Description |
1F8014A0h | T5_COUNT | |
1F8014A4h | T5_MODE | |
1F8014A8h | T5_TARGET |
Serial Interface (SIO2)[edit | edit source]
Address | Size | Description |
---|---|---|
1F808200h | 40h | SEND3 buffer |
1F808240h | 20h | SEND1/2 buffers |
1F808260h | 1h | In FIFO |
1F808264h | 1h | Out FIFO |
1F808268h | 4h | SIO2 control |
1F80826Ch | 4h | RECV1 |
1F808270h | 4h | RECV2 |
1F808274h | 4h | RECV3 |
Sound Processing Unit (SPU2)[edit | edit source]
Core 0 | ||
---|---|---|
Address | Size | Description |
1F900000h | 180h | Core0 Voice 0-23 registers |
1F900190h | 4h | Key ON 0/1 |
1F900194h | 4h | Key OFF 0/1 |
1F90019Ah | 2h | Core attributes |
1F90019Ch | 4h | Interrupt address H/L |
1F9001A8h | 4h | DMA transfer address H/L |
1F9001ACh | 2h | Internal transfer FIFO |
1F9001B0h | 2h | AutoDMA status |
1F9001C0h | 120h | Core0 Voice 0-23 start/loop/next addresses |
1F900340h | 4h | ENDX 0/1 |
1F900344h | 2h | Status register |
Core 1 | ||
Address | Size | Description |
1F900400h | 180h | Core1 Voice 0-23 registers |
1F900590h | 4h | Key ON 0/1 |
1F900594h | 4h | Key OFF 0/1 |
1F90059Ah | 2h | Core attributes |
1F90059Ch | 4h | Interrupt address H/L |
1F9005A8h | 4h | DMA transfer address H/L |
1F9005ACh | 2h | Internal transfer FIFO |
1F9005B0h | 2h | AutoDMA status |
1F9005C0h | 120h | Core1 Voice 0-23 start/loop/next addresses |
1F900740h | 4h | ENDX 0/1 |
1F900744h | 2h | Status register |
Misc | ||
Address | Size | Description |
1F900760h | 2h | Master Volume Left |
1F900762h | 2h | Master Volume Right |
1F900764h | 2h | Effect Volume Left |
1F900766h | 2h | Effect Volume Right |
1F900768h | 2h | Core1 External Input Volume Left |
1F90076Ah | 2h | Core1 External Input Volume Right |