RDRAM Interface: Difference between revisions

(Document Count mapping)
 
Line 325:
|Broadcast register write
|}
Note that memory-space accesses (0x00000000 - 0x03EFFFFF) that hit addresses where there is no RDRAM chip mapped will result in a sort of "no-operation" behavior: reads will return zero, and writes will be ignored. For instance, in a N64 with 4 MiB (no expansion pak), reads at the 5 MiB are not a mirror of the reads at the first MiB: they just return zero because no chips in the RAMBUS will reply to those requests.
 
The same goes for accessing addresses above 8 MiB, no Rambus device will respond to requests.
 
 
Examples :
 
Line 345 ⟶ 340:
* Standard DRAM initialization procedure, doesn't make use of address swapping feature, because bank tracking doesn't support it.
* Register-space addresses duplicates the content between Adr[28:20] and Adr[19:11] to not be affected by RDRAM address swapping features. Indeed, whereas address swapping is desirable for RDRAM memory to benefit from row internal row caching, registers won't benefit from the swapping and would complicate usage of registers in such a case.
 
==== Accesses outside of mapped RDRAM chips ====
Memory-space accesses (0x00000000 - 0x03EFFFFF) that hit addresses where there is no RDRAM chip mapped will result in a sort of "no-operation" behavior: reads will return zero, and writes will be ignored. For instance, in a N64 with 4 MiB (no expansion pak), reads at the 5 MiB are not a mirror of the reads at the first MiB: they just return zero because no chips in the RAMBUS will reply to those requests.
 
The same goes for accessing addresses above 8 MiB, no Rambus device will respond to requests.
 
This is true in theory for RDRAM buses, but there seems to be a weird behavior, at least during reads, causing some areas of the address space to return non-zero values when read. These 32-bit non-zero values can be seen every 0x80 bytes, in an area of 8 KiB, repeating every 512 KiB. The dump below has been taken from a N64; an identical pattern can be observed on different consoles, though an extensive comparison has not been run. You can see the non-zero values present in 32-bit slots every 0x80 bytes (though not all slots contain a value), in range 0 - 8KiB (0x2000), and then repeating again after 512 KiB (0x80000 - 0x82000), and so on every 512 KiB.
 
What seems to happen is that somehow a RDRAM register value is shown as part of a memory read; this is probably a RI bug, but it has not been fully investigated yet. For instance, the value <code>0xb4190010</code> shown at several addresses (eg: 0x1400) is a very common value for the [[RDRAM#0x00 - DeviceType|RDRAM register DeviceType]].
 
<syntaxhighlight lang="text">
00000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00380 78 01 fe 02 00 00 00 00 00 00 00 00 00 00 00 00 |x...............|
*
00d80 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00e40 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00f80 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01380 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01400 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01480 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01540 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01600 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
016c0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
016d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01740 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
804c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
806c0 94 01 fe 02 00 00 00 00 00 00 00 00 00 00 00 00 |................|
806d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80700 9c 01 fe 02 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80780 a6 01 fe 02 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
807c0 ae 01 fe 02 00 00 00 00 00 00 00 00 00 00 00 00 |................|
807d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80840 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
808c0 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
808d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80940 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
809c0 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
809d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80b80 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80bc0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80c40 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80cc0 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80d40 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80dc0 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80ec0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
80fc0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
80fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81380 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81480 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
815c0 b4 19 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |................|
815d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
816c0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
816d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81700 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81780 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
817c0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
817d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81ac0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81b00 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81b80 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
81bc0 fe 03 fe 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
81bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
</syntaxhighlight>
 
 
= Count =