summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/xmltohb
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2012-03-08 07:46:50 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-03-15 10:33:51 -0500
commitf725655dd62684a6e9bede7ae2cab10f52c72ca7 (patch)
tree270c7696b79e779adaeab9c46acad21b3907b63b /src/usr/targeting/xmltohb
parent6c7dcf9fd4b30e4257c579b21ac31a43ac854021 (diff)
downloadtalos-hostboot-f725655dd62684a6e9bede7ae2cab10f52c72ca7.tar.gz
talos-hostboot-f725655dd62684a6e9bede7ae2cab10f52c72ca7.zip
HWPF Attribute Support: Fabric config attributes
RTC: 35819 Change-Id: I8502e8a8974935cccf60e38b02cc1fbff86a18ce Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/728 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/xmltohb')
-rw-r--r--src/usr/targeting/xmltohb/attribute_types.xml286
-rw-r--r--src/usr/targeting/xmltohb/makefile4
-rw-r--r--src/usr/targeting/xmltohb/simics_SALERNO.system.xml12
-rw-r--r--src/usr/targeting/xmltohb/simics_VENICE.system.xml92
-rw-r--r--src/usr/targeting/xmltohb/target_types.xml27
-rw-r--r--src/usr/targeting/xmltohb/vbu.system.xml36
-rwxr-xr-xsrc/usr/targeting/xmltohb/xmltohb.pl7
7 files changed, 452 insertions, 12 deletions
diff --git a/src/usr/targeting/xmltohb/attribute_types.xml b/src/usr/targeting/xmltohb/attribute_types.xml
index 101c9e04c..15b77b8aa 100644
--- a/src/usr/targeting/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/xmltohb/attribute_types.xml
@@ -2912,7 +2912,291 @@
</simpleType>
<persistency>non-volatile</persistency>
<readable/>
- <writeable/>
+</attribute>
+
+<enumerationType>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ <description>Enumeration indicating the PROC_EPS_TABLE_TYPE</description>
+ <enumerator>
+ <name>EPS_TYPE_LE</name>
+ <value>1</value>
+ </enumerator>
+ <enumerator>
+ <name>EPS_TYPE_HE</name>
+ <value>2</value>
+ </enumerator>
+</enumerationType>
+
+<attribute>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ <description>
+ System attribute.
+ Processor epsilon table type. Used to calculate the processor nest
+ epsilon register values.
+ </description>
+ <simpleType>
+ <enumeration>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_PROC_EPS_TABLE_TYPE</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<enumerationType>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ <description>Enumeration indicating the PROC_FABRIC_PUMP_MODE</description>
+ <enumerator>
+ <name>MODE1</name>
+ <value>1</value>
+ </enumerator>
+ <enumerator>
+ <name>MODE2</name>
+ <value>2</value>
+ </enumerator>
+</enumerationType>
+
+<attribute>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ <description>
+ System attribute.
+ Processor SMP Fabric broadcast scope configuration.
+ MODE1 = default = chip/group/system/remote group/foreign.
+ MODE2 = group/system/remote group/foreign.
+ Provided by the Machine Readable Workbook.
+ </description>
+ <simpleType>
+ <enumeration>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_PROC_FABRIC_PUMP_MODE</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<enumerationType>
+ <id>PROC_X_BUS_WIDTH</id>
+ <description>Enumeration indicating the PROC_X_BUS_WIDTH</description>
+ <enumerator>
+ <name>W4BYTE</name>
+ <value>1</value>
+ </enumerator>
+ <enumerator>
+ <name>W8BYTE</name>
+ <value>2</value>
+ </enumerator>
+</enumerationType>
+
+<attribute>
+ <id>PROC_X_BUS_WIDTH</id>
+ <description>
+ System attribute.
+ Processor SMP X bus width.
+ Provided by the Machine Readable Workbook.
+ </description>
+ <simpleType>
+ <enumeration>
+ <id>PROC_X_BUS_WIDTH</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_PROC_X_BUS_WIDTH</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>ALL_MCS_IN_INTERLEAVING_GROUP</id>
+ <description>
+ System attribute.
+ If all MCS chiplets are in an interleaving group (1=true, 0=false).
+ If true the SMP fabric is setup in normal mode.
+ If false the SMP fabric is setup in checkerboard mode.
+ Provided by the Machine Readable Workbook.
+ </description>
+ <simpleType><uint8_t></uint8_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_ALL_MCS_IN_INTERLEAVING_GROUP</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FABRIC_NODE_ID</id>
+ <description>
+ Chip attribute.
+ Logical fabric node the chip belongs to.
+ Provided by the Machine Readable Workbook.
+ Can vary across drawers.
+ </description>
+ <simpleType><uint8_t></uint8_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FABRIC_NODE_ID</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <description>
+ Chip attribute.
+ Logical fabric chip id for this chip (position within the fabric).
+ Provided by the Machine Readable Workbook.
+ Can vary across drawers.
+ </description>
+ <simpleType><uint8_t></uint8_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FABRIC_CHIP_ID</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_PROC_REFCLOCK</id>
+ <description>
+ System attribute.
+ The frequency of the processor refclock in MHz.
+ Provided by the Machine Readable Workbook.
+ The corresponding HWPF attribute:
+ - Is read by the set_ref_clock HWP to find out the desired frequency.
+ - Can be overridden to adjust the refclock frequency.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_PROC_REFCLOCK</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_MEM_REFCLOCK</id>
+ <description>
+ System attribute.
+ The frequency of the memory refclock in MHz.
+ Provided by the Machine Readable Workbook.
+ The corresponding HWPF attribute:
+ - Is read by the set_ref_clock HWP to find out the desired frequency.
+ - Can be overridden to adjust the refclock frequency.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_MEM_REFCLOCK</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_CORE_FLOOR</id>
+ <description>
+ System attribute.
+ The lowest frequency that a core can be set to in MHz.
+ This is the same for all cores in the system.
+ TODO Provided by TBD. Current thinking is MRW or MVPD.
+ If MRW then this attribute will stay here.
+ If MVPD then this attribute will be deleted.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_CORE_FLOOR</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_PB</id>
+ <description>
+ System attribute.
+ The frequency of a processor's PB chiplet in MHz.
+ This is the same for all PB chiplets in the system.
+ The corresponding HWPF attribute:
+ - Is set by a HWP that runs after SBE HWPs setup the PB PLL. It
+ reads ATTR_FREQ_PROC_REFCLOCK and the PB PLL settings.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_PB</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_A</id>
+ <description>
+ System attribute.
+ The frequency of a processor's A-bus chiplet in MHz.
+ This is the same for all A-bus chiplets in the system.
+ The corresponding HWPF attribute:
+ - Is set by the HWP that sets up the A-bus PLL.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_A</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>FREQ_X</id>
+ <description>
+ System attribute.
+ The frequency of a processor's X-bus chiplet in MHz.
+ This is the same for all X-bus chiplets in the system.
+ The corresponding HWPF attribute:
+ - Is set by the HWP that sets up the X-bus PLL.
+ </description>
+ <simpleType><uint32_t></uint32_t></simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FREQ_X</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
+ <id>MVPD_FREQ_CORE_NOMINAL</id>
+ <description>
+ Chip attribute.
+ The nominal frequency of the processor cores in MHz.
+ TODO This attribute should be from MVPD.
+ When MVPD function is present, this attribute should be deleted.
+ The corresponding HWPF attribute request should map to a function
+ that calls the MVPD driver (in the same way as DIMM SPD).
+ For now, just default to 3GHz
+ </description>
+ <simpleType><uint32_t><default>3000</default></uint32_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_MVPD_FREQ_CORE_NOMINAL</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
</attribute>
</attributes>
diff --git a/src/usr/targeting/xmltohb/makefile b/src/usr/targeting/xmltohb/makefile
index 8ed2e1e0c..252460fc2 100644
--- a/src/usr/targeting/xmltohb/makefile
+++ b/src/usr/targeting/xmltohb/makefile
@@ -53,7 +53,9 @@ XMLTOHB_FAPIATTR_SOURCES = \
${ROOTPATH}/src/usr/hwpf/hwp/chip_attributes.xml \
${ROOTPATH}/src/usr/hwpf/hwp/dimm_spd_attributes.xml \
${ROOTPATH}/src/usr/hwpf/hwp/dimm_attributes.xml \
- ${ROOTPATH}/src/usr/hwpf/hwp/unit_attributes.xml
+ ${ROOTPATH}/src/usr/hwpf/hwp/unit_attributes.xml \
+ ${ROOTPATH}/src/usr/hwpf/hwp/freq_attributes.xml \
+ ${ROOTPATH}/src/usr/hwpf/hwp/proc_mvpd_attributes.xml
VMM_CONSTS_FILE = \
${ROOTPATH}/src/include/usr/vmmconst.h
diff --git a/src/usr/targeting/xmltohb/simics_SALERNO.system.xml b/src/usr/targeting/xmltohb/simics_SALERNO.system.xml
index 603e26b06..5de483d2c 100644
--- a/src/usr/targeting/xmltohb/simics_SALERNO.system.xml
+++ b/src/usr/targeting/xmltohb/simics_SALERNO.system.xml
@@ -42,6 +42,18 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0</default>
</attribute>
+ <attribute>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ <default>EPS_TYPE_LE</default>
+ </attribute>
+ <attribute>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ <default>MODE1</default>
+ </attribute>
+ <attribute>
+ <id>PROC_X_BUS_WIDTH</id>
+ <default>W8BYTE</default>
+ </attribute>
</targetInstance>
<targetInstance>
diff --git a/src/usr/targeting/xmltohb/simics_VENICE.system.xml b/src/usr/targeting/xmltohb/simics_VENICE.system.xml
index 701beccb0..4bfb2df83 100644
--- a/src/usr/targeting/xmltohb/simics_VENICE.system.xml
+++ b/src/usr/targeting/xmltohb/simics_VENICE.system.xml
@@ -48,6 +48,34 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0</default>
</attribute>
+ <attribute>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ <default>EPS_TYPE_HE</default>
+ </attribute>
+ <attribute>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ <default>MODE1</default>
+ </attribute>
+ <attribute>
+ <id>PROC_X_BUS_WIDTH</id>
+ <default>W8BYTE</default>
+ </attribute>
+ <attribute>
+ <id>ALL_MCS_IN_INTERLEAVING_GROUP</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_PROC_REFCLOCK</id>
+ <default>200</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_MEM_REFCLOCK</id>
+ <default>266</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_CORE_FLOOR</id>
+ <default>2500</default>
+ </attribute>
</targetInstance>
<!-- System node 0 -->
@@ -94,6 +122,14 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>0</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p0 EX units -->
@@ -515,6 +551,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>1</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p1 EX units -->
@@ -937,6 +981,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>2</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p2 EX units -->
@@ -1358,6 +1410,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>3</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p3 EX units -->
@@ -1779,6 +1839,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>4</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p4 EX units -->
@@ -2200,6 +2268,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>5</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p5 EX units -->
@@ -2621,6 +2697,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>6</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p6 EX units -->
@@ -3042,6 +3126,14 @@
<id>FSI_OPTION_FLAGS</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>7</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p7 EX units -->
diff --git a/src/usr/targeting/xmltohb/target_types.xml b/src/usr/targeting/xmltohb/target_types.xml
index 7ebadb6a8..ed6036ebf 100644
--- a/src/usr/targeting/xmltohb/target_types.xml
+++ b/src/usr/targeting/xmltohb/target_types.xml
@@ -66,9 +66,7 @@
<attribute><id>NUMERIC_POD_TYPE_TEST</id></attribute>
<attribute><id>HB_MUTEX_TEST_LOCK</id></attribute>
<attribute><id>DUMMY_RW</id></attribute>
- <attribute>
- <id>XSCOM_BASE_ADDRESS</id>
- </attribute>
+ <attribute><id>XSCOM_BASE_ADDRESS</id></attribute>
<attribute>
<id>PHYS_PATH</id>
<default>physical:sys-0</default>
@@ -76,14 +74,22 @@
<attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0</default>
- </attribute>
+ </attribute>
<attribute>
<id>IS_SIMULATION</id>
<default>0</default>
- </attribute>
- <attribute>
- <id>ISTEP_MODE</id>
- </attribute>
+ </attribute>
+ <attribute><id>ISTEP_MODE</id></attribute>
+ <attribute><id>PROC_EPS_TABLE_TYPE</id></attribute>
+ <attribute><id>PROC_FABRIC_PUMP_MODE</id></attribute>
+ <attribute><id>PROC_X_BUS_WIDTH</id></attribute>
+ <attribute><id>ALL_MCS_IN_INTERLEAVING_GROUP</id></attribute>
+ <attribute><id>FREQ_PROC_REFCLOCK</id></attribute>
+ <attribute><id>FREQ_MEM_REFCLOCK</id></attribute>
+ <attribute><id>FREQ_CORE_FLOOR</id></attribute>
+ <attribute><id>FREQ_PB</id></attribute>
+ <attribute><id>FREQ_A</id></attribute>
+ <attribute><id>FREQ_X</id></attribute>
</targetType>
<targetType>
@@ -155,7 +161,10 @@
<id>FSI_GP_REG_SCOM_ACCESS</id>
<default>1</default>
</attribute>
-
+ <attribute><id>FABRIC_NODE_ID</id></attribute>
+ <attribute><id>FABRIC_CHIP_ID</id></attribute>
+ <!-- TODO. MVPD_FREQ_CORE_NOMINAL to be deleted when MVPD available -->
+ <attribute><id>MVPD_FREQ_CORE_NOMINAL</id></attribute>
</targetType>
<targetType>
diff --git a/src/usr/targeting/xmltohb/vbu.system.xml b/src/usr/targeting/xmltohb/vbu.system.xml
index 76c6f7412..ece731e50 100644
--- a/src/usr/targeting/xmltohb/vbu.system.xml
+++ b/src/usr/targeting/xmltohb/vbu.system.xml
@@ -43,6 +43,34 @@
<id>IS_SIMULATION</id>
<default>1</default>
</attribute>
+ <attribute>
+ <id>PROC_EPS_TABLE_TYPE</id>
+ <default>EPS_TYPE_HE</default>
+ </attribute>
+ <attribute>
+ <id>PROC_FABRIC_PUMP_MODE</id>
+ <default>MODE1</default>
+ </attribute>
+ <attribute>
+ <id>PROC_X_BUS_WIDTH</id>
+ <default>W8BYTE</default>
+ </attribute>
+ <attribute>
+ <id>ALL_MCS_IN_INTERLEAVING_GROUP</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_PROC_REFCLOCK</id>
+ <default>200</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_MEM_REFCLOCK</id>
+ <default>266</default>
+ </attribute>
+ <attribute>
+ <id>FREQ_CORE_FLOOR</id>
+ <default>2500</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -87,6 +115,14 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0</default>
</attribute>
+ <attribute>
+ <id>FABRIC_NODE_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>FABRIC_CHIP_ID</id>
+ <default>0</default>
+ </attribute>
</targetInstance>
<!-- Venice n0p0 EX units -->
diff --git a/src/usr/targeting/xmltohb/xmltohb.pl b/src/usr/targeting/xmltohb/xmltohb.pl
index 3fdcbd6e4..3f36269c9 100755
--- a/src/usr/targeting/xmltohb/xmltohb.pl
+++ b/src/usr/targeting/xmltohb/xmltohb.pl
@@ -46,7 +46,12 @@ use Text::Wrap;
use Data::Dumper;
use POSIX;
-
+################################################################################
+# Set PREFERRED_PARSER to XML::Parser. Otherwise it uses XML::SAX which contains
+# bugs that result in XML parse errors that can be fixed by adjusting white-
+# space (i.e. parse errors that do not make sense).
+################################################################################
+$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
################################################################################
# Process command line parameters, issue help text if needed
OpenPOWER on IntegriCloud