summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/build/citest/etc/patches/centaur.act8
-rw-r--r--src/build/citest/etc/patches/p8.act9
-rw-r--r--src/build/citest/etc/patches/patchlist.txt5
-rwxr-xr-xsrc/build/citest/etc/workarounds.presimsetup6
-rw-r--r--src/usr/hwas/hwas.C2
-rw-r--r--src/usr/hwas/plat/hwasPlat.C41
6 files changed, 30 insertions, 41 deletions
diff --git a/src/build/citest/etc/patches/centaur.act b/src/build/citest/etc/patches/centaur.act
new file mode 100644
index 000000000..b68f9ca9a
--- /dev/null
+++ b/src/build/citest/etc/patches/centaur.act
@@ -0,0 +1,8 @@
+
+CAUSE_EFFECT {
+ # copy chip ID
+ LABEL=[DEVICE_ID_REG] # TPTOP.PIB.PCBMS.DEVICE_ID_REG
+ WATCH_READ=[REG(0x000F000F)] # if someone reads this
+ # No cause since we always want this behavior
+ EFFECT: TARGET=[REG(0x000F000F)] OP=[EQUALTO,BUF] DATA=[LOGIC(0xFF000009)] # copy over
+}
diff --git a/src/build/citest/etc/patches/p8.act b/src/build/citest/etc/patches/p8.act
new file mode 100644
index 000000000..6cf80ab4a
--- /dev/null
+++ b/src/build/citest/etc/patches/p8.act
@@ -0,0 +1,9 @@
+
+CAUSE_EFFECT {
+ # copy chip ID
+ LABEL=[DEVICE_ID_REG] # EH.TPCHIP.PIB.PCBMS.DEVICE_ID_REG
+ WATCH_READ=[REG(0x000F000F)] # if someone read this
+ # No cause since we always want this behavior
+ EFFECT: TARGET=[REG(0x000F000F)] OP=[EQUALTO,BUF] DATA=[LOGIC(0xFF000009)] # copy over
+}
+
diff --git a/src/build/citest/etc/patches/patchlist.txt b/src/build/citest/etc/patches/patchlist.txt
index e69de29bb..3a3975df3 100644
--- a/src/build/citest/etc/patches/patchlist.txt
+++ b/src/build/citest/etc/patches/patchlist.txt
@@ -0,0 +1,5 @@
+Add chipid and startclocks_chiplets action
+-RTC: task 40101 will be used to remove the patch
+-CMVC: Defect 831420 was used to check the changes into fips810
+-Files: p8.act , centaur.act
+-Coreq: associated changes in workarounds.presimsetup need to be removed.
diff --git a/src/build/citest/etc/workarounds.presimsetup b/src/build/citest/etc/workarounds.presimsetup
index eb9455f21..a8be1f7b0 100755
--- a/src/build/citest/etc/workarounds.presimsetup
+++ b/src/build/citest/etc/workarounds.presimsetup
@@ -27,6 +27,12 @@
## to setup the sandbox
##
+# remove this with task 40101
+echo "+++ Copy new centaur.act and p8.act for Chip ID/EC."
+mkdir -p $sb/simu/data/cec-chip/
+cat $BACKING_BUILD/src/simu/data/cec-chip/centaur.act $HOSTBOOTROOT/src/build/citest/etc/patches/centaur.act > $sb/simu/data/cec-chip/centaur.act
+cat $BACKING_BUILD/src/simu/data/cec-chip/p8.act $HOSTBOOTROOT/src/build/citest/etc/patches/p8.act > $sb/simu/data/cec-chip/p8.act
+
echo "+++ Copy desired VENICE config file to sandbox and modify L3 to 8MB."
mkdir -p $sb/simu/configs
cp --update $BACKING_BUILD/src/simu/configs/P8_VENICE.config $sb/simu/configs
diff --git a/src/usr/hwas/hwas.C b/src/usr/hwas/hwas.C
index c451b536f..b77c37dd1 100644
--- a/src/usr/hwas/hwas.C
+++ b/src/usr/hwas/hwas.C
@@ -142,7 +142,7 @@ errlHndl_t discoverTargets()
{
if (pSys == NULL)
{
- // shouldn't happen, but if it does, then we're done - nothing present.
+ // shouldn't happen; if it does, then we're done - nothing present.
HWAS_ERR("pSys NULL - nothing present");
break; // break out of the do/while so that we can return
}
diff --git a/src/usr/hwas/plat/hwasPlat.C b/src/usr/hwas/plat/hwasPlat.C
index 8538a8fac..9bf5a5ed4 100644
--- a/src/usr/hwas/plat/hwasPlat.C
+++ b/src/usr/hwas/plat/hwasPlat.C
@@ -65,12 +65,8 @@ errlHndl_t platReadIDEC(const TargetHandleList &i_targets)
{
TargetHandle_t pTarget = *pTarget_it;
- if (pTarget == pMasterProc)
+ if (pTarget->getAttr<ATTR_CLASS>() == CLASS_CHIP)
{
- // we have to handle this special and first. issue is that we can't
- // do a deviceRead of an FSI address on 'ourselves'. so, if the
- // target is the master proccessor, which is where we are running,
- // then we need to do the deviceRead of the SCOM address.
uint64_t id_ec;
size_t op_size = sizeof(id_ec);
errl = DeviceFW::deviceRead(pTarget, &id_ec,
@@ -104,41 +100,6 @@ errlHndl_t platReadIDEC(const TargetHandleList &i_targets)
// break out so that we can return an error
break;
}
- } else if (pTarget->getAttr<ATTR_CLASS>() == CLASS_CHIP)
- { // CLASS_CHIP only
- uint32_t id_ec;
- size_t op_size = sizeof(id_ec);
- errl = DeviceFW::deviceRead(pTarget, &id_ec,
- op_size, DEVICE_FSI_ADDRESS(0x1028));
-
- if (errl == NULL)
- { // no error, so we got a valid ID/EC value back
- // EC - nibbles 0,2
- // 01234567
- uint8_t ec = (((id_ec & 0xF0000000) >> 24) |
- ((id_ec & 0x00F00000) >> 20));
- pTarget->setAttr<ATTR_EC>(ec);
-
- // ID - nibbles 1,5,3,4
- // 01234567
- uint32_t id = (((id_ec & 0x0F000000) >> 12) |
- ((id_ec & 0x00000F00) >> 0) |
- ((id_ec & 0x000F0000) >> 12) |
- ((id_ec & 0x0000F000) >> 12));
- pTarget->setAttr<ATTR_CHIP_ID>(id);
- HWAS_DBG( "pTarget %x (%p) id %x ec %x",
- target_to_uint64(pTarget), pTarget, id, ec);
- }
- else
- { // errl was set - this is an error condition.
- HWAS_ERR( "pTarget %x (%p) %x/%x - failed ID/EC read",
- target_to_uint64(pTarget), pTarget,
- pTarget->getAttr<ATTR_CLASS>(),
- pTarget->getAttr<ATTR_TYPE>());
-
- // break out so that we can return an error
- break;
- }
}
else
{ // skipping - no ID/EC on this target
OpenPOWER on IntegriCloud