From b2d280fd5f62622cc3a5dc727dbdcda7832fe22a Mon Sep 17 00:00:00 2001 From: Greg Still Date: Tue, 30 Jan 2018 08:35:29 -0600 Subject: WOF: Pass PGPE VPD IQ good normal core per sort for WOF Phase 2 - p9_pstate_parameter_block fills in repurposed Pstate options field - PGPE checks for non-zero value and uses for number of cores in vratio calc - Forward and backward compatible with present (bad) behavior; both Hostboot and Hcode must both be present for correct behavior - Update p9_dump_pstate_table tool HWP (not consumed by FW). However, it uses the update p9_pstates_pgpe.h, Overlay structure compatible with back levels of p9_dump_pstate_table_wrap tool Key_Cronus_Test=PM_REGRESS Change-Id: I8c3fc1ee00a988cb5c7374fd5b084b6c37fe7575 Original-Change-Id: I2d973fc28bbf645ae030015c609318cb7351d7ec CQ: SW415420 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52931 Reviewed-by: RAHUL BATRA Tested-by: Jenkins Server Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA Tested-by: Hostboot CI Tested-by: Cronus HW CI Tested-by: FSP CI Jenkins Reviewed-by: Jennifer A. Stofer --- .../chips/p9/procedures/hwp/lib/p9_pstates_pgpe.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/import/chips/p9/procedures/hwp/lib/p9_pstates_pgpe.h b/import/chips/p9/procedures/hwp/lib/p9_pstates_pgpe.h index f62e9f2b..b4b61021 100644 --- a/import/chips/p9/procedures/hwp/lib/p9_pstates_pgpe.h +++ b/import/chips/p9/procedures/hwp/lib/p9_pstates_pgpe.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HCODE Project */ /* */ -/* COPYRIGHT 2015,2017 */ +/* COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -55,6 +55,26 @@ extern "C" { #include +/// Pad repurpose structure +typedef union +{ + uint32_t value; + struct + { + // Reserve 3 bytes + uint16_t reserved16; + uint8_t reserved8; + + // The following is used by PGPE for the WOF algorithm that computes + // vratio. The placement here is, frankly, a bit of a hack but is + // done to allievate cross-platform dependencies by not changing the + // overall size of the Global Paramter Block structure. In the future, + // this field should be moved into the base Global Paramter Block + // structure. + uint8_t good_cores_in_sort; + } fields; +} GPPBOptionsPadUse; + /// Standard options controlling Pstate setup and installation procedures typedef struct { -- cgit v1.2.3