diff options
| author | Christopher M. Riedl <cmriedl@us.ibm.com> | 2017-05-04 13:07:49 -0500 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-08-22 17:55:05 -0500 |
| commit | 212a68631c93b07a01734e07a7b765e6887bf69c (patch) | |
| tree | 540b09b126a8119d2425e51d165a7466d7fe2821 | |
| parent | bb61e86407c9f630afe2a12c55fbb6b95768681e (diff) | |
| download | talos-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>
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c | 13 |
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) //=========================== |

