summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2014-05-21 15:19:30 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-05-29 11:26:13 -0500
commit2e0d16d32cb3ad4b5d8ead6531450204e2fec4e3 (patch)
tree52265cdddd0e4d02bf1090dd528068d78f63b3de /src/usr/hwpf
parent6681d384d729d448ef2b864a1f28d8982ad8f3cc (diff)
downloadtalos-hostboot-2e0d16d32cb3ad4b5d8ead6531450204e2fec4e3.tar.gz
talos-hostboot-2e0d16d32cb3ad4b5d8ead6531450204e2fec4e3.zip
SW260449: INITPROC: update to ship mode Brazos fabric configuration
Change-Id: I00f7ef9f1e87882fd9328bf9d9e032bb404d6bb9 CQ:SW260449 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11222 Tested-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11223 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C57
-rw-r--r--src/usr/hwpf/hwp/proc_chip_ec_feature.xml44
2 files changed, 91 insertions, 10 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
index 238350d02..54c465e27 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
@@ -20,7 +20,7 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_fbc_cd.C,v 1.15 2014/02/23 21:41:07 jmcgill Exp $
+// $Id: proc_build_smp_fbc_cd.C,v 1.16 2014/05/15 21:35:33 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_fbc_cd.C,v $
//------------------------------------------------------------------------------
// *|
@@ -265,7 +265,10 @@ const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_LFSR = 0x0;
const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_RR = 0x1; // RR_ONLY
const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_LFSR_ON_STARVATION_ELSE_RR = 0x2; // LFSR_ON_STARVATION_ELSE_RR
const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_RR_ON_STARVATION_ELSE_LFSR = 0x3; // RR_ON_STARVATION_ELSE_LFSR
-const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE = 0x2; // LFSR_ON_STARVATION_ELSE_RR
+const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_LFSR = 0x0; // LFSR_ONLY
+const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_RR = 0x1; // RR_ONLY
+const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_LFSR_ON_STARVATION_ELSE_RR = 0x2; // LFSR_ON_STARVATION_ELSE_RR
+const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_RR_ON_STARVATION_ELSE_LFSR = 0x3; // RR_ON_STARVATION_ELSE_LFSR
//
@@ -1120,7 +1123,11 @@ fapi::ReturnCode proc_build_smp_set_sconfig_c9(
fapi::ReturnCode rc;
uint32_t rc_ecmd = 0x0;
ecmdDataBufferBase data(64);
+ uint8_t ux_scope_arb_mode_lfsr_on_starvation_else_rr = 0;
uint8_t ux_scope_arb_mode_rr = 0;
+ uint8_t ux_scope_arb_mode;
+ uint8_t ux_local_arb_mode_rr = 0;
+ uint8_t ux_local_arb_mode;
// mark function entry
FAPI_DBG("proc_build_smp_set_sconfig_c9: Start");
@@ -1164,6 +1171,15 @@ fapi::ReturnCode proc_build_smp_set_sconfig_c9(
PB_SCONFIG_C9_FP_STARVE_LIMIT_START_BIT+1));
// ux_scope_arb_mode
+ rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_FBC_UX_SCOPE_ARB_LFSR_ON_STARVATION_ELSE_RR,
+ &(i_smp_chip.chip->this_chip),
+ ux_scope_arb_mode_lfsr_on_starvation_else_rr);
+ if (!rc.ok())
+ {
+ FAPI_ERR("Error querying Chip EC feature: ATTR_CHIP_EC_FEATURE_FBC_UX_SCOPE_ARB_LFSR_ON_STARVATION_ELSE_RR");
+ break;
+ }
+
rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_FBC_UX_SCOPE_ARB_RR,
&(i_smp_chip.chip->this_chip),
ux_scope_arb_mode_rr);
@@ -1173,17 +1189,46 @@ fapi::ReturnCode proc_build_smp_set_sconfig_c9(
break;
}
+ if (ux_scope_arb_mode_lfsr_on_starvation_else_rr)
+ {
+ ux_scope_arb_mode = PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_LFSR_ON_STARVATION_ELSE_RR;
+ }
+ else if (ux_scope_arb_mode_rr)
+ {
+ ux_scope_arb_mode = PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_RR;
+ }
+ else
+ {
+ ux_scope_arb_mode = PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_LFSR;
+ }
+
rc_ecmd |= data.insertFromRight(
- ((ux_scope_arb_mode_rr != 0)?
- (PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_RR):
- (PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_LFSR)),
+ ux_scope_arb_mode,
PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_START_BIT,
(PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_END_BIT-
PB_SCONFIG_C9_UX_SCOPE_ARB_MODE_START_BIT+1));
// ux_local_arb_mode
+ rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_FBC_UX_LOCAL_ARB_RR,
+ &(i_smp_chip.chip->this_chip),
+ ux_local_arb_mode_rr);
+ if (!rc.ok())
+ {
+ FAPI_ERR("Error querying Chip EC feature: ATTR_CHIP_EC_FEATURE_FBC_UX_LOCAL_ARB_RR");
+ break;
+ }
+
+ if (ux_local_arb_mode_rr)
+ {
+ ux_local_arb_mode = PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_RR;
+ }
+ else
+ {
+ ux_local_arb_mode = PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_LFSR_ON_STARVATION_ELSE_RR;
+ }
+
rc_ecmd |= data.insertFromRight(
- PB_SCONFIG_C9_UX_LOCAL_ARB_MODE,
+ ux_local_arb_mode,
PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_START_BIT,
(PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_END_BIT-
PB_SCONFIG_C9_UX_LOCAL_ARB_MODE_START_BIT+1));
diff --git a/src/usr/hwpf/hwp/proc_chip_ec_feature.xml b/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
index b0ed10690..6ff0b8e7a 100644
--- a/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
+++ b/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
@@ -20,7 +20,7 @@
<!-- permissions and limitations under the License. -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
-<!-- $Id: proc_chip_ec_feature.xml,v 1.51 2014/04/07 16:58:28 baysah Exp $ -->
+<!-- $Id: proc_chip_ec_feature.xml,v 1.52 2014/05/15 16:36:14 jmcgill Exp $ -->
<!-- Defines the attributes that are based on EC level -->
<attributes>
<attribute>
@@ -631,9 +631,9 @@
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
True if:
- Murano/Venice EC greater than or equal to 0x20 (RR mode)
- False otherwise:
- Set LFSR mode
+ Murano EC greater than or equal to 0x20
+ Venice EC less than 0x20
+ False otherwise
</description>
<chipEcFeature>
<chip>
@@ -647,6 +647,42 @@
<name>ENUM_ATTR_NAME_VENICE</name>
<ec>
<value>0x20</value>
+ <test>LESS_THAN</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_FBC_UX_SCOPE_ARB_LFSR_ON_STARVATION_ELSE_RR</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ True if:
+ Venice EC greater than or equal to 0x20
+ False otherwise
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_FBC_UX_LOCAL_ARB_RR</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ True if:
+ Venice EC greater than or equal to 0x20
+ False otherwise
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x20</value>
<test>GREATER_THAN_OR_EQUAL</test>
</ec>
</chip>
OpenPOWER on IntegriCloud