summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/usr/hdat/hdatmsvpd.C2
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/usr/hdat/hdatmsvpd.C b/src/usr/hdat/hdatmsvpd.C
index fb86e10bd..def8a37e8 100755
--- a/src/usr/hdat/hdatmsvpd.C
+++ b/src/usr/hdat/hdatmsvpd.C
@@ -926,6 +926,8 @@ void HdatMsVpd::prt()
iv_mover.hdatMoverAddr.lo);
HDAT_INF(" hdatBSRAddr = 0X %08X %08X ", iv_mover.hdatBSRAddr.hi,
iv_mover.hdatBSRAddr.lo);
+ HDAT_INF(" hdatXSCOMAddr = 0X %08X %08X", iv_mover.hdatXSCOMAddr.hi,
+ iv_mover.hdatXSCOMAddr.lo);
HDAT_INF(" **hdatMsVpdImtAddrRange_t**");
hdatPrintHdrs(NULL, NULL, &iv_IMTaddrRngArrayHdr, NULL);
diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C
index d16d8b75c..8fe580763 100755
--- a/src/usr/targeting/targetservicestart.C
+++ b/src/usr/targeting/targetservicestart.C
@@ -847,6 +847,10 @@ static void adjustMemoryMap( TargetService& i_targetService )
ATTR_LPC_BUS_ADDR_type l_lpcBase =
l_pTopLevel->getAttr<ATTR_LPC_BUS_ADDR>();
+ // Whether to update the SYS's ATTR_XSCOM_BASE_ADDRESS with a new
+ // BAR before returning from this function
+ bool l_updateSysXscomBar = false;
+
// Loop through all the procs to recompute all the BARs
// also find the victim to swap with
Target* l_swapVictim = nullptr;
@@ -874,11 +878,13 @@ static void adjustMemoryMap( TargetService& i_targetService )
if(l_curXscomBAR & IS_SMF_ADDR_BIT)
{
l_xscomBAR |= IS_SMF_ADDR_BIT;
+ l_updateSysXscomBar = true;
}
TARG_INF( " XSCOM=%.16llX", l_xscomBAR );
l_procChip->setAttr<ATTR_XSCOM_BASE_ADDRESS>(l_xscomBAR);
+
// See if this chip's space now belongs to the master
if( l_xscomBAR == l_curXscomBAR )
{
@@ -1073,6 +1079,14 @@ static void adjustMemoryMap( TargetService& i_targetService )
XSCOM::get_master_bar() );
TARG_ASSERT( false, "XSCOM BARs are inconsistent" );
}
+
+ if(l_updateSysXscomBar)
+ {
+ l_pTopLevel->setAttr<ATTR_XSCOM_BASE_ADDRESS>(
+ l_xscomBase |= IS_SMF_ADDR_BIT);
+ TARG_INF("Updating the SYS XSCOM BAR to 0x%.16llX",
+ l_xscomBase |= IS_SMF_ADDR_BIT);
+ }
}
OpenPOWER on IntegriCloud