summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorChristopher M. Riedl <cmriedl@us.ibm.com>2017-05-04 13:07:49 -0500
committerhostboot <hostboot@us.ibm.com>2018-08-22 17:55:05 -0500
commit212a68631c93b07a01734e07a7b765e6887bf69c (patch)
tree540b09b126a8119d2425e51d165a7466d7fe2821 /import
parentbb61e86407c9f630afe2a12c55fbb6b95768681e (diff)
downloadtalos-hcode-212a68631c93b07a01734e07a7b765e6887bf69c.tar.gz
talos-hcode-212a68631c93b07a01734e07a7b765e6887bf69c.zip
Pstate: VDM Enablement
- SGPE stop exit and entry changes to set-up the QPPM VDM registers - CME stop exit and entry changes to enable/disable VDMs during Stop operations - CME code to change VDM VID compare and thresholds during Pstate operations - Compile-time flags to optionally remove Resclk/VDM code (due to size constraints) Change-Id: I44ce0d58788d9ff4eb6337ba739c6a717485342f Original-Change-Id: I1fe8b2231c554b4f181472efab1f5cc45cc087d6 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40676 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com> Reviewed-by: BRIAN D. VICTOR <brian.d.victor1@ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'import')
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c
index 9fa03f3d..7d7d77ea 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c
@@ -66,6 +66,7 @@ p9_sgpe_stop_entry()
#if !SKIP_IPC
uint32_t rc = 0;
#endif
+ sgpeHeader_t* pSgpeImgHdr = (sgpeHeader_t*)(OCC_SRAM_SGPE_HEADER_ADDR);
//--------------------------------------------------------------------------
PK_TRACE("+++++ +++++ BEGIN OF STOP ENTRY +++++ +++++");
@@ -925,6 +926,18 @@ p9_sgpe_stop_entry()
PK_TRACE("Checking status of Local Checkstop");
GPE_GETSCOM(GPE_SCOM_ADDR_QUAD(EQ_LOCAL_XSTOP_ERR, qloop), local_xstop);
+ if(pSgpeImgHdr->g_sgpe_reserve_flags & SGPE_VDM_ENABLE_BIT_POS)
+ {
+ PK_TRACE("Clear Jump Protect Enable (no need to poll DPLL_STAT");
+ GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(EQ_QPPM_DPLL_CTRL_CLEAR, qloop), BIT64(1));
+
+ PK_TRACE("Write QPPM VDMCR to set Disable and clear Poweron");
+ GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(PPM_VDMCR, qloop), BIT64(1));
+
+ PK_TRACE("Clear QPPM VDMCFGR");
+ GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(QPPM_VDMCFGR, qloop), 0);
+ }
+
//===========================
MARK_TRAP(SE_STOP_CACHE_CLKS)
//===========================
OpenPOWER on IntegriCloud