diff options
author | spashabk-in <shakeebbk@in.ibm.com> | 2018-03-16 06:48:53 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2018-04-16 08:44:23 -0400 |
commit | aa83a786a35d5fc48f90c1a5de13d6e818a77404 (patch) | |
tree | 74c23a339275dded91c1cae4ebd73478adb7c75d | |
parent | 69770a74204aa1c891460a8fd6a94fd397b741b0 (diff) | |
download | talos-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.C | 46 |
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)); |