From d2da0774fa01e5bb89a717baf814e43f5f3fef0a Mon Sep 17 00:00:00 2001 From: Matthew Raybuck Date: Tue, 30 Apr 2019 10:01:43 -0500 Subject: Targeting updates for EEPROM content type Adds a new enumerationType called EEPROM_CONTENT_TYPE as well as a new field to the EEPROM_VPD_PRIMARY_INFO and EEPROM_VPD_BACKUP_INFO called eepromContentType. EEPROM_CONTENT_TYPE serves to define the constants for the five types of eeprom content types; they are: RAW, DDIMM, ISDIMM, IBM_FRUVPD, and IBM_MVPD. There are five targetTypes that default eepromContentType to the appropriate value for that targetType; they are: PROC, OCMB, NODE, LCARD_DIMM, MCS. Due to the limitations of targeting, an enumeration type can't be used with complexTypes. Instead, eepromContentType matches the values of the five types defined by EEPROM_CONTENT_TYPE. This commit is used to support Part and Serial Number lookups when deciding EEPROM cache content updates. Change-Id: Ie8f1e81ff7273c76178c5c621771d5b6c75903e9 RTC:203788 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76855 Reviewed-by: Glenn Miles Reviewed-by: Michael Baiocchi Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- .../targeting/common/xmltohb/attribute_types.xml | 102 +++++-- .../common/xmltohb/simics_AXONE.system.xml | 37 ++- src/usr/targeting/common/xmltohb/target_types.xml | 324 +++++++++++++++++++++ 3 files changed, 442 insertions(+), 21 deletions(-) (limited to 'src/usr/targeting/common/xmltohb') diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml index b1ae2e230..2378f270e 100644 --- a/src/usr/targeting/common/xmltohb/attribute_types.xml +++ b/src/usr/targeting/common/xmltohb/attribute_types.xml @@ -883,6 +883,54 @@ + + Specifies a target's eeprom content type. + + EEPROM_CONTENT_TYPE + non-volatile + + + + EEPROM_CONTENT_TYPE + + + + + + RAW + Enumeration indicating a target's eeprom + content type. + RAW - eeprom has no specified layout + ISDIMM - uses standard JEDEC layout for DDR memory + IBM_FRUVPD - uses ipz converged vpd layout with records/keywords for + generic FRUs + IBM_MVPD - use ipz converged vpd layout with records/keywords for + processor modules + DDIMM - uses Differential DIMM layout + + + RAW + 0 + + + ISDIMM + 1 + + + IBM_FRUVPD + 2 + + + IBM_MVPD + 3 + + + DDIMM + 4 + + EEPROM_CONTENT_TYPE + + EEPROM_NV_INFO Information needed to address the NV controller on the NVDIMM @@ -1179,8 +1227,9 @@ - Structure to define the addressing for an I2C - slave device. + Structure to define the addressing for an attached I2C + eeprom device that contains secondary VPD info. + physical:sys-0 Entity path to the chip that contains the I2C @@ -1189,49 +1238,49 @@ EntityPath - 0x80 + 0xFF Port from the I2C Master device. This is a 6-bit value. port uint8_t - 0x80 + 0xFF Device address on the I2C bus. This is a 7-bit value, but then shifted 1 bit left. devAddr uint8_t - 0x80 + 0xFF I2C master engine. This is a 2-bit value. engine uint8_t - 0x02 + 0xFF The number of bytes a device requires to set its internal address/offset. byteAddrOffset uint8_t - 0x0 + 0xFFFFFFFFFFFFFFFF The number of kilobytes a device can hold. 'Zero' value possible for some devices. maxMemorySizeKB uint64_t - 0x01 + 0xFF The number of chips making up an eeprom device. chipCount uint8_t - 0x0 + 0xFFFFFFFFFFFFFFFF The maximum number of bytes that can be written to a device at one time. 'Zero' value means no maximum value is expected or checked. @@ -1239,7 +1288,7 @@ uint64_t - 0xA + 0xFFFFFFFFFFFFFFFF The amount of time in milliseconds a device requires on the completion of a write command to update its internal memory. @@ -1264,6 +1313,12 @@ i2cMuxPath EntityPath + + 0xFFFFFFFF + Indicates the target's eeprom content type + eepromContentType + uint32_t + Information needed to address the EERPROM slaves EEPROM_VPD_BACKUP_INFO @@ -1273,8 +1328,9 @@ - Structure to define the addressing for an I2C - slave device. + Structure to define the addressing for an attached I2C + eeprom device that contains primary VPD info. + physical:sys-0 Entity path to the chip that contains the I2C @@ -1283,28 +1339,28 @@ EntityPath - 0x80 + 0xFF Port from the I2C Master device. This is a 6-bit value. port uint8_t - 0x80 + 0xFF Device address on the I2C bus. This is a 7-bit value, but then shifted 1 bit left. devAddr uint8_t - 0x80 + 0xFF I2C master engine. This is a 2-bit value. engine uint8_t - 0x02 + 0xFF The number of bytes a device requires to set its internal address/offset. DDR4 DIMMs require a special EEPROM @@ -1318,21 +1374,21 @@ uint8_t - 0x0 + 0xFFFFFFFFFFFFFFFF The number of kilobytes a device can hold. 'Zero' value possible for some devices. maxMemorySizeKB uint64_t - 0x01 + 0xFF The number of chips making up an eeprom device. chipCount uint8_t - 0x0 + 0xFFFFFFFFFFFFFFFF The maximum number of bytes that can be written to a device at one time. 'Zero' value means no maximum value is expected or checked. @@ -1340,7 +1396,7 @@ uint64_t - 0xA + 0xFFFFFFFFFFFFFFFF The amount of time in milliseconds a device requires on the completion of a write command to update its internal memory. @@ -1365,6 +1421,12 @@ i2cMuxPath EntityPath + + 0xFFFFFFFF + Indicates the target's eeprom content type + eepromContentType + uint32_t + Information needed to address the EEPROM slaves EEPROM_VPD_PRIMARY_INFO diff --git a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml index 9cb2296ea..2b1b0a3ef 100644 --- a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml @@ -538,7 +538,7 @@ 400,400,0,0,0,0,0,0,0,0,0,0,0, 400,400,400,400,0,0,0,0,0,0,0,0,0, 400,400,0,0,0,0,0,0,0,0,0,0,0, - 400,400,400,0,0,0,0,0,0,0,0,0,0 + 400,400,400,400,400,400,400,400,400,0,0,0,0 MRU_ID @@ -11364,6 +11364,11 @@ engine3 port2 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11410,6 +11415,11 @@ engine3 port3 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11456,6 +11466,11 @@ engine3 port4 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11502,6 +11517,11 @@ engine3 port5 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11548,6 +11568,11 @@ engine3 port6 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11594,6 +11619,11 @@ engine3 port7 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 @@ -11640,6 +11670,11 @@ engine3 port8 maxMemorySizeKB0x4 + i2cMasterPathphysical:sys-0/node-0/proc-0 + byteAddrOffset0x02 + chipCount0x01 + writeCycleTime05 + writePageSize0x20 diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml index 1b5b615a9..e5d7b9bd7 100644 --- a/src/usr/targeting/common/xmltohb/target_types.xml +++ b/src/usr/targeting/common/xmltohb/target_types.xml @@ -413,6 +413,60 @@ DECONFIG_GARDABLE + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x4 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_PRIMARY_INFO @@ -753,9 +807,117 @@ EEPROM_SBE_PRIMARY_INFO + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x3 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_BACKUP_INFO + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x3 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_PRIMARY_INFO @@ -990,6 +1152,60 @@ DECONFIG_GARDABLE + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x2 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_PRIMARY_INFO @@ -1205,6 +1421,60 @@ EEPROM_NV_INFO + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x1 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_PRIMARY_INFO @@ -2640,6 +2910,60 @@ DECONFIG_GARDABLE + + + 0xFF + byteAddrOffset + + + 0xFF + chipCount + + + 0xFF + devAddr + + + + + 0x2 + eepromContentType + + + 0xFF + engine + + + physical:sys-0 + i2cMasterPath + + + 0xFF + i2cMuxBusSelector + + + physical:sys-0 + i2cMuxPath + + + 0xFFFFFFFFFFFFFFFF + maxMemorySizeKB + + + 0xFF + port + + + 0xFFFFFFFFFFFFFFFF + writeCycleTime + + + 0xFFFFFFFFFFFFFFFF + writePageSize + + EEPROM_VPD_PRIMARY_INFO -- cgit v1.2.1