diff options
author | Prasad Bg Ranganath <prasadbgr@in.ibm.com> | 2017-11-14 23:50:23 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-12-11 18:02:09 -0500 |
commit | ed38dac642698c4167130a02b7a9bdb616983ee6 (patch) | |
tree | b8c2d122f6dd245a670e6a2f5f8281d9b8fa5e18 /src/import/chips/p9/procedures/hwp/pm/p9_pstate_parameter_block.C | |
parent | db7de0c59ffc6046d9e6c8faa43707a7bc5946e9 (diff) | |
download | talos-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.C | 23 |
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) { |