ATTR_SPD_DRAM_DEVICE_TYPE TARGET_TYPE_DIMM DRAM Device Type. Located in DDR3/DDR4 SPD byte 2. uint8 DDR3 = 0x0b, DDR4 = 0x0c ATTR_SPD_MODULE_TYPE TARGET_TYPE_DIMM Module Type. Located in DDR3/DDR4 SPD byte 3, bits 3-0. Note that CDIMM designation here is obsolete. See ATTR_SPD_CUSTOM uint8 CDIMM = 0x00, RDIMM = 0x01, UDIMM = 0x02, SO_DIMM=0x03, LRDIMM = 0x0b ATTR_SPD_CUSTOM TARGET_TYPE_DIMM Module Type is CUSTOM Located in DDR3/DDR4 SPD byte 3, bit 7. (Most significant bit) If bit 7 (reserved) is a '1' then this attribute value should be set to YES uint8 NO = 0x0, YES = 0x1 ATTR_SPD_SDRAM_DENSITY TARGET_TYPE_DIMM DRAM Density. Located in DDR3/DDR4 SPD byte 4, bits 3-0. uint8 D256MB = 0x00, D512Mb = 0x01, D1GB = 0x02, D2GB = 0x03, D4GB = 0x04, D8GB = 0x05, D16GB = 0x06, D32GB=0x07 ATTR_SPD_SDRAM_BANKS TARGET_TYPE_DIMM Number of banks. Located in DDR3 SPD byte 4, bits 6-4. Located in DDR4 SPD byte 4, bits 5-4. The raw data has different meanings for DDR3 and DDR4. HWPs must use this DDR neutral enumeration to decode. Platform support must call an Accessor HWP. uint8 B8 = 0x00, B16 = 0x01, B32 = 0x02, B64 = 0x03, B4 = 0x04, UNKNOWN = 0xff ATTR_SPD_SDRAM_ROWS TARGET_TYPE_DIMM Number of Rows. Located in DDR3/DDR4 SPD byte 5, bits 5-3. uint8 R12 = 0x00, R13 = 0x01, R14 = 0x02, R15 = 0x03, R16 = 0x04, R17 = 0x05, R18 = 0x06 ATTR_SPD_SDRAM_COLUMNS TARGET_TYPE_DIMM Number of Columns. Located in DDR3/DDR4 SPD byte 5, bits 2-0. uint8 C9 = 0x00, C10 = 0x01, C11 = 0x02, C12 = 0x03 ATTR_SPD_MODULE_NOMINAL_VOLTAGE TARGET_TYPE_DIMM Nominal voltage (bitmap). Located in DDR3 SPD byte 6, bits 2-0. Located in DDR4 SPD byte 11, bits 5-0. The raw data has different meanings for DDR3 and DDR4. HWPs must use this DDR neutral enumeration to decode. Platform support must call an Accessor HWP. uint8 NOTOP1_5 = 0x01, OP1_35 = 0x02, OP1_2X = 0x04, OP1_2V = 0x08, END1_2V = 0x10 ATTR_SPD_NUM_RANKS TARGET_TYPE_DIMM Number of ranks. Located in DDR3 SPD byte 7, bits 5-3. Located in DDR4 SPD byte 12, bits 5-3. uint8 R1 = 0x00, R2 = 0x01, R3 = 0x02, R4 = 0x03 ATTR_SPD_DRAM_WIDTH TARGET_TYPE_DIMM DRAM Width. Located in DDR3 SPD byte 7, bits 2-0. Located in DDR4 SPD byte 12, bits 2-0. uint8 W4 = 0x00, W8 = 0x01, W16 = 0x02, W32 = 0x03 ATTR_SPD_MODULE_MEMORY_BUS_WIDTH TARGET_TYPE_DIMM Module Memory Bus Width. Located in DDR3 SPD byte 8, bits 4-0 Located in DDR4 SPD byte 13, bits 4-0. Bits 4-3 contain the Bus Width Extension (ECC) Bits 2-0 contain the Primary Bus Width uint8 W8 = 0x00, W16 = 0x01, W32 = 0x02, W64 = 0x03, WE8 = 0x08, WE16 = 0x09, WE32 = 0x0a, WE64 = 0x0b ATTR_SPD_TCKMIN TARGET_TYPE_DIMM Minimum cycle time (tCKmin). Located in DDR3 SPD byte 12. Located in DDR4 SPD byte 18. uint8 ATTR_SPD_CAS_LATENCIES_SUPPORTED TARGET_TYPE_DIMM CAS Latencies supported (bitmap). Located in DDR3 SPD byte 14 (LSB) and byte 15. Located in DDR4 SPD byte 20 (LSB) through byte 23 The raw data has different meanings for DDR3 and DDR4. HWPs must use this DDR neutral enumeration to decode. Platform support must call an Accessor HWP. uint32 CL_24 = 0x00100000, CL_23 = 0x00080000, CL_22 = 0x00040000, CL_21 = 0x00020000, CL_20 = 0x00010000, CL_19 = 0x00008000, CL_18 = 0x00004000, CL_17 = 0x00002000, CL_16 = 0x00001000, CL_15 = 0x00000800, CL_14 = 0x00000400, CL_13 = 0x00000200, CL_12 = 0x00000100, CL_11 = 0x00000080, CL_10 = 0x00000040, CL_9 = 0x00000020, CL_8 = 0x00000010, CL_7 = 0x00000008, CL_6 = 0x00000004, CL_5 = 0x00000002, CL_4 = 0x00000001 ATTR_SPD_TAAMIN TARGET_TYPE_DIMM Minimum CAS Latency Time (tAAmin). Located in DDR3 SPD byte 16. Located in DDR4 SPD byte 24. uint8 ATTR_SPD_TRCDMIN TARGET_TYPE_DIMM Minimum RAS# to CAS# Delay Time (tRCDmin). Located in DDR3 SPD byte 18. Located in DDR4 SPD byte 25. uint8 ATTR_SPD_TRPMIN TARGET_TYPE_DIMM Minimum Row Precharge Delay Time (tRPmin). Located in DDR3 SPD byte 20. Located in DDR4 SPD byte 26. uint8 ATTR_SPD_TRASMIN TARGET_TYPE_DIMM Minimum Active to Precharge Delay Time (tRASmin). Located in DDR3 SPD byte 21, bits 3-0 and byte 22 (LSB). Located in DDR4 SPD byte 27, bits 3-0 and byte 28 (LSB) uint32 ATTR_SPD_TRCMIN TARGET_TYPE_DIMM Minimum Active to Active/Refresh Delay Time (tRCmin). Located in DDR3 SPD byte 21, bits 7-4 and byte 23 (LSB). Located in DDR4 SPD byte 27, bits 7-4 and byte 29 (LSB) uint32 ATTR_SPD_TFAWMIN TARGET_TYPE_DIMM Minimum Four Activate Window Delay Time (tFAWmin). Located in DDR3 SPD byte 28, bits 3-0 and byte 29 (LSB). Located in DDR4 SPD byte 36, bits 3-0 and byte 37 (LSB). uint32 ATTR_SPD_SDRAM_OPTIONAL_FEATURES TARGET_TYPE_DIMM SDRAM Optional Features (bitmap). Located in DDR3 SPD byte 30. Located in DDR4 SPD byte 7, will be reserved and set to 0x0. uint8 DLL_OFF = 0x80, RZQ7 = 0x02, RZQ6 = 0x01 ATTR_SPD_SDRAM_THERMAL_AND_REFRESH_OPTIONS TARGET_TYPE_DIMM SDRAM Thermal and Refresh Options (bitmap). Located in DDR3 SPD byte 31. Located in DDR4 SPD byte 8, will be reserved and set to 0x0. uint8 PASR = 0x80, ODTS = 0x08, ASR = 0x05, ETRR = 0x02, ETR = 0x01 ATTR_SPD_MODULE_THERMAL_SENSOR TARGET_TYPE_DIMM Module Thermal Sensor. Located in DDR3 SPD byte 32. Located in DDR4 SPD byte 14. uint8 PRESENT = 0x80, ACCURACY_MASK = 0x7F ATTR_SPD_SDRAM_DEVICE_TYPE TARGET_TYPE_DIMM SDRAM Device Type. Located in DDR3 SPD byte 33, bit 7. Located in DDR4 SPD byte 6, bit 7. uint8 STANDARD_MONOLITHIC = 0x00, NON_STANDARD = 0x01 ATTR_SPD_SDRAM_DEVICE_TYPE_SIGNAL_LOADING TARGET_TYPE_DIMM SDRAM Device Type Signal Loading for stacked DRAMs. Located in DDR3 SPD byte 33, bits 1-0. Located in DDR4 SPD byte 6, bit 1-0. uint8 NOT_SPECIFIED = 0x00, MULTI_LOAD_STACK = 0x01, SINGLE_LOAD_STACK = 0x02 ATTR_SPD_SDRAM_DIE_COUNT TARGET_TYPE_DIMM SDRAM Device Type Die Count. Located in DDR3 SPD byte 33, bits 6-4. Located in DDR4 SPD byte 6, bit 6-4. uint8 DIE1 = 0x00, DIE2 = 0x01, DIE4 = 0x02, DIE8 = 0x03 ATTR_SPD_FINE_OFFSET_TCKMIN TARGET_TYPE_DIMM Fine Offset for SDRAM Minimum Cycle Time (tCKmin). Located in DDR3 SPD byte 34. Located in DDR4 SPD byte 125. uint8 ATTR_SPD_FINE_OFFSET_TAAMIN TARGET_TYPE_DIMM Fine Offset for Minimum CAS Latency Time (tAAmin). Located in DDR3 SPD byte 35. Located in DDR4 SPD byte 123. uint8 ATTR_SPD_FINE_OFFSET_TRCDMIN TARGET_TYPE_DIMM Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin). Located in DDR3 SPD byte 36. Located in DDR4 SPD byte 122. uint8 ATTR_SPD_FINE_OFFSET_TRPMIN TARGET_TYPE_DIMM Fine Offset for Minimum Row Precharge Delay Time (tRPmin). Located in DDR3 SPD byte 37. Located in DDR4 SPD byte 121. uint8 ATTR_SPD_FINE_OFFSET_TRCMIN TARGET_TYPE_DIMM Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin). Located in DDR3 SPD byte 38. Located in DDR4 SPD byte 120. uint8 ATTR_SPD_NUM_OF_REGISTERS_USED_ON_RDIMM TARGET_TYPE_DIMM Number of Registers used on RDIMM. Located in DDR3 SPD byte 63 bits 1-0. uint8 ATTR_SPD_MODULE_SPECIFIC_SECTION TARGET_TYPE_DIMM Module Specific Section. Located in DDR3 SPD bytes 60d - 116d. Located in DDR4 SPD bytes 128 - 255d. uint8 57 ATTR_SPD_MODULE_ID_MODULE_MANUFACTURERS_JEDEC_ID_CODE TARGET_TYPE_DIMM Module ID: Module Manufacturer's JEDEC ID Code. Located in DDR3 SPD bytes 117 (LSB) to 118. Located in DDR4 SPD bytes 320 (LSB) to 321. uint32 ATTR_SPD_MODULE_ID_MODULE_MANUFACTURING_LOCATION TARGET_TYPE_DIMM Module ID: Module Manufacturing Location. Located in DDR3 SPD byte 119. Located in DDR4 SPD byte 322. uint8 ATTR_SPD_MODULE_ID_MODULE_MANUFACTURING_DATE TARGET_TYPE_DIMM Module ID: Module Manufacturing Date. Located in DDR3 SPD bytes 120 (BCD year) to byte 121 (BCD week) (LSB). Located in DDR4 SPD bytes 323 (BCD year) to byte 324 (BCD week) (LSB). uint32 ATTR_SPD_MODULE_ID_MODULE_SERIAL_NUMBER TARGET_TYPE_DIMM Module ID: Module Serial Number. Located in DDR3 SPD bytes 122 (LSB) to 125. Located in DDR4 SPD bytes 325 (LSB) to 328. uint32 ATTR_SPD_CYCLICAL_REDUNDANCY_CODE TARGET_TYPE_DIMM Cyclical Redundancy Code. Located in DDR3 SPD bytes 126 (LSB) to 127. uint32 ATTR_SPD_MODULE_PART_NUMBER TARGET_TYPE_DIMM Module Part Number. Located in DDR3 SPD bytes 128 - 145. Located in DDR4 SPD bytes 329 - 348. uint8 18 ATTR_SPD_MODULE_REVISION_CODE TARGET_TYPE_DIMM Module Revision Code. Located in DDR3 SPD bytes 146 (LSB) to 147. Located in DDR4 SPD byte 349 The raw data has a different size for DDR3 and DDR4. HWPs must use this DDR neutral attribute. Platform support must call an Accessor HWP. uint32 ATTR_SPD_DRAM_MANUFACTURER_JEDEC_ID_CODE TARGET_TYPE_DIMM DRAM Manufacturer JEDEC ID Code. Located in DDR3 SPD bytes 148 (LSB) to 149. Located in DDR4 SPD bytes 350 (LSB) to 351. uint32 ATTR_SPD_BAD_DQ_DATA TARGET_TYPE_DIMM Bad DQ pin data stored in DIMM SPD. This data is in a special fomat. This must only be called by a firmware HWP that knows how to decode the data. HWP/PLAT firmware that needs to get/set the Bad DQ Bitmap from a Centaur DQ point of view must use the ATTR_BAD_DQ_BITMAP attribute. uint8 80 ATTR_SPD_FTB_DIVIDEND TARGET_TYPE_DIMM Fine Timebase Dividend. Located in DDR3 SPD byte 9, bits 7-4. uint8 ATTR_SPD_FTB_DIVISOR TARGET_TYPE_DIMM Fine Timebase Divisor. Located in DDR3 SPD byte 9, bits 3-0. uint8 ATTR_SPD_MTB_DIVIDEND TARGET_TYPE_DIMM Medium Timebase Dividend. Located in DDR3 SPD byte 10. uint8 ATTR_SPD_MTB_DIVISOR TARGET_TYPE_DIMM Medium Timebase Divisor. Located in DDR3 SPD byte 11. uint8 ATTR_SPD_TWRMIN TARGET_TYPE_DIMM Minimum Write Recovery Time (tWRmin). Located in DDR3 SPD byte 17. uint8 ATTR_SPD_TRRDMIN TARGET_TYPE_DIMM Minimum Row Active to Row Active Delay Time (tRRDmin). Located in DDR3 SPD byte 19. uint8 ATTR_SPD_TRFCMIN TARGET_TYPE_DIMM Minimum Refresh Recovery Delay Time (tRFCmin). Located in DDR3 SPD byte 24 (LSB) and byte 25. uint32 ATTR_SPD_TWTRMIN TARGET_TYPE_DIMM Minimum Internal Write to Read Command Delay Time (tWTRmin). Located in DDR3 SPD byte 26. uint8 ATTR_SPD_TRTPMIN TARGET_TYPE_DIMM Minimum Internal Read to Precharge Command Delay Time (tRTPmin). Located in DDR3 SPD byte 27. uint8 ATTR_SPD_LR_ADDR_MIRRORING TARGET_TYPE_DIMM Load Reduced address mirroring attribute. Located in DDR3 SPD byte 63 bits 1-0. uint8 NO_RANKS = 0x00, ODD_RANKS = 0x01 ATTR_SPD_LR_F0RC3_F0RC2 TARGET_TYPE_DIMM Load Reduced F0RC3/F0RC2. Timing control AND Drive strength, Address/Command AND QxCS_n Located in DDR3 SPD byte 67. uint8 ATTR_SPD_LR_F0RC5_F0RC4 TARGET_TYPE_DIMM Load Reduced F0RC5/F0RC4. Drive strength, QxODT AND QxCKE and Clock. Located in DDR3 SPD byte 68. uint8 ATTR_SPD_LR_F1RC11_F1RC8 TARGET_TYPE_DIMM Load Reduced F1RC11/F1RC8. Extended delay for clocks, QxCS_n and QxODT AND QxCKE. Located in DDR3 SPD byte 69. uint8 ATTR_SPD_LR_F1RC13_F1RC12 TARGET_TYPE_DIMM Load Reduced F1RC13/F1RC12. Additive delay for QxCS_n and QxCA. Located in DDR3 SPD byte 70. uint8 ATTR_SPD_LR_F1RC15_F1RC14 TARGET_TYPE_DIMM Load Reduced F1RC15/F1RC14. Additive delay for QxODT and QxCKE. Located in DDR3 SPD byte 71. uint8 ATTR_SPD_LR_F3RC9_F3RC8_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced F3RC9/F3RC8 for 800 AND 1066. DRAM interface MDQ Termination and Drive strength. Located in DDR3 SPD byte 72. uint8 ATTR_SPD_LR_F34RC11_F34RC10_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced F[3,4]RC11/F[3,4]RC10 for 800 AND 1066. Rank 0AND1 Read and Write QxODT control. Located in DDR3 SPD byte 73. uint8 ATTR_SPD_LR_F56RC11_F56RC10_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced F[5,6]RC11/F[5,6]RC10 for 800 AND 1066. Rank 2AND3 Read and Write QxODT control. Located in DDR3 SPD byte 74. uint8 ATTR_SPD_LR_F78RC11_F78RC10_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced F[7,8]RC11/F[7,8]RC10 for 800 AND 1066. Rank 4AND5 Read and Write QxODT control. Located in DDR3 SPD byte 75. uint8 ATTR_SPD_LR_F910RC11_F910RC10_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced F[9,10]RC11/F[9,10]RC10 for 800 AND 1066. Rank 6AND7 Read and Write QxODT control. Located in DDR3 SPD byte 76. uint8 ATTR_SPD_LR_MR12_FOR_800_1066 TARGET_TYPE_DIMM Load Reduced MR1,2 registers for 800 AND 1066. DRAM Rtt_WR for all ranks, DRAM Rtt_Nom for ranks 0 and 1, DRAM driver impedance for all ranks. Located in DDR3 SPD byte 77. uint8 ATTR_SPD_LR_F3RC9_F3RC8_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced F3RC9/F3RC8 for 1333 AND 1600. DRAM interface MDQ Termination and Drive strength. Located in DDR3 SPD byte 78. uint8 ATTR_SPD_LR_F34RC11_F34RC10_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced F[3,4]RC11/F[3,4]RC10 for 1333 AND 1600. Rank 0AND1 Read and Write QxODT control. Located in DDR3 SPD byte 79. uint8 ATTR_SPD_LR_F56RC11_F56RC10_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced F[5,6]RC11/F[5,6]RC10 for 1333 AND 1600. Rank 2AND3 Read and Write QxODT control. Located in DDR3 SPD byte 80. uint8 ATTR_SPD_LR_F78RC11_F78RC10_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced F[7,8]RC11/F[7,8]RC10 for 1333 AND 1600. Rank 4AND5 Read and Write QxODT control. Located in DDR3 SPD byte 81. uint8 ATTR_SPD_LR_F910RC11_F910RC10_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced F[9,10]RC11/F[9,10]RC10 for 1333 AND 1600. Rank 6AND7 Read and Write QxODT control. Located in DDR3 SPD byte 82. uint8 ATTR_SPD_LR_MR12_FOR_1333_1600 TARGET_TYPE_DIMM Load Reduced MR1,2 registers for 1333 AND 1600. DRAM Rtt_WR for all ranks, DRAM Rtt_Nom for ranks 0 and 1, DRAM driver impedance for all ranks. Located in DDR3 SPD byte 83. uint8 ATTR_SPD_LR_F3RC9_F3RC8_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced F3RC9/F3RC8 for 1866 AND 2133. DRAM interface MDQ Termination and Drive strength. Located in DDR3 SPD byte 84. uint8 ATTR_SPD_LR_F34RC11_F34RC10_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced F[3,4]RC11/F[3,4]RC10 for 1866 AND 2133. Rank 0AND1 Read and Write QxODT control. Located in DDR3 SPD byte 85. uint8 ATTR_SPD_LR_F56RC11_F56RC10_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced F[5,6]RC11/F[5,6]RC10 for 1866 AND 2133. Rank 2AND3 Read and Write QxODT control. Located in DDR3 SPD byte 86. uint8 ATTR_SPD_LR_F78RC11_F78RC10_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced F[7,8]RC11/F[7,8]RC10 for 1866 AND 2133. Rank 4AND5 Read and Write QxODT control. Located in DDR3 SPD byte 87. uint8 ATTR_SPD_LR_F910RC11_F910RC10_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced F[9,10]RC11/F[9,10]RC10 for 1866 AND 2133. Rank 6AND7 Read and Write QxODT control. Located in DDR3 SPD byte 88. uint8 ATTR_SPD_LR_MR12_FOR_1866_2133 TARGET_TYPE_DIMM Load Reduced MR1,2 registers for 1866 AND 2133. DRAM Rtt_WR for all ranks, DRAM Rtt_Nom for ranks 0 and 1, DRAM driver impedance for all ranks. Located in DDR3 SPD byte 89. uint8 ATTR_SPD_SDRAM_BANKGROUPS_DDR4 TARGET_TYPE_DIMM Number of bank groups. Located in DDR4 SPD byte 4, bits 7-6. uint8 BG0 = 0x00, BG2 = 0x01, BG4 = 0x02 ATTR_SPD_TIMEBASE_MTB_DDR4 TARGET_TYPE_DIMM defines a value in picoseconds that represents the fundamental timebase for medium grain timing calculations. This value is used as a multiplier for formulating subsequent timing parameters. Located in DDR4 SPD byte 17, bits 3-2. uint8 PS125 = 0x00 ATTR_SPD_TIMEBASE_FTB_DDR4 TARGET_TYPE_DIMM defines a value in picoseconds that represents the fundamental timebase for fine grain timing calculations. This value is used as a multiplier for formulating subsequent timing parameters. Located in DDR4 SPD byte 17, bits 1-0. uint8 PS1 = 0x00 ATTR_SPD_TCKMAX_DDR4 TARGET_TYPE_DIMM Maximum cycle time (tCKmax). Located in DDR4 SPD byte 19. uint8 ATTR_SPD_TRFC1MIN_DDR4 TARGET_TYPE_DIMM Minimum SDRAM Refresh Recovery Time Delay in medium timebase (MTB) units Located in DDR4 SPD bytes 30(MSB) and 31(LSB). uint32 ATTR_SPD_TRFC2MIN_DDR4 TARGET_TYPE_DIMM Minimum SDRAM Refresh Recovery Time Delay in medium timebase (MTB) units Located in DDR4 SPD bytes 32(MSB) and 33(LSB). uint32 ATTR_SPD_TRFC4MIN_DDR4 TARGET_TYPE_DIMM Minimum SDRAM Refresh Recovery Time Dealy in medium timebase (MTB) units. Located in DDR4 SPD byte 34(LSB) bits 15-8 and SPD byte 35(MSB) 7-0. uint32 ATTR_SPD_TRRDSMIN_DDR4 TARGET_TYPE_DIMM The minimum SDRAM Activate to Activate Delay Time to different bank groups in medium timebase (MTB) units. Controller designers must also note that at some frequencies, a minimum number of clocks may be required resulting in a larger tRRD_Smin value than indicated in the SPD. For example, tRRD_Smin for DDR4-1600 must be 4 clocks. Located in DDR4 SPD byte 38 uint8 ATTR_SPD_TRRDLMIN_DDR4 TARGET_TYPE_DIMM The minimum SDRAM Activate to Activate Delay Time to same bank groups in medium timebase (MTB) units. Controller designers must also note that at some frequencies, a minimum number of clocks may be required resulting in a larger tRRD_Smin value than indicated in the SPD. For example, tRRD_Lmin for DDR4-1600 must be 4 clocks. Located in DDR4 SPD byte 39 uint8 ATTR_SPD_TCCDLMIN_DDR4 TARGET_TYPE_DIMM The minimum SDRAM CAS to CAS Delay Time to same bank groups in medium timebase (MTB) units. Controller designers must also note that at some frequencies, a minimum number of clocks may be required resulting in a larger tCCD_Lmin value than indicated in the SPD. For example, tCCD_Lmin for DDR4-2133 must be 6 clocks. Located in DDR4 SPD byte 40 uint8 ATTR_SPD_FINE_OFFSET_TCCDLMIN_DDR4 TARGET_TYPE_DIMM Modifies the calculation of SPD Byte 40 with a fine correction using FTB units. The value of tCCD_Lmin comes from the SDRAM data sheet. This value is a two.s complement multiplier for FTB units, ranging from +127 to -128. Located in DDR4 SPD byte 117 uint8 ATTR_SPD_FINE_OFFSET_TRRDLMIN_DDR4 TARGET_TYPE_DIMM Modifies the calculation of SPD Byte 39 with a fine correction using FTB units. The value of tRRD_Lmin comes from the SDRAM data sheet. This value is a two.s complement multiplier for FTB units, ranging from +127 to -128. Located in DDR4 SPD byte 118 uint8 ATTR_SPD_FINE_OFFSET_TRRDSMIN_DDR4 TARGET_TYPE_DIMM Modifies the calculation of SPD Byte 38 (MTB units) with a fine correction using FTB units. The value of tRRD_Smin comes from the SDRAM data sheet. This value is a two.s complement multiplier for FTB units, ranging from +127 to -128. Located in DDR4 SPD byte 119 uint8 ATTR_SPD_FINE_OFFSET_TCKMAX_DDR4 TARGET_TYPE_DIMM Fine Offset for SDRAM Minimum Cycle Time (tCKAVGmax). Located in DDR4 SPD byte 124. uint8 ATTR_SPD_CRC_BASE_CONFIG_DDR4 TARGET_TYPE_DIMM contains the calculated CRC for bytes 0~125 (0x000~0x07D) in the SPD Located in DDR4 SPD byte 126(LSB) and 127(MSB). uint32 ATTR_SPD_DRAM_STEPPING_DDR4 TARGET_TYPE_DIMM Defines the vendor die revision level (often called the .stepping.) of the DRAMs on the module. This byte is optional. For modules without DRAM stepping information, this byte should be programmed to 0xFF. Located in DDR4 SPD byte 352 uint8 ATTR_SPD_CRC_MNFG_SEC_DDR4 TARGET_TYPE_DIMM contains the calculated CRC for bytes 320~381 (0x140~0x17D) in the SPD Located in DDR4 SPD byte 382(LSB) and 383(MSB). uint32 ATTR_VPD_VERSION TARGET_TYPE_DIMM The VPD Version of this DIMM. The version number can be an indication of when different DIMM keywords are valid and is loaded from the platform. A version number of zero is unknown. uint32 ATTR_SPD_SDRAM_BANKS_DDR3 TARGET_TYPE_DIMM Number of banks. Located in DDR3 SPD byte 4, bits 6-4. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_SDRAM_BANKS. uint8 B8 = 0x00, B16 = 0x01, B32 = 0x02, B64 = 0x03 ATTR_SPD_MODULE_NOMINAL_VOLTAGE_DDR3 TARGET_TYPE_DIMM Nominal voltage (bitmap). Located in DDR3 SPD byte 6, bits 2-0. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_MODULE_NOMINAL_VOLTAGE. uint8 NOTOP1_5 = 0x01, OP1_35 = 0x02, OP1_2X = 0x04 ATTR_SPD_CAS_LATENCIES_SUPPORTED_DDR3 TARGET_TYPE_DIMM CAS Latencies supported (bitmap). Located in DDR3 SPD byte 14 (LSB) and byte 15. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_CAS_LATENCIES_SUPPORTED. uint32 CL_18 = 0x00004000, CL_17 = 0x00002000, CL_16 = 0x00001000, CL_15 = 0x00000800, CL_14 = 0x00000400, CL_13 = 0x00000200, CL_12 = 0x00000100, CL_11 = 0x00000080, CL_10 = 0x00000040, CL_9 = 0x00000020, CL_8 = 0x00000010, CL_7 = 0x00000008, CL_6 = 0x00000004, CL_5 = 0x00000002, CL_4 = 0x00000001 ATTR_SPD_MODULE_REVISION_CODE_DDR3 TARGET_TYPE_DIMM Module Revision Code. Located in DDR3 SPD bytes 146 (LSB) to 147. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_MODULE_REVISION_CODE. uint32 ATTR_SPD_SDRAM_BANKS_DDR4 TARGET_TYPE_DIMM Number of banks. Located in DDR4 SPD byte 4, bits 5-4. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_SDRAM_BANKS. uint8 B4 = 0x00, B8 = 0x01 ATTR_SPD_MODULE_NOMINAL_VOLTAGE_DDR4 TARGET_TYPE_DIMM Nominal voltage (bitmap). Located in DDR4 SPD byte 11, bits 5-0. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_MODULE_NOMINAL_VOLTAGE. uint8 OP1_2V = 0x01, END1_2V = 0x02, OPTBD1V = 0x04, ENDTBD1V = 0x08, OPTBD2V = 0x10, ENDTBD2V = 0x20 ATTR_SPD_CAS_LATENCIES_SUPPORTED_DDR4 TARGET_TYPE_DIMM CAS Latencies supported (bitmap). Located in DDR4 SPD byte 20 (LSB) through byte 23. This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_CAS_LATENCIES_SUPPORTED. uint32 CL_24 = 0x00020000, CL_23 = 0x00010000, CL_22 = 0x00008000, CL_21 = 0x00004000, CL_20 = 0x00002000, CL_19 = 0x00001000, CL_18 = 0x00000800, CL_17 = 0x00000400, CL_16 = 0x00000200, CL_15 = 0x00000100, CL_14 = 0x00000080, CL_13 = 0x00000040, CL_12 = 0x00000020, CL_11 = 0x00000010, CL_10 = 0x00000008, CL_9 = 0x00000004, CL_8 = 0x00000002, CL_7 = 0x00000001 ATTR_SPD_MODULE_REVISION_CODE_DDR4 TARGET_TYPE_DIMM Module Revision Code. Located in DDR4 SPD byte 349 This attribute must only be used by an Accessor HWP. Regular HWPs must use ATTR_SPD_MODULE_REVISION_CODE. uint8 ATTR_VPD_DRAM_ADDRESS_MIRRORING TARGET_TYPE_MBA_CHIPLET The C-DIMM ranks that have address mirroring. This data is in the Record:VSPD, Keyword:AM field in C-DIMM VPD. This attribute is only valid for C-DIMMs, an error should be returned if queried from IS-DIMMs. Note: Muliple ranks can be mirrored. uint8 RANK0_MIRRORED = 0x08, RANK1_MIRRORED = 0x04, RANK2_MIRRORED = 0x02, RANK3_MIRRORED = 0x01 2 2 ATTR_VPD_ODT_RD TARGET_TYPE_MBA_CHIPLET Read ODT. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT),mss_eff_cnfg_termination consumer: various.C files and initfiles firmware notes: none uint8 2 2 4 ATTR_VPD_ODT_WR TARGET_TYPE_MBA_CHIPLET Write ODT. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. Creator: VPD(MT)/ mss_eff_cnfg_termination consumer: various.C and initfile firmware notes: none uint8 2 2 4 ATTR_VPD_DRAM_RON TARGET_TYPE_MBA_CHIPLET DRAM Ron. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. OHM48 is for DDR4. creator: VPD(MT)/mss_eff_cnfg_termination consumer: various.C files (no initfile) firmware notes: none This Attribute is to be interpreted as an Integer uint8 INVALID = 0, OHM34 = 34, OHM40 = 40, OHM48 = 48 2 2 ATTR_VPD_DRAM_RTT_NOM TARGET_TYPE_MBA_CHIPLET DRAM Rtt_Nom. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT),mss_eff_cnfg_termination consumer: various.C files (no initfiles) firmware notes: none This Attribute is to be interpreted as an Integer uint8 DISABLE = 0, OHM20 = 20, OHM30 = 30, OHM34 = 34, OHM40 = 40, OHM48 = 48, OHM60 = 60, OHM80 = 80, OHM120 = 120, OHM240 = 240 2 2 4 ATTR_VPD_DRAM_RTT_WR TARGET_TYPE_MBA_CHIPLET DRAM Rtt_WR. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. Creator: VPD(MT), mss_eff_cnfg_termination consumer: various.C files (no initfiles) firmware notes: none This Attribute is to be interpreted as an Integer uint8 DISABLE = 0, OHM60 = 60, OHM120 = 120, OHM240 = 240, HIGHZ = 1 2 2 4 ATTR_VPD_DRAM_WR_VREF TARGET_TYPE_MBA_CHIPLET DRAM Write Vref. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT) or mss_eff_cnfg_termination consumer: various.C and initfile firmware notes: none This is the nominal value This is for DDR3 This Attribute is to be interpreted as an Integer uint32 VDD420 = 420, VDD425 = 425, VDD430 = 430, VDD435 = 435, VDD440 = 440, VDD445 = 445, VDD450 = 450, VDD455 = 455, VDD460 = 460, VDD465 = 465, VDD470 = 470, VDD475 = 475, VDD480 = 480, VDD485 = 485, VDD490 = 490, VDD495 = 495, VDD500 = 500, VDD505 = 505, VDD510 = 510, VDD515 = 515, VDD520 = 520, VDD525 = 525, VDD530 = 530, VDD535 = 535, VDD540 = 540, VDD545 = 545, VDD550 = 550, VDD555 = 555, VDD560 = 560, VDD565 = 565, VDD570 = 570, VDD575 = 575 2 ATTR_VPD_DRAM_WRDDR4_VREF TARGET_TYPE_MBA_CHIPLET DRAM Write Vref. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT) or mss_eff_cnfg_termination consumer: various firmware notes: none This is the nominal value This is for DDR4 The value is from 0 to 50 uint8 2 ATTR_VPD_CEN_DRV_IMP_DQ_DQS TARGET_TYPE_MBA_CHIPLET Centaur DQ and DQS Drive Impedance Used in various locations and comes from the MT Keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT)/mss_eff_cnfg_termination consumer: initfile,various.C files firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM24_FFE0 = 0x0A, OHM30_FFE0 = 0x08, OHM30_FFE480 = 0x48, OHM30_FFE240 = 0x38, OHM30_FFE160 = 0x28, OHM30_FFE120 = 0x18, OHM34_FFE0 = 0x07, OHM34_FFE480 = 0x47, OHM34_FFE240 = 0x37, OHM34_FFE160 = 0x27, OHM34_FFE120 = 0x17, OHM40_FFE0 = 0x06, OHM40_FFE480 = 0x46, OHM40_FFE240 = 0x36, OHM40_FFE160 = 0x26, OHM40_FFE120 = 0x16 2 ATTR_VPD_CEN_DRV_IMP_ADDR TARGET_TYPE_MBA_CHIPLET Centaur Address Drive Impedance Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: mss_eff_cnfg_termination consumer: initfile and various.C firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM15 = 15, OHM20 = 20, OHM30 = 30, OHM40 = 40 2 ATTR_VPD_CEN_DRV_IMP_CNTL TARGET_TYPE_MBA_CHIPLET Centaur Control Drive Impedance Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT)/mss_eff_cnfg_termination consumer: initfile,various .C firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM15 = 15, OHM20 = 20, OHM30 = 30, OHM40 = 40 2 ATTR_VPD_CEN_DRV_IMP_CLK TARGET_TYPE_MBA_CHIPLET Centaur Clock Drive Impedance Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT),mss_eff_cnfg_termination consumer: initfiles,various firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM15 = 15, OHM20 = 20, OHM30 = 30, OHM40 = 40 2 ATTR_VPD_CEN_DRV_IMP_SPCKE TARGET_TYPE_MBA_CHIPLET Centaur Spare Clock Drive Impedance Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT) , mss_eff_cnfg_termination consumer: initfiles, various.C firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM15 = 15, OHM20 = 20, OHM30 = 30, OHM40 = 40 2 ATTR_VPD_CEN_RCV_IMP_DQ_DQS TARGET_TYPE_MBA_CHIPLET Centaur DQ and DQS Receiver Impedance Used in various locations and it comes from the VPD MT keyword for custom DIMMs or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD, mss_eff_cnfg_termination Consumer: initfile + C code firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint8 OHM15 = 15, OHM20 = 20, OHM30 = 30, OHM40 = 40, OHM48 = 48, OHM60 = 60, OHM80 = 80, OHM120 = 120, OHM160 = 160, OHM240 = 240 2 ATTR_VPD_CEN_SLEW_RATE_DQ_DQS TARGET_TYPE_MBA_CHIPLET Centaur DQ and DQS Slew Rate Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Slowest slew rate is 0, incrementing by one. The lower the number the slower the slew rate the higher the faster. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT), mss_eff_cnfg_termination consumer: initfiles,various.C firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer except MAX uint8 SLEW_3V_NS = 3, SLEW_4V_NS = 4, SLEW_5V_NS = 5, SLEW_6V_NS = 6, SLEW_MAXV_NS = 7 2 ATTR_VPD_CEN_SLEW_RATE_ADDR TARGET_TYPE_MBA_CHIPLET Centaur Address Slew Rate Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Slowest slew rate is 0, incrementing by one. The lower the number the slower the slew rate the higher the faster. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT),mss_eff_cnfg_termination consumer: initfile,various .C files firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer except Max uint8 SLEW_3V_NS = 3, SLEW_4V_NS = 4, SLEW_5V_NS = 5, SLEW_6V_NS = 6, SLEW_MAXV_NS = 7 2 ATTR_VPD_CEN_SLEW_RATE_CLK TARGET_TYPE_MBA_CHIPLET Centaur Clock Slew Rate Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Slowest slew rate is 0, incrementing by one. The lower the number the slower the slew rate the higher the faster. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT)mss_eff_cnfg_termination consumer: initfile,various.C files firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer except max uint8 SLEW_3V_NS = 3, SLEW_4V_NS = 4, SLEW_5V_NS = 5, SLEW_6V_NS = 6, SLEW_MAXV_NS = 7 2 ATTR_VPD_CEN_SLEW_RATE_SPCKE TARGET_TYPE_MBA_CHIPLET Centaur Spare Clock Slew Rate Used in various locations and comes from the MT keyword or is computed in mss_eff_cnfg_termination. Slowest slew rate is 0, incrementing by one. The lower the number the slower the slew rate the higher the faster. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT) or mss_eff_cnfg_termination consumer: initfile,various.C firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer except max uint8 SLEW_3V_NS = 3, SLEW_4V_NS = 4, SLEW_5V_NS = 5, SLEW_6V_NS = 6, SLEW_MAXV_NS = 7 2 ATTR_VPD_CEN_SLEW_RATE_CNTL TARGET_TYPE_MBA_CHIPLET Centaur Control Slew Rate Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Slowest slew rate is 0, incrementing by one. The lower the number the slower the slew rate the higher the faster. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. creator: VPD(MT),mss_eff_cnfg_termination consumer:initfile, various .C files firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer except for max uint8 SLEW_3V_NS = 3, SLEW_4V_NS = 4, SLEW_5V_NS = 5, SLEW_6V_NS = 6, SLEW_MAXV_NS = 7 2 ATTR_VPD_CEN_RD_VREF TARGET_TYPE_MBA_CHIPLET Centaur Read Vref. Used in various locations and comes from the MT keyword of the VPD or is computed in mss_eff_cnfg_termination. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg. Creator: VPD(MT) or mss_eff_cnfg_termination consumer: various.C and initfiles firmware notes: none This is the nominal value This Attribute is to be interpreted as an Integer uint32 VDD40375 = 40375, VDD41750 = 41750, VDD43125 = 43125, VDD44500 = 44500, VDD45875 = 45875, VDD47250 = 47250, VDD48625 = 48625, VDD50000 = 50000, VDD51375 = 51375, VDD52750 = 52750, VDD54125 = 54125, VDD55500 = 55500, VDD56875 = 56875, VDD58250 = 58250, VDD59625 = 59625, VDD61000 = 61000, VDD60375 = 60375, VDD61750 = 61750, VDD63125 = 63125, VDD64500 = 64500, VDD65875 = 65875, VDD67250 = 67250, VDD68625 = 68625, VDD70000 = 70000, VDD71375 = 71375, VDD72750 = 72750, VDD74125 = 74125, VDD75500 = 75500, VDD76875 = 76875, VDD78250 = 78250, VDD79625 = 79625, VDD81000 = 81000 2 ATTR_VPD_CEN_PHASE_ROT_M0_CLK_P0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CLK_P0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CLK_P1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CLK_P1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CLK_P0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CLK_P0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CLK_P1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CLK_P1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A3 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A3 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A4 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A4 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A5 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A5 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A6 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A6 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A7 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A7 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A8 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A8 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A9 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A9 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A10 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A10 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A11 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A11 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A12 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A12 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A13 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A13 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A14 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A14 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_A15 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_A15 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_BA0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_BA0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_BA1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_BA1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_BA2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_BA2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_CASN TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_CASN uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_RASN TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_RASN uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_CMD_WEN TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_CMD_WEN uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_PAR TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_PAR uint8 2 ATTR_VPD_CEN_PHASE_ROT_M_ACTN TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M_ACTN uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CKE0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CKE0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CKE1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CKE1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CKE2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CKE2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CKE3 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CKE3 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CSN0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CSN0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CSN1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CSN1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CSN2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CSN2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_CSN3 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_CSN3 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_ODT0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_ODT0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M0_CNTL_ODT1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M0_CNTL_ODT1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CKE0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CKE0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CKE1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CKE1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CKE2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CKE2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CKE3 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CKE3 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CSN0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CSN0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CSN1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CSN1 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CSN2 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CSN2 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_CSN3 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_CSN3 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_ODT0 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_ODT0 uint8 2 ATTR_VPD_CEN_PHASE_ROT_M1_CNTL_ODT1 TARGET_TYPE_MBA_CHIPLET Phase rotator value that comes from MR keyword on the CDIMM VPD. This controls the IO M1_CNTL_ODT1 uint8 2 ATTR_VPD_CKE_PRI_MAP TARGET_TYPE_MBA_CHIPLET This value comes from the VPD keyword MT bytes 54 and 55 MT(54:55) for the Logical DIMM associated with port A. Bytes 118:119 for port B, 182:183 for port C and 246:247 for port D. In the end, the AB and CD portions form a 32 bit word for each mba to write into the corresponding ddrphy register uint32 2 ATTR_VPD_CKE_PWR_MAP TARGET_TYPE_MBA_CHIPLET This value comes from the VPD keyword MT bytes 56 to 59 MT(56:59) for the Logical DIMM associated with port A. Bytes 120:123 for port B, 184:187 for port C and 248:251 for port D. The values for Port A concatenated with port B forms the value for one MBA. C concat D forms the value for the other MBA uint64 ATTR_VPD_GPO TARGET_TYPE_MBA_CHIPLET This value comes from the VPD keyword MT bytes 61 MT(61) for the Logical DIMM associated with port A. Bytes 125 for port B, 189 for port C and 253 for port D uint8 2 ATTR_VPD_RLO TARGET_TYPE_MBA_CHIPLET This value comes from the VPD keyword MT byte 60 bits 4:7 for the Logical DIMM associated with port A. Byte 124 bits 4:7 for port B, 188 bits 4:7 for port C and 252 bits 4:7 for port D uint8 2 ATTR_VPD_WLO TARGET_TYPE_MBA_CHIPLET This value comes from the VPD keyword MT byte 60 bits 0:3 for the Logical DIMM associated with port A. Byte 124 bits 0:3 for port B, 188 bits 0:3 for port C and 252 bits 0:3 for port D uint8 2 ATTR_VPD_TSYS_ADR TARGET_TYPE_MBA_CHIPLET This value comes from the VPD MR keyword byte 49 for ports A and B and byte 177 for port C and D. This means that all ADR blocks use this value on an mba level uint8 2 ATTR_VPD_TSYS_DP18 TARGET_TYPE_MBA_CHIPLET This value comes from the VPD MR keyword byte 113 for ports A and B and byte 241 for port C and D. This means all DP18 blocks use this value on a mba level uint8 2 ATTR_VPD_CDIMM_SENSOR_MAP_PRIMARY TARGET_TYPE_MEMBUF_CHIP Custom DIMM Sensor Map for Primary I2C Port (1 byte of data): 0x00 No sensors attached 0x01 DIMM sensor 0 attached 0x02 DIMM sensor 1 attached 0x04 DIMM sensor 2 attached 0x08 DIMM sensor 3 attached 0x10 DIMM sensor 4 attached 0x20 DIMM sensor 5 attached 0x40 DIMM sensor 6 attached 0x80 DIMM sensor 7 attached Comes from the VPD MW Keyword uint8 ATTR_VPD_CDIMM_SENSOR_MAP_SECONDARY TARGET_TYPE_MEMBUF_CHIP Custom DIMM Sensor Map for Secondary I2C Port (1 byte of data): 0x00 No sensors attached 0x01 DIMM sensor 0 attached 0x02 DIMM sensor 1 attached 0x04 DIMM sensor 2 attached 0x08 DIMM sensor 3 attached 0x10 DIMM sensor 4 attached 0x20 DIMM sensor 5 attached 0x40 DIMM sensor 6 attached 0x80 DIMM sensor 7 attached Comes from the VPD MW Keyword uint8 ATTR_VPD_DRAM_2N_MODE_ENABLED TARGET_TYPE_MBA_CHIPLET Describes if this MBA is in 2N address mode. The DIMM attributes associated with this MBA describes if this mode is needed for SI. Come from the VPD and consumed in the mba_def.initfile. uint8 FALSE = 0, TRUE = 1 ATTR_CDIMM_VPD_MASTER_POWER_SLOPE TARGET_TYPE_MEMBUF_CHIP Master Power Slope that comes from the VPD MW Keyword uint32 ATTR_CDIMM_VPD_MASTER_POWER_INTERCEPT TARGET_TYPE_MEMBUF_CHIP Master Power Intercept that comes from the VPD MW Keyword uint32 ATTR_CDIMM_VPD_SUPPLIER_POWER_SLOPE TARGET_TYPE_MEMBUF_CHIP Supplier Power Slope that comes from the VPD the MV Keyword uint32 ATTR_CDIMM_VPD_SUPPLIER_POWER_INTERCEPT TARGET_TYPE_MEMBUF_CHIP Supplier Power Intercept that comes from MV Keyword uint32 ATTR_L4_BANK_DELETE_VPD TARGET_TYPE_MEMBUF_CHIP L4 Bank Delete settings in VPD. Denotes what banks have been deleted from the L4. Data will be pulled from CDIMM VPD if CDIMM present. Data will be pulled from backplane VPD if IS DIMMs present. uint32 ATTR_SPD_MODSPEC_COM_REF_RAW_CARD_REV TARGET_TYPE_DIMM Reference Raw Card Revision Located in DDR3 SPD byte 62 bits 6-5. Located in DDR4 SPD byte 130 bits 6-5. uint8 ATTR_SPD_MODSPEC_COM_REF_RAW_CARD TARGET_TYPE_DIMM Reference Raw Card Located in DDR3 SPD byte 62 bit 7 + bits 4-0. Located in DDR4 SPD byte 130 bit 7 + bits 4-0. uint8 A = 0x00, B = 0x01, C = 0x02, D = 0x03, E = 0x04, F = 0x05, G = 0x06, H = 0x07, J = 0x08, K = 0x09, L = 0x0a, M = 0x0b, N = 0x0c, P = 0x0d, R = 0x0e, T = 0x0f, U = 0x10, V = 0x11, W = 0x12, Y = 0x13, AA = 0x14, AB = 0x15, AC = 0x16, AD = 0x17, AE = 0x18, AF = 0x19, AG = 0x1a, AH = 0x1b, AJ = 0x1c, AK = 0x1d, AL = 0x1e, AM = 0x20, AN = 0x21, AP = 0x22, AR = 0x23, AT = 0x24, AU = 0x25, AV = 0x26, AW = 0x27, AY = 0x28, BA = 0x29, BB = 0x2a, BC = 0x2b, BD = 0x2c, BE = 0x2d, BF = 0x2e, BG = 0x2f, BH = 0x30, BJ = 0x31, BK = 0x32, BL = 0x33, BM = 0x34, BN = 0x35, BP = 0x36, BR = 0x37, BT = 0x38, BU = 0x39, BV = 0x3a, BW = 0x3b, BY = 0x3c, CA = 0x3d, CB = 0x3e, ZZ = 0x3f