summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/fapi2/plat_hw_access.C136
-rw-r--r--src/usr/fapi2/plat_utils.C293
-rw-r--r--src/usr/isteps/istep11/makefile1
-rw-r--r--src/usr/scan/scandd.C6
4 files changed, 251 insertions, 185 deletions
diff --git a/src/usr/fapi2/plat_hw_access.C b/src/usr/fapi2/plat_hw_access.C
index e39632ccc..5fbabee11 100644
--- a/src/usr/fapi2/plat_hw_access.C
+++ b/src/usr/fapi2/plat_hw_access.C
@@ -928,12 +928,13 @@ ReturnCode platModifyRing(const Target<TARGET_TYPE_ALL>& i_target,
return l_rc;
}
-/// @brief passing a 'Put Ring from Image' message to SBE with RingId_t
-ReturnCode platPutRing(const Target<TARGET_TYPE_ALL>& i_target,
+/// @brief 'Put Ring from Image' to centaur - overloaded template function for
+// TARGET_TYPE_MEMBUF_CHIP targets
+ReturnCode platPutRing(const Target<TARGET_TYPE_MEMBUF_CHIP>& i_target,
const RingId_t i_ringID,
- const RingMode i_ringMode = RING_MODE_HEADER_CHECK)
+ const RingMode i_ringMode)
{
- FAPI_DBG("Entering: platPutRing() with RingId_t");
+ FAPI_DBG("Entering: platPutRing() with RingId_t for TARGET_TYPE_MEMBUF_CHIP");
ReturnCode l_rc = FAPI2_RC_SUCCESS;
errlHndl_t l_err = NULL;
@@ -941,45 +942,74 @@ ReturnCode platPutRing(const Target<TARGET_TYPE_ALL>& i_target,
// trace in common fapi2_hw_access.H
bool l_traceit = platIsScanTraceEnabled();
- //convert const RingId_t to RingId_t
- RingId_t l_ringID = reinterpret_cast<RingId_t>(i_ringID);
+ unsigned char * l_ringData = nullptr;
+ size_t l_ringLength = 0;
+ uint64_t l_ringAddress = 0;
- // Extract the component pointer
- TARGETING::Target* l_target =
- reinterpret_cast<TARGETING::Target*>(i_target.get());
-
- // Grab the name of the target
- TARGETING::ATTR_FAPI_NAME_type l_targName = {0};
- fapi2::toString(i_target, l_targName, sizeof(l_targName));
-
- uint64_t l_flag = platGetDDScanMode(i_ringMode);
- size_t l_size = (size_t) 0;
-
- FAPI_DBG("platPutRing l_target : %.16llX i_targetType %.16llX",
- l_target,
- l_target->getAttr<TARGETING::ATTR_TYPE>());
-
- FAPI_DBG("platPutRing l_RingID :"
- " %.16llX i_ringMode %.16llX l_flag %.16llX",
- static_cast<uint64_t>(l_ringID), i_ringMode, l_flag );
-
- l_err = deviceWrite(l_target,
- nullptr,
- l_size,
- DEVICE_SCAN_SBE_ADDRESS(l_ringID,i_ringMode,l_flag));
+ // grab the ring data from the cen.hw_image
+ l_rc = get_ring(i_target, i_ringID, l_ringData,
+ l_ringLength, l_ringAddress);
- if(l_err)
+ if( l_rc == fapi2::FAPI2_RC_SUCCESS )
{
- FAPI_ERR("platPutRing: deviceWrite returns error!");
- // Add the error log pointer as data to the ReturnCode
- l_rc.setPlatDataPtr(reinterpret_cast<void *> (l_err));
- }
+ if( l_ringLength != 0 )
+ {
+ // Extract the component pointer
+ TARGETING::Target* l_target =
+ reinterpret_cast<TARGETING::Target*>(i_target.get());
- if (l_traceit)
+ // Grab the name of the target
+ TARGETING::ATTR_FAPI_NAME_type l_targName = {0};
+ fapi2::toString(i_target, l_targName, sizeof(l_targName));
+
+ uint64_t l_flag = platGetDDScanMode(i_ringMode);
+
+ FAPI_DBG("platPutRing l_target : %.16llX i_targetType %.16llX",
+ l_target,
+ l_target->getAttr<TARGETING::ATTR_TYPE>());
+
+ FAPI_DBG("platPutRing i_RingID :"
+ " %.16llX i_ringMode %.16llX l_flag %.16llX l_ringLength %.16llX",
+ static_cast<uint64_t>(i_ringID), i_ringMode,
+ l_flag,static_cast<uint64_t>(l_ringLength));
+
+ // calculate the buffer size based on the number of bits
+ // in the ring,
+ size_t l_bufferSize = ((l_ringLength + 7) >> 3);
+
+ l_err = deviceWrite(l_target,
+ l_ringData,
+ l_bufferSize,
+ DEVICE_SCAN_ADDRESS(l_ringAddress,l_ringLength,l_flag));
+
+ if(l_err)
+ {
+ FAPI_ERR("platPutRing: deviceWrite returns error!");
+ // Add the error log pointer as data to the ReturnCode
+ l_rc.setPlatDataPtr(reinterpret_cast<void *> (l_err));
+ }
+
+ if (l_traceit)
+ {
+ FAPI_SCAN("TRACE : PUTRING w RingId_t : %s : %.16llX",
+ l_targName,
+ static_cast<uint64_t>(i_ringID));
+ }
+ }
+ else
+ {
+ // $TODO RTC:171739 - add error case, current procedure calls
+ // with ring ids for rings which currently do not have any known
+ // content but were scanned in p8 - Joe confirmed these rings do
+ // not currently have content - we will need to decide if procedure
+ // should be updated to remove the calls or we continue to ignore
+ FAPI_INF("platPutRing: called with unsupported ring ID %d!", i_ringID);
+ }
+ }
+ else
{
- FAPI_SCAN("TRACE : PUTRING w RingId_t : %s : %.16llX",
- l_targName,
- static_cast<uint64_t>(l_ringID));
+ // get_ring() call failed
+ FAPI_ERR("get_ring() returned error");
}
FAPI_DBG(EXIT_MRK "platPutRing() with RingId_t");
@@ -994,20 +1024,20 @@ uint64_t platGetDDScanMode(const uint32_t i_ringMode)
uint32_t l_scanMode = 0;
if ( ((i_ringMode & fapi2::RING_MODE_SET_PULSE_NO_OPCG_COND) ==
- fapi2::RING_MODE_SET_PULSE_NO_OPCG_COND) ||
- ((i_ringMode & fapi2::RING_MODE_SET_PULSE_NSL) ==
- fapi2::RING_MODE_SET_PULSE_NSL) ||
- ((i_ringMode & fapi2::RING_MODE_SET_PULSE_SL) ==
- fapi2::RING_MODE_SET_PULSE_SL) ||
- ((i_ringMode & fapi2::RING_MODE_SET_PULSE_ALL) ==
- fapi2::RING_MODE_SET_PULSE_ALL) )
+ fapi2::RING_MODE_SET_PULSE_NO_OPCG_COND) ||
+ ((i_ringMode & fapi2::RING_MODE_SET_PULSE_NSL) ==
+ fapi2::RING_MODE_SET_PULSE_NSL) ||
+ ((i_ringMode & fapi2::RING_MODE_SET_PULSE_SL) ==
+ fapi2::RING_MODE_SET_PULSE_SL) ||
+ ((i_ringMode & fapi2::RING_MODE_SET_PULSE_ALL) ==
+ fapi2::RING_MODE_SET_PULSE_ALL) )
{
l_scanMode |= SCAN::SET_PULSE;
}
// Header Check
if ((i_ringMode & fapi2::RING_MODE_NO_HEADER_CHECK) ==
- fapi2::RING_MODE_NO_HEADER_CHECK )
+ fapi2::RING_MODE_NO_HEADER_CHECK )
{
l_scanMode |= SCAN::NO_HEADER_CHECK;
}
@@ -1023,8 +1053,8 @@ void platSetOpMode(const OpModes i_mode)
{
FAPI_INF("Setting fapi2::opMode to be 0x%x", i_mode);
opMode = static_cast<OpModes>(
- static_cast<uint8_t>(opMode) | static_cast<uint8_t>(i_mode)
- );
+ static_cast<uint8_t>(opMode) | static_cast<uint8_t>(i_mode)
+ );
return;
}
@@ -1056,11 +1086,11 @@ uint8_t platGetPIBErrorMask(void)
// --------------------------------------------------------------------------
/**
-* @brief Determine if a given target is on the master proc chip
-* @param[in] i_Target TARGETING::Target which op is being called on
-* @param[out] i_isMaster True if on master proc chip, false if not
-* @return errlHndl_t
-*/
+ * @brief Determine if a given target is on the master proc chip
+ * @param[in] i_Target TARGETING::Target which op is being called on
+ * @param[out] i_isMaster True if on master proc chip, false if not
+ * @return errlHndl_t
+ */
errlHndl_t isOnMasterProc(TARGETING::Target * i_target, bool & o_isMaster)
{
errlHndl_t l_errl = nullptr;
diff --git a/src/usr/fapi2/plat_utils.C b/src/usr/fapi2/plat_utils.C
index a1b95ec8f..9659476da 100644
--- a/src/usr/fapi2/plat_utils.C
+++ b/src/usr/fapi2/plat_utils.C
@@ -43,6 +43,10 @@
#include <hwpf_fapi2_reasoncodes.H>
#include <attributeenums.H>
+// $TODO RTC:171739 - get the ring from cen.hw_ref_image in pnor
+// remove when get_ring is using the hw image
+#include <ring_data.H>
+
#if __HOSTBOOT_RUNTIME
#include "handleSpecialWakeup.H"
#endif
@@ -73,6 +77,35 @@ namespace fapi2
//thread_local ReturnCode current_err;
ReturnCode current_err;
+// $TODO RTC:171739 - get the ring from cen.hw_ref_image in pnor
+// This temp verion of the function will return hardcoded
+// ring data for the ring ids required for step 11 BUP
+template<>
+ReturnCode get_ring(Target<TARGET_TYPE_MEMBUF_CHIP>i_target,
+ const uint16_t ringId,
+ unsigned char *&o_ringData,
+ size_t &o_ringLength,
+ uint64_t &o_ringAddress)
+{
+
+ o_ringLength = 0;
+ o_ringData = nullptr;
+ o_ringAddress = 0;
+
+ RING_MAP::iterator it;
+ // search for the ring id in the map
+ it = ringMap.find(ringId);
+ if (it != ringMap.end())
+ {
+ // found it
+ o_ringAddress = it->second.ringAddress;
+ o_ringLength = it->second.ringLength;
+ o_ringData = it->second.ringData;
+ }
+
+ return ReturnCode();
+}
+
///
/// @brief Translates a FAPI callout priority to an HWAS callout priority
///
@@ -81,16 +114,16 @@ ReturnCode current_err;
/// @return HWAS callout priority
///
HWAS::callOutPriority xlateCalloutPriority(
- const fapi2::CalloutPriorities::CalloutPriority i_fapiPri)
+ const fapi2::CalloutPriorities::CalloutPriority i_fapiPri)
{
// Use the CalloutPriority enum value as an index
HWAS::callOutPriority l_priority = HWAS::SRCI_PRIORITY_HIGH;
size_t l_index = i_fapiPri;
const HWAS::callOutPriority HWAS_PRI[] = {HWAS::SRCI_PRIORITY_LOW,
- HWAS::SRCI_PRIORITY_MED,
- HWAS::SRCI_PRIORITY_HIGH,
- HWAS::SRCI_PRIORITY_NONE};
+ HWAS::SRCI_PRIORITY_MED,
+ HWAS::SRCI_PRIORITY_HIGH,
+ HWAS::SRCI_PRIORITY_NONE};
if (l_index < (sizeof(HWAS_PRI)/sizeof(HWAS::callOutPriority)))
{
@@ -99,7 +132,7 @@ HWAS::callOutPriority xlateCalloutPriority(
else
{
FAPI_ERR("fapi2::xlateCalloutPriority: Unknown priority 0x%x, assuming HIGH",
- i_fapiPri);
+ i_fapiPri);
}
return l_priority;
@@ -113,7 +146,7 @@ HWAS::callOutPriority xlateCalloutPriority(
/// * @return HWAS Clock HW callout
///
HWAS::clockTypeEnum xlateClockHwCallout(
- const fapi2::HwCallouts::HwCallout i_fapiClock)
+ const fapi2::HwCallouts::HwCallout i_fapiClock)
{
// Use the HwCallout enum value as an index
HWAS::clockTypeEnum l_clock = HWAS::TODCLK_TYPE;
@@ -132,7 +165,7 @@ HWAS::clockTypeEnum xlateClockHwCallout(
else
{
FAPI_ERR("fapi::xlateClockHwCallout: Unknown clock 0x%x, assuming TOD",
- i_fapiClock);
+ i_fapiClock);
}
return l_clock;
@@ -146,7 +179,7 @@ HWAS::clockTypeEnum xlateClockHwCallout(
/// * @return HWAS part HW callout
///
HWAS::partTypeEnum xlatePartHwCallout(
- const fapi2::HwCallouts::HwCallout i_fapiPart)
+ const fapi2::HwCallouts::HwCallout i_fapiPart)
{
// Use the HwCallout enum value as an index
HWAS::partTypeEnum l_part = HWAS::NO_PART_TYPE;
@@ -156,39 +189,39 @@ HWAS::partTypeEnum xlatePartHwCallout(
switch (i_fapiPart)
{
- case HwCallouts::FLASH_CONTROLLER_PART:
- l_part = HWAS::FLASH_CONTROLLER_PART_TYPE;
- break;
- case HwCallouts::PNOR_PART:
- l_part = HWAS::PNOR_PART_TYPE;
- break;
- case HwCallouts::SBE_SEEPROM_PART:
- l_part = HWAS::SBE_SEEPROM_PART_TYPE;
- break;
- case HwCallouts::VPD_PART:
- l_part = HWAS::VPD_PART_TYPE;
- break;
- case HwCallouts::LPC_SLAVE_PART:
- l_part = HWAS::LPC_SLAVE_PART_TYPE;
- break;
- case HwCallouts::GPIO_EXPANDER_PART:
- l_part = HWAS::GPIO_EXPANDER_PART_TYPE;
- break;
- case HwCallouts::SPIVID_SLAVE_PART:
- l_part = HWAS::SPIVID_SLAVE_PART_TYPE;
- break;
- case HwCallouts::TOD_CLOCK:
- l_part = HWAS::TOD_CLOCK;
- break;
- case HwCallouts::MEM_REF_CLOCK:
- l_part = HWAS::MEM_REF_CLOCK;
- break;
- case HwCallouts::PROC_REF_CLOCK:
- l_part = HWAS::PROC_REF_CLOCK;
- break;
- case HwCallouts::PCI_REF_CLOCK:
- l_part = HWAS::PCI_REF_CLOCK;
- break;
+ case HwCallouts::FLASH_CONTROLLER_PART:
+ l_part = HWAS::FLASH_CONTROLLER_PART_TYPE;
+ break;
+ case HwCallouts::PNOR_PART:
+ l_part = HWAS::PNOR_PART_TYPE;
+ break;
+ case HwCallouts::SBE_SEEPROM_PART:
+ l_part = HWAS::SBE_SEEPROM_PART_TYPE;
+ break;
+ case HwCallouts::VPD_PART:
+ l_part = HWAS::VPD_PART_TYPE;
+ break;
+ case HwCallouts::LPC_SLAVE_PART:
+ l_part = HWAS::LPC_SLAVE_PART_TYPE;
+ break;
+ case HwCallouts::GPIO_EXPANDER_PART:
+ l_part = HWAS::GPIO_EXPANDER_PART_TYPE;
+ break;
+ case HwCallouts::SPIVID_SLAVE_PART:
+ l_part = HWAS::SPIVID_SLAVE_PART_TYPE;
+ break;
+ case HwCallouts::TOD_CLOCK:
+ l_part = HWAS::TOD_CLOCK;
+ break;
+ case HwCallouts::MEM_REF_CLOCK:
+ l_part = HWAS::MEM_REF_CLOCK;
+ break;
+ case HwCallouts::PROC_REF_CLOCK:
+ l_part = HWAS::PROC_REF_CLOCK;
+ break;
+ case HwCallouts::PCI_REF_CLOCK:
+ l_part = HWAS::PCI_REF_CLOCK;
+ break;
}
@@ -203,7 +236,7 @@ HWAS::partTypeEnum xlatePartHwCallout(
/// * @return HWAS procedure callout
///
HWAS::epubProcedureID xlateProcedureCallout(
- const fapi2::ProcedureCallouts::ProcedureCallout i_fapiProc)
+ const fapi2::ProcedureCallouts::ProcedureCallout i_fapiProc)
{
// Use the ProcedureCallout enum value as an index
HWAS::epubProcedureID l_proc = HWAS::EPUB_PRC_HB_CODE;
@@ -223,7 +256,7 @@ HWAS::epubProcedureID xlateProcedureCallout(
else
{
FAPI_ERR("fapi2::xlateProcedureCallout: Unknown proc 0x%x, assuming CODE",
- i_fapiProc);
+ i_fapiProc);
}
return l_proc;
@@ -237,96 +270,96 @@ HWAS::epubProcedureID xlateProcedureCallout(
/// * @param[o] o_type Targeting type
///
void xlateTargetType(const fapi2::TargetType i_targetType,
- TARGETING::CLASS & o_class,
- TARGETING::TYPE & o_type)
+ TARGETING::CLASS & o_class,
+ TARGETING::TYPE & o_type)
{
switch (i_targetType)
{
- case fapi2::TARGET_TYPE_SYSTEM:
- o_class = TARGETING::CLASS_SYS;
- o_type = TARGETING::TYPE_SYS;
- break;
- case fapi2::TARGET_TYPE_DIMM:
- o_class = TARGETING::CLASS_LOGICAL_CARD;
- o_type = TARGETING::TYPE_DIMM;
- break;
- case fapi2::TARGET_TYPE_PROC_CHIP:
- o_class = TARGETING::CLASS_CHIP;
- o_type = TARGETING::TYPE_PROC;
- break;
- case fapi2::TARGET_TYPE_MEMBUF_CHIP:
- o_class = TARGETING::CLASS_CHIP;
- o_type = TARGETING::TYPE_MEMBUF;
- break;
- case fapi2::TARGET_TYPE_EX:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_EX;
- break;
- case fapi2::TARGET_TYPE_MBA:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MBA;
- break;
- case fapi2::TARGET_TYPE_MCS:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MCS;
- break;
- case fapi2::TARGET_TYPE_XBUS:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_XBUS;
- break;
- case fapi2::TARGET_TYPE_L4:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_L4;
- break;
- case fapi2::TARGET_TYPE_CORE:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_CORE;
- break;
- case fapi2::TARGET_TYPE_EQ:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_EQ;
- break;
- case fapi2::TARGET_TYPE_MCA:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MCA;
- break;
- case fapi2::TARGET_TYPE_MCBIST:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MCBIST;
- break;
- case fapi2::TARGET_TYPE_MI:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MI;
- break;
- case fapi2::TARGET_TYPE_CAPP:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_CAPP;
- break;
- case fapi2::TARGET_TYPE_DMI:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_DMI;
- break;
- case fapi2::TARGET_TYPE_OBUS:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_OBUS;
- break;
- case fapi2::TARGET_TYPE_OBUS_BRICK:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_OBUS_BRICK;
- break;
- case fapi2::TARGET_TYPE_SBE:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_SBE;
- break;
- case fapi2::TARGET_TYPE_PPE:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_PPE;
- break;
- case fapi2::TARGET_TYPE_PERV:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_PERV;
- break;
- case fapi2::TARGET_TYPE_PEC:
+ case fapi2::TARGET_TYPE_SYSTEM:
+ o_class = TARGETING::CLASS_SYS;
+ o_type = TARGETING::TYPE_SYS;
+ break;
+ case fapi2::TARGET_TYPE_DIMM:
+ o_class = TARGETING::CLASS_LOGICAL_CARD;
+ o_type = TARGETING::TYPE_DIMM;
+ break;
+ case fapi2::TARGET_TYPE_PROC_CHIP:
+ o_class = TARGETING::CLASS_CHIP;
+ o_type = TARGETING::TYPE_PROC;
+ break;
+ case fapi2::TARGET_TYPE_MEMBUF_CHIP:
+ o_class = TARGETING::CLASS_CHIP;
+ o_type = TARGETING::TYPE_MEMBUF;
+ break;
+ case fapi2::TARGET_TYPE_EX:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_EX;
+ break;
+ case fapi2::TARGET_TYPE_MBA:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MBA;
+ break;
+ case fapi2::TARGET_TYPE_MCS:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MCS;
+ break;
+ case fapi2::TARGET_TYPE_XBUS:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_XBUS;
+ break;
+ case fapi2::TARGET_TYPE_L4:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_L4;
+ break;
+ case fapi2::TARGET_TYPE_CORE:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_CORE;
+ break;
+ case fapi2::TARGET_TYPE_EQ:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_EQ;
+ break;
+ case fapi2::TARGET_TYPE_MCA:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MCA;
+ break;
+ case fapi2::TARGET_TYPE_MCBIST:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MCBIST;
+ break;
+ case fapi2::TARGET_TYPE_MI:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MI;
+ break;
+ case fapi2::TARGET_TYPE_CAPP:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_CAPP;
+ break;
+ case fapi2::TARGET_TYPE_DMI:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_DMI;
+ break;
+ case fapi2::TARGET_TYPE_OBUS:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_OBUS;
+ break;
+ case fapi2::TARGET_TYPE_OBUS_BRICK:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_OBUS_BRICK;
+ break;
+ case fapi2::TARGET_TYPE_SBE:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_SBE;
+ break;
+ case fapi2::TARGET_TYPE_PPE:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_PPE;
+ break;
+ case fapi2::TARGET_TYPE_PERV:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_PERV;
+ break;
+ case fapi2::TARGET_TYPE_PEC:
o_class = TARGETING::CLASS_UNIT;
o_type = TARGETING::TYPE_PEC;
break;
diff --git a/src/usr/isteps/istep11/makefile b/src/usr/isteps/istep11/makefile
index 3bb30c1ab..7c9a10c80 100644
--- a/src/usr/isteps/istep11/makefile
+++ b/src/usr/isteps/istep11/makefile
@@ -49,6 +49,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/centaur/common/include/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/imageProcs/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/common/utils/imageProcs/
+EXTRAINCDIR += ${ROOTPATH}/src/import/chips/centaur/utils/imageProcs/
EXTRAINCDIR += ${ROOTPATH}/src/import/
EXTRAINCDIR += ${ROOTPATH}/obj/genfiles/
EXTRAINCDIR += ${ROOTPATH}/src/usr/isteps/
diff --git a/src/usr/scan/scandd.C b/src/usr/scan/scandd.C
index 21f34939a..a02bc9cae 100644
--- a/src/usr/scan/scandd.C
+++ b/src/usr/scan/scandd.C
@@ -460,9 +460,9 @@ errlHndl_t scanDoPibScan( DeviceFW::OperationType i_opType,
// where the ring you want to scan is located. All other chiplet rings
// eg. 0203xxxx 0303xxxx stays the same. This is only special with
// 0003xxxx"
- if ((l_isCentaur) && ((l_scanTypeAddr & 0x01000000) == 0x0))
+ if ((l_isCentaur) && ((l_scanTypeAddr & 0x03000000) == 0x0))
{
- l_scanTypeAddr |= 0x01000000;
+ l_scanTypeAddr |= 0x01000000;
}
// bits 16-31 select the scan type select register
@@ -897,6 +897,8 @@ errlHndl_t scanDoPibScan( DeviceFW::OperationType i_opType,
}
}while(0);
+ TRACFCOMP( g_trac_scandd,"SCAN::scanDoPibScan> End:::");
+
mutex_unlock(l_mutex);
return l_err;
OpenPOWER on IntegriCloud