summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspashabk-in <shakeebbk@in.ibm.com>2018-03-16 06:48:53 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2018-04-16 08:44:23 -0400
commitaa83a786a35d5fc48f90c1a5de13d6e818a77404 (patch)
tree74c23a339275dded91c1cae4ebd73478adb7c75d
parent69770a74204aa1c891460a8fd6a94fd397b741b0 (diff)
downloadtalos-sbe-aa83a786a35d5fc48f90c1a5de13d6e818a77404.tar.gz
talos-sbe-aa83a786a35d5fc48f90c1a5de13d6e818a77404.zip
Update PROC_CHIP_MEM_TO_USE attribute based on valid bit
Handling memory swapping on different proc Change-Id: Ibe46dde78fe9fc163eefdbd1a2af3fb00fc09d5a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55959 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
-rw-r--r--src/hwpf/target.C46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/hwpf/target.C b/src/hwpf/target.C
index b1e1a0c0..8c52bd64 100644
--- a/src/hwpf/target.C
+++ b/src/hwpf/target.C
@@ -105,6 +105,19 @@ extern fapi2::ReturnCode
plat_getChipTarget();
const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM;
+ const size_t SCRATCH_PROC_CHIP_MEM_TO_USE_VALID_BIT = 0;
+ const size_t SCRATCH_PROC_CHIP_MEM_TO_USE_GROUP_ID_STARTBIT = 1;
+ const size_t SCRATCH_PROC_CHIP_MEM_TO_USE_CHIP_ID_STARTBIT = 4;
+ const size_t ATTR_PROC_MEM_TO_USE_GROUP_ID_STARTBIT = 0;
+ const size_t ATTR_PROC_MEM_TO_USE_CHIP_ID_STARTBIT = 3;
+ const size_t ATTR_PROC_FABRIC_GROUP_ID_LENGTH = 3;
+ const size_t ATTR_PROC_FABRIC_CHIP_ID_LENGTH = 3;
+ uint8_t l_proc_chip_mem_to_use_valid = 0;
+ uint8_t l_proc_chip_mem_to_use_group_id = 0;
+ uint8_t l_proc_chip_mem_to_use_chip_id = 0;
+ fapi2::buffer<uint8_t> l_proc_chip_mem_to_use_attr = 0;
+
+
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_RISK_LEVEL, FAPI_SYSTEM, l_riskLvl));
//Getting SCRATCH_REGISTER_8 register value
FAPI_TRY(fapi2::getScom(l_chipTarget, PERV_SCRATCH_REGISTER_8_SCOM,
@@ -308,6 +321,12 @@ extern fapi2::ReturnCode
FAPI_TRY(PLAT_ATTR_INIT(fapi2::ATTR_CLOCK_PLL_MUX, l_chipTarget, l_pllMux));
}
+ FAPI_DBG("Reading ATTR_PROC_FABRIC_GROUP and CHIP_ID");
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_GROUP_ID, l_chipTarget,
+ l_proc_chip_mem_to_use_group_id));
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_CHIP_ID, l_chipTarget,
+ l_proc_chip_mem_to_use_chip_id));
+
if ( l_scratch8Reg.getBit<5>() )
{
uint8_t l_pumpMode = fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_NODE;
@@ -317,6 +336,20 @@ extern fapi2::ReturnCode
FAPI_TRY(fapi2::getScom(l_chipTarget, PERV_SCRATCH_REGISTER_6_SCOM,
l_tempReg));
+ l_tempReg.extract<SCRATCH_PROC_CHIP_MEM_TO_USE_VALID_BIT,
+ 1, 0>(l_proc_chip_mem_to_use_valid);
+ if (l_proc_chip_mem_to_use_valid)
+ {
+ l_proc_chip_mem_to_use_group_id = 0;
+ l_proc_chip_mem_to_use_chip_id = 0;
+ l_tempReg.extract<SCRATCH_PROC_CHIP_MEM_TO_USE_GROUP_ID_STARTBIT,
+ ATTR_PROC_FABRIC_GROUP_ID_LENGTH,
+ 0>(l_proc_chip_mem_to_use_group_id);
+ l_tempReg.extract<SCRATCH_PROC_CHIP_MEM_TO_USE_CHIP_ID_STARTBIT,
+ ATTR_PROC_FABRIC_CHIP_ID_LENGTH,
+ 0>(l_proc_chip_mem_to_use_chip_id);
+ }
+
l_read1 = 0;
l_isSlave = l_tempReg.getBit<24>();
@@ -364,6 +397,19 @@ extern fapi2::ReturnCode
FAPI_TRY(PLAT_ATTR_INIT(fapi2::ATTR_PROC_EFF_FABRIC_CHIP_ID, l_chipTarget,
l_read3));
}
+ l_proc_chip_mem_to_use_attr.insertFromRight
+ <ATTR_PROC_MEM_TO_USE_GROUP_ID_STARTBIT,
+ ATTR_PROC_FABRIC_GROUP_ID_LENGTH>
+ (l_proc_chip_mem_to_use_group_id);
+ l_proc_chip_mem_to_use_attr.insertFromRight
+ <ATTR_PROC_MEM_TO_USE_CHIP_ID_STARTBIT,
+ ATTR_PROC_FABRIC_CHIP_ID_LENGTH>
+ (l_proc_chip_mem_to_use_chip_id);
+
+ FAPI_TRY(PLAT_ATTR_INIT(fapi2::ATTR_PROC_MEM_TO_USE,
+ l_chipTarget,
+ l_proc_chip_mem_to_use_attr));
+
FAPI_TRY(PLAT_ATTR_INIT(fapi2::ATTR_RISK_LEVEL, FAPI_SYSTEM,
l_riskLvl));
OpenPOWER on IntegriCloud