summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnusha Reddy Rangareddygari <anusrang@in.ibm.com>2016-06-27 11:38:36 +0200
committerSachin Gupta <sgupta2m@in.ibm.com>2016-07-12 07:54:12 -0400
commit37f3729616117fead898443a034fae8f0d7feab0 (patch)
tree615fd8d9afc4cf27bf782164412efdc18c2db2b1
parent77e11d50bc3a1ad44b122d7c3c6f88a22518e625 (diff)
downloadtalos-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.C20
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));
+
}
}
OpenPOWER on IntegriCloud