summaryrefslogtreecommitdiffstats
path: root/src/occ_405/main.c
diff options
context:
space:
mode:
authorAndres Lugo-Reyes <aalugore@us.ibm.com>2017-09-26 17:15:56 -0500
committerAndres A. Lugo-Reyes <aalugore@us.ibm.com>2017-10-16 15:58:00 -0400
commitfa085f9b68802ec92a250eccca6ddb4152e7b61f (patch)
treeefd9b222275b483ceef45e26a8f0ea8c81e6c81c /src/occ_405/main.c
parent051cc0a10cb61b410252098d13fb7dd8727a8e52 (diff)
downloadtalos-occ-fa085f9b68802ec92a250eccca6ddb4152e7b61f.tar.gz
talos-occ-fa085f9b68802ec92a250eccca6ddb4152e7b61f.zip
Prevent PGPE IPC communication if all cores are deconfigured
Change-Id: I7cea001833615dc3bcb6a282c20f205f1e7d9d87 CQ:SW401110 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46831 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com>
Diffstat (limited to 'src/occ_405/main.c')
-rwxr-xr-xsrc/occ_405/main.c38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/occ_405/main.c b/src/occ_405/main.c
index f80486e..ca66eb2 100755
--- a/src/occ_405/main.c
+++ b/src/occ_405/main.c
@@ -80,7 +80,7 @@ extern GpeRequest G_meas_complete_request;
extern apss_start_args_t G_gpe_start_pwr_meas_read_args;
extern apss_continue_args_t G_gpe_continue_pwr_meas_read_args;
extern apss_complete_args_t G_gpe_complete_pwr_meas_read_args;
-
+extern uint32_t G_present_cores;
extern uint32_t G_proc_fmin_khz;
extern uint32_t G_proc_fmax_khz;
extern wof_header_data_t G_wof_header;
@@ -1129,17 +1129,31 @@ void read_hcode_headers()
if (read_ppmr_header() == FALSE) break;
CHECKPOINT(PPMR_IMAGE_HEADER_READ);
- // Read OCC pstates parameter block
- if (read_oppb_params() == FALSE) break;
- CHECKPOINT(OPPB_IMAGE_HEADER_READ);
-
- // Read PGPE header file, extract OCC/PGPE Shared SRAM address and size,
- if (read_pgpe_header() == FALSE) break;
- CHECKPOINT(PGPE_IMAGE_HEADER_READ);
-
- // Extract important WOF data into global space
- read_wof_header();
- CHECKPOINT(WOF_IMAGE_HEADER_READ);
+ // If there are no configured cores, skip reading these headers
+ // since they will no longer be used.
+ if(G_present_cores == 0)
+ {
+ TRAC_INFO("read_hcode_headers: No configured cores detected."
+ " Skipping read_oppb_params(), read_pgpe_header(),"
+ " and read_wof_header()");
+ set_clear_wof_disabled( SET, WOF_RC_NO_CONFIGURED_CORES );
+ G_proc_pstate_status = PSTATES_DISABLED;
+ }
+ else
+ {
+ // Read OCC pstates parameter block
+ if (read_oppb_params() == FALSE) break;
+ CHECKPOINT(OPPB_IMAGE_HEADER_READ);
+
+ // Read PGPE header file, extract OCC/PGPE Shared SRAM address and size,
+ if (read_pgpe_header() == FALSE) break;
+ CHECKPOINT(PGPE_IMAGE_HEADER_READ);
+
+ // Extract important WOF data into global space
+ read_wof_header();
+ CHECKPOINT(WOF_IMAGE_HEADER_READ);
+ set_clear_wof_disabled( CLEAR, WOF_RC_NO_CONFIGURED_CORES );
+ }
// PGPE Beacon is not implemented in simics
if (!G_simics_environment)
OpenPOWER on IntegriCloud