diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/lib')
3 files changed, 37 insertions, 7 deletions
diff --git a/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.C b/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.C index 2ec24c73..3049363f 100644 --- a/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.C +++ b/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.C @@ -446,6 +446,7 @@ p9_common_poweronoff( { case p9power::POWER_ON: case p9power::POWER_ON_VDD: + case p9power::POWER_ON_VCS: { // 4.3.8.1 Power-on via Hardware FSM @@ -471,14 +472,17 @@ p9_common_poweronoff( // 2) Set bits to program HW to enable VDD PFET, and // 3) Poll state bit until Pfet sequence is complete - FAPI_TRY(powerOnVdd()); + if (i_operation != p9power::POWER_ON_VCS) + { + FAPI_TRY(powerOnVdd()); + } // 4) Set bits to program HW to enable VCS PFET, and // 5) Poll state bit until Pfet sequence is complete // Note: if (i_target.getType() & fapi2::TARGET_TYPE_EQ) doesn't work. // Created a POWER_*_VDD label to delineate Vcs and Vdd - if (i_operation == p9power::POWER_ON) + if (i_operation != p9power::POWER_ON_VDD) { FAPI_TRY(powerOnVcs()); } @@ -488,6 +492,7 @@ p9_common_poweronoff( case p9power::POWER_OFF: case p9power::POWER_OFF_VDD: + case p9power::POWER_OFF_VCS: { // 4.3.8.2 Power-off via Hardware FSM // 1) Read PFETCNTLSTAT_REG: check for bits 0:3 being 0b0000 @@ -508,15 +513,17 @@ p9_common_poweronoff( // Note: if (i_target.getType() & fapi2::TARGET_TYPE_EQ) doesn't work. // Created a POWER_*_VDD label to delineate Vcs and Vdd - if (i_operation == p9power::POWER_OFF) + if (i_operation != p9power::POWER_OFF_VDD) { FAPI_TRY(powerOffVcs()); } // 4) Set bits to program HW to turn off VDD PFET, and // 5) Poll state bit until Pfet sequence is complete - FAPI_TRY(powerOffVdd()); - + if (i_operation != p9power::POWER_OFF_VCS) + { + FAPI_TRY(powerOffVdd()); + } } break; } diff --git a/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.H b/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.H index 6d529928..56c20414 100644 --- a/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.H +++ b/src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.H @@ -46,7 +46,9 @@ enum powerOperation_t POWER_ON = 0x0, POWER_OFF = 0xFF, POWER_ON_VDD = 0x1, - POWER_OFF_VDD = 0xFE + POWER_OFF_VDD = 0xFE, + POWER_ON_VCS = 0x2, + POWER_OFF_VCS = 0xFD }; diff --git a/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H b/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H index cb3364d4..75f1c674 100644 --- a/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H +++ b/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H @@ -171,6 +171,7 @@ enum P9_HCD_CLK_CTRL_CONSTANTS { CLK_STOP_CMD = BIT64(0), CLK_START_CMD = BIT64(1), + CLK_REGION_PERV = BIT64(4), CLK_REGION_ANEP = BIT64(10), CLK_REGION_DPLL = BIT64(14), CLK_REGION_REFR = BITS64(12, 2), @@ -191,7 +192,27 @@ enum P9_HCD_CLK_CTRL_CONSTANTS CLK_REGION_ALL_BUT_PLL = BITS64(4, 10), CLK_REGION_ALL_BUT_PLL_REFR = BITS64(4, 8), CLK_REGION_ALL = BITS64(4, 11), - CLK_THOLD_ALL = BITS64(48, 3) + CLK_THOLD_ALL = BITS64(48, 3), + CLK_THOLD_SL = BIT64(48), + CLK_THOLD_NSL = BIT64(49), + CLK_THOLD_ARY = BIT64(50) +}; + +// Scan Type Constants +enum P9_HCD_SCAN_TYPE_CONSTANTS +{ + SCAN_TYPE_FUNC = BIT64(48), + SCAN_TYPE_CFG = BIT64(49), + SCAN_TYPE_CCFG_GPTR = BIT64(50), + SCAN_TYPE_REGF = BIT64(51), + SCAN_TYPE_LBIST = BIT64(52), + SCAN_TYPE_ABIST = BIT64(53), + SCAN_TYPE_REPR = BIT64(54), + SCAN_TYPE_TIME = BIT64(55), + SCAN_TYPE_BNDY = BIT64(56), + SCAN_TYPE_FARR = BIT64(57), + SCAN_TYPE_CMSK = BIT64(58), + SCAN_TYPE_INEX = BIT64(59) }; // Scan Flush Constants |