summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/centaur/procedures/hwp/memory/p9c_mss_access_delay_reg.C5
-rw-r--r--src/import/chips/centaur/procedures/hwp/memory/p9c_mss_volt.C8
-rw-r--r--src/import/chips/centaur/procedures/vpd_accessors/getMBvpdMemoryDataVersion.C33
-rw-r--r--src/import/chips/centaur/procedures/xml/error_info/p9c_memory_mss_volt_errors.xml6
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/data_buffer_ddr4.H9
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/mrs_load_ddr4.H11
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C20
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_scan_ring_util.C225
-rw-r--r--src/import/generic/memory/lib/spd/spd_facade.H2
10 files changed, 205 insertions, 118 deletions
diff --git a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_access_delay_reg.C b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_access_delay_reg.C
index 7b636b68b..a1aa68276 100644
--- a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_access_delay_reg.C
+++ b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_access_delay_reg.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -3653,7 +3653,8 @@ extern "C" {
fapi2::CEN_MSS_ACCESS_DELAY_REG_SCHMOO_BAD_MBA_POS(),
"Bad position from ATTR_CHIP_UNIT_POS (%d)", l_mbapos);
- FAPI_ASSERT(l_dram_width == fapi2::ENUM_ATTR_CEN_EFF_DRAM_WIDTH_X4 || fapi2::ENUM_ATTR_CEN_EFF_DRAM_WIDTH_X8,
+ FAPI_ASSERT(l_dram_width == fapi2::ENUM_ATTR_CEN_EFF_DRAM_WIDTH_X4 ||
+ l_dram_width == fapi2::ENUM_ATTR_CEN_EFF_DRAM_WIDTH_X8,
fapi2::CEN_MSS_ACCESS_DELAY_REG_SCHMOO_BAD_DRAM_WIDTH().
set_DRAM_WIDTH(l_dram_width),
"Bad dram width from ATTR_EFF_DRAM_WIDTH (%d)", l_dram_width);
diff --git a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_volt.C b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_volt.C
index ba4182c72..474d4e6f5 100644
--- a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_volt.C
+++ b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_volt.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -144,6 +144,8 @@ fapi2::ReturnCode p9c_mss_volt(const std::vector<fapi2::Target<fapi2::TARGET_TYP
// note: only support DDR3=1.35V and DDR4=1.2xV
// Mixed Dimms, Deconfig the DDR4.
+ // note: Running DDR4 at DDR3 voltage will damage the DDR4, so deconfig the
+ // DDR3 DIMMs.
if (l_dram_ddr3_found_flag && l_dram_ddr4_found_flag)
{
// Iterate through the list of centaurs
@@ -162,9 +164,9 @@ fapi2::ReturnCode p9c_mss_volt(const std::vector<fapi2::Target<fapi2::TARGET_TYP
{
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CEN_SPD_DRAM_DEVICE_TYPE, l_dimm, l_spd_dramtype));
- FAPI_ASSERT(l_spd_dramtype = ! fapi2::ENUM_ATTR_CEN_SPD_DRAM_DEVICE_TYPE_DDR4,
+ FAPI_ASSERT(l_spd_dramtype == fapi2::ENUM_ATTR_CEN_SPD_DRAM_DEVICE_TYPE_DDR4,
fapi2::CEN_MSS_VOLT_DDR_TYPE_MIXING_UNSUPPORTED().
- set_DIMM_DDR4_TARGET(l_dimm).
+ set_DIMM_DDR3_TARGET(l_dimm).
set_DEVICE_TYPE(l_spd_dramtype),
"mss_volt: DDR3 and DDR4 mixing not allowed");
}//end of dimms loop
diff --git a/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdMemoryDataVersion.C b/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdMemoryDataVersion.C
index b12ddc18f..049f8d71c 100644
--- a/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdMemoryDataVersion.C
+++ b/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdMemoryDataVersion.C
@@ -59,11 +59,17 @@ extern "C"
const fapi2::Target<fapi2::TARGET_TYPE_MEMBUF_CHIP>& i_mbTarget,
uint32_t& o_val)
{
+ union l_KeywordUnion
+ {
+ uint32_t vpdMemoryDataVersion;
+ MBvpdVMKeyword mBvpdVMKeyword;
+ };
+
fapi2::ReturnCode l_fapi2rc;
DimmType l_dimmType = DimmType::ISDIMM;
fapi2::MBvpdRecord l_record = fapi2::MBVPD_RECORD_SPDX;
- uint32_t l_vpdMemoryDataVersion = VM_KEYWORD_DEFAULT_VALUE;
- size_t l_bufSize = sizeof(l_vpdMemoryDataVersion);
+ l_KeywordUnion l_vpdMDataUnion = {VM_KEYWORD_DEFAULT_VALUE};
+ size_t l_bufSize = sizeof(l_vpdMDataUnion.vpdMemoryDataVersion);
FAPI_DBG("getMBvpdMemoryDataVersion: entry ");
@@ -116,7 +122,7 @@ extern "C"
l_fapi2rc = getMBvpdField(l_record,
fapi2::MBVPD_KEYWORD_VM,
i_mbTarget,
- reinterpret_cast<uint8_t*>(&l_vpdMemoryDataVersion),
+ reinterpret_cast<uint8_t*>(&l_vpdMDataUnion.vpdMemoryDataVersion),
l_bufSize);
if (l_fapi2rc)
@@ -127,30 +133,33 @@ extern "C"
}
// Check that sufficient size was returned.
- FAPI_ASSERT(l_bufSize >= sizeof(l_vpdMemoryDataVersion),
+ FAPI_ASSERT(l_bufSize >= sizeof(l_vpdMDataUnion.vpdMemoryDataVersion),
fapi2::CEN_MBVPD_INSUFFICIENT_VPD_RETURNED().
set_KEYWORD(fapi2::MBVPD_KEYWORD_VM).
set_RETURNED_SIZE(l_bufSize).
set_CHIP_TARGET(i_mbTarget),
"getMBvpdMemoryDataVersion:"
" less keyword data returned than expected %d < %d",
- l_bufSize, sizeof(l_vpdMemoryDataVersion));
-
- // Check if the format byte in the value returned is in between valid range
- FAPI_ASSERT(( ((MBvpdVMKeyword*)(&l_vpdMemoryDataVersion))->iv_version <= VM_SUPPORTED_HIGH_VER ) &&
- ( ((MBvpdVMKeyword*)(&l_vpdMemoryDataVersion))->iv_version != VM_NOT_SUPPORTED ),
+ l_bufSize, sizeof(l_vpdMDataUnion.vpdMemoryDataVersion));
+
+ // Check if the format byte in the value returned is in between valid
+ // range
+ FAPI_ASSERT(( l_vpdMDataUnion.mBvpdVMKeyword.iv_version <=
+ VM_SUPPORTED_HIGH_VER ) &&
+ ( l_vpdMDataUnion.mBvpdVMKeyword.iv_version !=
+ VM_NOT_SUPPORTED ),
fapi2::CEN_MBVPD_INVALID_VM_DATA_RETURNED().
set_KEYWORD(fapi2::MBVPD_KEYWORD_VM).
- set_RETURNED_VALUE(l_vpdMemoryDataVersion).
+ set_RETURNED_VALUE(l_vpdMDataUnion.vpdMemoryDataVersion).
set_RECORD_NAME(l_record).
set_DIMM_TYPE(l_dimmType).
set_CHIP_TARGET(i_mbTarget),
"getMBvpdMemoryDataVersion:"
" keyword data returned is invalid : %d ",
- l_vpdMemoryDataVersion);
+ l_vpdMDataUnion.vpdMemoryDataVersion);
// return value
- o_val = static_cast<uint32_t>(be16toh(l_vpdMemoryDataVersion));
+ o_val = static_cast<uint32_t>(be16toh(l_vpdMDataUnion.vpdMemoryDataVersion));
FAPI_DBG("getMBvpdMemoryDataVersion: Memory Data version=0x%08x",
o_val);
diff --git a/src/import/chips/centaur/procedures/xml/error_info/p9c_memory_mss_volt_errors.xml b/src/import/chips/centaur/procedures/xml/error_info/p9c_memory_mss_volt_errors.xml
index 189bfa36f..c919de917 100644
--- a/src/import/chips/centaur/procedures/xml/error_info/p9c_memory_mss_volt_errors.xml
+++ b/src/import/chips/centaur/procedures/xml/error_info/p9c_memory_mss_volt_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
-<!-- Contributors Listed Below - COPYRIGHT 2016,2018 -->
+<!-- Contributors Listed Below - COPYRIGHT 2016,2019 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
@@ -53,11 +53,11 @@
<description>Mixing of DDR3 and DDR4 not supported.</description>
<ffdc>DEVICE_TYPE</ffdc>
<callout>
- <target>DIMM_DDR4_TARGET</target>
+ <target>DIMM_DDR3_TARGET</target>
<priority>HIGH</priority>
</callout>
<deconfigure>
- <target>DIMM_DDR4_TARGET</target>
+ <target>DIMM_DDR3_TARGET</target>
</deconfigure>
</hwpError>
<hwpError>
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/data_buffer_ddr4.H b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/data_buffer_ddr4.H
index 05b1f2f2d..4f1b2525f 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/data_buffer_ddr4.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/data_buffer_ddr4.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2018 */
+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -313,9 +313,10 @@ fapi_try_exit:
/// @param[out] o_setting bc07 settings
/// @return FAPI2_RC_SUCCESS iff okay
///
-static fapi2::ReturnCode rank_presence_helper(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
- const uint64_t i_num_package_ranks,
- uint64_t& o_setting)
+static inline fapi2::ReturnCode rank_presence_helper(
+ const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
+ const uint64_t i_num_package_ranks,
+ uint64_t& o_setting )
{
switch(i_num_package_ranks)
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/mrs_load_ddr4.H b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/mrs_load_ddr4.H
index 49d0b68e7..0d7b2d018 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/mrs_load_ddr4.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/ddr4/mrs_load_ddr4.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -219,10 +219,11 @@ fapi_try_exit:
/// @return FAPI2_RC_SUCCESS if and only if ok
///
template< >
-fapi2::ReturnCode make_ccs_helper( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
- const mrs_data<fapi2::TARGET_TYPE_MCBIST>& i_data,
- const uint64_t i_rank,
- ccs::instruction_t<fapi2::TARGET_TYPE_MCBIST>& io_inst )
+inline fapi2::ReturnCode make_ccs_helper(
+ const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
+ const mrs_data<fapi2::TARGET_TYPE_MCBIST>& i_data,
+ const uint64_t i_rank,
+ ccs::instruction_t<fapi2::TARGET_TYPE_MCBIST>& io_inst )
{
FAPI_TRY( i_data.iv_func(i_target, io_inst, i_rank),
"Failed making a CCS instruction for mrs_data<TARGET_TYPE_MCBIST> specialization. MR%d rank %d on %s",
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H b/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H
index 575d92db6..72741dcf1 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -422,7 +422,7 @@ fapi_try_exit:
/// @note Since the these indicators are a summary of all DLLs, all must be started to make
/// them valid.
///
-static mss::states dll_cal_status_helper( const bool l_good,
+static inline mss::states dll_cal_status_helper( const bool l_good,
const bool l_error,
const bool l_error_fine )
{
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
index 3619279b5..347bd3545 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
@@ -2544,9 +2544,6 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
fapi2::current_err = fapi2::FAPI2_RC_SUCCESS;
- // use the heap for this large struct
- PstateSuperStructure * pStateSupStruct = nullptr;
-
if( i_imgType.pgpePstateParmBlockBuild )
{
@@ -2569,14 +2566,15 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
uint32_t sizePStateBlock = 0;
uint32_t wofTableSize = i_sizeBuf1;
- // Allocate struct onto heap and initialize its memory to zeroes
- pStateSupStruct = new PstateSuperStructure();
+ // Allocate struct onto stack
+ PstateSuperStructure stateSupStruct;
+ // Clearing i_pBuf1
memset(i_pBuf1,0x00,i_sizeBuf1);
//Building P-State Parameter block info by calling a HWP
FAPI_DBG("Generating P-State Parameter Block" );
FAPI_EXEC_HWP( retCode, p9_pstate_parameter_block, i_procTgt,
- pStateSupStruct, (uint8_t*)i_pBuf1, wofTableSize );
+ &stateSupStruct, (uint8_t*)i_pBuf1, wofTableSize );
FAPI_TRY(retCode);
//Check if WOF Table is copied properly even if WOF is disabled.
@@ -2601,7 +2599,7 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
//parameter block individually.
FAPI_DBG("Copying Local P-State Parameter Block into CPMR" );
- memcpy( pLocalPState, &(pStateSupStruct->localppb), sizePStateBlock );
+ memcpy( pLocalPState, &(stateSupStruct.localppb), sizePStateBlock );
ALIGN_DBWORD( sizeAligned, sizePStateBlock )
uint32_t localPStateBlock = sizeAligned;
@@ -2625,7 +2623,8 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
"Size of Global Parameter Block Exceeds Max Size Allowed" );
FAPI_DBG("GPPBB pgpeRunningOffset 0x%08x", pgpeRunningOffset );
- memcpy( &pPpmr->pgpeSramImage[pgpeRunningOffset], &(pStateSupStruct->globalppb), sizePStateBlock );
+ memcpy( &pPpmr->pgpeSramImage[pgpeRunningOffset],
+ &(stateSupStruct.globalppb), sizePStateBlock );
ALIGN_DBWORD( sizeAligned, sizePStateBlock )
FAPI_DBG("GPSPB Actual size 0x%08x After Alignment 0x%08x", sizePStateBlock, sizeAligned );
@@ -2663,7 +2662,8 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
io_ppmrHdr.g_ppmr_oppb_length = sizeAligned;
FAPI_DBG("OPPB ppmrRunningOffset 0x%08x", io_ppmrHdr.g_ppmr_oppb_offset);
- memcpy( &pPpmr->occParmBlock, &(pStateSupStruct->occppb), sizePStateBlock );
+ memcpy( &pPpmr->occParmBlock, &(stateSupStruct.occppb),
+ sizePStateBlock );
//-------------------------- OCC P-State Parameter Block Ends ------------------------------
@@ -2720,8 +2720,6 @@ fapi2::ReturnCode buildParameterBlock( void* const i_pHomer, CONST_FAPI2_PROC& i
fapi_try_exit:
FAPI_INF("<< buildParameterBlock");
- delete pStateSupStruct;
-
return fapi2::current_err;
}
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_scan_ring_util.C b/src/import/chips/p9/procedures/hwp/pm/p9_scan_ring_util.C
index ba0387bc3..d8d26a544 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_scan_ring_util.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_scan_ring_util.C
@@ -277,75 +277,143 @@ RingBucket::RingBucket( PlatId i_plat, uint8_t* i_pRingStart, RingDebugMode_t i_
iv_instRingMap[ringIndex] = l_quadSpecRings[ringIndex];
}
- iv_ringName[ eq_fure ] = (char*)"eq_fure ";
- iv_ringName[ eq_gptr ] = (char*)"eq_gptr ";
- iv_ringName[ eq_time ] = (char*)"eq_time ";
- //eq_inex_bucket_1 is just a place holder. Actual ring bucket to be placed
- //gets decided at the time of HOMER build.
- iv_ringName[ eq_inex_bucket_1 ] = (char*)"eq_inex ";
- iv_ringName[ ex_l3_fure ] = (char*)"ex_l3_fure ";
- iv_ringName[ ex_l3_gptr ] = (char*)"ex_l3_gptr ";
- iv_ringName[ ex_l3_time ] = (char*)"ex_l3_time ";
- iv_ringName[ ex_l2_mode ] = (char*)"ex_l2_mode ";
- iv_ringName[ ex_l2_fure ] = (char*)"ex_l2_fure ";
- iv_ringName[ ex_l2_gptr ] = (char*)"ex_l2_gptr ";
- iv_ringName[ ex_l2_time ] = (char*)"ex_l2_time ";
- iv_ringName[ ex_l3_refr_fure ] = (char*)"ex_l3_refr_fure ";
- iv_ringName[ ex_l3_refr_gptr ] = (char*)"ex_l3_refr_gptr ";
- iv_ringName[ eq_ana_func ] = (char*)"eq_ana_func ";
- iv_ringName[ eq_ana_gptr ] = (char*)"eq_ana_gptr ";
- iv_ringName[ eq_dpll_func ] = (char*)"eq_dpll_func ";
- iv_ringName[ eq_dpll_gptr ] = (char*)"eq_dpll_gptr ";
- iv_ringName[ eq_dpll_mode ] = (char*)"eq_dpll_mode ";
- iv_ringName[ eq_ana_bndy_bucket_0 ] = (char*)"eq_ana_bndy_bucket_0";
- iv_ringName[ eq_ana_bndy_bucket_1 ] = (char*)"eq_ana_bndy_bucket_1";
- iv_ringName[ eq_ana_bndy_bucket_2 ] = (char*)"eq_ana_bndy_bucket_2";
- iv_ringName[ eq_ana_bndy_bucket_3 ] = (char*)"eq_ana_bndy_bucket_3";
- iv_ringName[ eq_ana_bndy_bucket_4 ] = (char*)"eq_ana_bndy_bucket_4";
- iv_ringName[ eq_ana_bndy_bucket_5 ] = (char*)"eq_ana_bndy_bucket_5";
- iv_ringName[ eq_ana_bndy_bucket_6 ] = (char*)"eq_ana_bndy_bucket_6";
- iv_ringName[ eq_ana_bndy_bucket_7 ] = (char*)"eq_ana_bndy_bucket_7";
- iv_ringName[ eq_ana_bndy_bucket_8 ] = (char*)"eq_ana_bndy_bucket_8";
- iv_ringName[ eq_ana_bndy_bucket_9 ] = (char*)"eq_ana_bndy_bucket_9";
- iv_ringName[ eq_ana_bndy_bucket_10 ] = (char*)"eq_ana_bndy_bucket_10";
- iv_ringName[ eq_ana_bndy_bucket_11 ] = (char*)"eq_ana_bndy_bucket_11";
- iv_ringName[ eq_ana_bndy_bucket_12 ] = (char*)"eq_ana_bndy_bucket_12";
- iv_ringName[ eq_ana_bndy_bucket_13 ] = (char*)"eq_ana_bndy_bucket_13";
- iv_ringName[ eq_ana_bndy_bucket_14 ] = (char*)"eq_ana_bndy_bucket_14";
- iv_ringName[ eq_ana_bndy_bucket_15 ] = (char*)"eq_ana_bndy_bucket_15";
- iv_ringName[ eq_ana_bndy_bucket_16 ] = (char*)"eq_ana_bndy_bucket_16";
- iv_ringName[ eq_ana_bndy_bucket_17 ] = (char*)"eq_ana_bndy_bucket_17";
- iv_ringName[ eq_ana_bndy_bucket_18 ] = (char*)"eq_ana_bndy_bucket_18";
- iv_ringName[ eq_ana_bndy_bucket_19 ] = (char*)"eq_ana_bndy_bucket_19";
- iv_ringName[ eq_ana_bndy_bucket_20 ] = (char*)"eq_ana_bndy_bucket_20";
- iv_ringName[ eq_ana_bndy_bucket_21 ] = (char*)"eq_ana_bndy_bucket_21";
- iv_ringName[ eq_ana_bndy_bucket_22 ] = (char*)"eq_ana_bndy_bucket_22";
- iv_ringName[ eq_ana_bndy_bucket_23 ] = (char*)"eq_ana_bndy_bucket_23";
- iv_ringName[ eq_ana_bndy_bucket_24 ] = (char*)"eq_ana_bndy_bucket_24";
- iv_ringName[ eq_ana_bndy_bucket_25 ] = (char*)"eq_ana_bndy_bucket_25";
- iv_ringName[ eq_ana_bndy_bucket_l3dcc ] = (char*)"eq_ana_bndy_bucket_l3dcc";
- iv_ringName[ eq_ana_mode ] = (char*)"eq_ana_mode ";
- iv_ringName[ eq_ana_bndy_bucket_26 ] = (char*)"eq_ana_bndy_bucket_26";
- iv_ringName[ eq_ana_bndy_bucket_27 ] = (char*)"eq_ana_bndy_bucket_27";
- iv_ringName[ eq_ana_bndy_bucket_28 ] = (char*)"eq_ana_bndy_bucket_28";
- iv_ringName[ eq_ana_bndy_bucket_29 ] = (char*)"eq_ana_bndy_bucket_29";
- iv_ringName[ eq_ana_bndy_bucket_30 ] = (char*)"eq_ana_bndy_bucket_30";
- iv_ringName[ eq_ana_bndy_bucket_31 ] = (char*)"eq_ana_bndy_bucket_31";
- iv_ringName[ eq_ana_bndy_bucket_32 ] = (char*)"eq_ana_bndy_bucket_32";
- iv_ringName[ eq_ana_bndy_bucket_33 ] = (char*)"eq_ana_bndy_bucket_33";
- iv_ringName[ eq_ana_bndy_bucket_34 ] = (char*)"eq_ana_bndy_bucket_34";
- iv_ringName[ eq_ana_bndy_bucket_35 ] = (char*)"eq_ana_bndy_bucket_35";
- iv_ringName[ eq_ana_bndy_bucket_36 ] = (char*)"eq_ana_bndy_bucket_36";
- iv_ringName[ eq_ana_bndy_bucket_37 ] = (char*)"eq_ana_bndy_bucket_37";
- iv_ringName[ eq_ana_bndy_bucket_38 ] = (char*)"eq_ana_bndy_bucket_38";
- iv_ringName[ eq_ana_bndy_bucket_39 ] = (char*)"eq_ana_bndy_bucket_39";
- iv_ringName[ eq_ana_bndy_bucket_40 ] = (char*)"eq_ana_bndy_bucket_40";
- iv_ringName[ eq_ana_bndy_bucket_41 ] = (char*)"eq_ana_bndy_bucket_41";
- iv_ringName[ eq_repr ] = (char*)"eq_repr ";
- iv_ringName[ ex_l3_repr ] = (char*)"ex_l3_repr ";
- iv_ringName[ ex_l2_repr ] = (char*)"ex_l2_repr ";
- iv_ringName[ ex_l3_refr_repr ] = (char*)"ex_l3_refr_repr ";
- iv_ringName[ ex_l3_refr_time ] = (char*)"ex_l3_refr_time ";
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_fure,
+ (char*)"eq_fure "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_gptr,
+ (char*)"eq_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_time,
+ (char*)"eq_time "));
+ // eq_inex_bucket_1 is just a place holder. Actual ring bucket to be
+ // placed gets decided at the time of HOMER build.
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_inex_bucket_1,
+ (char*)"eq_inex "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_fure,
+ (char*)"ex_l3_fure "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_gptr,
+ (char*)"ex_l3_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_time,
+ (char*)"ex_l3_time "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l2_mode,
+ (char*)"ex_l2_mode "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l2_fure,
+ (char*)"ex_l2_fure "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l2_gptr,
+ (char*)"ex_l2_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l2_time,
+ (char*)"ex_l2_time "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_refr_fure,
+ (char*)"ex_l3_refr_fure "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_refr_gptr,
+ (char*)"ex_l3_refr_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_func,
+ (char*)"eq_ana_func "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_gptr,
+ (char*)"eq_ana_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_dpll_func,
+ (char*)"eq_dpll_func "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_dpll_gptr,
+ (char*)"eq_dpll_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_dpll_mode,
+ (char*)"eq_dpll_mode "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_0,
+ (char*)"eq_ana_bndy_bucket_0"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_1,
+ (char*)"eq_ana_bndy_bucket_1"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_2,
+ (char*)"eq_ana_bndy_bucket_2"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_3,
+ (char*)"eq_ana_bndy_bucket_3"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_4,
+ (char*)"eq_ana_bndy_bucket_4"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_5,
+ (char*)"eq_ana_bndy_bucket_5"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_6,
+ (char*)"eq_ana_bndy_bucket_6"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_7,
+ (char*)"eq_ana_bndy_bucket_7"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_8,
+ (char*)"eq_ana_bndy_bucket_8"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_9,
+ (char*)"eq_ana_bndy_bucket_9"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_10,
+ (char*)"eq_ana_bndy_bucket_10"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_11,
+ (char*)"eq_ana_bndy_bucket_11"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_12,
+ (char*)"eq_ana_bndy_bucket_12"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_13,
+ (char*)"eq_ana_bndy_bucket_13"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_14,
+ (char*)"eq_ana_bndy_bucket_14"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_15,
+ (char*)"eq_ana_bndy_bucket_15"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_16,
+ (char*)"eq_ana_bndy_bucket_16"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_17,
+ (char*)"eq_ana_bndy_bucket_17"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_18,
+ (char*)"eq_ana_bndy_bucket_18"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_19,
+ (char*)"eq_ana_bndy_bucket_19"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_20,
+ (char*)"eq_ana_bndy_bucket_20"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_21,
+ (char*)"eq_ana_bndy_bucket_21"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_22,
+ (char*)"eq_ana_bndy_bucket_22"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_23,
+ (char*)"eq_ana_bndy_bucket_23"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_24,
+ (char*)"eq_ana_bndy_bucket_24"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_25,
+ (char*)"eq_ana_bndy_bucket_25"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_l3dcc,
+ (char*)"eq_ana_bndy_bucket_l3dcc"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_mode,
+ (char*)"eq_ana_mode "));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_26,
+ (char*)"eq_ana_bndy_bucket_26"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_27,
+ (char*)"eq_ana_bndy_bucket_27"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_28,
+ (char*)"eq_ana_bndy_bucket_28"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_29,
+ (char*)"eq_ana_bndy_bucket_29"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_30,
+ (char*)"eq_ana_bndy_bucket_30"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_31,
+ (char*)"eq_ana_bndy_bucket_31"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_32,
+ (char*)"eq_ana_bndy_bucket_32"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_33,
+ (char*)"eq_ana_bndy_bucket_33"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_34,
+ (char*)"eq_ana_bndy_bucket_34"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_35,
+ (char*)"eq_ana_bndy_bucket_35"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_36,
+ (char*)"eq_ana_bndy_bucket_36"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_37,
+ (char*)"eq_ana_bndy_bucket_37"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_38,
+ (char*)"eq_ana_bndy_bucket_38"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_39,
+ (char*)"eq_ana_bndy_bucket_39"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_40,
+ (char*)"eq_ana_bndy_bucket_40"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_ana_bndy_bucket_41,
+ (char*)"eq_ana_bndy_bucket_41"));
+ iv_ringName.insert( std::pair<RingID, RingName>(eq_repr,
+ (char*)"eq_repr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_repr,
+ (char*)"ex_l3_repr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l2_repr,
+ (char*)"ex_l2_repr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_refr_repr,
+ (char*)"ex_l3_refr_repr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ex_l3_refr_time,
+ (char*)"ex_l3_refr_time "));
+
}
else if( PLAT_CME == i_plat )
{
@@ -397,12 +465,19 @@ RingBucket::RingBucket( PlatId i_plat, uint8_t* i_pRingStart, RingDebugMode_t i_
iv_instRingMap[ringIndex] = l_coreSpecRings[ringIndex];
}
- iv_ringName[ ec_func ] = (char*)"ec_func ";
- iv_ringName[ ec_gptr ] = (char*)"ec_gptr ";
- iv_ringName[ ec_time ] = (char*)"ec_time ";
- iv_ringName[ ec_mode ] = (char*)"ec_mode ";
- iv_ringName[ ec_repr ] = (char*)"ec_repr ";
- iv_ringName[ ec_abst ] = (char*)"ec_abst ";
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_func,
+ (char*)"ec_func "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_gptr,
+ (char*)"ec_gptr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_time,
+ (char*)"ec_time "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_mode,
+ (char*)"ec_mode "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_repr,
+ (char*)"ec_repr "));
+ iv_ringName.insert( std::pair<RingID, RingName>(ec_abst,
+ (char*)"ec_abst "));
+
}
}
diff --git a/src/import/generic/memory/lib/spd/spd_facade.H b/src/import/generic/memory/lib/spd/spd_facade.H
index 55d0793d1..ed2fd357f 100644
--- a/src/import/generic/memory/lib/spd/spd_facade.H
+++ b/src/import/generic/memory/lib/spd/spd_facade.H
@@ -2545,7 +2545,7 @@ class facade final
/// @param[in,out] io_spd_decoder reference to std::vector of SPD facades
/// @return FAPI2_RC_SUCCESS iff okay
///
-static fapi2::ReturnCode add_decoder_to_list( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
+static inline fapi2::ReturnCode add_decoder_to_list( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target,
const std::vector<uint8_t>& i_spd_data,
std::vector< facade >& io_spd_decoder )
{
OpenPOWER on IntegriCloud