summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/lib')
-rw-r--r--src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.C17
-rw-r--r--src/import/chips/p9/procedures/hwp/lib/p9_common_poweronoff.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H23
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
OpenPOWER on IntegriCloud