summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRaja Das <rajadas2@in.ibm.com>2017-04-18 01:04:16 -0500
committerAMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>2017-04-18 05:32:04 -0400
commit6ffb94a25a94db2380f40e154bdd707f0d8e601d (patch)
tree21957443f0b30ffd6038d99845252d474f93858d /src
parent6d8a7911a3cad8b5110e7a3c50fe28f7ce81a9b5 (diff)
downloadtalos-sbe-6ffb94a25a94db2380f40e154bdd707f0d8e601d.tar.gz
talos-sbe-6ffb94a25a94db2380f40e154bdd707f0d8e601d.zip
Fixed bit shift bug for PERV_N3_LOCAL_FIR_OR reg (DMT/MPIPL)
Change-Id: Id47a94b938ba5ffef364542295da21409433971d CQ: SW380791 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39356 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/sbefw/sbecmdcntrldmt.C2
-rw-r--r--src/sbefw/sbecmdcntrldmt.H7
-rw-r--r--src/sbefw/sbecmdiplcontrol.C7
3 files changed, 9 insertions, 7 deletions
diff --git a/src/sbefw/sbecmdcntrldmt.C b/src/sbefw/sbecmdcntrldmt.C
index 79c61697..7bbab5b2 100644
--- a/src/sbefw/sbecmdcntrldmt.C
+++ b/src/sbefw/sbecmdcntrldmt.C
@@ -73,7 +73,7 @@ void sbeDmtPkExpiryCallback(void *)
// check stop the system
plat_target_handle_t l_hndl;
fapiRc = putscom_abs_wrap(&l_hndl, PERV_N3_LOCAL_FIR_OR,
- N3_FIR_CORE_CHECKSTOP_BIT);
+ ((uint64_t)1 << N3_FIR_CORE_CHECKSTOP_BIT));
if(fapiRc != FAPI2_RC_SUCCESS)
{
// Scom failed
diff --git a/src/sbefw/sbecmdcntrldmt.H b/src/sbefw/sbecmdcntrldmt.H
index 29b4799d..a397e153 100644
--- a/src/sbefw/sbecmdcntrldmt.H
+++ b/src/sbefw/sbecmdcntrldmt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -38,8 +38,9 @@
// for DMT functionality in Millisecond
static const uint8_t SBE_DMT_SLEEP_INTERVAL = 1;
-// Bit-32 used to checkstop the system
-static const uint64_t N3_FIR_CORE_CHECKSTOP_BIT = 32;
+// Bit-32 used to checkstop the system, since this is directly getting
+// inserted, we need to use bit (63-32) = 31st bit.
+static const uint64_t N3_FIR_CORE_CHECKSTOP_BIT = 31; // 63-32 = 31
/**
* @brief Callback for Timer Expiry for DMT
diff --git a/src/sbefw/sbecmdiplcontrol.C b/src/sbefw/sbecmdiplcontrol.C
index baefb096..c1a2bb9b 100644
--- a/src/sbefw/sbecmdiplcontrol.C
+++ b/src/sbefw/sbecmdiplcontrol.C
@@ -219,8 +219,9 @@ static const uint32_t SBE_SYSTEM_QUIESCE_TIMEOUT_LOOP = 3;
static const uint64_t SBE_LQA_DELAY_HW_US = 1000000ULL; // 1ms
static const uint64_t SBE_LQA_DELAY_SIM_CYCLES = 0x1ULL;
-// Bit-33 used to checkstop the system
-static const uint64_t N3_FIR_SYSTEM_CHECKSTOP_BIT = 33;
+// Bit-33 used to checkstop the system, Since this is directly getting inserted
+// will have to use bit (63-33) = 30th bit
+static const uint64_t N3_FIR_SYSTEM_CHECKSTOP_BIT = 30; // 63-33 = 30
// Globals
// TODO: via RTC 123602 This global needs to move to a class that will store the
@@ -1104,7 +1105,7 @@ ReturnCode istepWithProcSequenceDrtm( sbeIstepHwp_t i_hwp)
// TODO RTC 164425 this needs to be replicated on any MPIPL Hwp failure
Target<TARGET_TYPE_PROC_CHIP > l_proc = plat_getChipTarget();
l_rc = putscom_abs_wrap(&l_proc, PERV_N3_LOCAL_FIR_OR,
- N3_FIR_SYSTEM_CHECKSTOP_BIT);
+ ((uint64_t)1 << N3_FIR_SYSTEM_CHECKSTOP_BIT));
if(l_rc != FAPI2_RC_SUCCESS)
{
// Scom failed
OpenPOWER on IntegriCloud