182 Chapter 9
mem3000
Notes on mem3000
Notes on mem3000
There is a dependency upon POST to initialize the memory system. This
test uses many of the CSR values from POST and does not reconfigure
the system. There are some exceptions in which CSR values need to be
changed in order for the test to run. In these cases, CSR values should be
returned to their previous value upon successful completion of the
subtest. If a failure occurs, these CSRs may not be returned to their pre-
test state in an attempt to save the failing state configuration.
mem3000 currently uses the following algorithm for selecting processors
to be used in testing: A list is made of processors. Even numbered
processors under 16 are first, then odd numbered processors under 16,
followed by even then odd CPUs over 16. This ordered list is then used to
assign one processor per memory board.
The EWMBs must be installed in pairs (1 even for each odd). Three pairs
is not a valid configuration and POST will hardware deconfigure the
extra pair. Therefore, either 2, 4, or 8 EWMBs must be installed.
mem3000 uses memory that was enabled by POST to do the pre-test
initialization and encaching. Therefore, the Octant Mask parameters (6
and 7) are ignored during subtest init. As a result, lines that are not
tested may be re-initialized and used during the encaching sequence.
Subtest 150 and the class 3 subtests use memory interleave and thus
test over a range of EWMBs. The memory tested is that which was
enabled by POST in the Main Memory Map.
Subtest 150 and the class 3 subtests use coherent accesses to test
consecutive memory lines which are interleaved across EWMBs, buses
and banks. As a result, parameters 6 and 7 are ignored. When a failure
occurs, the failing 40-bit address can be used to determine which logical
row, bank, bus, and board was being accessed. The failing DIMM field
(QxBx) takes interleaving into account and reports the actual physical
Quadrant and Bus that failed.
Depending on the configuration, subtest 640 may not be able to test all
EWMBs in the node at once. If subtest 640 does not report the status of
all EWMBs the first time, deselect the EWMBs that were tested and
rerun the subtest.
Subtests in class 6 will produce HPMCs (indicated by the Test Controller
printing the # character). These are expected.