RDRAM: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
(Document RasInterval register)
m (Update RDRAM_DELAY_REG programming caution)
Line 345: Line 345:
}}
}}


'''Programming caution:''' This is the first RDRAM register to configure, given that it configure RDRAM CAS timings. However, writing to this register (the first time?) may require the value to be written to have it's low hword and hi hword swapped (eg. to write 0xAABBCCDD we use 0xCCDDAABB instead) and the MI to be configured in a special way (MI_MODE = 0x10f, eg. SET_INIT_LENGTH | length = 0x0f) to make the write work with default RDRAM timings. Indeed, IPL3 configure this register using the following sequence:<br>
NOTE: IPL3 set this register to 0x18082838 (AckWin = 3, Read = 1, Ack = 5, Write = 7), which doesn't match the recommended values. Recommended value would be 0x28381808. Also, Ack value set by IPL3 (5) doesn't fit in AckDelay field (only 2 bits)... So there must be something wrong in either IPL3 or the current description.
[MI_MODE_REG] = 0x10f<br>
[0xA3F80000 + RDRAM_DELAY_REG] = 0x18082838 // notice how low hword and high hword are swapped compared to the recommended value of 0x28381808<br>
But reading back the value written in RDRAM_DELAY_REG give 0x2B3B1A0B (which suggests that hwords got somehow swapped).
Also, trying to write 0x28381808 to RDRAM_DELAY_REG made the console freeze (tested using a modified version of hcs's boot_stub).

Note also that, all RDRAM present on the channel should be configured with the same value (use a broadcast write to do so).


==== <span style="display:none;">AdrS[9:2] 0x03 - Mode ====
==== <span style="display:none;">AdrS[9:2] 0x03 - Mode ====