Skip to content

Commit

Permalink
Changing NV target to OBUS_BRICK and mark it a child of OBUS
Browse files Browse the repository at this point in the history
Change-Id: I17b52033d1e6811c320f201056708f31ef34d0e9
RTC:171597
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38481
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: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
Prachi Gupta authored and dcrowell77 committed May 23, 2017
1 parent da19466 commit 3d40df2
Show file tree
Hide file tree
Showing 28 changed files with 870 additions and 246 deletions.
10 changes: 5 additions & 5 deletions src/build/debug/Hostboot/HwpfAttrOverride.pm
Expand Up @@ -6,7 +6,7 @@
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2012,2016
# Contributors Listed Below - COPYRIGHT 2012,2017
# [+] International Business Machines Corp.
#
#
Expand Down Expand Up @@ -61,7 +61,7 @@ use constant TARGET_TYPE_MI => 0x00004000;
use constant TARGET_TYPE_CAPP => 0x00008000;
use constant TARGET_TYPE_DMI => 0x00010000;
use constant TARGET_TYPE_OBUS => 0x00020000;
use constant TARGET_TYPE_NV => 0x00040000;
use constant TARGET_TYPE_OBUS_BRICK => 0x00040000;
use constant TARGET_TYPE_SBE => 0x00080000;
use constant TARGET_TYPE_PPE => 0x00100000;
use constant TARGET_TYPE_PERV => 0x00200000;
Expand Down Expand Up @@ -649,10 +649,10 @@ sub main
$targType = TARGET_TYPE_PHB;
$targ =~ s/^.*pu.phb//;
}
elsif ($targ =~ /pu.nvbus/)
elsif ($targ =~ /pu.obrick/)
{
$targType = TARGET_TYPE_NV;
$targ =~ s/^.*pu.nvbus//;
$targType = TARGET_TYPE_OBUS_BRICK;
$targ =~ s/^.*pu.obrick//;
}
elsif ($targ =~ /pu.ppe/)
{
Expand Down
2 changes: 1 addition & 1 deletion src/include/usr/fapi2/hwpf_fapi2_reasoncodes.H
Expand Up @@ -100,7 +100,7 @@ namespace fapi2
RC_PEC_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1a,
RC_XBUS_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1b,
RC_OBUS_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1c,
RC_NV_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1d,
RC_OBRICK_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1d,
RC_PPE_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1e,
RC_PERV_NO_PROC_FOUND = FAPI2_COMP_ID | 0x1f,
RC_CAPP_NO_PROC_FOUND = FAPI2_COMP_ID | 0x20,
Expand Down
32 changes: 17 additions & 15 deletions src/include/usr/fapi2/target.H
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -217,8 +217,8 @@ inline TARGETING::TYPE convertFapi2TypeToTargeting(fapi2::TargetType i_T)
case fapi2::TARGET_TYPE_OBUS:
o_targetingType = TARGETING::TYPE_OBUS;
break;
case fapi2::TARGET_TYPE_NV:
o_targetingType = TARGETING::TYPE_NV;
case fapi2::TARGET_TYPE_OBUS_BRICK:
o_targetingType = TARGETING::TYPE_OBUS_BRICK;
break;
case fapi2::TARGET_TYPE_SBE:
o_targetingType = TARGETING::TYPE_SBE;
Expand Down Expand Up @@ -314,8 +314,8 @@ inline fapi2::TargetType convertTargetingTypeToFapi2(TARGETING::TYPE i_T)
case TARGETING::TYPE_OBUS:
o_targetingType = fapi2::TARGET_TYPE_OBUS;
break;
case TARGETING::TYPE_NV:
o_targetingType = fapi2::TARGET_TYPE_NV;
case TARGETING::TYPE_OBUS_BRICK:
o_targetingType = fapi2::TARGET_TYPE_OBUS_BRICK;
break;
case TARGETING::TYPE_SBE:
o_targetingType = fapi2::TARGET_TYPE_SBE;
Expand Down Expand Up @@ -368,7 +368,7 @@ inline Target<T, V> Target<K, V>::getParent(void) const
fapi2::TARGET_TYPE_CAPP |
fapi2::TARGET_TYPE_DMI |
fapi2::TARGET_TYPE_OBUS |
fapi2::TARGET_TYPE_NV |
fapi2::TARGET_TYPE_OBUS_BRICK |
fapi2::TARGET_TYPE_SBE |
fapi2::TARGET_TYPE_PPE |
fapi2::TARGET_TYPE_PERV |
Expand All @@ -384,7 +384,7 @@ inline Target<T, V> Target<K, V>::getParent(void) const
fapi2::TARGET_TYPE_XBUS |
fapi2::TARGET_TYPE_OBUS |
fapi2::TARGET_TYPE_CAPP |
fapi2::TARGET_TYPE_NV |
fapi2::TARGET_TYPE_OBUS_BRICK |
fapi2::TARGET_TYPE_MCBIST |
fapi2::TARGET_TYPE_MCS |
fapi2::TARGET_TYPE_MCA |
Expand Down Expand Up @@ -559,13 +559,15 @@ inline Target<T, V> Target<K, V>::getParent(void) const
(T != fapi2::TARGET_TYPE_PROC_CHIP)),
"improper parent of fapi2::TARGET_TYPE_OBUS");

