summaryrefslogtreecommitdiffstats
path: root/src/occ_405/state.c
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2017-07-31 16:05:43 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-08-04 15:58:54 -0400
commit7d81d5d9402085c93d9441b587d9de3ff4290b85 (patch)
treee0a3e402e9a419ab4f22dade2ba97e236af94289 /src/occ_405/state.c
parentff487313bea8ccd3c0a9a523860a6fe406d925bb (diff)
downloadtalos-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-xsrc/occ_405/state.c34
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
OpenPOWER on IntegriCloud