summaryrefslogtreecommitdiffstats
path: root/src/occ_405/proc/proc_data.h
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2017-11-01 08:44:03 -0500
committerChristopher J. Cain <cjcain@us.ibm.com>2017-11-03 15:16:58 -0400
commitbb703e413c363255a578ffdb35e954a5b71de4c9 (patch)
tree7c804d5d9b1b6853b832526cefdfa391e1bf3e48 /src/occ_405/proc/proc_data.h
parentd90b1dcc95523b0ed98ca4fdf4cc6bc84ba40102 (diff)
downloadtalos-occ-bb703e413c363255a578ffdb35e954a5b71de4c9.tar.gz
talos-occ-bb703e413c363255a578ffdb35e954a5b71de4c9.zip
Prevent logging 2A11 when quad is offline
Change-Id: Ic8cda9a6b8b311057ba2c4f0d9dc7e228e700c27 CQ: SW404469 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49093 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Diffstat (limited to 'src/occ_405/proc/proc_data.h')
-rwxr-xr-xsrc/occ_405/proc/proc_data.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/occ_405/proc/proc_data.h b/src/occ_405/proc/proc_data.h
index ebef6d0..f8b7870 100755
--- a/src/occ_405/proc/proc_data.h
+++ b/src/occ_405/proc/proc_data.h
@@ -50,9 +50,10 @@
#define NUM_CORE_DATA_DOUBLE_BUF 2
#define NUM_CORE_DATA_EMPTY_BUF 1
-#define LO_CORES_MASK 0xfff00000
-#define HI_CORES_MASK 0x000fff00
-#define HW_CORES_MASK 0xffffff00
+#define LO_CORES_MASK 0xfff00000
+#define HI_CORES_MASK 0x000fff00
+#define HW_CORES_MASK 0xffffff00
+#define QUAD0_CORES_PRESENT_MASK 0xf0000000
enum eOccProcCores
{
@@ -103,6 +104,9 @@ extern uint32_t G_present_cores;
//AMEC needs to know when data for a core has been collected.
extern uint32_t G_updated_core_mask;
+//AMEC needs to know when a core is offline
+extern uint32_t G_core_offline_mask;
+
// External reference to empath error mask
extern uint32_t G_empath_error_core_mask;
@@ -120,6 +124,17 @@ extern bool G_nest_dts_data_valid;
#define CORE_EMPATH_ERROR(occ_core_id) \
((CORE0_PRESENT_MASK >> occ_core_id) & G_empath_error_core_mask)
+// Evaluates to true if the specified core is offline
+#define CORE_OFFLINE(occ_core_id) \
+ ((CORE0_PRESENT_MASK >> occ_core_id) & G_core_offline_mask)
+
+#define CLEAR_CORE_OFFLINE(occ_core_id) \
+ G_core_offline_mask &= ~(CORE0_PRESENT_MASK >> occ_core_id)
+
+// Evaluates to true if the specified quad has at least 1 active present core
+#define QUAD_ONLINE(occ_quad_id) \
+ ( (QUAD0_CORES_PRESENT_MASK >> (occ_quad_id*4)) & ((~G_core_offline_mask) & G_present_cores) )
+
//Collect bulk core data for all cores in specified range
void task_core_data( task_t * i_task );
OpenPOWER on IntegriCloud