summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dimm_attributes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/hwp/dimm_attributes.xml')
-rw-r--r--src/usr/hwpf/hwp/dimm_attributes.xml55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/usr/hwpf/hwp/dimm_attributes.xml b/src/usr/hwpf/hwp/dimm_attributes.xml
index 459d1637b..e066c0e20 100644
--- a/src/usr/hwpf/hwp/dimm_attributes.xml
+++ b/src/usr/hwpf/hwp/dimm_attributes.xml
@@ -21,6 +21,7 @@
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
<!-- XML file specifying DIMM attributes used by HW Procedures. -->
+<!-- $Id: dimm_attributes.xml,v 1.3 2013/08/13 20:26:21 mjjones Exp $ -->
<attributes>
<attribute>
@@ -56,4 +57,58 @@
<platInit/>
</attribute>
+<attribute>
+ <id>ATTR_BAD_DQ_BITMAP</id>
+ <targetType>TARGET_TYPE_DIMM</targetType>
+ <description>
+ Bad DQ bitmap from a Centaur:MBA point of view.
+ The data is a 10 byte bitmap for each of 4 possible ranks.
+ The bad DQ data is stored in DIMM SPD, it is stored in a special format
+ and is translated to a DIMM Connector point of view for IS-DIMMs.
+ All of these details are hidden from the user of this attribute.
+ </description>
+ <valueType>uint8</valueType>
+ <array>4 10</array>
+ <platInit/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>ATTR_VPD_DIMM_SPARE</id>
+ <targetType>TARGET_TYPE_DIMM</targetType>
+ <description>
+ Spare DRAM availability for each rank on the DIMM.
+ There are 8 DQ lines to spare DRAMs.
+ - NO_SPARE: No spare DRAMs
+ - LOW_NIBBLE: x4 DRAMs in use, one spare DRAM connected to SP_DQ0-3
+ - HIGH_NIBBLE: x4 DRAMs in use, one spare DRAM connected to SP_DQ4-7
+ - FULL_BYTE: Either
+ 1/ x4 DRAMs in use, two spare DRAMs connected to SP_DQ0-7
+ 2/ x8 DRAMs in use, one spare DRAM connected to SP_DQ0-7
+ For C-DIMMs, this is in a VPD field : Record:VSPD, Keyword:AM
+ For IS-DIMMs, the platform should return 0 indicating
+ no spares for any rank.
+ The top 2 bits are for rank 0 e.g:
+ if (((val AND 0xc0) >> 6) ==
+ ENUM_ATTR_VPD_DIMM_SPARE_LOW_NIBBLE) {...}
+ The next 2 bits are for rank 1 e.g:
+ if (((val AND 0x30) >> 4) ==
+ ENUM_ATTR_VPD_DIMM_SPARE_NO_SPARE) {...}
+ The next 2 bits are for rank 2 e.g:
+ if (((val AND 0x0c) >> 2) ==
+ ENUM_ATTR_VPD_DIMM_SPARE_HIGH_NIBBLE) {...}
+ The bottom 2 bits are for rank 3 e.g:
+ if ((val AND 0x03) ==
+ ENUM_ATTR_VPD_DIMM_SPARE_FULL_BYTE) {...}
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ NO_SPARE = 0x00,
+ LOW_NIBBLE = 0x01,
+ HIGH_NIBBLE = 0x02,
+ FULL_BYTE = 0x03
+ </enum>
+ <platInit/>
+</attribute>
+
</attributes>
OpenPOWER on IntegriCloud