diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2019-01-07 13:25:42 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-09 08:11:52 -0600 |
commit | b9a994a7a57a0d909b452e4e8a385224498beae3 (patch) | |
tree | afc26aa2cd10ed83155a00ea762f7ac20b53a3ed /src/usr/isteps | |
parent | 756a8239c0619b26c5f4951d26adac634994bbef (diff) | |
download | talos-hostboot-b9a994a7a57a0d909b452e4e8a385224498beae3.tar.gz talos-hostboot-b9a994a7a57a0d909b452e4e8a385224498beae3.zip |
Support version 2 of PEC_PCIE_HX_KEYWORD_DATA
Some old hardware incorrectly filled in version 1
of the HX_KEYWORD. This new version was created so old hardware
will not stop system IPL. New cards will be updated to this
new version, so they will support PCIE bifurcation.
Change-Id: Ie2b9dee66d1905a39d6f2b734e50b070f63e819d
CQ:SW453106
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70156
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>
Reviewed-by: Christian R. Geddes <crgeddes@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/isteps')
-rw-r--r-- | src/usr/isteps/istep10/host_proc_pcie_scominit.C | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/usr/isteps/istep10/host_proc_pcie_scominit.C b/src/usr/isteps/istep10/host_proc_pcie_scominit.C index bc4ee9b18..8facfb096 100644 --- a/src/usr/isteps/istep10/host_proc_pcie_scominit.C +++ b/src/usr/isteps/istep10/host_proc_pcie_scominit.C @@ -292,7 +292,7 @@ bool compareChipUnits(TARGETING::Target *l_t1, enum hxKeywordRc { KEYWORD_VALID = 0, - KEYWORD_NOT_SET, + VERSION_IGNORE_DATA, VERSION_NOT_SUPPORTED, TOO_MANY_LANE_SETS, INVALID_DEVICE_NUMBER @@ -303,11 +303,6 @@ hxKeywordRc getLaneMaskFromHxKeyword( ATTR_PEC_PCIE_HX_KEYWORD_DATA_type &i_kw, ATTR_PROC_PCIE_LANE_MASK_type& o_laneMask, uint8_t i_pec_num) { - return KEYWORD_NOT_SET; -// @todo SW453106 - reenable when a workaround for bad vpd is figured out -// Keep seeing an invalid HX Keyword: 01029090 -#if 0 - size_t l_keywordSize = sizeof(ATTR_PEC_PCIE_HX_KEYWORD_DATA_type); @@ -320,16 +315,17 @@ hxKeywordRc getLaneMaskFromHxKeyword( ATTR_PEC_PCIE_HX_KEYWORD_DATA_type &i_kw, do { - // Version 0 means HX Keyword is not set, so use defaults // This is the most likely case - if( l_keyword.version == 0 ) + // Version 0 means HX Keyword is not set, so use defaults + // Version 1 is incorrectly set on Bearpaw cards (skip using HX keyword) + if( l_keyword.version < 2 ) { - l_rc = KEYWORD_NOT_SET; + l_rc = VERSION_IGNORE_DATA; break; } - // Currently only version 1 is defined for firmware support - if( l_keyword.version != 1 ) + // Currently only version 2 is defined for firmware support + if( l_keyword.version != 2 ) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "HX keyword version %d is not supported yet, " @@ -408,8 +404,6 @@ hxKeywordRc getLaneMaskFromHxKeyword( ATTR_PEC_PCIE_HX_KEYWORD_DATA_type &i_kw, } }while(0); return l_rc; -#endif - } errlHndl_t createElogFromHxKeywordRc( hxKeywordRc i_rc, @@ -528,17 +522,17 @@ errlHndl_t calculateEffectiveLaneMask( // overwrite the default mask we setup earlier memcpy(o_effectiveLaneMask,l_laneMask,sizeof(l_laneMask)); } - else if (l_rc == KEYWORD_NOT_SET ) + else if ( l_rc == VERSION_IGNORE_DATA ) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "HX keyword is not set, using default lane mask"); + "HX keyword is ignored version, using default lane mask"); } else { TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERR>>calculateEffectiveLaneMask()> " - "an error occurred while parsing the HX keyword, return " - "the error and use default lane mask"); + "ERR>>calculateEffectiveLaneMask()> " + "an error occurred while parsing the HX keyword, return " + "the error and use default lane mask"); // create an elog from the rc here pError = createElogFromHxKeywordRc(l_rc, i_pecTarget, |