Skip to content

Commit

Permalink
Pstate Parameter Block/Setup Evid: Safe Pstate Fix
Browse files Browse the repository at this point in the history
- Use the correct jump field (L_S) for setting safe mode (split variables for
  better understanding (HWP)
- General rearrangement of the safe mode calculations to perform proper voltage
  uplift (HWP)
- Added HWP only consumed elements to common headers (no co-reqs with Hcode!)
- Correct VDN and VCS voltage handling for biases
- Added VDM jump values to the GPPB for dumping via memory tools. Proven useful
  for VDM debug.
- Fix biases
- Deal with Cronus manual mode setting of Safe Mode
- Add check that Safe Mode is not above UltraTurbo
- Clip freq2pState to positive frequencies
- Add check that Boot Frequency is not above UltraTurbo

 Key_Cronus_Test=PM_REGRESS

Change-Id: Ie300c54629d9e97bb5d265db7a00845b2106bd02
HW-Image-Prereq: 975c737f700fb8afd5d2ab416058fcc832dc92a4
CQ: SW405402
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49396
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Reviewed-by: Brian T. Vanderpool <vanderp@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49405
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
  • Loading branch information
stillgs authored and crgeddes committed Nov 13, 2017
1 parent 86f2ee3 commit 361addb
Show file tree
Hide file tree
Showing 7 changed files with 764 additions and 401 deletions.
4 changes: 2 additions & 2 deletions src/import/chips/p9/procedures/hwp/lib/p9_pstates_cmeqm.h
Expand Up @@ -172,8 +172,8 @@ typedef struct
uint16_t ivdd_tdp_dc_current_10ma;
uint8_t vdm_overvolt_small_thresholds;
uint8_t vdm_large_extreme_thresholds;
uint8_t vdm_small_large_normal_freq;
uint8_t vdm_large_small_normal_freq;
uint8_t vdm_normal_freq_drop; // N_S and N_L Drop
uint8_t vdm_normal_freq_return; // L_S and S_N Return
uint8_t vdm_vid_compare_ivid;
uint8_t vdm_spare;
} poundw_entry_t;
Expand Down
26 changes: 26 additions & 0 deletions src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
Expand Up @@ -94,6 +94,32 @@
#define NUM_JUMP_VALUES 4
#define NUM_THRESHOLD_POINTS 4

// @todo RTC 181607
// This is synchronization work-around to avoid a co-req update between CME Hcode
// and the Pstate Parameter Block. The CME uses "IDX" while these use "INDEX".
// In the future, these should be common between the two platforms.
//
// As this file is included in both platforms, the definition below can be used
// in the CME Hcode and the "IDX" versions deprecated once this file version
// is included in both platforms.
#ifndef __ASSEMBLER__
typedef enum
{
VDM_OVERVOLT_INDEX = 0,
VDM_SMALL_INDEX = 1,
VDM_LARGE_INDEX = 2,
VDM_XTREME_INDEX = 3
} VDM_THRESHOLD_INDEX;

typedef enum
{
VDM_N_S_INDEX = 0,
VDM_N_L_INDEX = 1,
VDM_L_S_INDEX = 2,
VDM_S_N_INDEX = 3
} VDM_JUMP_VALUE_INDEX;
#endif

#define NUM_OP_POINTS 4
#define NUM_PV_POINTS 5
#define VPD_PV_POWERSAVE 1
Expand Down

0 comments on commit 361addb

Please sign in to comment.