RDRAM Interface: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
m (RI_REFRESH: MultiBank bitfield width is four bits.) |
(RI_BANK_STATUS: Further details) |
||
Line 235: | Line 235: | ||
{{#invoke:Register table|definitions |
{{#invoke:Register table|definitions |
||
| 31-16 | Undefined | Undefined |
| 31-16 | Undefined | Undefined |
||
| 15-8 | BankDirtyBits[7:0] | One per bank. Set when the currently open row has been written. |
| 15-8 | BankDirtyBits[7:0] | One per bank. Set when the currently open row has been written. Cleared when a new row is opened but not yet written to. |
||
| 7-0 | BankValidBits[7:0] | One per bank. Set when a row is opened. Presumably only cleared by a refresh cycle. |
| 7-0 | BankValidBits[7:0] | One per bank. Set when a row is opened. Presumably only cleared by a refresh cycle. |
||
}} |
}} |
||
Writing any value this register will |
Writing any value to this register will set all valid bits to 0 and all dirty bits to 1. This causes the RI to become out-of-sync with RDRAM and will result in errors.<br> |
||
Memory read/write requests to banks mapped above 8MiB do not update any of these bits. This may also cause out-of-sync errors as the RI appears to be unable to track the current open row state for banks above 8MiB. |
|||
'''Note:''' Some sources such as libultra's <code>rcp.h</code> header call this register <code>RI_WERROR</code>, however this register is unrelated to errors. The name <code>RI_BANK_STATUS</code> comes from a patent and is much more descriptive of the function of this register. |
|||
= Memory addressing = |
= Memory addressing = |