// valid parents for NV
// NV -> PERV
// NV -> PROC
static_assert(!((K == fapi2::TARGET_TYPE_NV) &&
// valid parents for OBUS_BRICK
// OBUS_BRICK -> PERV
// OBUS_BRICK -> OBUS
// OBUS_BRICK -> PROC
static_assert(!((K == fapi2::TARGET_TYPE_OBUS_BRICK) &&
(T != fapi2::TARGET_TYPE_PERV) &&
(T != fapi2::TARGET_TYPE_OBUS) &&
(T != fapi2::TARGET_TYPE_PROC_CHIP)),
"improper parent of fapi2::TARGET_TYPE_NV");
"improper parent of fapi2::TARGET_TYPE_OBUS_BRICK");

// valid parents for CAPP
// CAPP -> PERV
Expand Down Expand Up @@ -666,7 +668,7 @@ FAPI_DBG(ENTER_MRK "getChildren. Type 0x%08x State:0x%08x", T, i_state);
(T != fapi2::TARGET_TYPE_XBUS) &&
(T != fapi2::TARGET_TYPE_OBUS) &&
(T != fapi2::TARGET_TYPE_CAPP) &&
(T != fapi2::TARGET_TYPE_NV) &&
(T != fapi2::TARGET_TYPE_OBUS_BRICK) &&
(T != fapi2::TARGET_TYPE_MCBIST) &&
(T != fapi2::TARGET_TYPE_MCS) &&
(T != fapi2::TARGET_TYPE_MCA) &&
Expand Down Expand Up @@ -762,8 +764,8 @@ FAPI_DBG(ENTER_MRK "getChildren. Type 0x%08x State:0x%08x", T, i_state);
"fapi2::TARGET_TYPE_CAPP has no children");
static_assert((K != fapi2::TARGET_TYPE_OBUS),
"fapi2::TARGET_TYPE_OBUS has no children");
static_assert((K != fapi2::TARGET_TYPE_NV),
"fapi2::TARGET_TYPE_NV has no children");
static_assert((K != fapi2::TARGET_TYPE_OBUS_BRICK),
"fapi2::TARGET_TYPE_OBUS_BRICK has no children");
static_assert((K != fapi2::TARGET_TYPE_SBE),
"fapi2::TARGET_TYPE_SBE has no children");
static_assert((K != fapi2::TARGET_TYPE_PPE),
Expand Down
1 change: 0 additions & 1 deletion src/usr/errl/errlentry.C
Expand Up @@ -62,7 +62,6 @@ extern char hbi_ImageId;
using namespace ERRORLOG;
using namespace HWAS;


namespace ERRORLOG
{

Expand Down
6 changes: 3 additions & 3 deletions src/usr/fapi2/plat_attr_override_sync.C
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -150,8 +150,8 @@ void directOverride()
case fapi2::TARGET_TYPE_OBUS:
l_targetType = TARGETING::TYPE_OBUS;
break;
case fapi2::TARGET_TYPE_NV:
l_targetType = TARGETING::TYPE_NV;
case fapi2::TARGET_TYPE_OBUS_BRICK:
l_targetType = TARGETING::TYPE_OBUS_BRICK;
break;
case fapi2::TARGET_TYPE_SBE:
l_targetType = TARGETING::TYPE_SBE;
Expand Down
6 changes: 3 additions & 3 deletions src/usr/fapi2/plat_utils.C
Expand Up @@ -308,9 +308,9 @@ void xlateTargetType(const fapi2::TargetType i_targetType,
o_class = TARGETING::CLASS_UNIT;
o_type = TARGETING::TYPE_OBUS;
break;
case fapi2::TARGET_TYPE_NV:
case fapi2::TARGET_TYPE_OBUS_BRICK:
o_class = TARGETING::CLASS_UNIT;
o_type = TARGETING::TYPE_NV;
o_type = TARGETING::TYPE_OBUS_BRICK;
break;
case fapi2::TARGET_TYPE_SBE:
o_class = TARGETING::CLASS_UNIT;
Expand Down Expand Up @@ -361,7 +361,7 @@ bool isPhysParentChild(const TargetType i_parentType,
TARGET_TYPE_CAPP |
TARGET_TYPE_DMI |
TARGET_TYPE_OBUS |
TARGET_TYPE_NV |
TARGET_TYPE_OBUS_BRICK |
TARGET_TYPE_SBE |
TARGET_TYPE_PPE |
TARGET_TYPE_PERV |
Expand Down
8 changes: 4 additions & 4 deletions src/usr/fapi2/test/fapi2GetChildrenTest.H
Expand Up @@ -304,12 +304,12 @@ void test_fapi2GetChildren()
{ return i_perv.getChildren<fapi2::TARGET_TYPE_CAPP>(
TARGET_STATE_PRESENT).size(); } },

// NV pervasive has 1 NV children
{PERV_NV_CHILDREN,
// OBUS pervasive has 3 OBUS BRICK children
{PERV_OBUS_BRICK_CHILDREN,
[](TARGETING::ATTR_CHIP_UNIT_type i_unit)
{ return (i_unit == NV_RANGE); },
{ return ((i_unit >= OBUS_LOW) && (i_unit <= OBUS_HIGH)); },
[](Target<fapi2::TARGET_TYPE_PERV>& i_perv)
{ return i_perv.getChildren<fapi2::TARGET_TYPE_NV>(
{ return i_perv.getChildren<fapi2::TARGET_TYPE_OBUS_BRICK>(
TARGET_STATE_PRESENT).size(); } },

// MCBIST/MCS/MCA pervasive has 1 MCBIST child
Expand Down
36 changes: 20 additions & 16 deletions src/usr/fapi2/test/fapi2GetChipletNumTest.H
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2016 */
/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -104,54 +104,58 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
FAPI_INF("Complete testVerifyiPhbChipletNum");
}

void testVerifyNvChipletNum()
void testVerifyObusBrickChipletNum()
{
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
uint8_t l_chip_unit = 0;

FAPI_INF ("Start testVerifyNvChipletNum");
FAPI_INF ("Start testVerifyObusBrickChipletNum");
do
{
// find the all NV units
// find the all OBUS Brick units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predNv(TARGETING::CLASS_UNIT,
TARGETING::TYPE_NV);
TARGETING::PredicateCTM predObusBrick(TARGETING::CLASS_UNIT,
TARGETING::TYPE_OBUS_BRICK);

TARGETING::TargetHandleList l_TargetList;
TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predNv);
&predObusBrick);

if (l_TargetList.empty())
{
TS_FAIL("testVerifyNvChipletNum: empty l_TargetList");
TS_FAIL("testVerifyObusBrickChipletNum: empty l_TargetList");
break;
}

// Iterate through all NV chiplets
// Iterate through all OBUS BRICK chiplets
for (auto & l_Target : l_TargetList)
{
// map Targeting Type to fapi2 Type
Target<fapi2::TARGET_TYPE_NV> fapi2_Target( l_Target);
Target<fapi2::TARGET_TYPE_OBUS_BRICK> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();

FAPI_DBG("testVerifyNvChipletNum HUID: %.8X, ChipletId: %.8X",
FAPI_DBG("testVerifyObusBrickChipletNum HUID: %.8X, ChipletId: %.8X",
TARGETING::get_huid(l_Target), l_chiplet_id);

// NV 0,1 maps to pervasive id 0x05
l_exp_chiplet_id = START_NV_CHIPLET_NUM;
//OBUS Brick's chiplet id should be same as its parent
auto l_parent = static_cast<TARGETING::Target*>
(fapi2_Target.getParent<TARGET_TYPE_OBUS>());
l_chip_unit = l_parent->getAttr<TARGETING::ATTR_CHIP_UNIT>();
l_exp_chiplet_id = l_chip_unit + START_OBUS_BRICK_CHIPLET_NUM;

if (l_chiplet_id != l_exp_chiplet_id)
{
TS_FAIL("testVerifyNvChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
TS_FAIL("testVerifyObusBrickChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
l_exp_chiplet_id, l_chiplet_id);
break;
}
}
} while(0);
FAPI_INF("Complete testVerifyNvChipletNum");
FAPI_INF("Complete testVerifyObusBrickChipletNum");
}

void testVerifyPecChipletNum()
Expand Down Expand Up @@ -789,7 +793,7 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite

testVerifyCappChipletNum();

testVerifyNvChipletNum();
testVerifyObusBrickChipletNum();

testVerifyPecChipletNum();

Expand Down
27 changes: 14 additions & 13 deletions src/usr/fapi2/test/fapi2GetParentTest.H
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -138,8 +138,8 @@ void test_fapi2GetParent()
targeting_targets[MY_XBUS]);
Target<fapi2::TARGET_TYPE_OBUS> fapi2_obusTarget(
targeting_targets[MY_OBUS]);
Target<fapi2::TARGET_TYPE_NV> fapi2_nvTarget(
targeting_targets[MY_NV]);
Target<fapi2::TARGET_TYPE_OBUS_BRICK> fapi2_oBrickTarget(
targeting_targets[MY_OBUS_BRICK]);
Target<fapi2::TARGET_TYPE_PPE> fapi2_ppeTarget(
targeting_targets[MY_PPE]);
Target<fapi2::TARGET_TYPE_PERV> fapi2_pervTarget(
Expand Down Expand Up @@ -742,31 +742,31 @@ void test_fapi2GetParent()
numFails++;
}

//Check NV's parents
//Check OBUS BRICK's parents
l_tempTargetingParent =
static_cast<TARGETING::Target*>(
fapi2_nvTarget.getParent<TARGET_TYPE_PROC_CHIP>());
fapi2_oBrickTarget.getParent<TARGET_TYPE_PROC_CHIP>());
numTests++;
if(TARGETING::get_huid(l_nimbusProc) !=
TARGETING::get_huid(l_tempTargetingParent))
{
uint8_t l_instance = 0;
targeting_targets[MY_NV]->
targeting_targets[MY_OBUS_BRICK]->
tryGetAttr<TARGETING::ATTR_CHIP_UNIT>(l_instance);
/*@
* @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE
* @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST
* @reasoncode fapi2::RC_NV_NO_PROC_FOUND
* @reasoncode fapi2::RC_OBRICK_NO_PROC_FOUND
* @userdata1[0:31] Expected Parent HUID
* @userdata1[32:63] Actual Parent HUID
* @userdata2[0:31] Instance of NV
* @userdata2[0:31] Instance of OBUS BRICK
* @userdata2[32:63] fapi2 Type of expected parent
* @devdesc Could not find the parent PROC of this
* NV target
* OBUS BRICK target
*/
l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST,
fapi2::RC_NV_NO_PROC_FOUND,
fapi2::RC_OBRICK_NO_PROC_FOUND,
TWO_UINT32_TO_UINT64(
TO_UINT32(
TARGETING::get_huid(
Expand All @@ -779,7 +779,7 @@ void test_fapi2GetParent()
TO_UINT32(TARGET_TYPE_PROC_CHIP)),
true/*SW Error*/);
errlCommit(l_err,HWPF_COMP_ID);
TS_FAIL( "fapi2TargetTest::Unable to find NV's PROC parent!");
TS_FAIL( "fapi2TargetTest::Unable to find OBUS BRICK's PROC parent!");
numFails++;
}

Expand Down Expand Up @@ -987,9 +987,10 @@ void test_fapi2GetParent()
{targeting_targets[MY_OBUS],
[](TARGETING::Target* i_pTarget)
{return getPervasiveParent<TARGET_TYPE_OBUS>(i_pTarget); }},
{targeting_targets[MY_NV],
{targeting_targets[MY_OBUS_BRICK],
[](TARGETING::Target* i_pTarget)
{return getPervasiveParent<TARGET_TYPE_NV>(i_pTarget); }},
{return
getPervasiveParent<TARGET_TYPE_OBUS_BRICK>(i_pTarget);}},
{targeting_targets[MY_CAPP],
[](TARGETING::Target* i_pTarget)
{return getPervasiveParent<TARGET_TYPE_CAPP>(i_pTarget); }},
Expand Down

0 comments on commit 3d40df2

Please sign in to comment.