diff options
author | Thi Tran <thi@us.ibm.com> | 2014-05-21 15:19:30 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-05-29 11:26:13 -0500 |
commit | 2e0d16d32cb3ad4b5d8ead6531450204e2fec4e3 (patch) | |
tree | 52265cdddd0e4d02bf1090dd528068d78f63b3de /src/usr/hwpf | |
parent | 6681d384d729d448ef2b864a1f28d8982ad8f3cc (diff) | |
download | talos-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.C | 57 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/proc_chip_ec_feature.xml | 44 |
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> |