diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2017-09-26 17:15:56 -0500 |
---|---|---|
committer | Andres A. Lugo-Reyes <aalugore@us.ibm.com> | 2017-10-16 15:58:00 -0400 |
commit | fa085f9b68802ec92a250eccca6ddb4152e7b61f (patch) | |
tree | efd9b222275b483ceef45e26a8f0ea8c81e6c81c /src/occ_405/main.c | |
parent | 051cc0a10cb61b410252098d13fb7dd8727a8e52 (diff) | |
download | talos-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-x | src/occ_405/main.c | 38 |
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) |