summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2017-08-25 15:14:07 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-08-29 08:53:16 -0400
commitc34f286542bb7fa5eccc9bfcc2a9473637d4a0e5 (patch)
tree0fdad6d9e1da735dceb53de1dc46daab71d488d0 /src/common
parent854999aaca9b49263df09248fb830a9513a381d4 (diff)
downloadtalos-occ-c34f286542bb7fa5eccc9bfcc2a9473637d4a0e5.tar.gz
talos-occ-c34f286542bb7fa5eccc9bfcc2a9473637d4a0e5.zip
Enable safe mode memory throttling
Change-Id: I62cf1be6a24e02a2cd59b75416d26596a4f2f81d RTC: 169887 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45169 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/mca_addresses.h45
1 files changed, 41 insertions, 4 deletions
diff --git a/src/common/mca_addresses.h b/src/common/mca_addresses.h
index 2a2f78a..0417419 100644
--- a/src/common/mca_addresses.h
+++ b/src/common/mca_addresses.h
@@ -28,6 +28,7 @@
#define NUM_NIMBUS_MC_PAIRS 2
#define MAX_NUM_MCU_PORTS 4
+#define NUM_NIMBUS_MCAS (MAX_NUM_MCU_PORTS * NUM_NIMBUS_MC_PAIRS)
// Base Address of NIMBUS MCA.
#define DIMM_MCA_BASE_ADDRESS 0x07010800
@@ -43,14 +44,19 @@
#define STR_REG0_OFFSET 0x0135
#define STR_REG0_ADDRESS (DIMM_MCA_BASE_ADDRESS + STR_REG0_OFFSET)
-
#define N_M_TCR_OFFSET 0x0116
#define N_M_TCR_ADDRESS (DIMM_MCA_BASE_ADDRESS + N_M_TCR_OFFSET)
-
#define DEADMAN_TIMER_OFFSET 0x013C
#define DEADMAN_TIMER_ADDRESS (DIMM_MCA_BASE_ADDRESS + DEADMAN_TIMER_OFFSET)
+#define EMERGENCY_THROTTLE_OFFSET 0x0125
+#define EMERGENCY_THROTTLE_ADDRESS (DIMM_MCA_BASE_ADDRESS + EMERGENCY_THROTTLE_OFFSET)
+#define ER_THROTTLE_IN_PROGRESS_MASK 0x8000000000000000
+
+#define MCA_CAL_FIR_OFFSET 0x0100
+#define MCA_CAL_FIR_ADDRESS (DIMM_MCA_BASE_ADDRESS + MCA_CAL_FIR_OFFSET)
+#define MCA_FIR_THROTTLE_ENGAGED_MASK 0x0200000000000000
// Memory Power Control
@@ -75,6 +81,7 @@ mc23.port3 0x080108C0 + 0x00000134/5 = 0x080109F4 = 0x0801
#define POWER_CTRL_REG0(mc,port) (POWER_CTRL_REG0_ADDRESS + MC_PORT_SPACE(mc,port))
#define STR_REG0(mc,port) (STR_REG0_ADDRESS + MC_PORT_SPACE(mc,port))
+#define STR_REG0_MCA(mca) (STR_REG0_ADDRESS + MC_PORT_SPACE((mca>>2),(mca&3)))
// DIMM Control
@@ -106,8 +113,38 @@ mc23.port3 0x080108C0 + 0x0000013C = 0x080109FC
*/
// NIMBUS DIMM Deadman SCOM Register Addresses macro
-#define DEADMAN_TIMER_PORT(mc,port) (DEADMAN_TIMER_ADDRESS + MC_PORT_SPACE(mc,port))
-
#define DEADMAN_TIMER_MCA(mca) (DEADMAN_TIMER_ADDRESS + MC_PORT_SPACE((mca>>2),(mca&3)))
+// Emergency Mode Throttle Register
+/*
+MC/Port Address MCA Port Address Emergency Throt Offset SCOM Address
+mc01.port0 0x07010800 + 0x00000125 = 0x07010925
+mc01.port1 0x07010840 + 0x00000125 = 0x07010965
+mc01.port2 0x07010880 + 0x00000125 = 0x070109A5
+mc01.port3 0x070108C0 + 0x00000125 = 0x070109E5
+mc23.port0 0x08010800 + 0x00000125 = 0x08010925
+mc23.port1 0x08010840 + 0x00000125 = 0x08010965
+mc23.port2 0x08010880 + 0x00000125 = 0x080109A5
+mc23.port3 0x080108C0 + 0x00000125 = 0x080109E5
+ */
+
+// NIMBUS Emergency Throttle SCOM Register Addresses macro
+#define ER_THROTTLE_MCA(mca) (EMERGENCY_THROTTLE_ADDRESS + MC_PORT_SPACE((mca>>2),(mca&3)))
+
+// MCA Calibration Fault Isolation Register
+/*
+MC/Port Address MCA Port Address MCA FIR Offset SCOM Address
+mc01.port0 0x07010800 + 0x00000100 = 0x07010900
+mc01.port1 0x07010840 + 0x00000100 = 0x07010940
+mc01.port2 0x07010880 + 0x00000100 = 0x07010980
+mc01.port3 0x070108C0 + 0x00000100 = 0x070109C0
+mc23.port0 0x08010800 + 0x00000100 = 0x08010900
+mc23.port1 0x08010840 + 0x00000100 = 0x08010940
+mc23.port2 0x08010880 + 0x00000100 = 0x08010980
+mc23.port3 0x080108C0 + 0x00000100 = 0x080109C0
+ */
+
+// NIMBUS MCA Calibration FIR SCOM Register Addresses macro
+#define MCA_CAL_FIR_REG_MCA(mca) (MCA_CAL_FIR_ADDRESS + MC_PORT_SPACE((mca>>2),(mca&3)))
+
#endif // _MCA_ADDRESSES_H
OpenPOWER on IntegriCloud