summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C
diff options
context:
space:
mode:
authorPrasad Bg Ranganath <prasadbgr@in.ibm.com>2017-11-14 23:50:23 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-12-11 18:02:09 -0500
commited38dac642698c4167130a02b7a9bdb616983ee6 (patch)
treeb8c2d122f6dd245a670e6a2f5f8281d9b8fa5e18 /src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C
parentdb7de0c59ffc6046d9e6c8faa43707a7bc5946e9 (diff)
downloadtalos-hostboot-ed38dac642698c4167130a02b7a9bdb616983ee6.tar.gz
talos-hostboot-ed38dac642698c4167130a02b7a9bdb616983ee6.zip
p9_pstate_parameter_block: support removal of VFRT Vdn
RTC:179507 Change-Id: Ide07bc963d2b88fa8d95c2f2776a84316d6dac48 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49697 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49718 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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C b/src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C
index 83ddf951a..b9c8ea9c9 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C
@@ -952,6 +952,8 @@ p9_pstate_wof_initialization (const GlobalPstateParmBlock* i_gppb,
FAPI_DBG(">> WOF initialization");
fapi2::ReturnCode l_rc = 0;
+ uint16_t l_vdd_size = 0;
+ uint16_t l_vdn_size = 0;
//this structure has VFRT header + data
HomerVFRTLayout_t l_vfrt;
@@ -985,13 +987,21 @@ p9_pstate_wof_initialization (const GlobalPstateParmBlock* i_gppb,
WofTablesHeader_t* p_wfth;
p_wfth = reinterpret_cast<WofTablesHeader_t*>(l_wof_table_data);
FAPI_INF("WFTH: %X", revle32(p_wfth->magic_number));
+ l_vdn_size = p_wfth->vdn_size;
+ l_vdd_size = p_wfth->vdd_size;
+ if (l_sys_vfrt_static_data == fapi2::ENUM_ATTR_SYS_VFRT_STATIC_DATA_ENABLE_VDN_STEP_OFF)
+ {
+ l_vdn_size = 1;
+ }
+
+ FAPI_INF("STATIC WOF: l_vdn_size %04x, l_vdd_size %04x",l_vdn_size,l_vdd_size);
memcpy(&l_vfrt, &g_sysvfrtData, sizeof (g_sysvfrtData));
- for (uint32_t vdn = 0; vdn < CEF_VDN_INDEX; ++vdn)
+ for (uint32_t vdn = 0; vdn < l_vdn_size; ++vdn)
{
l_vfrt.vfrtHeader.res_vdnId = vdn;
- for (uint32_t vdd = 0; vdd < CEF_VDD_INDEX; ++vdd)
+ for (uint32_t vdd = 0; vdd < l_vdd_size; ++vdd)
{
for (uint32_t qid = 0; qid < ACTIVE_QUADS; ++qid)
{
@@ -1066,9 +1076,14 @@ p9_pstate_wof_initialization (const GlobalPstateParmBlock* i_gppb,
}
+ l_vdn_size = p_wfth->vdn_size ? p_wfth->vdn_size : 1;
+ l_vdd_size = p_wfth->vdd_size ? p_wfth->vdd_size : 1;
+
+ FAPI_INF("WOF: l_vdn_size %04x, l_vdd_size %04x",l_vdn_size,l_vdd_size);
+
// Convert system vfrt to homer vfrt
- for (uint32_t vfrt_index = 0;
- vfrt_index < (CEF_VDN_INDEX * CEF_VDD_INDEX * ACTIVE_QUADS);
+ for (auto vfrt_index = 0;
+ vfrt_index < (l_vdn_size * l_vdd_size * ACTIVE_QUADS);
++vfrt_index)
{
OpenPOWER on IntegriCloud