Skip to content

Commit

Permalink
Support version 2 of PEC_PCIE_HX_KEYWORD_DATA
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mderkse1 authored and dcrowell77 committed Jan 9, 2019
1 parent 756a823 commit b9a994a
Showing 1 changed file with 12 additions and 18 deletions.
30 changes: 12 additions & 18 deletions src/usr/isteps/istep10/host_proc_pcie_scominit.C
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);

Expand All @@ -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, "
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit b9a994a

Please sign in to comment.