diff options
-rw-r--r-- | src/build/citest/etc/patches/centaur.act | 8 | ||||
-rw-r--r-- | src/build/citest/etc/patches/p8.act | 9 | ||||
-rw-r--r-- | src/build/citest/etc/patches/patchlist.txt | 5 | ||||
-rwxr-xr-x | src/build/citest/etc/workarounds.presimsetup | 6 | ||||
-rw-r--r-- | src/usr/hwas/hwas.C | 2 | ||||
-rw-r--r-- | src/usr/hwas/plat/hwasPlat.C | 41 |
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 |