diff options
author | Matthew Raybuck <matthew.raybuck@ibm.com> | 2019-04-30 10:01:43 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-05-09 16:31:05 -0500 |
commit | d2da0774fa01e5bb89a717baf814e43f5f3fef0a (patch) | |
tree | c14c07ab8648848e6ede1c730b8a1636ed1ffcae /src/usr/targeting/common/xmltohb | |
parent | c0b91d3b52a6139f7e56a6e3896018cdeac26dae (diff) | |
download | talos-hostboot-d2da0774fa01e5bb89a717baf814e43f5f3fef0a.tar.gz talos-hostboot-d2da0774fa01e5bb89a717baf814e43f5f3fef0a.zip |
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 <milesg@ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/common/xmltohb')
-rw-r--r-- | src/usr/targeting/common/xmltohb/attribute_types.xml | 102 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/simics_AXONE.system.xml | 37 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/target_types.xml | 324 |
3 files changed, 442 insertions, 21 deletions
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 @@ -884,6 +884,54 @@ </attribute> <attribute> + <description>Specifies a target's eeprom content type.</description> + <hasStringConversion/> + <id>EEPROM_CONTENT_TYPE</id> + <persistency>non-volatile</persistency> + <readable/> + <simpleType> + <enumeration> + <id>EEPROM_CONTENT_TYPE</id> + </enumeration> + </simpleType> + </attribute> + + <enumerationType> + <default>RAW</default> + <description>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 + </description> + <enumerator> + <name>RAW</name> + <value>0</value> + </enumerator> + <enumerator> + <name>ISDIMM</name> + <value>1</value> + </enumerator> + <enumerator> + <name>IBM_FRUVPD</name> + <value>2</value> + </enumerator> + <enumerator> + <name>IBM_MVPD</name> + <value>3</value> + </enumerator> + <enumerator> + <name>DDIMM</name> + <value>4</value> + </enumerator> + <id>EEPROM_CONTENT_TYPE</id> + </enumerationType> + + <attribute> <id>EEPROM_NV_INFO</id> <description>Information needed to address the NV controller on the NVDIMM</description> <complexType> @@ -1179,8 +1227,9 @@ <attribute> <complexType> - <description>Structure to define the addressing for an I2C - slave device.</description> + <description>Structure to define the addressing for an attached I2C + eeprom device that contains secondary VPD info. + </description> <field> <default>physical:sys-0</default> <description>Entity path to the chip that contains the I2C @@ -1189,49 +1238,49 @@ <type>EntityPath</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>Port from the I2C Master device. This is a 6-bit value.</description> <name>port</name> <type>uint8_t</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>Device address on the I2C bus. This is a 7-bit value, but then shifted 1 bit left.</description> <name>devAddr</name> <type>uint8_t</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>I2C master engine. This is a 2-bit value.</description> <name>engine</name> <type>uint8_t</type> </field> <field> - <default>0x02</default> + <default>0xFF</default> <description>The number of bytes a device requires to set its internal address/offset.</description> <name>byteAddrOffset</name> <type>uint8_t</type> </field> <field> - <default>0x0</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>The number of kilobytes a device can hold. 'Zero' value possible for some devices.</description> <name>maxMemorySizeKB</name> <type>uint64_t</type> </field> <field> - <default>0x01</default> + <default>0xFF</default> <description>The number of chips making up an eeprom device. </description> <name>chipCount</name> <type>uint8_t</type> </field> <field> - <default>0x0</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>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.</description> @@ -1239,7 +1288,7 @@ <type>uint64_t</type> </field> <field> - <default>0xA</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>The amount of time in milliseconds a device requires on the completion of a write command to update its internal memory.</description> @@ -1264,6 +1313,12 @@ <name>i2cMuxPath</name> <type>EntityPath</type> </field> + <field> + <default>0xFFFFFFFF</default> + <description>Indicates the target's eeprom content type</description> + <name>eepromContentType</name> + <type>uint32_t</type> + </field> </complexType> <description>Information needed to address the EERPROM slaves</description> <id>EEPROM_VPD_BACKUP_INFO</id> @@ -1273,8 +1328,9 @@ <attribute> <complexType> - <description>Structure to define the addressing for an I2C - slave device.</description> + <description>Structure to define the addressing for an attached I2C + eeprom device that contains primary VPD info. + </description> <field> <default>physical:sys-0</default> <description>Entity path to the chip that contains the I2C @@ -1283,28 +1339,28 @@ <type>EntityPath</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>Port from the I2C Master device. This is a 6-bit value.</description> <name>port</name> <type>uint8_t</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>Device address on the I2C bus. This is a 7-bit value, but then shifted 1 bit left.</description> <name>devAddr</name> <type>uint8_t</type> </field> <field> - <default>0x80</default> + <default>0xFF</default> <description>I2C master engine. This is a 2-bit value.</description> <name>engine</name> <type>uint8_t</type> </field> <field> - <default>0x02</default> + <default>0xFF</default> <description> The number of bytes a device requires to set its internal address/offset. DDR4 DIMMs require a special EEPROM @@ -1318,21 +1374,21 @@ <type>uint8_t</type> </field> <field> - <default>0x0</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>The number of kilobytes a device can hold. 'Zero' value possible for some devices.</description> <name>maxMemorySizeKB</name> <type>uint64_t</type> </field> <field> - <default>0x01</default> + <default>0xFF</default> <description>The number of chips making up an eeprom device. </description> <name>chipCount</name> <type>uint8_t</type> </field> <field> - <default>0x0</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>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.</description> @@ -1340,7 +1396,7 @@ <type>uint64_t</type> </field> <field> - <default>0xA</default> + <default>0xFFFFFFFFFFFFFFFF</default> <description>The amount of time in milliseconds a device requires on the completion of a write command to update its internal memory.</description> @@ -1365,6 +1421,12 @@ <name>i2cMuxPath</name> <type>EntityPath</type> </field> + <field> + <default>0xFFFFFFFF</default> + <description>Indicates the target's eeprom content type</description> + <name>eepromContentType</name> + <type>uint32_t</type> + </field> </complexType> <description>Information needed to address the EEPROM slaves</description> <id>EEPROM_VPD_PRIMARY_INFO</id> 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 @@ <default>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</default> + 400,400,400,400,400,400,400,400,400,0,0,0,0</default> </attribute> <attribute> <id>MRU_ID</id> @@ -11364,6 +11364,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>2</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11410,6 +11415,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>3</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11456,6 +11466,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>4</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11502,6 +11517,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>5</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11548,6 +11568,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>6</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11594,6 +11619,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>7</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> @@ -11640,6 +11670,11 @@ <field><id>engine</id><value>3</value></field> <field><id>port</id><value>8</value></field> <field><id>maxMemorySizeKB</id><value>0x4</value></field> + <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field> + <field><id>byteAddrOffset</id><value>0x02</value></field> + <field><id>chipCount</id><value>0x01</value></field> + <field><id>writeCycleTime</id><value>05</value></field> + <field><id>writePageSize</id><value>0x20</value></field> </default> </attribute> </targetInstance> 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 @@ <id>DECONFIG_GARDABLE</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>DDIMM</value--> + <value>0x4</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_PRIMARY_INFO</id> </attribute> <attribute> @@ -753,9 +807,117 @@ <id>EEPROM_SBE_PRIMARY_INFO</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>IBM_MVPD</value--> + <value>0x3</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_BACKUP_INFO</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>IBM_MVPD</value--> + <value>0x3</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_PRIMARY_INFO</id> </attribute> <attribute> @@ -990,6 +1152,60 @@ <id>DECONFIG_GARDABLE</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>IBM_FRUVPD</value--> + <value>0x2</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_PRIMARY_INFO</id> </attribute> <attribute> @@ -1205,6 +1421,60 @@ <id>EEPROM_NV_INFO</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>ISDIMM</value--> + <value>0x1</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_PRIMARY_INFO</id> </attribute> <attribute> @@ -2640,6 +2910,60 @@ <id>DECONFIG_GARDABLE</id> </attribute> <attribute> + <default> + <field> + <value>0xFF</value> + <id>byteAddrOffset</id> + </field> + <field> + <value>0xFF</value> + <id>chipCount</id> + </field> + <field> + <value>0xFF</value> + <id>devAddr</id> + </field> + <field> + <!--Since enum values cannot be used as default values in + a complexType, this is a workaround to set the value to the + corresponding enum value.--> + <!--value>IBM_FRUVPD</value--> + <value>0x2</value> + <id>eepromContentType</id> + </field> + <field> + <value>0xFF</value> + <id>engine</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMasterPath</id> + </field> + <field> + <value>0xFF</value> + <id>i2cMuxBusSelector</id> + </field> + <field> + <value>physical:sys-0</value> + <id>i2cMuxPath</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>maxMemorySizeKB</id> + </field> + <field> + <value>0xFF</value> + <id>port</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writeCycleTime</id> + </field> + <field> + <value>0xFFFFFFFFFFFFFFFF</value> + <id>writePageSize</id> + </field> + </default> <id>EEPROM_VPD_PRIMARY_INFO</id> </attribute> <!--fsp requirement--> |