summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJenny Huynh <jhuynh@us.ibm.com>2017-04-11 16:45:04 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-04-14 20:07:53 -0400
commita135d0ddbb983278f099e2932aed5dd9f759643b (patch)
treec4d7012bb535043a496e17097504b7f408940383 /src
parentb2c39b57be1d1deb19113a3b3880f28371752e1f (diff)
downloadtalos-hostboot-a135d0ddbb983278f099e2932aed5dd9f759643b.tar.gz
talos-hostboot-a135d0ddbb983278f099e2932aed5dd9f759643b.zip
HW407123: Slow down xlink command rate for Nimbus DD1/2
Change-Id: I5e1d5f6ff0b0139765d1dc30636cec30b91e37d6 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39132 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Kevin F. Reick <reick@us.ibm.com> Reviewed-by: DANIEL C. HOWE <dchowe@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39191 Reviewed-by: Hostboot Team <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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_ab_hp_scom.C158
-rw-r--r--src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml19
2 files changed, 171 insertions, 6 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_ab_hp_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_ab_hp_scom.C
index 45ef2ed6b..b22373707 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_ab_hp_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_ab_hp_scom.C
@@ -108,6 +108,8 @@ fapi2::ReturnCode p9_fbc_ab_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_
uint64_t l_def_LINK_X_AGGREGATE_EN = (l_TGT0_ATTR_PROC_FABRIC_X_AGGREGATE == ENUM_ATTR_PROC_FABRIC_X_AGGREGATE_ON);
fapi2::ATTR_PROC_FABRIC_X_ADDR_DIS_Type l_TGT0_ATTR_PROC_FABRIC_X_ADDR_DIS;
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_X_ADDR_DIS, TGT0, l_TGT0_ATTR_PROC_FABRIC_X_ADDR_DIS));
+ fapi2::ATTR_CHIP_EC_FEATURE_HW407123_Type l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW407123, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123));
fapi2::ATTR_FREQ_X_MHZ_Type l_TGT1_ATTR_FREQ_X_MHZ;
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FREQ_X_MHZ, TGT1, l_TGT1_ATTR_FREQ_X_MHZ));
uint64_t l_def_X_CMD_RATE_4B_R = ((literal_6 * l_TGT1_ATTR_FREQ_PB_MHZ) % l_TGT1_ATTR_FREQ_X_MHZ);
@@ -1056,8 +1058,56 @@ fapi2::ReturnCode p9_fbc_ab_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_
constexpr auto l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON = 0x7;
l_scom_buffer.insert<50, 1, 61, uint64_t>(l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON );
- if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
- && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
+ if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_4) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
{
l_scom_buffer.insert<56, 8, 56, uint64_t>((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) );
}
@@ -2033,8 +2083,56 @@ fapi2::ReturnCode p9_fbc_ab_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_
constexpr auto l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON = 0x7;
l_scom_buffer.insert<50, 1, 62, uint64_t>(l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON );
- if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
- && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
+ if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_4) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
{
l_scom_buffer.insert<56, 8, 56, uint64_t>((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) );
}
@@ -3010,8 +3108,56 @@ fapi2::ReturnCode p9_fbc_ab_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_
constexpr auto l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON = 0x7;
l_scom_buffer.insert<50, 1, 63, uint64_t>(l_PB_COM_PB_CFG_X_GATHER_ENABLE_NEXT_ON );
- if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
- && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
+ if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_4) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_4B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_4B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_2B_R == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_N / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA != literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_3) );
+ }
+ else if (((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_2_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_1)) && (l_def_X_CMD_RATE_2B_RA == literal_0))
+ && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW407123 != literal_0)))
+ {
+ l_scom_buffer.insert<56, 8, 56, uint64_t>(((l_def_X_CMD_RATE_2B_NA / l_def_X_CMD_RATE_D) + literal_2) );
+ }
+ else if ((((l_TGT1_ATTR_PROC_FABRIC_X_BUS_WIDTH == fapi2::ENUM_ATTR_PROC_FABRIC_X_BUS_WIDTH_4_BYTE)
+ && (l_def_LINK_X_AGGREGATE_EN == literal_0)) && (l_def_X_CMD_RATE_4B_R != literal_0)))
{
l_scom_buffer.insert<56, 8, 56, uint64_t>((l_def_X_CMD_RATE_4B_N / l_def_X_CMD_RATE_D) );
}
diff --git a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
index 43bec57d9..78e5443a1 100644
--- a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
+++ b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
@@ -1721,6 +1721,25 @@
</attribute>
<!-- ******************************************************************** -->
<attribute>
+ <id>ATTR_CHIP_EC_FEATURE_HW407123</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Nimbus DD1,DD2: enable workarounds for HW407123 in FBC initfile
+ Slow down xlink cmd rate to work around broken single link credit dial
+ that would have prevented rcmd overflows
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_NIMBUS</name>
+ <ec>
+ <value>0x20</value>
+ <test>LESS_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <!-- ******************************************************************** -->
+ <attribute>
<id>ATTR_CHIP_EC_FEATURE_HW378025</id>
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
OpenPOWER on IntegriCloud