summaryrefslogtreecommitdiffstats
path: root/src/usr/spd/spdDDR3.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/spd/spdDDR3.H')
-rwxr-xr-xsrc/usr/spd/spdDDR3.H125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/usr/spd/spdDDR3.H b/src/usr/spd/spdDDR3.H
new file mode 100755
index 000000000..4b36b40a9
--- /dev/null
+++ b/src/usr/spd/spdDDR3.H
@@ -0,0 +1,125 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/usr/spd/spdDDR3.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2012
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+#ifndef __SPDDDR3_H
+#define __SPDDDR3_H
+
+/**
+ * @file spdDDR3.H
+ *
+ * @brief Provides the enumerations for the DDR 3 fields to read.
+ *
+ */
+
+// ----------------------------------------------
+// Includes
+// ----------------------------------------------
+#include "spd.H"
+
+namespace SPD
+{
+
+/**
+ * @brief Pre-defined lookup table for DDR3 keywords and the
+ * information needed to read that data from the SPD data.
+ */
+KeywordData ddr3Data[] =
+{
+ // ----------------------------------------------------------------------------------
+ // Bit order for each byte is [7:0] as defined by the JEDEC spec (little endian)
+ //
+ // Special cases listed below will be handled out of the normal table lookup
+ // handler code.
+ // ----------------------------------------------------------------------------------
+ // Keyword offset size Use Bitmsk Shift
+ // Bitmsk Number
+ // ----------------------------------------------------------------------------------
+ { CRC_EXCLUDE, 0x00, 0x01, true, 0x80, 0x07, false },
+ { SPD_BYTES_TOTAL, 0x00, 0x01, true, 0x70, 0x04, false },
+ { SPD_BYTES_USED, 0x00, 0x01, true, 0x0F, 0x00, false },
+ { SPD_MAJOR_REVISION, 0x01, 0x01, true, 0xF0, 0x04, false },
+ { SPD_MINOR_REVISION, 0x01, 0x01, true, 0x0F, 0x00, false },
+ { BASIC_MEMORY_TYPE, 0x02, 0x01, false, 0x00, 0x00, false },
+ { MODULE_TYPE, 0x03, 0x01, true, 0x0F, 0x00, false },
+ { BANK_ADDRESS_BITS, 0x04, 0x01, true, 0x70, 0x04, false },
+ { DENSITY, 0x04, 0x01, true, 0x0F, 0x00, false },
+ { ROW_ADDRESS, 0x05, 0x01, true, 0x38, 0x03, false },
+ { COL_ADDRESS, 0x05, 0x01, true, 0x07, 0x00, false },
+ { MODULE_NOMINAL_VOLTAGE, 0x06, 0x01, true, 0x07, 0x00, false },
+ { MODULE_RANKS, 0x07, 0x01, true, 0x38, 0x03, false },
+ { MODULE_DRAM_WIDTH, 0x07, 0x01, true, 0x07, 0x00, false },
+ { ECC_BITS, 0x08, 0x01, true, 0x18, 0x03, false },
+ { MODULE_MEMORY_BUS_WIDTH, 0x08, 0x01, true, 0x07, 0x00, false },
+ { FTB_DIVIDEND, 0x09, 0x01, true, 0xF0, 0x04, false },
+ { FTB_DIVISOR, 0x09, 0x01, true, 0x0F, 0x00, false },
+ { MTB_DIVIDEND, 0x0a, 0x01, false, 0x00, 0x00, false },
+ { MTB_DIVISOR, 0x0b, 0x01, false, 0x00, 0x00, false },
+ { TCK_MIN, 0x0c, 0x01, false, 0x00, 0x00, false },
+ { CAS_LATENCIES_SUPPORTED, 0x0f, 0x02, true, 0x7F, 0x00, true },
+ { MIN_CAS_LATENCY, 0x10, 0x01, false, 0x00, 0x00, false },
+ { TWR_MIN, 0x11, 0x01, false, 0x00, 0x00, false },
+ { TRCD_MIN, 0x12, 0x01, false, 0x00, 0x00, false },
+ { TRRD_MIN, 0x13, 0x01, false, 0x00, 0x00, false },
+ { TRP_MIN, 0x14, 0x01, false, 0x00, 0x00, false },
+ { TRC_MIN, 0x15, 0x02, true, 0xF0, 0x04, true },
+ { TRAS_MIN, 0x15, 0x02, true, 0x0F, 0x00, true },
+ { TRFC_MIN, 0x19, 0x02, false, 0x00, 0x00, true },
+ { TWTR_MIN, 0x1a, 0x01, false, 0x00, 0x00, false },
+ { TRTP_MIN, 0x1b, 0x01, false, 0x00, 0x00, false },
+ { TFAW_MIN, 0x1c, 0x02, true, 0x0F, 0x00, true },
+ { DLL_OFF, 0x1e, 0x01, true, 0x80, 0x07, false },
+ { RZQ_7, 0x1e, 0x01, true, 0x02, 0x01, false },
+ { RZQ_6, 0x1e, 0x01, true, 0x01, 0x00, false },
+ { SDRAM_OPTIONAL_FEATURES, 0x1e, 0x01, false, 0x00, 0x00, false },
+ { PASR, 0x1f, 0x01, true, 0x80, 0x07, false },
+ { ODTS, 0x1f, 0x01, true, 0x08, 0x03, false },
+ { ASR, 0x1f, 0x01, true, 0x04, 0x02, false },
+ { ETR_1X, 0x1f, 0x01, true, 0x02, 0x01, false },
+ { ETR, 0x1f, 0x01, true, 0x01, 0x00, false },
+ { SDRAM_THERMAL_REFRESH_OPTIONS, 0x1f, 0x01, false, 0x00, 0x00, false },
+ { THERMAL_SENSOR_PRESENT, 0x20, 0x01, true, 0x80, 0x07, false },
+ { THERMAL_SENSOR_ACCURACY, 0x20, 0x01, true, 0x7F, 0x00, false },
+ { MODULE_THERMAL_SENSOR, 0x20, 0x01, false, 0x00, 0x00, false },
+ { SDRAM_DEVICE_TYPE_NONSTD, 0x21, 0x01, true, 0x80, 0x07, false },
+ { SDRAM_DEVICE_TYPE, 0x21, 0x01, true, 0x7F, 0x00, false },
+ { TCKMIN_FINE_OFFSET, 0x22, 0x01, false, 0x00, 0x00, false },
+ { TAAMIN_FINE_OFFSET, 0x23, 0x01, false, 0x00, 0x00, false },
+ { TRCDMIN_FINE_OFFSET, 0x24, 0x01, false, 0x00, 0x00, false },
+ { TRPMIN_FINE_OFFSET, 0x25, 0x01, false, 0x00, 0x00, false },
+ { TRPCMIN_FINE_OFFSET, 0x26, 0x01, false, 0x00, 0x00, false },
+ { MODULE_TYPE_SPECIFIC_SECTION, 0x3c, 0x39, false, 0x00, 0x00, false },
+ { MODULE_MANUFACTURER_ID, 0x76, 0x02, false, 0x00, 0x00, true },
+ { MODULE_MANUFACTURING_LOCATION, 0x77, 0x01, false, 0x00, 0x00, false },
+ { MODULE_MANUFACTURING_DATE, 0x78, 0x02, false, 0x00, 0x00, false },
+ { MODULE_SERIAL_NUMBER, 0x7a, 0x04, false, 0x00, 0x00, false },
+ { MODULE_CRC, 0x7e, 0x02, false, 0x00, 0x00, false },
+ { MODULE_PART_NUMBER, 0x80, 0x12, false, 0x00, 0x00, false },
+ { MODULE_REVISION_CODE, 0x92, 0x02, false, 0x00, 0x00, false },
+ { DRAM_MANUFACTURER_ID, 0x94, 0x02, false, 0x00, 0x00, false },
+ { MANUFACTURER_SPECIFIC_DATA, 0x96, 0x1a, false, 0x00, 0x00, false },
+ // ----------------------------------------------------------------------------------
+};
+
+
+}; // end SPD namespace
+
+#endif // __SPDDDR3_H
OpenPOWER on IntegriCloud