diff options
author | Anusha Reddy Rangareddygari <anusrang@in.ibm.com> | 2016-06-27 11:38:36 +0200 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-07-12 07:54:12 -0400 |
commit | 37f3729616117fead898443a034fae8f0d7feab0 (patch) | |
tree | 615fd8d9afc4cf27bf782164412efdc18c2db2b1 | |
parent | 77e11d50bc3a1ad44b122d7c3c6f88a22518e625 (diff) | |
download | talos-sbe-37f3729616117fead898443a034fae8f0d7feab0.tar.gz talos-sbe-37f3729616117fead898443a034fae8f0d7feab0.zip |
Level 2 HWP for p9_sbe_attr_setup
Change-Id: I656e53b26918a58b82623fd469e05aaf76b8c845
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26280
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: Soma Bhanutej <soma.bhanu@in.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: Santosh S. Puranik <santosh.puranik@in.ibm.com>
Reviewed-by: PARVATHI RACHAKONDA <prachako@in.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26282
-rw-r--r-- | import/chips/p9/procedures/hwp/perv/p9_sbe_attr_setup.C | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/import/chips/p9/procedures/hwp/perv/p9_sbe_attr_setup.C b/import/chips/p9/procedures/hwp/perv/p9_sbe_attr_setup.C index 9cab5647..8a557e7d 100644 --- a/import/chips/p9/procedures/hwp/perv/p9_sbe_attr_setup.C +++ b/import/chips/p9/procedures/hwp/perv/p9_sbe_attr_setup.C @@ -35,7 +35,6 @@ #include <p9_perv_scom_addresses.H> - fapi2::ReturnCode p9_sbe_attr_setup(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target_chip) { @@ -48,6 +47,8 @@ fapi2::ReturnCode p9_sbe_attr_setup(const fapi2::buffer<uint32_t> l_read_5 = 0; const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM; fapi2::buffer<uint64_t> l_data64; + bool sbe_slave_chip = false; + fapi2::buffer<uint64_t> l_read_device_reg = 0; FAPI_INF("Entering ..."); FAPI_DBG("Read Scratch8 for validity of Scratch register"); @@ -178,17 +179,30 @@ fapi2::ReturnCode p9_sbe_attr_setup(const FAPI_TRY(fapi2::getScom(i_target_chip, PERV_SCRATCH_REGISTER_6_SCOM, l_read_scratch_reg)); //l_read_scratch_reg = PIB.SCRATCH_REGISTER_6 - l_read_1.writeBit<7>(l_read_scratch_reg.getBit<24>()); + sbe_slave_chip = l_read_scratch_reg.getBit<24>(); + + if ( sbe_slave_chip ) // 0b1 == slave + { + l_read_1.writeBit<7>(l_read_scratch_reg.flipBit<24>()); + } + else // 0b0 == master + { + FAPI_DBG("Reading DEVIVE_ID_REG value"); + FAPI_TRY(fapi2::getScom(i_target_chip, PERV_DEVICE_ID_REG, l_read_device_reg)); + l_read_1.writeBit<7>(l_read_device_reg.flipBit<40>()); + } + l_read_scratch_reg.extractToRight<26, 3>(l_read_2); l_read_scratch_reg.extractToRight<29, 3>(l_read_3); - FAPI_DBG("Settuing up MASTER_CHIP, FABRIC_GROUP_ID and CHIP_ID"); + FAPI_DBG("Setting up MASTER_CHIP, FABRIC_GROUP_ID and CHIP_ID"); FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_PROC_SBE_MASTER_CHIP, i_target_chip, l_read_1)); FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_PROC_FABRIC_GROUP_ID, i_target_chip, l_read_2)); FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_PROC_FABRIC_CHIP_ID, i_target_chip, l_read_3)); + } } |