diff options
author | mbroyles <mbroyles@us.ibm.com> | 2017-07-31 16:05:43 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-08-04 15:58:54 -0400 |
commit | 7d81d5d9402085c93d9441b587d9de3ff4290b85 (patch) | |
tree | e0a3e402e9a419ab4f22dade2ba97e236af94289 /src/occ_405/state.c | |
parent | ff487313bea8ccd3c0a9a523860a6fe406d925bb (diff) | |
download | talos-occ-7d81d5d9402085c93d9441b587d9de3ff4290b85.tar.gz talos-occ-7d81d5d9402085c93d9441b587d9de3ff4290b85.zip |
Set Pstate to nominal prior to giving ownership to host
Change-Id: If3ca5185bafda7d15e639e0f32c1b4ea3eba0c4c
RTC: 174964
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43959
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/state.c')
-rwxr-xr-x | src/occ_405/state.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/occ_405/state.c b/src/occ_405/state.c index f268024..e2a337a 100755 --- a/src/occ_405/state.c +++ b/src/occ_405/state.c @@ -542,11 +542,43 @@ errlHndl_t SMGR_observation_to_active() else // Clips set with no errors, enable Pstates on PGPE { - // Pstates are enabled via an IPC call to PGPE, which will set the // G_proc_pstate_status flag. PMCR owner is set based on system type. + if(G_sysConfigData.system_type.kvm) { + // Before giving host control of Pstates set the Pstate to nominal + // if this fails still give host ownership of Pstates and just log an info error. + // The boot just won't be as fast as OPAL would like running at nominal. If there + // is something seriuosly wrong that caused this to fail it will be detected + // as it was before OCC put in support to set nominal for booting + l_rc = set_nominal_pstate(); + if(l_rc) + { + TRAC_ERR("SMGR_obs_to_active OPAL: Failed to set nominal pstate rc[0x%04X]", l_rc); + /* @ + * @errortype + * @moduleid MAIN_STATE_TRANSITION_MID + * @reasoncode INTERNAL_FW_FAILURE + * @userdata1 rc from set_nominal_pstate + * @userdata2 0 + * @userdata4 ERC_PGPE_SET_NOMINAL_FAILURE + * @devdesc Failed to set nominal Pstate before host + */ + l_errlHndl = createErrl(MAIN_STATE_TRANSITION_MID, //modId + INTERNAL_FW_FAILURE, //reasoncode + ERC_PGPE_SET_NOMINAL_FAILURE, //Extended reason code + ERRL_SEV_INFORMATIONAL, //Severity + NULL, //Trace Buf + DEFAULT_TRACE_SIZE, //Trace Size + l_rc, //userdata1 + 0); //userdata2 + commitErrl(&l_errlHndl); + l_errlHndl = NULL; + l_rc = 0; + } + + // now give Host Pstate ownership l_rc = pgpe_start_suspend(PGPE_ACTION_PSTATE_START, PMCR_OWNER_HOST); } else |