* [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor
@ 2023-01-13 4:25 Nhi Pham
2023-01-13 4:25 ` [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max Nhi Pham
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Nhi Pham @ 2023-01-13 4:25 UTC (permalink / raw)
To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Nhi Pham
This patchset adds support for Ampere Altra Max processor.
Tinh Nguyen (1):
JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
Vu Nguyen (1):
Ampere: PCIe: Add support for Ampere Altra Max
.../AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 6 +-
Platform/Ampere/JadePkg/Jade.dsc | 3 +-
Platform/Ampere/JadePkg/Jade.fdf | 3 +-
.../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf | 20 +
.../Include/Library/AmpereCpuLib.h | 31 +-
.../AmpereAltraPkg/Include/NVParamDef.h | 64 +-
.../AmpereAltraPkg/Include/Platform/Ac01.h | 5 +-
.../Library/Ac01PcieLib/PcieCore.h | 8 +-
.../Drivers/AcpiPlatformDxe/AcpiMadt.c | 103 +-
.../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c | 10 +-
.../Library/BoardPcieLib/BoardPcieLib.c | 63 +-
.../Drivers/PcieInitPei/PcieInitPei.c | 16 +-
.../Drivers/PcieInitPei/RootComplexNVParam.c | 101 +-
.../Library/Ac01PcieLib/PcieCore.c | 150 +-
.../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 +-
.../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi | 6345 +++++++++++++++++
.../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi | 6345 +++++++++++++++++
.../Ampere/JadePkg/Ac02AcpiTables/CPU.asi | 152 +
.../JadePkg/Ac02AcpiTables/CommonDevices.asi | 670 ++
.../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl | 39 +
.../JadePkg/Ac02AcpiTables/PCI-PDRC.asi | 217 +
.../JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi | 669 ++
.../Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi | 2041 ++++++
.../Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi | 2051 ++++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi | 1292 ++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi | 1292 ++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU.asi | 10 +
27 files changed, 21699 insertions(+), 250 deletions(-)
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max
2023-01-13 4:25 [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
@ 2023-01-13 4:25 ` Nhi Pham
2023-02-15 11:59 ` Leif Lindholm
2023-01-13 4:25 ` [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables " Nhi Pham
2023-03-29 4:49 ` [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
2 siblings, 1 reply; 10+ messages in thread
From: Nhi Pham @ 2023-01-13 4:25 UTC (permalink / raw)
To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham
From: Vu Nguyen <vunguyen@os.amperecomputing.com>
This updates the PCIe modules to add support for
Ampere Altra Max processor which features 128 PCIe
Gen4 lanes (distributed across eight x16 RCAs) using
32 controllers.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
.../AmpereAltraPkg/Include/NVParamDef.h | 64 ++++++--
.../Library/Ac01PcieLib/PcieCore.h | 8 +-
.../Library/BoardPcieLib/BoardPcieLib.c | 63 +++++++-
.../Drivers/PcieInitPei/PcieInitPei.c | 16 +-
.../Drivers/PcieInitPei/RootComplexNVParam.c | 101 +++++++++---
.../Library/Ac01PcieLib/PcieCore.c | 150 +++++++++++++++---
6 files changed, 333 insertions(+), 69 deletions(-)
diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
index 3259fa1ea45c..4dfc353d2340 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
@@ -29,7 +29,7 @@
As each non-volatile parameter requires 8 bytes, there is a total of 8K
parameters.
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -425,10 +425,10 @@
#define NV_SI_RO_BOARD_S0_RCA5_CFG ((107 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
#define NV_SI_RO_BOARD_S0_RCA6_CFG ((108 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
#define NV_SI_RO_BOARD_S0_RCA7_CFG ((109 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
-#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
#define NV_SI_RO_BOARD_S0_RCB0A_TXRX_G3PRESET ((114 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S0_RCB0B_TXRX_G3PRESET ((115 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S0_RCB1A_TXRX_G3PRESET ((116 * 8) + NV_BOARD_PARAM_START)
@@ -437,10 +437,10 @@
#define NV_SI_RO_BOARD_S0_RCB2B_TXRX_G3PRESET ((119 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S0_RCB3A_TXRX_G3PRESET ((120 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S0_RCB3B_TXRX_G3PRESET ((121 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET ((126 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G4PRESET ((127 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G4PRESET ((128 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
@@ -462,8 +462,8 @@
#define NV_SI_RO_BOARD_S1_RCA5_CFG ((144 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
#define NV_SI_RO_BOARD_S1_RCA6_CFG ((145 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
#define NV_SI_RO_BOARD_S1_RCA7_CFG ((146 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
-#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
#define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G3PRESET ((149 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S1_RCB0B_TXRX_G3PRESET ((150 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S1_RCB1A_TXRX_G3PRESET ((151 * 8) + NV_BOARD_PARAM_START)
@@ -472,10 +472,10 @@
#define NV_SI_RO_BOARD_S1_RCB2B_TXRX_G3PRESET ((154 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S1_RCB3A_TXRX_G3PRESET ((155 * 8) + NV_BOARD_PARAM_START)
#define NV_SI_RO_BOARD_S1_RCB3B_TXRX_G3PRESET ((156 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START)
-#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET ((161 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G4PRESET ((162 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
#define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G4PRESET ((163 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
@@ -523,7 +523,39 @@
#define NV_SI_RO_BOARD_RAS_DDR_CE_TH1 ((205 * 8) + NV_BOARD_PARAM_START) /* Default: 0x000001F4 */
#define NV_SI_RO_BOARD_RAS_DDR_CE_TH2 ((206 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00001388 */
#define NV_SI_RO_BOARD_RAS_DDR_CE_THC ((207 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00000000 */
-#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_RAS_DDR_CE_THC)
+#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_20GPRESET ((208 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_20GPRESET ((209 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_25GPRESET ((210 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_25GPRESET ((211 * 8) + NV_BOARD_PARAM_START)
+#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET ((212 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G3PRESET ((213 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G3PRESET ((214 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G3PRESET ((215 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET ((216 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G3PRESET ((217 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G3PRESET ((218 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G3PRESET ((219 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET ((220 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G3PRESET ((221 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET ((222 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G3PRESET ((223 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G3PRESET ((224 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G3PRESET ((225 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
+#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET ((226 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G4PRESET ((227 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G4PRESET ((228 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G4PRESET ((229 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET ((230 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G4PRESET ((231 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G4PRESET ((232 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G4PRESET ((233 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET ((234 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G4PRESET ((235 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET ((236 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G4PRESET ((237 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G4PRESET ((238 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET ((239 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
+#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET)
//
// NOTE: Add before NV_BOARD_PARAM_MAX and increase its value
//
diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
index 1db8a68b3df4..a18fff7dbb75 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -39,6 +39,7 @@
#define PIPE_CLOCK_TIMEOUT 20000 // 20,000 us
#define LTSSM_TRANSITION_TIMEOUT 100000 // 100 ms in total
#define EP_LINKUP_TIMEOUT (10 * 1000) // 10ms
+#define EP_LINKUP_EXTRA_TIMEOUT (500 * 1000) // 500ms
#define LINK_WAIT_INTERVAL_US 50
#define PFA_MODE_ENABLE 0
@@ -80,6 +81,7 @@
#define AC01_PCIE_CORE_IRQ_ENABLE_REG 0x30
#define AC01_PCIE_CORE_IRQ_EVENT_STAT_REG 0x38
#define AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG 0x3C
+#define AC01_PCIE_CORE_BUS_CONTROL_REG 0x40
#define AC01_PCIE_CORE_RESET_REG 0xC000
#define AC01_PCIE_CORE_CLOCK_REG 0xC004
#define AC01_PCIE_CORE_MEM_READY_REG 0xC104
@@ -87,6 +89,7 @@
// AC01_PCIE_CORE_LINK_CTRL_REG
#define LTSSMENB_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
+#define LTSSMENB_GET(dst) ((dst) & (BIT0))
#define HOLD_LINK_TRAINING 0
#define START_LINK_TRAINING 1
#define DEVICETYPE_SET(dst, src) (((dst) & ~0xF0) | (((UINT32) (src) << 4) & 0xF0))
@@ -120,6 +123,9 @@
// AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG
#define LINKUP_MASK 0x1
+// AC01_PCIE_CORE_BUS_CONTROL_REG
+#define BUS_CTL_CFG_UR_MASK 0x8
+
// AC01_PCIE_CORE_RESET_REG
#define DWC_PCIE_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
#define RESET_MASK 0x1
diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
index f49764097219..4e0ba551e09b 100644
--- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
+++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
@@ -2,7 +2,7 @@
Pcie board specific driver to handle asserting PERST signal to Endpoint
card. PERST asserting is via group of GPIO pins to CPLD as Platform Specification.
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -20,6 +20,8 @@
#define RCB_MAX_PERST_GROUPVAL 46
#define DEFAULT_SEGMENT_NUMBER 0x0F
+#define PCIE_PERST_DELAY (100 * 1000) // 100ms
+
VOID
BoardPcieReleaseAllPerst (
IN UINT8 SocketId
@@ -32,6 +34,8 @@ BoardPcieReleaseAllPerst (
for (GpioIndex = 0; GpioIndex < 6; GpioIndex++) {
GpioModeConfig (GpioPin + GpioIndex, GpioConfigOutHigh);
}
+
+ MicroSecondDelay (PCIE_PERST_DELAY);
}
/**
@@ -56,11 +60,54 @@ BoardPcieAssertPerst (
if (!IsPullToHigh) {
if (RootComplex->Type == RootComplexTypeA) {
- //
- // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
- //
- GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
- - RootComplex->ID * MaxPcieControllerOfRootComplexA;
+ if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
+ /* Ampere Altra: 4 */
+ //
+ // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
+ //
+ GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
+ - RootComplex->ID * MaxPcieControllerOfRootComplexA;
+ } else {
+ /* Ampere Altra Max RootComplex->ID: 4:7 */
+ if (PcieIndex < 2) {
+ switch (RootComplex->ID) {
+ case 4:
+ GpioGroupVal = 34 - (PcieIndex * 2);
+ break;
+ case 5:
+ GpioGroupVal = 38 - (PcieIndex * 2);
+ break;
+ case 6:
+ GpioGroupVal = 30 - (PcieIndex * 2);
+ break;
+ case 7:
+ GpioGroupVal = 26 - (PcieIndex * 2);
+ break;
+ }
+ } else {
+ /* PcieIndex 2:3 */
+ switch (RootComplex->ID) {
+ case 4:
+ GpioGroupVal = 46 - ((PcieIndex - 2) * 2);
+ break;
+
+ case 5:
+ GpioGroupVal = 42 - ((PcieIndex - 2) * 2);
+ break;
+
+ case 6:
+ GpioGroupVal = 18 - ((PcieIndex - 2) * 2);
+ break;
+
+ case 7:
+ GpioGroupVal = 22 - ((PcieIndex - 2) * 2);
+ break;
+
+ default:
+ DEBUG ((DEBUG_ERROR, "Invalid Root Complex ID %d\n", RootComplex->ID));
+ }
+ }
+ }
} else {
//
// RootComplexTypeB: RootComplex->ID: 4->7 ; PcieIndex: 0->7
@@ -81,7 +128,7 @@ BoardPcieAssertPerst (
}
// Keep reset as low as 100 ms as specification
- MicroSecondDelay (100 * 1000);
+ MicroSecondDelay (PCIE_PERST_DELAY);
} else {
BoardPcieReleaseAllPerst (RootComplex->Socket);
}
@@ -113,5 +160,5 @@ BoardPcieGetSegmentNumber (
return Ac01BoardSegment[RootComplex->Socket][RootComplex->ID];
}
- return DEFAULT_SEGMENT_NUMBER;
+ return (RootComplex->ID - 2);
}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
index 17f6112ea207..a69193b07005 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -94,7 +94,7 @@ BuildRootComplexData (
RootComplex = &mRootComplexList[RCIndex];
RootComplex->Active = ConfigFound ? RootComplexConfig.RCStatus[RCIndex] : TRUE;
RootComplex->DevMapLow = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
- RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
+ RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationHigh[RCIndex] : 0;
RootComplex->Socket = RCIndex / AC01_PCIE_MAX_RCS_PER_SOCKET;
RootComplex->ID = RCIndex % AC01_PCIE_MAX_RCS_PER_SOCKET;
RootComplex->CsrBase = mCsrBase[RCIndex];
@@ -106,7 +106,12 @@ BuildRootComplexData (
RootComplex->MmioSize = mMmioSize[RCIndex];
RootComplex->Mmio32Base = mMmio32Base[RCIndex];
RootComplex->Mmio32Size = mMmio32Size[RCIndex];
- RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
+ if (IsAc01Processor ()) {
+ RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
+ } else {
+ RootComplex->Type = RootComplexTypeA;
+ }
+
RootComplex->MaxPcieController = (RootComplex->Type == RootComplexTypeB)
? MaxPcieControllerOfRootComplexB : MaxPcieControllerOfRootComplexA;
RootComplex->Logical = BoardPcieGetSegmentNumber (RootComplex);
@@ -168,11 +173,14 @@ PcieInitEntry (
continue;
}
+ DEBUG ((DEBUG_INIT, "Initializing S%d-RC%d...", RootComplex->Socket, RootComplex->ID));
Status = Ac01PcieCoreSetupRC (RootComplex, FALSE, 0);
if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "RootComplex[%d]: Init Failed\n", Index));
+ DEBUG ((DEBUG_ERROR, "Failed\n"));
RootComplex->Active = FALSE;
continue;
+ } else {
+ DEBUG ((DEBUG_INIT, "Done + DevMapLow/High: %d/%d\n", RootComplex->DevMapLow, RootComplex->DevMapHigh));
}
}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
index aa34a90b44c6..1346fa616ab3 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
@@ -37,7 +37,7 @@
| Y | Y | Y | Y | 3 |
----------------------------------------
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -149,6 +149,10 @@ GetDefaultDevMap (
AC01_ROOT_COMPLEX *RootComplex
)
{
+ BOOLEAN IsAc01;
+
+ IsAc01 = IsAc01Processor ();
+
if (RootComplex->Pcie[PcieController0].Active
&& RootComplex->Pcie[PcieController1].Active
&& RootComplex->Pcie[PcieController2].Active
@@ -169,14 +173,20 @@ GetDefaultDevMap (
&& RootComplex->Pcie[PcieController5].Active
&& RootComplex->Pcie[PcieController6].Active
&& RootComplex->Pcie[PcieController7].Active) {
- RootComplex->DefaultDevMapHigh = DevMapMode4;
+ if (IsAc01) {
+ RootComplex->DefaultDevMapHigh = DevMapMode4;
+ }
} else if (RootComplex->Pcie[PcieController4].Active
&& RootComplex->Pcie[PcieController6].Active
&& RootComplex->Pcie[PcieController7].Active) {
- RootComplex->DefaultDevMapHigh = DevMapMode3;
+ if (IsAc01) {
+ RootComplex->DefaultDevMapHigh = DevMapMode3;
+ }
} else if (RootComplex->Pcie[PcieController4].Active
&& RootComplex->Pcie[PcieController6].Active) {
- RootComplex->DefaultDevMapHigh = DevMapMode2;
+ if (IsAc01) {
+ RootComplex->DefaultDevMapHigh = DevMapMode2;
+ }
} else {
RootComplex->DefaultDevMapHigh = DevMapMode1;
}
@@ -203,12 +213,17 @@ GetLaneAllocation (
EFI_STATUS Status;
INTN RPIndex;
NVPARAM NvParamOffset;
- UINT32 Value, Width;
+ UINT32 Value, Width, Controller;
// Retrieve lane allocation and capabilities for each controller
if (RootComplex->Type == RootComplexTypeA) {
- NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
- NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
+ NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
+ NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOARD_S1_RCA4_CFG;
+ NvParamOffset += (RootComplex->ID - MaxPcieControllerOfRootComplexA) * NV_PARAM_ENTRYSIZE;
+ }
} else {
//
// There're two NVParam entries per RootComplexTypeB
@@ -222,7 +237,13 @@ GetLaneAllocation (
Value = 0;
}
- for (RPIndex = 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++) {
+ if (IsAc01Processor ()) {
+ Controller = MaxPcieControllerOfRootComplexA;
+ } else {
+ Controller = RootComplex->MaxPcieController;
+ }
+
+ for (RPIndex = PcieController0; RPIndex < Controller; RPIndex++) {
Width = (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK;
switch (Width) {
case 1:
@@ -245,7 +266,7 @@ GetLaneAllocation (
if (RootComplex->Type == RootComplexTypeB) {
NvParamOffset += NV_PARAM_ENTRYSIZE;
- Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+ Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
if (EFI_ERROR (Status)) {
Value = 0;
}
@@ -288,9 +309,17 @@ GetGen3PresetNvParamOffset (
if (RootComplex->Socket == 0) {
if (RootComplex->Type == RootComplexTypeA) {
if (RootComplex->ID < MaxRootComplexA) {
- NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ }
} else {
- NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ }
}
} else {
//
@@ -300,9 +329,17 @@ GetGen3PresetNvParamOffset (
}
} else if (RootComplex->Type == RootComplexTypeA) {
if (RootComplex->ID < MaxRootComplexA) {
- NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ }
} else {
- NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ }
}
} else {
//
@@ -324,9 +361,17 @@ GetGen4PresetNvParamOffset (
if (RootComplex->Socket == 0) {
if (RootComplex->Type == RootComplexTypeA) {
if (RootComplex->ID < MaxRootComplexA) {
- NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
+ }
} else {
- NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ }
}
} else {
//
@@ -336,9 +381,17 @@ GetGen4PresetNvParamOffset (
}
} else if (RootComplex->Type == RootComplexTypeA) {
if (RootComplex->ID < MaxRootComplexA) {
- NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
+ }
} else {
- NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ if (IsAc01Processor ()) {
+ NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ } else {
+ NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
+ }
}
} else {
//
@@ -352,7 +405,7 @@ GetGen4PresetNvParamOffset (
VOID
GetPresetSetting (
- AC01_ROOT_COMPLEX *RootComplex
+ AC01_ROOT_COMPLEX *RootComplex
)
{
EFI_STATUS Status;
@@ -377,7 +430,7 @@ GetPresetSetting (
if (RootComplex->Type == RootComplexTypeB) {
NvParamOffset += NV_PARAM_ENTRYSIZE;
- Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+ Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
if (!EFI_ERROR (Status)) {
for (Index = MaxPcieControllerOfRootComplexA; Index < MaxPcieController; Index++) {
RootComplex->PresetGen3[Index] = (Value >> ((Index - MaxPcieControllerOfRootComplexA) * BITS_PER_BYTE)) & BYTE_MASK;
@@ -414,7 +467,7 @@ GetMaxSpeedGen (
UINT8 ErrataSpeedDevMap3[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN4, LINK_SPEED_GEN4, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 2: x8 x4 x4 (PCIE_ERRATA_SPEED1)
UINT8 ErrataSpeedDevMap4[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 3: x4 x4 x4 x4 (PCIE_ERRATA_SPEED1)
UINT8 ErrataSpeedRcb[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // RootComplexTypeB PCIE_ERRATA_SPEED1
- UINT8 Idx;
+ UINT8 Idx, Controller;
UINT8 *MaxGen;
ASSERT (MaxPcieControllerOfRootComplexA == 4);
@@ -452,7 +505,13 @@ GetMaxSpeedGen (
}
}
- for (Idx = 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) {
+ if (IsAc01Processor ()) {
+ Controller = MaxPcieControllerOfRootComplexA;
+ } else {
+ Controller = RootComplex->MaxPcieController;
+ }
+
+ for (Idx = 0; Idx < Controller; Idx++) {
RootComplex->Pcie[Idx].MaxGen = RootComplex->Pcie[Idx].Active ? MaxGen[Idx] : LINK_SPEED_NONE;
}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
index ad648b1b9efd..12bd2c14544e 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -10,8 +10,10 @@
#include <Guid/PlatformInfoHob.h>
#include <Guid/RootComplexInfoHob.h>
+#include <IndustryStandard/Pci.h>
#include <Library/ArmGenericTimerCounterLib.h>
#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
#include <Library/BoardPcieLib.h>
#include <Library/DebugLib.h>
#include <Library/HobLib.h>
@@ -22,6 +24,25 @@
#include "PcieCore.h"
+VOID
+EnableDbiAccess (
+ AC01_ROOT_COMPLEX *RootComplex,
+ UINT32 PcieIndex,
+ BOOLEAN EnableDbi
+ );
+
+BOOLEAN
+EndpointCfgReady (
+ IN AC01_ROOT_COMPLEX *RootComplex,
+ IN UINT8 PcieIndex,
+ IN UINT32 Timeout
+ );
+
+BOOLEAN
+PcieLinkUpCheck (
+ IN AC01_PCIE_CONTROLLER *Pcie
+ );
+
/**
Return the next extended capability base address
@@ -41,14 +62,38 @@ GetCapabilityBase (
{
BOOLEAN IsExtCapability = FALSE;
PHYSICAL_ADDRESS CfgBase;
+ PHYSICAL_ADDRESS Ret = 0;
+ PHYSICAL_ADDRESS RootComplexCfgBase;
UINT32 CapabilityId;
UINT32 NextCapabilityPtr;
UINT32 Val;
+ UINT32 RestoreVal;
- if (IsRootComplex) {
- CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
- } else {
+ RootComplexCfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
+ if (!IsRootComplex) {
+ // Allow programming to config space
+ EnableDbiAccess (RootComplex, PcieIndex, TRUE);
+
+ Val = MmioRead32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG);
+ RestoreVal = Val;
+ Val = SUB_BUS_SET (Val, DEFAULT_SUB_BUS);
+ Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
+ Val = PRIM_BUS_SET (Val, 0x0);
+ MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, Val);
CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
+
+ if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_TIMEOUT)) {
+ goto _CheckCapEnd;
+ }
+ } else {
+ CfgBase = RootComplexCfgBase;
+ }
+
+ // Check if device provide capability
+ Val = MmioRead32 (CfgBase + PCI_COMMAND_OFFSET);
+ Val = GET_HIGH_16_BITS (Val); /* Status */
+ if (!(Val & EFI_PCI_STATUS_CAPABILITY)) {
+ goto _CheckCapEnd;
}
Val = MmioRead32 (CfgBase + TYPE1_CAP_PTR_REG);
@@ -58,7 +103,8 @@ GetCapabilityBase (
while (1) {
if ((NextCapabilityPtr & WORD_ALIGN_MASK) != 0) {
// Not alignment, just return
- return 0;
+ Ret = 0;
+ goto _CheckCapEnd;
}
Val = MmioRead32 (CfgBase + NextCapabilityPtr);
@@ -69,7 +115,8 @@ GetCapabilityBase (
}
if (CapabilityId == ExtCapabilityId) {
- return (CfgBase + NextCapabilityPtr);
+ Ret = (CfgBase + NextCapabilityPtr);
+ goto _CheckCapEnd;
}
if (NextCapabilityPtr < EXT_CAPABILITY_START_BASE) {
@@ -84,9 +131,20 @@ GetCapabilityBase (
}
if ((NextCapabilityPtr == 0) && IsExtCapability) {
- return 0;
+ Ret = 0;
+ goto _CheckCapEnd;
}
}
+
+_CheckCapEnd:
+ if (!IsRootComplex) {
+ MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, RestoreVal);
+
+ // Disable programming to config space
+ EnableDbiAccess (RootComplex, PcieIndex, FALSE);
+ }
+
+ return Ret;
}
/**
@@ -677,6 +735,14 @@ Ac01PcieCoreSetupRC (
// Hold link training
StartLinkTraining (RootComplex, PcieIndex, FALSE);
+ // Clear BUSCTRL.CfgUrMask to set CRS (Configuration Request Retry Status) to 0xFFFF.FFFF
+ // rather than 0xFFFF.0001 as per PCIe specification requirement. Otherwise, this causes
+ // device drivers respond incorrectly on timeout due to long device operations.
+ TargetAddress = CsrBase + AC01_PCIE_CORE_BUS_CONTROL_REG;
+ Val = MmioRead32 (TargetAddress);
+ Val &= ~BUS_CTL_CFG_UR_MASK;
+ MmioWrite32 (TargetAddress, Val);
+
if (!EnableAxiPipeClock (RootComplex, PcieIndex)) {
DEBUG ((DEBUG_ERROR, "- Pcie[%d] - PIPE clock is not stable\n", PcieIndex));
return RETURN_DEVICE_ERROR;
@@ -688,9 +754,14 @@ Ac01PcieCoreSetupRC (
// Allow programming to config space
EnableDbiAccess (RootComplex, PcieIndex, TRUE);
- // Program the power limit
TargetAddress = CfgBase + PCIE_CAPABILITY_BASE + SLOT_CAPABILITIES_REG;
Val = MmioRead32 (TargetAddress);
+ // In order to detect the NVMe disk for booting without disk,
+ // need to set Hot-Plug Slot Capable during port initialization.
+ // It will help PCI Linux driver to initialize its slot iomem resource,
+ // the one is used for detecting the disk when it is inserted.
+ Val = SLOT_HPC_SET (Val, 1);
+ // Program the power limit
Val = SLOT_CAP_SLOT_POWER_LIMIT_VALUE_SET (Val, SLOT_POWER_LIMIT_75W);
MmioWrite32 (TargetAddress, Val);
@@ -755,6 +826,7 @@ Ac01PcieCoreSetupRC (
// Link timeout after 1ms
SetLinkTimeout (RootComplex, PcieIndex, 1);
+ // Mask Completion Timeout
DisableCompletionTimeOut (RootComplex, PcieIndex, TRUE);
ProgramRootPortInfo (RootComplex, PcieIndex);
@@ -1067,21 +1139,20 @@ Ac01PFACommand (
return Ret;
}
-UINT32
+BOOLEAN
EndpointCfgReady (
IN AC01_ROOT_COMPLEX *RootComplex,
- IN UINT8 PcieIndex
+ IN UINT8 PcieIndex,
+ IN UINT32 TimeOut
)
{
PHYSICAL_ADDRESS CfgBase;
- UINT32 TimeOut;
UINT32 Val;
CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
// Loop read CfgBase value until got valid value or
- // reach to timeout EP_LINKUP_TIMEOUT (or more depend on card)
- TimeOut = EP_LINKUP_TIMEOUT;
+ // reach to Timeout (or more depend on card)
do {
Val = MmioRead32 (CfgBase);
if (Val != 0xFFFF0001 && Val != 0xFFFFFFFF) {
@@ -1111,7 +1182,7 @@ Ac01PcieCoreGetEndpointInfo (
OUT UINT8 *EpMaxGen
)
{
- PHYSICAL_ADDRESS CfgBase;
+ PHYSICAL_ADDRESS CfgBase, EpCfgAddr;
PHYSICAL_ADDRESS PcieCapBase;
PHYSICAL_ADDRESS SecLatTimerAddr;
PHYSICAL_ADDRESS TargetAddress;
@@ -1133,8 +1204,23 @@ Ac01PcieCoreGetEndpointInfo (
Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
Val = PRIM_BUS_SET (Val, DEFAULT_PRIM_BUS);
MmioWrite32 (SecLatTimerAddr, Val);
+ EpCfgAddr = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
- if (EndpointCfgReady (RootComplex, PcieIndex)) {
+ if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_EXTRA_TIMEOUT)) {
+ goto Exit;
+ }
+
+ Val = MmioRead32 (EpCfgAddr);
+ // Check whether EP config space is accessible or not
+ if (Val == 0xFFFFFFFF) {
+ *EpMaxWidth = 0; // Invalid Width
+ *EpMaxGen = 0; // Invalid Speed
+ DEBUG ((DEBUG_ERROR, "PCIE%d.%d Cannot access EP config space!\n", RootComplex->ID, PcieIndex));
+ } else if (Val == 0xFFFF0001) {
+ *EpMaxWidth = 0; // Invalid Width
+ *EpMaxGen = 0; // Invalid Speed
+ DEBUG ((DEBUG_ERROR, "PCIE%d.%d EP config space still not ready to access, need poll more time!!!\n", RootComplex->ID, PcieIndex));
+ } else {
PcieCapBase = GetCapabilityBase (RootComplex, PcieIndex, FALSE, PCIE_CAPABILITY_ID);
if (PcieCapBase == 0) {
DEBUG ((
@@ -1164,6 +1250,7 @@ Ac01PcieCoreGetEndpointInfo (
}
}
+Exit:
// Restore value in order to not affect enumeration process
MmioWrite32 (SecLatTimerAddr, RestoreVal);
@@ -1280,6 +1367,30 @@ Ac01PcieCoreQoSLinkCheckRecovery (
return LINK_CHECK_SUCCESS;
}
+BOOLEAN
+Ac01PcieCoreCheckCardPresent (
+ IN AC01_PCIE_CONTROLLER *PcieController
+ )
+{
+ EFI_PHYSICAL_ADDRESS TargetAddress;
+ UINT32 ControlValue;
+
+ ControlValue = 0;
+
+ TargetAddress = PcieController->CsrBase;
+
+ ControlValue = MmioRead32 (TargetAddress + AC01_PCIE_CORE_LINK_CTRL_REG);
+
+ if (0 == LTSSMENB_GET (ControlValue)) {
+ //
+ // LTSSMENB is clear to 0x00 by Hardware -> link partner is connected.
+ //
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
VOID
Ac01PcieCoreUpdateLink (
IN AC01_ROOT_COMPLEX *RootComplex,
@@ -1328,16 +1439,17 @@ Ac01PcieCoreUpdateLink (
// Doing link checking and recovery if needed
Ac01PcieCoreQoSLinkCheckRecovery (RootComplex, PcieIndex);
- // Link timeout after 32ms
- SetLinkTimeout (RootComplex, PcieIndex, 32);
-
// Un-mask Completion Timeout
DisableCompletionTimeOut (RootComplex, PcieIndex, FALSE);
} else {
- *IsNextRoundNeeded = FALSE;
FailedPciePtr[*FailedPcieCount] = PcieIndex;
*FailedPcieCount += 1;
+
+ if (Ac01PcieCoreCheckCardPresent (Pcie)) {
+ *IsNextRoundNeeded = TRUE;
+ DEBUG ((DEBUG_INFO, "PCIE%d.%d Link retry\n", RootComplex->ID, PcieIndex));
+ }
}
}
}
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
2023-01-13 4:25 [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
2023-01-13 4:25 ` [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max Nhi Pham
@ 2023-01-13 4:25 ` Nhi Pham
2023-02-15 12:03 ` [edk2-devel] " Leif Lindholm
2023-02-24 18:03 ` Rebecca Cran
2023-03-29 4:49 ` [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
2 siblings, 2 replies; 10+ messages in thread
From: Nhi Pham @ 2023-01-13 4:25 UTC (permalink / raw)
To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Tinh Nguyen, Nhi Pham
From: Tinh Nguyen <tinhnguyen@os.amperecomputing.com>
This adds ACPI DSDT tables and updates ACPI MADT table
to support Ampere Altra Max processor.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
.../AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 6 +-
Platform/Ampere/JadePkg/Jade.dsc | 3 +-
Platform/Ampere/JadePkg/Jade.fdf | 3 +-
.../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf | 20 +
.../Include/Library/AmpereCpuLib.h | 31 +-
.../AmpereAltraPkg/Include/Platform/Ac01.h | 5 +-
.../Drivers/AcpiPlatformDxe/AcpiMadt.c | 103 +-
.../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c | 10 +-
.../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 +-
.../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi | 6345 +++++++++++++++++
.../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi | 6345 +++++++++++++++++
.../Ampere/JadePkg/Ac02AcpiTables/CPU.asi | 152 +
.../JadePkg/Ac02AcpiTables/CommonDevices.asi | 670 ++
.../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl | 39 +
.../JadePkg/Ac02AcpiTables/PCI-PDRC.asi | 217 +
.../JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi | 669 ++
.../Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi | 2041 ++++++
.../Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi | 2051 ++++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi | 1292 ++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi | 1292 ++++
.../Ampere/JadePkg/Ac02AcpiTables/PMU.asi | 10 +
21 files changed, 21366 insertions(+), 181 deletions(-)
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
index bf23edc50349..9275e0053af6 100644
--- a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
+++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
@@ -1,6 +1,6 @@
## @file
#
-# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -410,8 +410,8 @@ [PcdsFixedAtBuild.common]
#
# Ampere Altra Core-Cluster profile
#
- gArmPlatformTokenSpaceGuid.PcdCoreCount|80
- gArmPlatformTokenSpaceGuid.PcdClusterCount|40
+ gArmPlatformTokenSpaceGuid.PcdCoreCount|128
+ gArmPlatformTokenSpaceGuid.PcdClusterCount|64
#
# PL011 - Serial Terminal
diff --git a/Platform/Ampere/JadePkg/Jade.dsc b/Platform/Ampere/JadePkg/Jade.dsc
index 980f431fc4de..f14d286cdfb8 100644
--- a/Platform/Ampere/JadePkg/Jade.dsc
+++ b/Platform/Ampere/JadePkg/Jade.dsc
@@ -1,6 +1,6 @@
## @file
#
-# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -163,6 +163,7 @@ [Components.common]
Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf
Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
+ Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
#
# PCIe
diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jade.fdf
index e88c95c57abe..a578d05330ec 100644
--- a/Platform/Ampere/JadePkg/Jade.fdf
+++ b/Platform/Ampere/JadePkg/Jade.fdf
@@ -1,6 +1,6 @@
## @file
#
-# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -339,6 +339,7 @@ [FV.FvMain]
INF Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF RuleOverride=ACPITABLE Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf
INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
+ INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
#
# SMBIOS
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf b/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
new file mode 100644
index 000000000000..2c96eaa00168
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
@@ -0,0 +1,20 @@
+## @file
+#
+# Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ INF_VERSION = 0x0001001B
+ BASE_NAME = Ac02AcpiTables
+ FILE_GUID = 5CA064B6-5AA4-4E29-ABDC-8BF3B34DBF9E
+ MODULE_TYPE = USER_DEFINED
+ VERSION_STRING = 1.0
+
+[Sources]
+ Dsdt.asl
+
+[Packages]
+ MdePkg/MdePkg.dec
diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h b/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
index 9355e6cc7c62..94944cbe3abe 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -16,11 +16,6 @@
#define MONOLITIC_NUM_OF_REGION 1
#define HEMISPHERE_NUM_OF_REGION 2
#define QUADRANT_NUM_OF_REGION 4
-#define SUBNUMA_CPM_REGION_SIZE 4
-#define NUM_OF_CPM_PER_MESH_ROW 8
-
-#define CPM_PER_ROW_OFFSET(CpmId) ((CpmId) % NUM_OF_CPM_PER_MESH_ROW)
-#define CPM_ROW_NUMBER(CpmId) ((CpmId) / NUM_OF_CPM_PER_MESH_ROW)
#define SOCKET_ID(CpuId) ((CpuId) / (PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM))
#define CLUSTER_ID(CpuId) (((CpuId) / PLATFORM_CPU_NUM_CORES_PER_CPM) % PLATFORM_CPU_MAX_CPM)
@@ -65,6 +60,17 @@ CpuGetVoltage (
UINT8 Socket
);
+/**
+ Get CPU Core order number.
+
+ @return UINT8 The order number.
+
+**/
+UINT32 *
+CpuGetCoreOrder (
+ VOID
+ );
+
/**
Get the SubNUMA mode.
@@ -183,19 +189,6 @@ GetMaximumNumberOfCores (
VOID
);
-/**
- Get the maximum number of CPM per socket. This number
- should be the same for all sockets.
-
- @return UINT32 Maximum number of CPM.
-
-**/
-UINT16
-EFIAPI
-GetMaximumNumberOfCPMs (
- VOID
- );
-
/**
Get the number of active cores of a sockets.
diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
index 563dd5ef242d..2af9b33924ef 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
@@ -29,6 +29,9 @@
//
#define PLATFORM_CPU_MAX_NUM_CORES (PLATFORM_CPU_MAX_SOCKET * PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM)
+#define MAX_AMPERE_ALTRA_CORES 80
+#define MAX_AMPERE_ALTRA_MAX_CORES 128
+
//
// Maximum number of memory region
//
@@ -301,7 +304,7 @@
//
// DSDT RCB0 PCIe MMIO32 Attribute
//
-#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x0000000001000000, 0x000000000FFFFFFF, 0x0000000000000000, 0x000000000F000000
+#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x0000000008000000, 0x000000000FFFFFFF, 0x0000000000000000, 0x0000000008000000
//
// DSDT RCB1 PCIe MMIO32 Attribute
diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
index 4db1f9a383a9..cb37e5b427fb 100644
--- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
@@ -65,74 +65,8 @@ EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER MADTTableHeaderTemplate = {
),
};
-UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
- 36, 52, 40, 56, 32, 48, 44, 60,
- 20, 68, 24, 72, 16, 64, 28, 76,
- 4, 8, 0, 12, 38, 54, 42, 58,
- 34, 50, 46, 62, 22, 70, 26, 74,
- 18, 66, 30, 78, 6, 10, 2, 14,
- 37, 53, 41, 57, 33, 49, 45, 61,
- 21, 69, 25, 73, 17, 65, 29, 77,
- 5, 9, 1, 13, 39, 55, 43, 59,
- 35, 51, 47, 63, 23, 71, 27, 75,
- 19, 67, 31, 79, 7, 11, 3, 15,
-};
-
-UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
- 32, 48, 16, 64, 36, 52, 0, 20,
- 68, 4, 34, 50, 18, 66, 38, 54,
- 2, 22, 70, 6, 33, 49, 17, 65,
- 37, 53, 1, 21, 69, 5, 35, 51,
- 19, 67, 39, 55, 3, 23, 71, 7,
- 44, 60, 28, 76, 40, 56, 12, 24,
- 72, 8, 46, 62, 30, 78, 42, 58,
- 14, 26, 74, 10, 45, 61, 29, 77,
- 41, 57, 13, 25, 73, 9, 47, 63,
- 31, 79, 43, 59, 15, 27, 75, 11,
-};
-
-UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
- 16, 32, 0, 20, 4, 18, 34, 2,
- 22, 6, 17, 33, 1, 21, 5, 19,
- 35, 3, 23, 7, 48, 64, 52, 68,
- 36, 50, 66, 54, 70, 38, 49, 65,
- 53, 69, 37, 51, 67, 55, 71, 39,
- 28, 44, 12, 24, 8, 30, 46, 14,
- 26, 10, 29, 45, 13, 25, 9, 31,
- 47, 15, 27, 11, 60, 76, 56, 72,
- 40, 62, 78, 58, 74, 42, 61, 77,
- 57, 73, 41, 63, 79, 59, 75, 43,
-};
-
EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *MadtTablePointer;
-UINT32 *
-CpuGetCoreOrder (
- VOID
- )
-{
- UINT8 SubNumaMode;
-
- SubNumaMode = CpuGetSubNumaMode ();
- switch (SubNumaMode) {
- case SUBNUMA_MODE_MONOLITHIC:
- return (UINT32 *)&Ac01CoreOrderMonolithic;
-
- case SUBNUMA_MODE_HEMISPHERE:
- return (UINT32 *)&Ac01CoreOrderHemisphere;
-
- case SUBNUMA_MODE_QUADRANT:
- return (UINT32 *)&Ac01CoreOrderQuadrant;
-
- default:
- // Should never reach here
- ASSERT (FALSE);
- return NULL;
- }
-
- return NULL;
-}
-
UINT32
AcpiInstallMadtProcessorNode (
VOID *EntryPointer,
@@ -244,6 +178,7 @@ AcpiInstallMadtTable (
INTN Index;
EFI_STATUS Status;
UINTN Size;
+ UINTN Length;
UINT32 *CoreOrder;
UINT32 SktMaxCoreNum;
@@ -257,14 +192,14 @@ AcpiInstallMadtTable (
}
Size = sizeof (MADTTableHeaderTemplate) +
- (PLATFORM_CPU_MAX_NUM_CORES * sizeof (GiccTemplate)) +
- sizeof (GicDTemplate) +
- (PLATFORM_CPU_MAX_SOCKET * sizeof (GicRTemplate)) +
- ((SOCKET0_LAST_RC - SOCKET0_FIRST_RC + 1) * sizeof (GicItsTemplate));
+ sizeof (GiccTemplate) * GetNumberOfActiveCores () +
+ sizeof (GicDTemplate) +
+ sizeof (GicRTemplate) * GetNumberOfActiveSockets () +
+ sizeof (GicItsTemplate) * (SOCKET0_LAST_RC - SOCKET0_FIRST_RC + 1);
if (IsSlaveSocketActive ()) {
- Size += ((SOCKET1_LAST_RC - SOCKET1_FIRST_RC + 1) * sizeof (GicItsTemplate));
+ Size += (sizeof (GicItsTemplate) * (SOCKET1_LAST_RC - SOCKET1_FIRST_RC + 1));
} else if (!IsSlaveSocketAvailable ()) {
- Size += 2 * sizeof (GicItsTemplate); /* RCA0/1 */
+ Size += sizeof (GicItsTemplate) * 2; /* RCA0/1 */
}
MadtTablePointer =
@@ -278,52 +213,56 @@ AcpiInstallMadtTable (
sizeof (MADTTableHeaderTemplate));
/* Install Gic interface for each processor */
- Size = 0;
+ Length = 0;
CoreOrder = CpuGetCoreOrder ();
ASSERT (CoreOrder != NULL);
SktMaxCoreNum = PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM;
for (Index = 0; Index < SktMaxCoreNum; Index++) {
if (IsCpuEnabled (CoreOrder[Index])) {
- Size += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Size), CoreOrder[Index]);
+ Length += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Length), CoreOrder[Index]);
}
}
for (Index = 0; Index < SktMaxCoreNum; Index++) {
if (IsCpuEnabled (CoreOrder[Index] + SktMaxCoreNum)) {
- Size += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Size), CoreOrder[Index] + SktMaxCoreNum);
+ Length += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Length), CoreOrder[Index] + SktMaxCoreNum);
}
}
/* Install Gic Distributor */
- Size += AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Size));
+ Length += AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Length));
/* Install Gic Redistributor */
for (Index = 0; Index < PLATFORM_CPU_MAX_SOCKET; Index++) {
- Size += AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
+ Length += AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
}
/* Install Gic ITS */
if (!IsSlaveSocketAvailable ()) {
for (Index = 0; Index <= 1; Index++) { /* RCA0/1 */
- Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
+ Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
}
}
for (Index = SOCKET0_FIRST_RC; Index <= SOCKET0_LAST_RC; Index++) {
- Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
+ Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
}
if (IsSlaveSocketActive ()) {
for (Index = SOCKET1_FIRST_RC; Index <= SOCKET1_LAST_RC; Index++) {
- Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
+ Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
}
}
+
CopyMem (
MadtTablePointer,
&MADTTableHeaderTemplate,
sizeof (MADTTableHeaderTemplate)
);
- Size += sizeof (MADTTableHeaderTemplate);
- MadtTablePointer->Header.Length = Size;
+ Length += sizeof (MADTTableHeaderTemplate);
+ MadtTablePointer->Header.Length = Length;
+
+ ASSERT (Size == Length);
+
CopyMem (
MadtTablePointer->Header.OemId,
PcdGetPtr (PcdAcpiDefaultOemId),
diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
index 117f3872a84a..28c422dff166 100644
--- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -16,6 +16,8 @@ STATIC EFI_EVENT mAcpiRegistration = NULL;
*/
STATIC CONST EFI_GUID mAcpiCommonTableFile = { 0xCEFA2AEB, 0x357E, 0x4F48, { 0x80, 0x66, 0xEA, 0x95, 0x08, 0x53, 0x05, 0x6E } } ;
STATIC CONST EFI_GUID mJadeAcpiTableFile = { 0x5addbc13, 0x8634, 0x480c, { 0x9b, 0x94, 0x67, 0x1b, 0x78, 0x55, 0xcd, 0xb8 } };
+STATIC CONST EFI_GUID mJadeAcpiTableAc02File = { 0x5CA064B6 , 0x5AA4, 0x4E29, { 0xAB, 0xDC, 0x8B, 0xF3, 0xB3, 0x4D, 0xBF, 0x9E } };
+
/**
* Callback called when ACPI Protocol is installed
*/
@@ -31,7 +33,11 @@ AcpiNotificationEvent (
Status = LocateAndInstallAcpiFromFv (&mAcpiCommonTableFile);
ASSERT_EFI_ERROR (Status);
- Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile);
+ if (IsAc01Processor ()) {
+ Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile);
+ } else {
+ Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableAc02File);
+ }
ASSERT_EFI_ERROR (Status);
//
diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
index 9eebea3de1b5..10c241834b81 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2021 2023, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -19,6 +19,108 @@
#include <NVParamDef.h>
#include <Platform/Ac01.h>
+UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 36, 37, 40, 41, 52, 53, 56, 57, 32, 33,
+ 44, 45, 48, 49, 60, 61, 20, 21, 24, 25,
+ 68, 69, 72, 73, 16, 17, 28, 29, 64, 65,
+ 76, 77, 4, 5, 8, 9, 0, 1, 12, 13,
+ 38, 39, 42, 43, 54, 55, 58, 59, 34, 35,
+ 46, 47, 50, 51, 62, 63, 22, 23, 26, 27,
+ 70, 71, 74, 75, 18, 19, 30, 31, 66, 67,
+ 78, 79, 6, 7, 10, 11, 2, 3, 14, 15,
+ 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127,
+};
+
+UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 32, 33, 48, 49, 16, 17, 64, 65, 36, 37,
+ 52, 53, 0, 1, 20, 21, 68, 69, 4, 5,
+ 34, 35, 50, 51, 18, 19, 66, 67, 38, 39,
+ 54, 55, 2, 3, 22, 23, 70, 71, 6, 7,
+ 44, 45, 60, 61, 28, 29, 76, 77, 40, 41,
+ 56, 57, 12, 13, 24, 25, 72, 73, 8, 9,
+ 46, 47, 62, 63, 30, 31, 78, 79, 42, 43,
+ 58, 59, 14, 15, 26, 27, 74, 75, 10, 11,
+ 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127,
+};
+
+UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 16, 17, 32, 33, 0, 1, 20, 21, 4, 5,
+ 18, 19, 34, 35, 2, 3, 22, 23, 6, 7,
+ 48, 49, 64, 65, 52, 53, 68, 69, 36, 37,
+ 50, 51, 66, 67, 54, 55, 70, 71, 38, 39,
+ 28, 29, 44, 45, 12, 13, 24, 25, 8, 9,
+ 30, 31, 46, 47, 14, 15, 26, 27, 10, 11,
+ 60, 61, 76, 77, 56, 57, 72, 73, 40, 41,
+ 62, 63, 78, 79, 58, 59, 74, 75, 42, 43,
+ 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127,
+};
+
+UINT32 Ac02CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 36, 37, 40, 41, 52, 53, 56, 57, 32, 33,
+ 44, 45, 48, 49, 60, 61, 20, 21, 24, 25,
+ 68, 69, 72, 73, 16, 17, 28, 29, 64, 65,
+ 76, 77, 4, 5, 8, 9, 84, 85, 88, 89,
+ 0, 1, 12, 13, 80, 81, 92, 93, 100, 101,
+ 104, 105, 96, 97, 108, 109, 116, 117, 120, 121,
+ 112, 113, 124, 125, 38, 39, 42, 43, 54, 55,
+ 58, 59, 34, 35, 46, 47, 50, 51, 62, 63,
+ 22, 23, 26, 27, 70, 71, 74, 75, 18, 19,
+ 30, 31, 66, 67, 78, 79, 6, 7, 10, 11,
+ 86, 87, 90, 91, 2, 3, 14, 15, 82, 83,
+ 94, 95, 102, 103, 106, 107, 98, 99, 110, 111,
+ 118, 119, 122, 123, 114, 115, 126, 127,
+};
+
+UINT32 Ac02CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 32, 33, 48, 49, 16, 17, 64, 65, 36, 37,
+ 52, 53, 0, 1, 20, 21, 68, 69, 80, 81,
+ 4, 5, 84, 85, 96, 97, 100, 101, 112, 113,
+ 116, 117, 34, 35, 50, 51, 18, 19, 66, 67,
+ 38, 39, 54, 55, 2, 3, 22, 23, 70, 71,
+ 82, 83, 6, 7, 86, 87, 98, 99, 102, 103,
+ 114, 115, 118, 119, 44, 45, 60, 61, 28, 29,
+ 76, 77, 40, 41, 56, 57, 12, 13, 24, 25,
+ 72, 73, 92, 93, 8, 9, 88, 89, 108, 109,
+ 104, 105, 124, 125, 120, 121, 46, 47, 62, 63,
+ 30, 31, 78, 79, 42, 43, 58, 59, 14, 15,
+ 26, 27, 74, 75, 94, 95, 10, 11, 90, 91,
+ 110, 111, 106, 107, 126, 127, 122, 123,
+};
+
+UINT32 Ac02CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
+ 16, 17, 32, 33, 0, 1, 20, 21,
+ 36, 37, 4, 5, 84, 85, 96, 97,
+ 18, 19, 34, 35, 2, 3, 22, 23,
+ 38, 39, 6, 7, 86, 87, 98, 99,
+ 48, 49, 64, 65, 52, 53, 68, 69,
+ 80, 81, 100, 101, 112, 113, 116, 117,
+ 50, 51, 66, 67, 54, 55, 70, 71,
+ 82, 83, 102, 103, 114, 115, 118, 119,
+ 28, 29, 44, 45, 12, 13, 24, 25,
+ 40, 41, 8, 9, 88, 89, 108, 109,
+ 30, 31, 46, 47, 14, 15, 26, 27,
+ 42, 43, 10, 11, 90, 91, 110, 111,
+ 60, 61, 76, 77, 56, 57, 72, 73,
+ 92, 93, 104, 105, 124, 125, 120, 121,
+ 62, 63, 78, 79, 58, 59, 74, 75,
+ 94, 95, 106, 107, 126, 127, 122, 123,
+};
+
PLATFORM_INFO_HOB *
GetPlatformHob (
VOID
@@ -94,6 +196,42 @@ CpuGetVoltage (
return Voltage;
}
+/**
+ Get CPU Core order number.
+
+ @return UINT8 The order number.
+
+**/
+UINT32 *
+CpuGetCoreOrder (
+ VOID
+ )
+{
+ UINT32 *CoreOrder;
+ UINT8 SubNumaMode;
+ BOOLEAN IsAc01;
+
+ SubNumaMode = CpuGetSubNumaMode ();
+ IsAc01 = IsAc01Processor ();
+
+ switch (SubNumaMode) {
+ case SUBNUMA_MODE_MONOLITHIC:
+ default:
+ CoreOrder = IsAc01 ? Ac01CoreOrderMonolithic : Ac02CoreOrderMonolithic;
+ break;
+
+ case SUBNUMA_MODE_HEMISPHERE:
+ CoreOrder = IsAc01 ? Ac01CoreOrderHemisphere : Ac02CoreOrderHemisphere;
+ break;
+
+ case SUBNUMA_MODE_QUADRANT:
+ CoreOrder = IsAc01 ? Ac01CoreOrderQuadrant : Ac02CoreOrderQuadrant;
+ break;
+ }
+
+ return CoreOrder;
+}
+
/**
Get the SubNUMA mode.
@@ -157,14 +295,28 @@ CpuGetNumberOfSubNumaRegion (
return NumberOfSubNumaRegion;
}
-/**
- Get the SubNUMA node of a CPM.
+STATIC
+UINT8
+CpuGetLogicCoreId (
+ UINT32 PhyCoreId
+ )
+{
+ UINT32 *CoreOrder;
+ UINT8 LogicCoreId;
+ UINT8 SktMaxCoreNum ;
- @param SocketId Socket index.
- @param Cpm CPM index.
- @return UINT8 The SubNUMA node of a CPM.
+ CoreOrder = CpuGetCoreOrder();
+ SktMaxCoreNum = PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM;
+
+ for (LogicCoreId = 0; LogicCoreId < SktMaxCoreNum; LogicCoreId++) {
+ if (CoreOrder[LogicCoreId] == PhyCoreId) {
+ return LogicCoreId;
+ }
+ }
+
+ return 0;
+}
-**/
UINT8
EFIAPI
CpuGetSubNumNode (
@@ -172,67 +324,30 @@ CpuGetSubNumNode (
UINT16 Cpm
)
{
- BOOLEAN IsAsymMesh;
- UINT8 SubNumaNode;
- UINT16 MaxNumberOfCPM;
- UINT8 MiddleRow;
- UINT8 QuadrantHigherRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {1, 1, 1, 1, 3, 3, 3, 3};
- UINT8 QuadrantLowerRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {0, 0, 0, 0, 2, 2, 2, 2};
- UINT8 QuadrantMiddleRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {0, 0, 1, 1, 3, 3, 2, 2};
- UINT8 SubNumaMode;
+ UINT8 LogicCoreId;
+ UINT8 MaxFamliyCore;
+ UINT8 MaxNumCorePerNode;
+ UINT8 SubNumaNode;
- MaxNumberOfCPM = GetMaximumNumberOfCPMs ();
- SubNumaMode = CpuGetSubNumaMode ();
- ASSERT (SubNumaMode <= SUBNUMA_MODE_QUADRANT);
+ LogicCoreId = CpuGetLogicCoreId (Cpm * PLATFORM_CPU_NUM_CORES_PER_CPM);
+ MaxFamliyCore = IsAc01Processor () ? MAX_AMPERE_ALTRA_CORES : MAX_AMPERE_ALTRA_MAX_CORES;
- switch (SubNumaMode) {
+ switch (CpuGetSubNumaMode ()) {
case SUBNUMA_MODE_MONOLITHIC:
SubNumaNode = (SocketId == 0) ? 0 : 1;
break;
case SUBNUMA_MODE_HEMISPHERE:
- if (CPM_PER_ROW_OFFSET (Cpm) >= SUBNUMA_CPM_REGION_SIZE) {
- SubNumaNode = 1;
- } else {
- SubNumaNode = 0;
- }
-
+ MaxNumCorePerNode = MaxFamliyCore / HEMISPHERE_NUM_OF_REGION;
+ SubNumaNode = LogicCoreId / MaxNumCorePerNode;
if (SocketId == 1) {
SubNumaNode += HEMISPHERE_NUM_OF_REGION;
}
break;
case SUBNUMA_MODE_QUADRANT:
- //
- // CPM Mesh Rows
- //
- // |---------------------------------------|
- // | 00 ----------- 03 | 04 ----------- 07 | Row 0
- // |-------------------|-------------------|
- // | 08 ----------- 11 | 12 ----------- 15 | Row 1
- // |-------------------|-------------------|
- // | 16 - 17 | 18 - 19 | 20 - 21 | 22 - 23 | Middle Row
- // |-------------------|-------------------|
- // | 24 ----------- 27 | 28 ----------- 31 | Row 3
- // |-------------------|-------------------|
- // | 32 ----------- 35 | 36 ----------- 39 | Row 4
- // |---------------------------------------|
- //
-
- IsAsymMesh = (BOOLEAN)(CPM_ROW_NUMBER (MaxNumberOfCPM) % 2 != 0);
- MiddleRow = CPM_ROW_NUMBER (MaxNumberOfCPM) / 2;
- if (IsAsymMesh
- && CPM_ROW_NUMBER (Cpm) == MiddleRow)
- {
- SubNumaNode = QuadrantMiddleRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
-
- } else if (CPM_ROW_NUMBER (Cpm) >= MiddleRow) {
- SubNumaNode = QuadrantHigherRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
-
- } else {
- SubNumaNode = QuadrantLowerRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
- }
-
+ MaxNumCorePerNode = MaxFamliyCore / QUADRANT_NUM_OF_REGION;
+ SubNumaNode = LogicCoreId / MaxNumCorePerNode;
if (SocketId == 1) {
SubNumaNode += QUADRANT_NUM_OF_REGION;
}
@@ -240,7 +355,7 @@ CpuGetSubNumNode (
default:
// Should never reach there.
- SubNumaNode = 0;
+ SubNumaNode = (SocketId == 0) ? 0 : 1;
ASSERT (FALSE);
break;
}
@@ -479,22 +594,6 @@ GetMaximumNumberOfCores (
return PlatformHob->MaxNumOfCore[0];
}
-/**
- Get the maximum number of CPM per socket. This number
- should be the same for all sockets.
-
- @return UINT16 Maximum number of CPM.
-
-**/
-UINT16
-EFIAPI
-GetMaximumNumberOfCPMs (
- VOID
- )
-{
- return GetMaximumNumberOfCores () / PLATFORM_CPU_NUM_CORES_PER_CPM;
-}
-
/**
Get the number of active cores of a sockets.
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
new file mode 100644
index 000000000000..80b8ad86e86b
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
@@ -0,0 +1,6345 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Scope (\_SB.SYST) {
+ Device (CL00) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL01) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL02) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL03) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL04) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL05) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL06) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL07) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x8)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL08) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x9)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL09) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xA)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xB)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xC)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xD)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xE)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0xF)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL0F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x10)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL10) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x11)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL11) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x12)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL12) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x13)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL13) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x14)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL14) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x15)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL15) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x16)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL16) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x17)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL17) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x18)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL18) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x19)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL19) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x1F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL1F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x20)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL20) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x21)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL21) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x22)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL22) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x23)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL23) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x24)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL24) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x25)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL25) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x26)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL26) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x27)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL27) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x28)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL28) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x29)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL29) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x2F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL2F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x30)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL30) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x31)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL31) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x32)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL32) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x33)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL33) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x34)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL34) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x35)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL35) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x36)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL36) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x37)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL37) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x38)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL38) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x39)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL39) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x3F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL3F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x40)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+}
+
+Scope (\_SB.SYST.CL00) {
+ Device(C000) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x0)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x000, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x004, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x008, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x010, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x014, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x050, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x054, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x058, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 0, 0xFD, 2}
+ }) // Domain 0
+ }
+
+ Device(C001) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x080, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x084, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x088, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x090, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x094, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 1, 0xFD, 2}
+ }) // Domain 1
+ }
+}
+
+Scope (\_SB.SYST.CL01) {
+ Device(C002) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x100, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x104, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x108, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x110, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x114, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x134, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x150, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x154, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x158, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 2, 0xFD, 2}
+ }) // Domain 2
+ }
+
+ Device(C003) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x180, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x184, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x188, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x190, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x194, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 3, 0xFD, 2}
+ }) // Domain 3
+ }
+}
+
+Scope (\_SB.SYST.CL02) {
+ Device(C004) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x200, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x204, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x208, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x210, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x214, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x234, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x250, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x254, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x258, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 4, 0xFD, 2}
+ }) // Domain 4
+ }
+
+ Device(C005) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x280, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x284, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x288, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x290, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x294, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 5, 0xFD, 2}
+ }) // Domain 5
+ }
+}
+
+Scope (\_SB.SYST.CL03) {
+ Device(C006) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x300, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x304, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x308, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x310, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x314, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x334, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x350, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x354, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x358, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 6, 0xFD, 2}
+ }) // Domain 6
+ }
+
+ Device(C007) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x380, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x384, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x388, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x390, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x394, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 7, 0xFD, 2}
+ }) // Domain 7
+ }
+}
+
+Scope (\_SB.SYST.CL04) {
+ Device(C008) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x400, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x404, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x408, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x410, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x414, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x434, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x450, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x454, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x458, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 8, 0xFD, 2}
+ }) // Domain 8
+ }
+
+ Device(C009) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x480, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x484, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x488, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x490, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x494, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 9, 0xFD, 2}
+ }) // Domain 9
+ }
+}
+
+Scope (\_SB.SYST.CL05) {
+ Device(C010) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x500, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x504, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x508, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x510, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x514, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x534, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x550, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x554, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x558, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 10, 0xFD, 2}
+ }) // Domain 10
+ }
+
+ Device(C011) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x580, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x584, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x588, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x590, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x594, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 11, 0xFD, 2}
+ }) // Domain 11
+ }
+}
+
+Scope (\_SB.SYST.CL06) {
+ Device(C012) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x600, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x604, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x608, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x610, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x614, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x634, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x650, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x654, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x658, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 12, 0xFD, 2}
+ }) // Domain 12
+ }
+
+ Device(C013) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x680, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x684, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x688, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x690, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x694, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 13, 0xFD, 2}
+ }) // Domain 13
+ }
+}
+
+Scope (\_SB.SYST.CL07) {
+ Device(C014) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x700, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x704, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x708, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x710, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x714, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x734, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x750, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x754, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x758, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 14, 0xFD, 2}
+ }) // Domain 14
+ }
+
+ Device(C015) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x780, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x784, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x788, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x790, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x794, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 15, 0xFD, 2}
+ }) // Domain 15
+ }
+}
+
+Scope (\_SB.SYST.CL08) {
+ Device(C016) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x800, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x804, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x808, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x810, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x814, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x834, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x850, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x854, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x858, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 16, 0xFD, 2}
+ }) // Domain 16
+ }
+
+ Device(C017) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x880, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x884, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x888, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x890, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x894, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 17, 0xFD, 2}
+ }) // Domain 17
+ }
+}
+
+Scope (\_SB.SYST.CL09) {
+ Device(C018) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x900, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x904, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x908, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x910, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x914, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x934, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x950, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x954, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x958, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 18, 0xFD, 2}
+ }) // Domain 18
+ }
+
+ Device(C019) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x980, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x984, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x988, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x990, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x994, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 19, 0xFD, 2}
+ }) // Domain 19
+ }
+}
+
+Scope (\_SB.SYST.CL0A) {
+ Device(C020) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xa00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 20, 0xFD, 2}
+ }) // Domain 20
+ }
+
+ Device(C021) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xa01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 21, 0xFD, 2}
+ }) // Domain 21
+ }
+}
+
+Scope (\_SB.SYST.CL0B) {
+ Device(C022) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xb00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 22, 0xFD, 2}
+ }) // Domain 22
+ }
+
+ Device(C023) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xb01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 23, 0xFD, 2}
+ }) // Domain 23
+ }
+}
+
+Scope (\_SB.SYST.CL0C) {
+ Device(C024) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xc00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 24, 0xFD, 2}
+ }) // Domain 24
+ }
+
+ Device(C025) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xc01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 25, 0xFD, 2}
+ }) // Domain 25
+ }
+}
+
+Scope (\_SB.SYST.CL0D) {
+ Device(C026) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xd00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 26, 0xFD, 2}
+ }) // Domain 26
+ }
+
+ Device(C027) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xd01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 27, 0xFD, 2}
+ }) // Domain 27
+ }
+}
+
+Scope (\_SB.SYST.CL0E) {
+ Device(C028) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xe00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 28, 0xFD, 2}
+ }) // Domain 28
+ }
+
+ Device(C029) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xe01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 29, 0xFD, 2}
+ }) // Domain 29
+ }
+}
+
+Scope (\_SB.SYST.CL0F) {
+ Device(C030) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xf00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 30, 0xFD, 2}
+ }) // Domain 30
+ }
+
+ Device(C031) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0xf01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 31, 0xFD, 2}
+ }) // Domain 31
+ }
+}
+
+Scope (\_SB.SYST.CL10) {
+ Device(C032) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 32, 0xFD, 2}
+ }) // Domain 32
+ }
+
+ Device(C033) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 33, 0xFD, 2}
+ }) // Domain 33
+ }
+}
+
+Scope (\_SB.SYST.CL11) {
+ Device(C034) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 34, 0xFD, 2}
+ }) // Domain 34
+ }
+
+ Device(C035) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 35, 0xFD, 2}
+ }) // Domain 35
+ }
+}
+
+Scope (\_SB.SYST.CL12) {
+ Device(C036) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 36, 0xFD, 2}
+ }) // Domain 36
+ }
+
+ Device(C037) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 37, 0xFD, 2}
+ }) // Domain 37
+ }
+}
+
+Scope (\_SB.SYST.CL13) {
+ Device(C038) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 38, 0xFD, 2}
+ }) // Domain 38
+ }
+
+ Device(C039) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 39, 0xFD, 2}
+ }) // Domain 39
+ }
+}
+
+Scope (\_SB.SYST.CL14) {
+ Device(C040) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 40, 0xFD, 2}
+ }) // Domain 40
+ }
+
+ Device(C041) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 41, 0xFD, 2}
+ }) // Domain 41
+ }
+}
+
+Scope (\_SB.SYST.CL15) {
+ Device(C042) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 42, 0xFD, 2}
+ }) // Domain 42
+ }
+
+ Device(C043) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 43, 0xFD, 2}
+ }) // Domain 43
+ }
+}
+
+Scope (\_SB.SYST.CL16) {
+ Device(C044) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 44, 0xFD, 2}
+ }) // Domain 44
+ }
+
+ Device(C045) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 45, 0xFD, 2}
+ }) // Domain 45
+ }
+}
+
+Scope (\_SB.SYST.CL17) {
+ Device(C046) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 46, 0xFD, 2}
+ }) // Domain 46
+ }
+
+ Device(C047) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 47, 0xFD, 2}
+ }) // Domain 47
+ }
+}
+
+Scope (\_SB.SYST.CL18) {
+ Device(C048) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 48, 0xFD, 2}
+ }) // Domain 48
+ }
+
+ Device(C049) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 49, 0xFD, 2}
+ }) // Domain 49
+ }
+}
+
+Scope (\_SB.SYST.CL19) {
+ Device(C050) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 50, 0xFD, 2}
+ }) // Domain 50
+ }
+
+ Device(C051) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 51, 0xFD, 2}
+ }) // Domain 51
+ }
+}
+
+Scope (\_SB.SYST.CL1A) {
+ Device(C052) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 52, 0xFD, 2}
+ }) // Domain 52
+ }
+
+ Device(C053) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 53, 0xFD, 2}
+ }) // Domain 53
+ }
+}
+
+Scope (\_SB.SYST.CL1B) {
+ Device(C054) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 54, 0xFD, 2}
+ }) // Domain 54
+ }
+
+ Device(C055) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 55, 0xFD, 2}
+ }) // Domain 5
+ }
+}
+
+Scope (\_SB.SYST.CL1C) {
+ Device(C056) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 56, 0xFD, 2}
+ }) // Domain 56
+ }
+
+ Device(C057) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 57, 0xFD, 2}
+ }) // Domain 57
+ }
+}
+
+Scope (\_SB.SYST.CL1D) {
+ Device(C058) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 58, 0xFD, 2}
+ }) // Domain 58
+ }
+
+ Device(C059) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 59, 0xFD, 2}
+ }) // Domain 59
+ }
+}
+
+Scope (\_SB.SYST.CL1E) {
+ Device(C060) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 60, 0xFD, 2}
+ }) // Domain 60
+ }
+
+ Device(C061) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 61, 0xFD, 2}
+ }) // Domain 61
+ }
+}
+
+Scope (\_SB.SYST.CL1F) {
+ Device(C062) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 62, 0xFD, 2}
+ }) // Domain 62
+ }
+
+ Device(C063) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x1f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 63, 0xFD, 2}
+ }) // Domain 63
+ }
+}
+
+Scope (\_SB.SYST.CL20) {
+ Device(C064) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 64, 0xFD, 2}
+ }) // Domain 64
+ }
+
+ Device(C065) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 65, 0xFD, 2}
+ }) // Domain 65
+ }
+}
+
+Scope (\_SB.SYST.CL21) {
+ Device(C066) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 66, 0xFD, 2}
+ }) // Domain 66
+ }
+
+ Device(C067) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 67, 0xFD, 2}
+ }) // Domain 67
+ }
+}
+
+Scope (\_SB.SYST.CL22) {
+ Device(C068) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 68, 0xFD, 2}
+ }) // Domain 68
+ }
+
+ Device(C069) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 69, 0xFD, 2}
+ }) // Domain 69
+ }
+}
+
+Scope (\_SB.SYST.CL23) {
+ Device(C070) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 70, 0xFD, 2}
+ }) // Domain 70
+ }
+
+ Device(C071) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 71, 0xFD, 2}
+ }) // Domain 71
+ }
+}
+
+Scope (\_SB.SYST.CL24) {
+ Device(C072) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 72, 0xFD, 2}
+ }) // Domain 72
+ }
+
+ Device(C073) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 73, 0xFD, 2}
+ }) // Domain 73
+ }
+}
+
+Scope (\_SB.SYST.CL25) {
+ Device(C074) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 74, 0xFD, 2}
+ }) // Domain 74
+ }
+
+ Device(C075) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 75, 0xFD, 2}
+ }) // Domain 75
+ }
+}
+
+Scope (\_SB.SYST.CL26) {
+ Device(C076) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 76, 0xFD, 2}
+ }) // Domain 76
+ }
+
+ Device(C077) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 77, 0xFD, 2}
+ }) // Domain 77
+ }
+}
+
+Scope (\_SB.SYST.CL27) {
+ Device(C078) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 78, 0xFD, 2}
+ }) // Domain 78
+ }
+
+ Device(C079) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 79, 0xFD, 2}
+ }) // Domain 79
+ }
+}
+
+Scope (\_SB.SYST.CL28) {
+ Device(C080) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 80, 0xFD, 2}
+ }) // Domain 80
+ }
+
+ Device(C081) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 81, 0xFD, 2}
+ }) // Domain 81
+ }
+}
+
+Scope (\_SB.SYST.CL29) {
+ Device(C082) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 82, 0xFD, 2}
+ }) // Domain 82
+ }
+
+ Device(C083) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 83, 0xFD, 2}
+ }) // Domain 83
+ }
+}
+
+Scope (\_SB.SYST.CL2A) {
+ Device(C084) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 84, 0xFD, 2}
+ }) // Domain 84
+ }
+
+ Device(C085) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 85, 0xFD, 2}
+ }) // Domain 85
+ }
+}
+
+Scope (\_SB.SYST.CL2B) {
+ Device(C086) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 86, 0xFD, 2}
+ }) // Domain 86
+ }
+
+ Device(C087) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 87, 0xFD, 2}
+ }) // Domain 87
+ }
+}
+
+Scope (\_SB.SYST.CL2C) {
+ Device(C088) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 88, 0xFD, 2}
+ }) // Domain 88
+ }
+
+ Device(C089) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 89, 0xFD, 2}
+ }) // Domain 89
+ }
+}
+
+Scope (\_SB.SYST.CL2D) {
+ Device(C090) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 90, 0xFD, 2}
+ }) // Domain 90
+ }
+
+ Device(C091) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 91, 0xFD, 2}
+ }) // Domain 91
+ }
+}
+
+Scope (\_SB.SYST.CL2E) {
+ Device(C092) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 92, 0xFD, 2}
+ }) // Domain 92
+ }
+
+ Device(C093) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 93, 0xFD, 2}
+ }) // Domain 93
+ }
+}
+
+Scope (\_SB.SYST.CL2F) {
+ Device(C094) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 94, 0xFD, 2}
+ }) // Domain 94
+ }
+
+ Device(C095) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x2f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 95, 0xFD, 2}
+ }) // Domain 95
+ }
+}
+
+Scope (\_SB.SYST.CL30) {
+ Device(C096) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 96, 0xFD, 2}
+ }) // Domain 96
+ }
+
+ Device(C097) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 97, 0xFD, 2}
+ }) // Domain 97
+ }
+}
+
+Scope (\_SB.SYST.CL31) {
+ Device(C098) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 98, 0xFD, 2}
+ }) // Domain 98
+ }
+
+ Device(C099) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 99, 0xFD, 2}
+ }) // Domain 99
+ }
+}
+
+Scope (\_SB.SYST.CL32) {
+ Device(C100) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 100, 0xFD, 2}
+ }) // Domain 100
+ }
+
+ Device(C101) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 101, 0xFD, 2}
+ }) // Domain 101
+ }
+}
+
+Scope (\_SB.SYST.CL33) {
+ Device(C102) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 102, 0xFD, 2}
+ }) // Domain 102
+ }
+
+ Device(C103) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 103, 0xFD, 2}
+ }) // Domain 103
+ }
+}
+
+Scope (\_SB.SYST.CL34) {
+ Device(C104) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 104, 0xFD, 2}
+ }) // Domain 104
+ }
+
+ Device(C105) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 105, 0xFD, 2}
+ }) // Domain 105
+ }
+}
+
+Scope (\_SB.SYST.CL35) {
+ Device(C106) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 106, 0xFD, 2}
+ }) // Domain 106
+ }
+
+ Device(C107) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 107, 0xFD, 2}
+ }) // Domain 107
+ }
+}
+
+Scope (\_SB.SYST.CL36) {
+ Device(C108) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 108, 0xFD, 2}
+ }) // Domain 108
+ }
+
+ Device(C109) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 109, 0xFD, 2}
+ }) // Domain 109
+ }
+}
+
+Scope (\_SB.SYST.CL37) {
+ Device(C110) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 110, 0xFD, 2}
+ }) // Domain 110
+ }
+
+ Device(C111) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 111, 0xFD, 2}
+ }) // Domain 111
+ }
+}
+
+Scope (\_SB.SYST.CL38) {
+ Device(C112) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 112, 0xFD, 2}
+ }) // Domain 112
+ }
+
+ Device(C113) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 113, 0xFD, 2}
+ }) // Domain 113
+ }
+}
+
+Scope (\_SB.SYST.CL39) {
+ Device(C114) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 114, 0xFD, 2}
+ }) // Domain 114
+ }
+
+ Device(C115) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 115, 0xFD, 2}
+ }) // Domain 115
+ }
+}
+
+Scope (\_SB.SYST.CL3A) {
+ Device(C116) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 116, 0xFD, 2}
+ }) // Domain 116
+ }
+
+ Device(C117) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 117, 0xFD, 2}
+ }) // Domain 117
+ }
+}
+
+Scope (\_SB.SYST.CL3B) {
+ Device(C118) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 118, 0xFD, 2}
+ }) // Domain 118
+ }
+
+ Device(C119) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 119, 0xFD, 2}
+ }) // Domain 119
+ }
+}
+
+Scope (\_SB.SYST.CL3C) {
+ Device(C120) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 120, 0xFD, 2}
+ }) // Domain 120
+ }
+
+ Device(C121) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 121, 0xFD, 2}
+ }) // Domain 121
+ }
+}
+
+Scope (\_SB.SYST.CL3D) {
+ Device(C122) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 122, 0xFD, 2}
+ }) // Domain 122
+ }
+
+ Device(C123) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 123, 0xFD, 2}
+ }) // Domain 123
+ }
+}
+
+Scope (\_SB.SYST.CL3E) {
+ Device(C124) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 124, 0xFD, 2}
+ }) // Domain 124
+ }
+
+ Device(C125) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 125, 0xFD, 2}
+ }) // Domain 125
+ }
+}
+
+Scope (\_SB.SYST.CL3F) {
+ Device(C126) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 126, 0xFD, 2}
+ }) // Domain 126
+ }
+
+ Device(C127) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x3f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 2)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 2)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 2)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 2)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 2)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 2)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 2)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 2)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 2)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 2)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 2)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 2)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 127, 0xFD, 2}
+ }) // Domain 127
+ }
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
new file mode 100644
index 000000000000..09a93e9b8199
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
@@ -0,0 +1,6345 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Scope (\_SB.SYST) {
+ Device (CL40) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x41)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL41) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x42)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL42) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x43)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL43) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x44)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL44) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x45)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL45) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x46)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL46) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x47)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL47) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x48)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL48) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x49)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL49) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x4F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL4F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x50)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL50) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x51)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL51) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x52)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL52) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x53)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL53) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x54)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL54) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x55)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL55) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x56)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL56) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x57)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL57) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x58)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL58) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x59)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL59) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x5F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL5F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x60)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL60) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x61)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL61) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x62)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL62) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x63)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL63) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x64)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL64) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x65)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL65) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x66)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL66) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x67)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL67) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x68)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL68) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x69)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL69) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x6F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL6F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x70)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL70) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x71)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL71) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x72)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL72) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x73)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL73) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x74)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL74) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x75)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL75) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x76)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL76) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x77)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL77) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x78)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL78) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x79)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL79) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7A)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7A) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7B)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7B) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7C)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7C) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7D)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7D) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7E)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7E) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x7F)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+
+ Device (CL7F) {
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0x80)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(CLPI)
+ }
+ }
+}
+
+Scope (\_SB.SYST.CL40) {
+ Device(C128) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x000, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x004, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x008, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x010, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x014, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x050, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x054, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x058, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 128, 0xFD, 2}
+ }) // Domain 128
+ }
+
+ Device(C129) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x080, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x084, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x088, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x090, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x094, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 1219, 0xFD, 2}
+ }) // Domain 129
+ }
+}
+
+Scope (\_SB.SYST.CL41) {
+ Device(C130) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x100, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x104, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x108, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x110, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x114, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x134, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x150, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x154, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x158, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 130, 0xFD, 2}
+ }) // Domain 130
+ }
+
+ Device(C131) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x180, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x184, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x188, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x190, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x194, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 131, 0xFD, 2}
+ }) // Domain 131
+ }
+}
+
+Scope (\_SB.SYST.CL42) {
+ Device(C132) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x200, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x204, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x208, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x210, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x214, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x234, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x250, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x254, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x258, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 132, 0xFD, 2}
+ }) // Domain 132
+ }
+
+ Device(C133) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x280, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x284, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x288, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x290, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x294, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 133, 0xFD, 2}
+ }) // Domain 133
+ }
+}
+
+Scope (\_SB.SYST.CL43) {
+ Device(C134) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x300, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x304, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x308, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x310, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x314, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x334, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x350, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x354, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x358, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 134, 0xFD, 2}
+ }) // Domain 134
+ }
+
+ Device(C135) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x380, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x384, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x388, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x390, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x394, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 135, 0xFD, 2}
+ }) // Domain 135
+ }
+}
+
+Scope (\_SB.SYST.CL44) {
+ Device(C136) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x400, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x404, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x408, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x410, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x414, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x434, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x450, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x454, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x458, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 136, 0xFD, 2}
+ }) // Domain 136
+ }
+
+ Device(C137) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x480, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x484, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x488, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x490, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x494, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 137, 0xFD, 2}
+ }) // Domain 137
+ }
+}
+
+Scope (\_SB.SYST.CL45) {
+ Device(C138) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x500, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x504, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x508, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x510, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x514, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x534, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x550, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x554, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x558, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 138, 0xFD, 2}
+ }) // Domain 138
+ }
+
+ Device(C139) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x580, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x584, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x588, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x590, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x594, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 139, 0xFD, 2}
+ }) // Domain 139
+ }
+}
+
+Scope (\_SB.SYST.CL46) {
+ Device(C140) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x600, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x604, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x608, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x610, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x614, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x634, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x650, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x654, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x658, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 140, 0xFD, 2}
+ }) // Domain 140
+ }
+
+ Device(C141) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x680, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x684, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x688, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x690, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x694, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 141, 0xFD, 2}
+ }) // Domain 141
+ }
+}
+
+Scope (\_SB.SYST.CL47) {
+ Device(C142) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x700, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x704, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x708, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x710, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x714, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x734, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x750, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x754, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x758, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 142, 0xFD, 2}
+ }) // Domain 142
+ }
+
+ Device(C143) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x780, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x784, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x788, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x790, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x794, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 143, 0xFD, 2}
+ }) // Domain 143
+ }
+}
+
+Scope (\_SB.SYST.CL48) {
+ Device(C144) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x800, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x804, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x808, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x810, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x814, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x834, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x850, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x854, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x858, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 144, 0xFD, 2}
+ }) // Domain 144
+ }
+
+ Device(C145) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x880, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x884, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x888, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x890, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x894, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 145, 0xFD, 2}
+ }) // Domain 145
+ }
+}
+
+Scope (\_SB.SYST.CL49) {
+ Device(C146) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x900, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x904, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x908, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x910, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x914, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x934, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x950, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x954, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x958, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 146, 0xFD, 2}
+ }) // Domain 146
+ }
+
+ Device(C147) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x980, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x984, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x988, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x990, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x994, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 147, 0xFD, 2}
+ }) // Domain 147
+ }
+}
+
+Scope (\_SB.SYST.CL4A) {
+ Device(C148) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 148, 0xFD, 2}
+ }) // Domain 148
+ }
+
+ Device(C149) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 149, 0xFD, 2}
+ }) // Domain 149
+ }
+}
+
+Scope (\_SB.SYST.CL4B) {
+ Device(C150) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 150, 0xFD, 2}
+ }) // Domain 150
+ }
+
+ Device(C151) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 151, 0xFD, 2}
+ }) // Domain 151
+ }
+}
+
+Scope (\_SB.SYST.CL4C) {
+ Device(C152) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 152, 0xFD, 2}
+ }) // Domain 152
+ }
+
+ Device(C153) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 153, 0xFD, 2}
+ }) // Domain 153
+ }
+}
+
+Scope (\_SB.SYST.CL4D) {
+ Device(C154) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 154, 0xFD, 2}
+ }) // Domain 154
+ }
+
+ Device(C155) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 155, 0xFD, 2}
+ }) // Domain 155
+ }
+}
+
+Scope (\_SB.SYST.CL4E) {
+ Device(C156) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 156, 0xFD, 2}
+ }) // Domain 156
+ }
+
+ Device(C157) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 157, 0xFD, 2}
+ }) // Domain 157
+ }
+}
+
+Scope (\_SB.SYST.CL4F) {
+ Device(C158) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 158, 0xFD, 2}
+ }) // Domain 158
+ }
+
+ Device(C159) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x10f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 159, 0xFD, 2}
+ }) // Domain 159
+ }
+}
+
+Scope (\_SB.SYST.CL50) {
+ Device(C160) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 160, 0xFD, 2}
+ }) // Domain 160
+ }
+
+ Device(C161) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 161, 0xFD, 2}
+ }) // Domain 161
+ }
+}
+
+Scope (\_SB.SYST.CL51) {
+ Device(C162) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 162, 0xFD, 2}
+ }) // Domain 162
+ }
+
+ Device(C163) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 163, 0xFD, 2}
+ }) // Domain 163
+ }
+}
+
+Scope (\_SB.SYST.CL52) {
+ Device(C164) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 164, 0xFD, 2}
+ }) // Domain 164
+ }
+
+ Device(C165) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 165, 0xFD, 2}
+ }) // Domain 165
+ }
+}
+
+Scope (\_SB.SYST.CL53) {
+ Device(C166) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 166, 0xFD, 2}
+ }) // Domain 166
+ }
+
+ Device(C167) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 167, 0xFD, 2}
+ }) // Domain 167
+ }
+}
+
+Scope (\_SB.SYST.CL54) {
+ Device(C168) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 168, 0xFD, 2}
+ }) // Domain 168
+ }
+
+ Device(C169) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 169, 0xFD, 2}
+ }) // Domain 169
+ }
+}
+
+Scope (\_SB.SYST.CL55) {
+ Device(C170) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 170, 0xFD, 2}
+ }) // Domain 170
+ }
+
+ Device(C171) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 171, 0xFD, 2}
+ }) // Domain 171
+ }
+}
+
+Scope (\_SB.SYST.CL56) {
+ Device(C172) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 172, 0xFD, 2}
+ }) // Domain 172
+ }
+
+ Device(C173) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 173, 0xFD, 2}
+ }) // Domain 173
+ }
+}
+
+Scope (\_SB.SYST.CL57) {
+ Device(C174) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 174, 0xFD, 2}
+ }) // Domain 174
+ }
+
+ Device(C175) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 175, 0xFD, 2}
+ }) // Domain 175
+ }
+}
+
+Scope (\_SB.SYST.CL58) {
+ Device(C176) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 176, 0xFD, 2}
+ }) // Domain 176
+ }
+
+ Device(C177) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 177, 0xFD, 2}
+ }) // Domain 177
+ }
+}
+
+Scope (\_SB.SYST.CL59) {
+ Device(C178) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 178, 0xFD, 2}
+ }) // Domain 178
+ }
+
+ Device(C179) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 179, 0xFD, 2}
+ }) // Domain 179
+ }
+}
+
+Scope (\_SB.SYST.CL5A) {
+ Device(C180) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 180, 0xFD, 2}
+ }) // Domain 180
+ }
+
+ Device(C181) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 181, 0xFD, 2}
+ }) // Domain 181
+ }
+}
+
+Scope (\_SB.SYST.CL5B) {
+ Device(C182) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 182, 0xFD, 2}
+ }) // Domain 182
+ }
+
+ Device(C183) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 183, 0xFD, 2}
+ }) // Domain 183
+ }
+}
+
+Scope (\_SB.SYST.CL5C) {
+ Device(C184) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 184, 0xFD, 2}
+ }) // Domain 184
+ }
+
+ Device(C185) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 185, 0xFD, 2}
+ }) // Domain 185
+ }
+}
+
+Scope (\_SB.SYST.CL5D) {
+ Device(C186) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 186, 0xFD, 2}
+ }) // Domain 186
+ }
+
+ Device(C187) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 187, 0xFD, 2}
+ }) // Domain 187
+ }
+}
+
+Scope (\_SB.SYST.CL5E) {
+ Device(C188) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 188, 0xFD, 2}
+ }) // Domain 188
+ }
+
+ Device(C189) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 189, 0xFD, 2}
+ }) // Domain 189
+ }
+}
+
+Scope (\_SB.SYST.CL5F) {
+ Device(C190) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 190, 0xFD, 2}
+ }) // Domain 190
+ }
+
+ Device(C191) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x11f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 191, 0xFD, 2}
+ }) // Domain 191
+ }
+}
+
+Scope (\_SB.SYST.CL60) {
+ Device(C192) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 192, 0xFD, 2}
+ }) // Domain 192
+ }
+
+ Device(C193) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 193, 0xFD, 2}
+ }) // Domain 193
+ }
+}
+
+Scope (\_SB.SYST.CL61) {
+ Device(C194) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 194, 0xFD, 2}
+ }) // Domain 194
+ }
+
+ Device(C195) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 195, 0xFD, 2}
+ }) // Domain 195
+ }
+}
+
+Scope (\_SB.SYST.CL62) {
+ Device(C196) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 196, 0xFD, 2}
+ }) // Domain 196
+ }
+
+ Device(C197) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 197, 0xFD, 2}
+ }) // Domain 197
+ }
+}
+
+Scope (\_SB.SYST.CL63) {
+ Device(C198) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 198, 0xFD, 2}
+ }) // Domain 198
+ }
+
+ Device(C199) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 199, 0xFD, 2}
+ }) // Domain 199
+ }
+}
+
+Scope (\_SB.SYST.CL64) {
+ Device(C200) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 200, 0xFD, 2}
+ }) // Domain 200
+ }
+
+ Device(C201) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 201, 0xFD, 2}
+ }) // Domain 201
+ }
+}
+
+Scope (\_SB.SYST.CL65) {
+ Device(C202) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 202, 0xFD, 2}
+ }) // Domain 202
+ }
+
+ Device(C203) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 203, 0xFD, 2}
+ }) // Domain 203
+ }
+}
+
+Scope (\_SB.SYST.CL66) {
+ Device(C204) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 204, 0xFD, 2}
+ }) // Domain 204
+ }
+
+ Device(C205) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 205, 0xFD, 2}
+ }) // Domain 205
+ }
+}
+
+Scope (\_SB.SYST.CL67) {
+ Device(C206) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 206, 0xFD, 2}
+ }) // Domain 206
+ }
+
+ Device(C207) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 207, 0xFD, 2}
+ }) // Domain 207
+ }
+}
+
+Scope (\_SB.SYST.CL68) {
+ Device(C208) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 208, 0xFD, 2}
+ }) // Domain 208
+ }
+
+ Device(C209) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 209, 0xFD, 2}
+ }) // Domain 209
+ }
+}
+
+Scope (\_SB.SYST.CL69) {
+ Device(C210) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 210, 0xFD, 2}
+ }) // Domain 210
+ }
+
+ Device(C211) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 211, 0xFD, 2}
+ }) // Domain 211
+ }
+}
+
+Scope (\_SB.SYST.CL6A) {
+ Device(C212) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 212, 0xFD, 2}
+ }) // Domain 212
+ }
+
+ Device(C213) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 213, 0xFD, 2}
+ }) // Domain 213
+ }
+}
+
+Scope (\_SB.SYST.CL6B) {
+ Device(C214) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 214, 0xFD, 2}
+ }) // Domain 214
+ }
+
+ Device(C215) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 215, 0xFD, 2}
+ }) // Domain 215
+ }
+}
+
+Scope (\_SB.SYST.CL6C) {
+ Device(C216) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 216, 0xFD, 2}
+ }) // Domain 216
+ }
+
+ Device(C217) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 217, 0xFD, 2}
+ }) // Domain 217
+ }
+}
+
+Scope (\_SB.SYST.CL6D) {
+ Device(C218) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 218, 0xFD, 2}
+ }) // Domain 218
+ }
+
+ Device(C219) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 219, 0xFD, 2}
+ }) // Domain 219
+ }
+}
+
+Scope (\_SB.SYST.CL6E) {
+ Device(C220) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 220, 0xFD, 2}
+ }) // Domain 220
+ }
+
+ Device(C221) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 221, 0xFD, 2}
+ }) // Domain 221
+ }
+}
+
+Scope (\_SB.SYST.CL6F) {
+ Device(C222) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 222, 0xFD, 2}
+ }) // Domain 222
+ }
+
+ Device(C223) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x12f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 223, 0xFD, 2}
+ }) // Domain 223
+ }
+}
+
+Scope (\_SB.SYST.CL70) {
+ Device(C224) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13000)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 224, 0xFD, 2}
+ }) // Domain 224
+ }
+
+ Device(C225) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13001)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 225, 0xFD, 2}
+ }) // Domain 225
+ }
+}
+
+Scope (\_SB.SYST.CL71) {
+ Device(C226) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13100)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 226, 0xFD, 2}
+ }) // Domain 226
+ }
+
+ Device(C227) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13101)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 227, 0xFD, 2}
+ }) // Domain 227
+ }
+}
+
+Scope (\_SB.SYST.CL72) {
+ Device(C228) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13200)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 228, 0xFD, 2}
+ }) // Domain 228
+ }
+
+ Device(C229) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13201)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 229, 0xFD, 2}
+ }) // Domain 229
+ }
+}
+
+Scope (\_SB.SYST.CL73) {
+ Device(C230) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13300)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 230, 0xFD, 2}
+ }) // Domain 230
+ }
+
+ Device(C231) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13301)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 231, 0xFD, 2}
+ }) // Domain 231
+ }
+}
+
+Scope (\_SB.SYST.CL74) {
+ Device(C232) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13400)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 232, 0xFD, 2}
+ }) // Domain 232
+ }
+
+ Device(C233) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13401)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 233, 0xFD, 2}
+ }) // Domain 233
+ }
+}
+
+Scope (\_SB.SYST.CL75) {
+ Device(C234) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13500)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 234, 0xFD, 2}
+ }) // Domain 234
+ }
+
+ Device(C235) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13501)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 235, 0xFD, 2}
+ }) // Domain 235
+ }
+}
+
+Scope (\_SB.SYST.CL76) {
+ Device(C236) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13600)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 236, 0xFD, 2}
+ }) // Domain 236
+ }
+
+ Device(C237) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13601)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 237, 0xFD, 2}
+ }) // Domain 237
+ }
+}
+
+Scope (\_SB.SYST.CL77) {
+ Device(C238) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13700)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 238, 0xFD, 2}
+ }) // Domain 238
+ }
+
+ Device(C239) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13701)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 239, 0xFD, 2}
+ }) // Domain 239
+ }
+}
+
+Scope (\_SB.SYST.CL78) {
+ Device(C240) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13800)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 240, 0xFD, 2}
+ }) // Domain 240
+ }
+
+ Device(C241) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13801)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 241, 0xFD, 2}
+ }) // Domain 241
+ }
+}
+
+Scope (\_SB.SYST.CL79) {
+ Device(C242) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13900)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 242, 0xFD, 2}
+ }) // Domain 242
+ }
+
+ Device(C243) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13901)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 243, 0xFD, 2}
+ }) // Domain 243
+ }
+}
+
+Scope (\_SB.SYST.CL7A) {
+ Device(C244) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13a00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 244, 0xFD, 2}
+ }) // Domain 244
+ }
+
+ Device(C245) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13a01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 245, 0xFD, 2}
+ }) // Domain 245
+ }
+}
+
+Scope (\_SB.SYST.CL7B) {
+ Device(C246) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13b00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 246, 0xFD, 2}
+ }) // Domain 246
+ }
+
+ Device(C247) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13b01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 247, 0xFD, 2}
+ }) // Domain 247
+ }
+}
+
+Scope (\_SB.SYST.CL7C) {
+ Device(C248) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13c00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 248, 0xFD, 2}
+ }) // Domain 248
+ }
+
+ Device(C249) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13c01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 249, 0xFD, 2}
+ }) // Domain 249
+ }
+}
+
+Scope (\_SB.SYST.CL7D) {
+ Device(C250) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13d00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 250, 0xFD, 2}
+ }) // Domain 250
+ }
+
+ Device(C251) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13d01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 251, 0xFD, 2}
+ }) // Domain 251
+ }
+}
+
+Scope (\_SB.SYST.CL7E) {
+ Device(C252) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13e00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 252, 0xFD, 2}
+ }) // Domain 252
+ }
+
+ Device(C253) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13e01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 253, 0xFD, 2}
+ }) // Domain 253
+ }
+}
+
+Scope (\_SB.SYST.CL7F) {
+ Device(C254) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13f00)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package() {
+ Package() {5, 0, 254, 0xFD, 2}
+ }) // Domain 254
+ }
+
+ Device(C255) {
+ Name(_HID, "ACPI0007")
+ Name(_UID, 0x13f01)
+
+ Method (_LPI, 0, NotSerialized) {
+ return(PLPI)
+ }
+
+ Name(PCPC, Package() {
+ 23, // NumEntries
+ 3, // Revision
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 17)}, // Highest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 17)}, // Nominal Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 17)}, // Lowest Nonlinear Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 17)}, // Lowest Performance
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 17)}, // Guaranteed Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 17)}, // Desired Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 17)}, // Reference Counter Register
+ ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 17)}, // Delivered Counter Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 17)}, // Performance Limited Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
+ ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 17)}, // Reference Performance Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 17)}, // Lowest Frequency Register
+ ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 17)}, // Nominal Frequency Register
+ })
+ If (LEqual(CPCE, 0x1)) {
+ Method (_CPC, 0, NotSerialized) {
+ return(PCPC)
+ }
+ }
+ //Performance State dependency
+ Name(_PSD, Package(){
+ Package() {5, 0, 255, 0xFD, 2}
+ }) // Domain 255
+ }
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
new file mode 100644
index 000000000000..338b1aa03cfb
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
@@ -0,0 +1,152 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Scope(\_SB) {
+ Name (CPCE, 1) // CPPC Enable
+ Name (LPIE, 0) // LPI Enable
+
+ Method (_OSC, 4, Serialized) { // _OSC: Operating System Capabilities
+ CreateDWordField (Arg3, 0x00, STS0)
+ CreateDWordField (Arg3, 0x04, CAP0)
+ If (LEqual(Arg0, ToUUID ("0811b06e-4a27-44f9-8d60-3cbbc22e7b48")) /* Platform-wide Capabilities */) {
+ If (LNotEqual(Arg1, One)) {
+ And(STS0, 0xFFFFFFE0, STS0)
+ Or(STS0, 0x0A, STS0) // Unrecognized Revision, OSC failure
+ } Else {
+ If (LEqual(And(CAP0, 0x100), 0x100)) {
+ And(CAP0, 0xFFFFFEFF, CAP0) // No support for OS Initiated LPI
+ And(STS0, 0xFFFFFFE0, STS0)
+ Or(STS0, 0x12, STS0)
+ }
+ If (LEqual(LPIE, 0x1)) {
+ Or(CAP0, 0x80, CAP0) // Support for LPI
+ } Else {
+ And(CAP0, 0xFFFFFF7F, CAP0) // No support for LPI
+ }
+ If (LEqual(CPCE, 0x1)) {
+ Or(CAP0, 0x40, CAP0) // Support for CPPCv2
+ } Else {
+ And(CAP0, 0xFFFFFFBF, CAP0) // No support for CPPCv2
+ }
+ }
+ } Else {
+ And(STS0, 0xFFFFFFE0, STS0)
+ Or(STS0, 0x06, STS0) // Unrecognized Revision, Unrecognized UUID
+ }
+ Return (Arg3)
+ }
+
+ Name(CLPI, Package() {
+ 0, // Version
+ 1, // Level Index
+ 1, // Count
+ Package() {
+ 1, // Min residency (uS)
+ 1, // Wake latency (uS)
+ 1, // Flags
+ 0, // Arch Context Flags
+ 0, // Residency Counter Frequency
+ 1, // No parent state
+ 0x01000000, // Integer Entry method
+ ResourceTemplate() { // Null Residency Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ ResourceTemplate() { // Null Usage Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ "Standby",
+ },
+ })
+
+ Name(PLPI, Package() {
+ 0, // Version
+ 2, // Level Index
+ 2, // Count
+ // WFI for CPU (NS-WFI)
+ Package() {
+ 1, // Min residency (uS)
+ 1, // Wake latency (uS)
+ 1, // Flags
+ 0, // Arch Context Flags
+ 0, // Residency Counter Frequency
+ 0, // No parent state
+ ResourceTemplate () {
+ // Register Entry method
+ Register (FFixedHW,
+ 0x20, // Bit Width
+ 0x00, // Bit Offset
+ 0xFFFFFFFF, // Address
+ 0x03, // Access Size
+ )
+ },
+ ResourceTemplate() { // Null Residency Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ ResourceTemplate() { // Null Usage Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ "WFI",
+ },
+
+ // WFI for CPU (S-WFI)
+ Package() {
+ 1, // Min residency (uS)
+ 2900, // Wake latency (uS)
+ 1, // Flags
+ 0, // Arch Context Flags
+ 0, // Residency Counter Frequency
+ 1, // No parent state
+ ResourceTemplate () {
+ // Register Entry method
+ Register (FFixedHW,
+ 0x20, // Bit Width
+ 0x00, // Bit Offset
+ 0x01, // Address
+ 0x03, // Access Size
+ )
+ },
+ ResourceTemplate() { // Null Residency Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ ResourceTemplate() { // Null Usage Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ "Standby",
+ },
+ })
+
+ Device (SYST) { // System state
+ Name(_HID, "ACPI0010")
+ Name(_UID, 0)
+ Name (_LPI, Package() {
+ 0, // Version
+ 0, // Level Index
+ 1, // Count
+ // Retention state for Cluster
+ Package() {
+ 100, // Min residency (uS)
+ 99, // Wake latency (uS)
+ 1, // Flags
+ 0, // Arch Context Flags
+ 100, // Residency Counter Frequency
+ 0, // No Parent State
+ 0x01000100, // Integer Entry method
+ ResourceTemplate() { // Null Residency Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ ResourceTemplate() { // Null Usage Counter
+ Register (SystemMemory, 0, 0, 0, 0)
+ },
+ "System Standby"
+ },
+ })
+ }
+}
+
+Include ("CPU-S0.asi")
+Include ("CPU-S1.asi")
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
new file mode 100644
index 000000000000..aa6524ef2bb4
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
@@ -0,0 +1,670 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+//
+// Hardware Monitor
+Device(HM00) {
+ Name(_HID, "APMC0D29")
+ Name(_UID, "HWM0")
+ Name(_DDN, "HWM0")
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Hardware Monitor Device"))
+ Method(_STA, 0, NotSerialized) {
+ return (0xF)
+ }
+ Name (_DSD, Package () {
+ ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package() {
+ Package() {"pcc-channel", 14}
+ }
+ })
+}
+
+//
+// Hardware Monitor
+Device(HM01) {
+ Name(_HID, "APMC0D29")
+ Name(_UID, "HWM1")
+ Name(_DDN, "HWM1")
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Hardware Monitor Device"))
+ Method(_STA, 0, NotSerialized) {
+ return (0xF)
+ }
+ Name (_DSD, Package () {
+ ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package() {
+ Package() {"pcc-channel", 29}
+ }
+ })
+}
+
+//
+// Hardware Monitor
+Device(HM02) {
+ Name(_HID, "AMPC0005")
+ Name(_UID, "HWM2")
+ Name(_DDN, "HWM2")
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Altra SoC Hardware Monitor Device"))
+ Method(_STA, 0, NotSerialized) {
+ return (0xF)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000088900000, // AddressMinimum - MIN
+ 0x000000008891FFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000020000 // RangeLength - LEN
+ )
+ })
+}
+
+//
+// Hardware Monitor
+Device(HM03) {
+ Name(_HID, "AMPC0005")
+ Name(_UID, "HWM3")
+ Name(_DDN, "HWM3")
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Altra SoC Hardware Monitor Device"))
+ Method(_STA, 0, NotSerialized) {
+ return (0xF)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00000000C0000000, // AddressMinimum - MIN
+ 0x00000000C001FFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000020000 // RangeLength - LEN
+ )
+ })
+}
+
+//
+// DesignWare I2C on AHBC bus
+Device(I2C4) {
+ Name(_HID, "APMC0D0F")
+ Name(_UID, 4)
+ Name(_STR, Unicode("Altra Max I2C Device"))
+ Method(_STA, 0, NotSerialized) {
+ return (0x0f)
+ }
+ Name(_CCA, ONE)
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00001000026B0000, // AddressMinimum - MIN
+ 0x00001000026BFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000010000 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 105 }
+ })
+ Device (IPI) {
+ Name(_HID, "AMPC0004")
+ Name(_CID, "IPI0001")
+ Name(_STR, Unicode("IPMI_SSIF"))
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Method(_IFT) {
+ Return(0x04) // IPMI SSIF
+ }
+ Method(_ADR) {
+ Return(0x10) // SSIF slave address
+ }
+ Method(_SRV) {
+ Return(0x0200) // IPMI Specification Revision
+ }
+ Name(_CRS, ResourceTemplate ()
+ {
+ I2cSerialBusV2 (0x0010, ControllerInitiated, 0x00061A80,
+ AddressingMode7Bit, "\\_SB.I2C4",
+ 0x00, ResourceConsumer,, Exclusive,
+ // Vendor specific data:
+ // "BMC0",
+ // Flags (2 bytes): SMBUS variable length (Bit 0), Read Checksum (Bit 1), Verify Checksum (Bit 2)
+ RawDataBuffer () { 0x42, 0x4D, 0x43, 0x30, 0x7, 0x0 }
+ )
+ })
+ }
+ Name(SSCN, Package() { 427, 499, 0 })
+ Name(FMCN, Package() { 164, 319, 0 })
+}
+
+//
+// Report APEI Errors to GHES via SCI notification.
+// SCI notification requires one GED and one HED Device
+// GED = Generic Event Device (ACPI0013)
+// HED = Hardware Error Device (PNP0C33)
+//
+Device(GED0) {
+ Name(_HID, "ACPI0013")
+ Name(_UID, Zero)
+ Method(_STA) {
+ Return (0xF)
+ }
+ Name(_CRS, ResourceTemplate () {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 84 } // GHES
+ })
+}
+
+// Shutdown button using GED.
+Device(GED1) {
+ Name(_HID, "ACPI0013")
+ Name(_CID, "ACPI0013")
+ Name(_UID, One)
+ Method(_STA) {
+ Return (0xF)
+ }
+ Name(_CRS, ResourceTemplate () {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 327 }
+ })
+ OperationRegion(PDDR, SystemMemory, 0x1000027B0004, 4)
+ Field(PDDR, DWordAcc, NoLock, Preserve) {
+ STDI, 8
+ }
+
+ OperationRegion(INTE, SystemMemory, 0x1000027B0030, 4)
+ Field(INTE, DWordAcc, NoLock, Preserve) {
+ STDE, 8
+ }
+
+ OperationRegion(INTT, SystemMemory, 0x1000027B0034, 4)
+ Field(INTT, DWordAcc, NoLock, Preserve) {
+ TYPE, 8
+ }
+
+ OperationRegion(INTP, SystemMemory, 0x1000027B0038, 4)
+ Field(INTP, DWordAcc, NoLock, Preserve) {
+ POLA, 8
+ }
+
+ OperationRegion(INTS, SystemMemory, 0x1000027B003c, 4)
+ Field(INTS, DWordAcc, NoLock, Preserve) {
+ STDS, 8
+ }
+
+ OperationRegion(INTC, SystemMemory, 0x1000027B0040, 4)
+ Field(INTC, DWordAcc, NoLock, Preserve) {
+ SINT, 8
+ }
+
+ OperationRegion(INTM, SystemMemory, 0x1000027B0044, 4)
+ Field(INTM, DWordAcc, NoLock, Preserve) {
+ MASK, 8
+ }
+
+ Method(_INI, 0, NotSerialized) {
+ // Set level type, low active (shutdown)
+ Store (0x00, TYPE)
+ Store (0x00, POLA)
+ // Set Input type (shutdown)
+ Store (0x00, STDI)
+ // Enable interrupt (shutdown)
+ Store (0x80, STDE)
+ // Unmask the interrupt.
+ Store (0x00, MASK)
+ }
+ Method(_EVT, 1) {
+ Switch (ToInteger(Arg0)) {
+ Case (327) {
+ if (And (STDS, 0x80)) {
+ //Clear the interrupt.
+ Store (0x80, SINT)
+ // Notify OSPM the power button is pressed
+ Notify (\_SB.PWRB, 0x80)
+ }
+ }
+ }
+ }
+}
+
+// Power button device description
+Device(PWRB) {
+ Name(_HID, EISAID("PNP0C0C"))
+ Name(_ADR, 0)
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Method(_STA, 0, Notserialized) {
+ Return (0x0b)
+ }
+}
+
+//
+// UART0 PL011
+Device(URT0) {
+ Name(_HID, "ARMH0011")
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Method(_STA, 0, NotSerialized) {
+ return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100002600000, // AddressMinimum - MIN
+ 0x0000100002600FFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000001000 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 98 }
+ })
+} // UART0
+
+//
+// UART2 PL011
+Device(URT2) {
+ Name(_HID, "ARMH0011")
+ Name(_UID, 1)
+ Name(_CCA, ONE)
+ Method(_STA, 0, NotSerialized) {
+ return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100002620000, // AddressMinimum - MIN
+ 0x0000100002620FFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000001000 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 100 }
+ })
+} // UART1
+
+Device(HED0)
+{
+ Name(_HID, EISAID("PNP0C33"))
+ Name(_UID, Zero)
+}
+
+Device(NVDR) {
+ Name(_HID, "ACPI0012")
+ Method(_STA, 0, NotSerialized) {
+ return (0xf)
+ }
+ Method (_DSM, 0x4, Serialized) {
+ // Not support any functions for now
+ Return (Buffer() {0})
+ }
+ Device (NVD1) {
+ Name(_ADR, 0x0330) //NFIT Device Handle (SK0, MCU3, Channel 3, Slot 0)
+ Name(SMRT, Buffer(13) {0})
+ CreateDWordField(SMRT, 0, BSTA)
+ CreateWordField(SMRT, 4, BHTH)
+ CreateWordField(SMRT, 6, BTMP)
+ CreateByteField(SMRT, 8, BETH)
+ CreateByteField(SMRT, 9, BWTH)
+ CreateByteField(SMRT, 10, BNLF)
+ OperationRegion(BUF1, SystemMemory, 0x88980000, 16)
+ Field (BUF1, DWordAcc, NoLock, Preserve) {
+ STAT, 32, //Status
+ HLTH, 16, //Module Health
+ CTMP, 16, //Module Current Status
+ ETHS, 8, //Error Threshold Status
+ WTHS, 8, //Warning Threshold Status
+ NVLF, 8, //NVM Lifetime
+ , 40 //Reserve
+ }
+ Method (_DSM, 0x4, Serialized) {
+ //Accept only MSF Family type NVDIMM DSM functions
+ If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
+ //Handle Func 0 query implemented commands
+ If(LEqual(Arg2, 0)) {
+ //Check revision and returned proper implemented commands
+ //Support only health check for now
+ Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
+ }
+ //Handle MSF DSM Func 11 Get Smart and Health Info
+ If(LEqual(Arg2, 11)) {
+ Store(\_SB.NVDR.NVD1.STAT, BSTA)
+ Store(\_SB.NVDR.NVD1.HLTH, BHTH)
+ Store(\_SB.NVDR.NVD1.CTMP, BTMP)
+ Store(\_SB.NVDR.NVD1.ETHS, BETH)
+ Store(\_SB.NVDR.NVD1.WTHS, BWTH)
+ Store(\_SB.NVDR.NVD1.NVLF, BNLF)
+ Return (SMRT)
+ }
+ }
+
+ Return (Buffer() {0})
+ }
+ Method(_STA, 0, NotSerialized) {
+ return (0xf)
+ }
+ }
+ Device (NVD2) {
+ Name(_ADR, 0x0770) //NFIT Device Handle (SK0, MCU7, Channel 7, Slot 0)
+ Name(SMRT, Buffer(13) {0})
+ CreateDWordField(SMRT, 0, BSTA)
+ CreateWordField(SMRT, 4, BHTH)
+ CreateWordField(SMRT, 6, BTMP)
+ CreateByteField(SMRT, 8, BETH)
+ CreateByteField(SMRT, 9, BWTH)
+ CreateByteField(SMRT, 10, BNLF)
+ OperationRegion(BUF1, SystemMemory, 0x88988000, 16)
+ Field (BUF1, DWordAcc, NoLock, Preserve) {
+ STAT, 32, //Status
+ HLTH, 16, //Module Health
+ CTMP, 16, //Module Current Status
+ ETHS, 8, //Error Threshold Status
+ WTHS, 8, //Warning Threshold Status
+ NVLF, 8, //NVM Lifetime
+ , 40 //Reserve
+ }
+ Method (_DSM, 0x4, Serialized) {
+ //Accept only MSF Family type NVDIMM DSM functions
+ If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
+ //Handle Func 0 query implemented commands
+ If(LEqual(Arg2, 0)) {
+ //Check revision and returned proper implemented commands
+ //Support only health check for now
+ Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
+ }
+ //Handle MSF DSM Func 11 Get Smart and Health Info
+ If(LEqual(Arg2, 11)) {
+ Store(\_SB.NVDR.NVD2.STAT, BSTA)
+ Store(\_SB.NVDR.NVD2.HLTH, BHTH)
+ Store(\_SB.NVDR.NVD2.CTMP, BTMP)
+ Store(\_SB.NVDR.NVD2.ETHS, BETH)
+ Store(\_SB.NVDR.NVD2.WTHS, BWTH)
+ Store(\_SB.NVDR.NVD2.NVLF, BNLF)
+ Return (SMRT)
+ }
+ }
+
+ Return (Buffer() {0})
+ }
+ Method(_STA, 0, NotSerialized) {
+ return (0xf)
+ }
+ }
+ Device (NVD3) {
+ Name(_ADR, 0x1330) //NFIT Device Handle (SK1, MCU3, Channel 3, Slot 0)
+ Name(SMRT, Buffer(13) {0})
+ CreateDWordField(SMRT, 0, BSTA)
+ CreateWordField(SMRT, 4, BHTH)
+ CreateWordField(SMRT, 6, BTMP)
+ CreateByteField(SMRT, 8, BETH)
+ CreateByteField(SMRT, 9, BWTH)
+ CreateByteField(SMRT, 10, BNLF)
+ OperationRegion(BUF1, SystemMemory, 0xC0080000, 16)
+ Field (BUF1, DWordAcc, NoLock, Preserve) {
+ STAT, 32, //Status
+ HLTH, 16, //Module Health
+ CTMP, 16, //Module Current Status
+ ETHS, 8, //Error Threshold Status
+ WTHS, 8, //Warning Threshold Status
+ NVLF, 8, //NVM Lifetime
+ , 40 //Reserve
+ }
+ Method (_DSM, 0x4, Serialized) {
+ //Accept only MSF Family type NVDIMM DSM functions
+ If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
+ //Handle Func 0 query implemented commands
+ If(LEqual(Arg2, 0)) {
+ //Check revision and returned proper implemented commands
+ //Support only health check for now
+ Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
+ }
+ //Handle MSF DSM Func 11 Get Smart and Health Info
+ If(LEqual(Arg2, 11)) {
+ Store(\_SB.NVDR.NVD3.STAT, BSTA)
+ Store(\_SB.NVDR.NVD3.HLTH, BHTH)
+ Store(\_SB.NVDR.NVD3.CTMP, BTMP)
+ Store(\_SB.NVDR.NVD3.ETHS, BETH)
+ Store(\_SB.NVDR.NVD3.WTHS, BWTH)
+ Store(\_SB.NVDR.NVD3.NVLF, BNLF)
+ Return (SMRT)
+ }
+ }
+ Return (Buffer() {0})
+ }
+ Method(_STA, 0, NotSerialized) {
+ return (0xf)
+ }
+ }
+ Device (NVD4) {
+ Name(_ADR, 0x1770) //NFIT Device Handle (SK1, MCU7, Channel 7, Slot 0)
+ Name(SMRT, Buffer(13) {0})
+ CreateDWordField(SMRT, 0, BSTA)
+ CreateWordField(SMRT, 4, BHTH)
+ CreateWordField(SMRT, 6, BTMP)
+ CreateByteField(SMRT, 8, BETH)
+ CreateByteField(SMRT, 9, BWTH)
+ CreateByteField(SMRT, 10, BNLF)
+ OperationRegion(BUF1, SystemMemory, 0xC0088000, 16)
+ Field (BUF1, DWordAcc, NoLock, Preserve) {
+ STAT, 32, //Status
+ HLTH, 16, //Module Health
+ CTMP, 16, //Module Current Status
+ ETHS, 8, //Error Threshold Status
+ WTHS, 8, //Warning Threshold Status
+ NVLF, 8, //NVM Lifetime
+ , 40 //Reserve
+ }
+ Method (_DSM, 0x4, Serialized) {
+ //Accept only MSF Family type NVDIMM DSM functions
+ If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
+ //Handle Func 0 query implemented commands
+ If(LEqual(Arg2, 0)) {
+ //Check revision and returned proper implemented commands
+ //Support only health check for now
+ Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
+ }
+ //Handle MSF DSM Func 11 Get Smart and Health Info
+ If(LEqual(Arg2, 11)) {
+ Store(\_SB.NVDR.NVD4.STAT, BSTA)
+ Store(\_SB.NVDR.NVD4.HLTH, BHTH)
+ Store(\_SB.NVDR.NVD4.CTMP, BTMP)
+ Store(\_SB.NVDR.NVD4.ETHS, BETH)
+ Store(\_SB.NVDR.NVD4.WTHS, BWTH)
+ Store(\_SB.NVDR.NVD4.NVLF, BNLF)
+ Return (SMRT)
+ }
+ }
+ Return (Buffer() {0})
+ }
+ Method(_STA, 0, NotSerialized) {
+ return (0xf)
+ }
+ }
+}
+
+Device(TPM0) {
+ Name (_HID, "NNNN0000")
+ Name (_CID, "MSFT0101")
+ Name (_UID, 0)
+ Name (CRBB, 0x10000000)
+ Name (CRBL, 0x10000000)
+
+ Name (RBUF, ResourceTemplate ()
+ {
+ Memory32Fixed (ReadWrite, 0x88500000, 0x1000, PCRE)
+ })
+
+ Method (_CRS, 0x0, Serialized) {
+
+ // Declare fields in PCRE
+ CreateDWordField(RBUF, ^PCRE._BAS, BASE)
+ CreateDWordField(RBUF, ^PCRE._LEN, LENG)
+
+ // Store Updatable values into them
+ Store(CRBB, BASE)
+ Store(CRBL, LENG)
+
+ Return (RBUF)
+ }
+
+ Method(_STR,0)
+ {
+ Return (Unicode ("TPM 2.0 Device"))
+ }
+
+ Method (_STA, 0)
+ {
+ if(TPMF)
+ {
+ Return (0x0f) //Enable resources
+ }
+ Return (0x0)
+ }
+
+ //
+ // Add opregions for doorbell and PPI CRB
+ // The addresses for these operation regions should be patched
+ // with information from HOB
+ //
+ OperationRegion (TPMD, SystemMemory, 0x100000542010, 0x04)
+ Field (TPMD, DWordAcc, NoLock, Preserve) {
+ DBB0, 32 // Doorbell out register
+ }
+
+ // PPI request CRB
+ OperationRegion (TPMC, SystemMemory, 0x88542038, 0x0C)
+ Field (TPMC, DWordAcc, NoLock, Preserve) {
+ PPIO, 32, // current PPI request
+ PPIR, 32, // last PPI request
+ PPIS, 32, // last PPI request status
+ }
+
+ // Create objects to hold return values
+ Name (PKG2, Package (2) { Zero, Zero })
+ Name (PKG3, Package (3) { Zero, Zero, Zero })
+
+ Method (_DSM, 0x4, Serialized) {
+ // Handle Physical Presence Interface(PPI) DSM method
+ If (LEqual (Arg0, ToUUID ("3DDDFAA6-361B-4eb4-A424-8D10089D1653"))) {
+ Switch (ToInteger (Arg2)) {
+ //
+ // Standard DSM query
+ //
+ Case (0) {
+ Return (Buffer () { 0xFF, 0x01 })
+ }
+
+ //
+ // Get Physical Presence Interface Version - support 1.3
+ //
+ Case (1) {
+ Return ("1.3")
+ }
+
+ //
+ // Submit TPM operation to pre-OS (Deprecated)
+ //
+ Case (2) {
+ Return (One) // Not supported
+ }
+
+ //
+ // Get pending TPM operation requested by OS
+ //
+ Case (3) {
+ PKG2[Zero] = Zero // Success
+ PKG2[One] = PPIO // current PPI request
+ Return (PKG2)
+ }
+
+ //
+ // Platform-specific action to transition to Pre-OS env
+ //
+ Case (4) {
+ Return (0x2) // Reboot
+ }
+
+ //
+ // TPM operation Response to OS
+ //
+ Case (5) {
+ PKG3[Zero] = Zero // Success
+ PKG3[One] = PPIR // last PPI request
+ PKG3[2] = PPIS // last PPI request status
+ Return (PKG3)
+ }
+
+ //
+ // Preferred language code (Deprecated)
+ //
+ Case (6) {
+ Return (0x3) // Not implemented
+ }
+
+ //
+ // Submit TPM operation to pre-OS env 2
+ //
+ Case (7) {
+ Local0 = DerefOf (Arg3 [Zero])
+ // Write current PPI request and then to the doorbell
+ Store (Local0, PPIO)
+ Store (0x6a000000, DBB0) // MsgType: 6, Handler: 0xa (TPM-PPI)
+ Return (Zero)
+ }
+
+ //
+ // Get User confirmation status for op
+ //
+ Case (8) {
+ Return (0x4) // Allowed and physically present user not required
+ }
+ }
+ }
+ Return (Buffer () {0})
+ }
+}
+
+//
+// LED Device
+Device(LED) {
+ Name(_HID, "AMPC0008")
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Altra LED Device"))
+
+ Name (_DSD, Package () {
+ ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package () {
+ Package () { "uuid", Package (4) { 0x5598273c, 0xa49611ea, 0xbb370242, 0xac130002 }},
+ }
+ })
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
new file mode 100644
index 000000000000..bc83b3ca42ba
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
@@ -0,0 +1,39 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+DefinitionBlock("Dsdt.aml", "DSDT", 0x02, "Ampere", "Jade", 1) {
+ //
+ // Board Model
+ Name(\BDMD, "Altra Max Jade Board")
+ Name(TPMF, 0) // TPM presence
+ Name(AERF, 0) // PCIe AER Firmware-First
+
+ Scope(\_SB) {
+
+ Include ("CommonDevices.asi")
+
+ Scope(\_SB.GED0) {
+ Method(_EVT, 1, Serialized) {
+ Switch (ToInteger(Arg0)) {
+ Case (84) { // GHES interrupt
+ Notify (HED0, 0x80)
+ }
+ }
+ }
+ }
+
+ Include ("PCI-S0.Rca01.asi")
+ Include ("PCI-S0.asi")
+ Include ("PCI-S1.asi")
+ Include ("PCI-PDRC.asi")
+ }
+
+ Include ("CPU.asi")
+ Include ("PMU.asi")
+
+} // DSDT
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
new file mode 100644
index 000000000000..7c51c1546b53
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
@@ -0,0 +1,217 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+ // Motherboard resource consumption for PCIE resource reservation
+ // as upstream discussion "ACPI namespace details for ARM64"
+ Device (PDRC) {
+ Name (_HID, EISAID("PNP0C02"))
+ Name (_UID, 1)
+ // S0 Start here
+ Name (PDRS, ResourceTemplate() {
+ QWordMemory ( // PCIE0 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00003BFFF0000000, // AddressMinimum - MIN
+ 0x00003BFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE1 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00003FFFF0000000, // AddressMinimum - MIN
+ 0x00003FFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE2 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000023FFF0000000, // AddressMinimum - MIN
+ 0x000023FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE3 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000027FFF0000000, // AddressMinimum - MIN
+ 0x000027FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE4 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00002BFFF0000000, // AddressMinimum - MIN
+ 0x00002BFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE5 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00002FFFF0000000, // AddressMinimum - MIN
+ 0x00002FFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ // S1 Start here
+ QWordMemory ( // PCIE6 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00007BFFF0000000, // AddressMinimum - MIN
+ 0x00007BFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE7 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00007FFFF0000000, // AddressMinimum - MIN
+ 0x00007FFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE8 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000063FFF0000000, // AddressMinimum - MIN
+ 0x000063FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIE9 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000067FFF0000000, // AddressMinimum - MIN
+ 0x000067FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+ QWordMemory ( // PCIEA 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00006BFFF0000000, // AddressMinimum - MIN
+ 0x00006BFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIEB 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00006FFFF0000000, // AddressMinimum - MIN
+ 0x00006FFFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIEC 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000033FFF0000000, // AddressMinimum - MIN
+ 0x000033FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory ( // PCIED 256M CFG region for ECAM
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x000037FFF0000000, // AddressMinimum - MIN
+ 0x000037FFFFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+ })
+
+ // Current Resource Settings
+ Method (_CRS, 0, Serialized) {
+ Return (PDRS)
+ }
+ }
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
new file mode 100644
index 000000000000..7d8c21f5a1de
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
@@ -0,0 +1,669 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+ // PCI0 RCA0
+ Device (PCI0) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 12)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI0")
+ Name (_STR, Unicode("PCIe 0 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 128/129/130/131 respectively. PCI0 RCA0
+ //
+ Package() {0x0001FFFF, 0, 0, 128},
+ Package() {0x0001FFFF, 1, 0, 129},
+ Package() {0x0001FFFF, 2, 0, 130},
+ Package() {0x0001FFFF, 3, 0, 131},
+ Package() {0x0002FFFF, 0, 0, 128},
+ Package() {0x0002FFFF, 1, 0, 129},
+ Package() {0x0002FFFF, 2, 0, 130},
+ Package() {0x0002FFFF, 3, 0, 131},
+ Package() {0x0003FFFF, 0, 0, 128},
+ Package() {0x0003FFFF, 1, 0, 129},
+ Package() {0x0003FFFF, 2, 0, 130},
+ Package() {0x0003FFFF, 3, 0, 131},
+ Package() {0x0004FFFF, 0, 0, 128},
+ Package() {0x0004FFFF, 1, 0, 129},
+ Package() {0x0004FFFF, 2, 0, 130},
+ Package() {0x0004FFFF, 3, 0, 131},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x33FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000040000000, // AddressMinimum - MIN
+ 0x000000004FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000300000000000, // AddressMinimum - MIN
+ 0x000033FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI0 RCA0
+
+ // PCI1 RCA1
+ Device (PCI1) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 13)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI1")
+ Name (_STR, Unicode("PCIe 1 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 132/133/134/135 respectively. PCI1 RCA1
+ //
+ Package() {0x0001FFFF, 0, 0, 132},
+ Package() {0x0001FFFF, 1, 0, 133},
+ Package() {0x0001FFFF, 2, 0, 134},
+ Package() {0x0001FFFF, 3, 0, 135},
+ Package() {0x0002FFFF, 0, 0, 132},
+ Package() {0x0002FFFF, 1, 0, 133},
+ Package() {0x0002FFFF, 2, 0, 134},
+ Package() {0x0002FFFF, 3, 0, 135},
+ Package() {0x0003FFFF, 0, 0, 132},
+ Package() {0x0003FFFF, 1, 0, 133},
+ Package() {0x0003FFFF, 2, 0, 134},
+ Package() {0x0003FFFF, 3, 0, 135},
+ Package() {0x0004FFFF, 0, 0, 132},
+ Package() {0x0004FFFF, 1, 0, 133},
+ Package() {0x0004FFFF, 2, 0, 134},
+ Package() {0x0004FFFF, 3, 0, 135},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x37FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000050000000, // AddressMinimum - MIN
+ 0x000000005FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000010000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ Cacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000340000000000, // AddressMinimum - MIN
+ 0x000037FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI1 RCA1
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
new file mode 100644
index 000000000000..6dcf8b7170be
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
@@ -0,0 +1,2041 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+ // PCI2 RCA2
+ Device (PCI2) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF)
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 1)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI2")
+ Name (_STR, Unicode("PCIe 2 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 136/137/138/139 respectively. PCI2 RCA2
+ //
+ Package() {0x0001FFFF, 0, 0, 136},
+ Package() {0x0001FFFF, 1, 0, 137},
+ Package() {0x0001FFFF, 2, 0, 138},
+ Package() {0x0001FFFF, 3, 0, 139},
+ Package() {0x0002FFFF, 0, 0, 136},
+ Package() {0x0002FFFF, 1, 0, 137},
+ Package() {0x0002FFFF, 2, 0, 138},
+ Package() {0x0002FFFF, 3, 0, 139},
+ Package() {0x0003FFFF, 0, 0, 136},
+ Package() {0x0003FFFF, 1, 0, 137},
+ Package() {0x0003FFFF, 2, 0, 138},
+ Package() {0x0003FFFF, 3, 0, 139},
+ Package() {0x0004FFFF, 0, 0, 136},
+ Package() {0x0004FFFF, 1, 0, 137},
+ Package() {0x0004FFFF, 2, 0, 138},
+ Package() {0x0004FFFF, 3, 0, 139},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x3BFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE80000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000030000000, // AddressMinimum - MIN
+ 0x0000000037FFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000380000000000, // AddressMinimum - MIN
+ 0x00003BFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP, 0) // PCI _OSC Support Field value
+ Name (CTRL, 0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3,0,CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI2 RCA2
+
+ // PCI3 RCA3
+ Device (PCI3) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF)
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 0)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI3")
+ Name (_STR, Unicode("PCIe 3 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 140/141/142/143 respectively. PCI3 RCA3
+ //
+ Package() {0x0001FFFF, 0, 0, 140},
+ Package() {0x0001FFFF, 1, 0, 141},
+ Package() {0x0001FFFF, 2, 0, 142},
+ Package() {0x0001FFFF, 3, 0, 143},
+ Package() {0x0002FFFF, 0, 0, 140},
+ Package() {0x0002FFFF, 1, 0, 141},
+ Package() {0x0002FFFF, 2, 0, 142},
+ Package() {0x0002FFFF, 3, 0, 143},
+ Package() {0x0003FFFF, 0, 0, 140},
+ Package() {0x0003FFFF, 1, 0, 141},
+ Package() {0x0003FFFF, 2, 0, 142},
+ Package() {0x0003FFFF, 3, 0, 143},
+ Package() {0x0004FFFF, 0, 0, 140},
+ Package() {0x0004FFFF, 1, 0, 141},
+ Package() {0x0004FFFF, 2, 0, 142},
+ Package() {0x0004FFFF, 3, 0, 143},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x3FFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE00000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000038000000, // AddressMinimum - MIN
+ 0x000000003FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00003C0000000000, // AddressMinimum - MIN
+ 0x00003FFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP, 0) // PCI _OSC Support Field value
+ Name (CTRL, 0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI3 RCA3
+
+ // PCI4 RCA4
+ Device (PCI4) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 2)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI4")
+ Name (_STR, Unicode("PCIe 4 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 144/145/146/147 respectively. PCI4 RCA4
+ //
+ Package() {0x0001FFFF, 0, 0, 144},
+ Package() {0x0001FFFF, 1, 0, 145},
+ Package() {0x0001FFFF, 2, 0, 146},
+ Package() {0x0001FFFF, 3, 0, 147},
+ Package() {0x0002FFFF, 0, 0, 144},
+ Package() {0x0002FFFF, 1, 0, 145},
+ Package() {0x0002FFFF, 2, 0, 146},
+ Package() {0x0002FFFF, 3, 0, 147},
+ Package() {0x0003FFFF, 0, 0, 144},
+ Package() {0x0003FFFF, 1, 0, 145},
+ Package() {0x0003FFFF, 2, 0, 146},
+ Package() {0x0003FFFF, 3, 0, 147},
+ Package() {0x0004FFFF, 0, 0, 144},
+ Package() {0x0004FFFF, 1, 0, 145},
+ Package() {0x0004FFFF, 2, 0, 146},
+ Package() {0x0004FFFF, 3, 0, 147},
+ Package() {0x0005FFFF, 0, 0, 144},
+ Package() {0x0005FFFF, 1, 0, 145},
+ Package() {0x0005FFFF, 2, 0, 146},
+ Package() {0x0005FFFF, 3, 0, 147},
+ Package() {0x0006FFFF, 0, 0, 144},
+ Package() {0x0006FFFF, 1, 0, 145},
+ Package() {0x0006FFFF, 2, 0, 146},
+ Package() {0x0006FFFF, 3, 0, 147},
+ Package() {0x0007FFFF, 0, 0, 144},
+ Package() {0x0007FFFF, 1, 0, 145},
+ Package() {0x0007FFFF, 2, 0, 146},
+ Package() {0x0007FFFF, 3, 0, 147},
+ Package() {0x0008FFFF, 0, 0, 144},
+ Package() {0x0008FFFF, 1, 0, 145},
+ Package() {0x0008FFFF, 2, 0, 146},
+ Package() {0x0008FFFF, 3, 0, 147},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x23FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FEC0000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000004000000, // AddressMinimum - MIN
+ 0x0000000007FFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000004000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000200000000000, // AddressMinimum - MIN
+ 0x000023FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2))
+ {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI4 RCA4
+
+ // PCI5 RCA5
+ Device (PCI5) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF)
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID,"PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 3)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI5")
+ Name (_STR, Unicode("PCIe 5 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 148/149/150/151 respectively. PCI5 RCA5
+ //
+ Package() {0x0001FFFF, 0, 0, 148},
+ Package() {0x0001FFFF, 1, 0, 149},
+ Package() {0x0001FFFF, 2, 0, 150},
+ Package() {0x0001FFFF, 3, 0, 151},
+ Package() {0x0002FFFF, 0, 0, 148},
+ Package() {0x0002FFFF, 1, 0, 149},
+ Package() {0x0002FFFF, 2, 0, 150},
+ Package() {0x0002FFFF, 3, 0, 151},
+ Package() {0x0003FFFF, 0, 0, 148},
+ Package() {0x0003FFFF, 1, 0, 149},
+ Package() {0x0003FFFF, 2, 0, 150},
+ Package() {0x0003FFFF, 3, 0, 151},
+ Package() {0x0004FFFF, 0, 0, 148},
+ Package() {0x0004FFFF, 1, 0, 149},
+ Package() {0x0004FFFF, 2, 0, 150},
+ Package() {0x0004FFFF, 3, 0, 151},
+ Package() {0x0005FFFF, 0, 0, 148},
+ Package() {0x0005FFFF, 1, 0, 149},
+ Package() {0x0005FFFF, 2, 0, 150},
+ Package() {0x0005FFFF, 3, 0, 151},
+ Package() {0x0006FFFF, 0, 0, 148},
+ Package() {0x0006FFFF, 1, 0, 149},
+ Package() {0x0006FFFF, 2, 0, 150},
+ Package() {0x0006FFFF, 3, 0, 151},
+ Package() {0x0007FFFF, 0, 0, 148},
+ Package() {0x0007FFFF, 1, 0, 149},
+ Package() {0x0007FFFF, 2, 0, 150},
+ Package() {0x0007FFFF, 3, 0, 151},
+ Package() {0x0008FFFF, 0, 0, 148},
+ Package() {0x0008FFFF, 1, 0, 149},
+ Package() {0x0008FFFF, 2, 0, 150},
+ Package() {0x0008FFFF, 3, 0, 151},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x27FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FF00000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000008000000, // AddressMinimum - MIN
+ 0x000000000FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000240000000000, // AddressMinimum - MIN
+ 0x000027FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP, 0) // PCI _OSC Support Field value
+ Name (CTRL, 0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2))
+ {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI5 RCA5
+
+
+ // PCI6 RCA6
+ Device (PCI6) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID,"PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID,"PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 4)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI6")
+ Name (_STR, Unicode("PCIe 6 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 152/153/154/155 respectively. PCI6 RCA6
+ //
+ Package() {0x0001FFFF, 0, 0, 152},
+ Package() {0x0001FFFF, 1, 0, 153},
+ Package() {0x0001FFFF, 2, 0, 154},
+ Package() {0x0001FFFF, 3, 0, 155},
+ Package() {0x0002FFFF, 0, 0, 152},
+ Package() {0x0002FFFF, 1, 0, 153},
+ Package() {0x0002FFFF, 2, 0, 154},
+ Package() {0x0002FFFF, 3, 0, 155},
+ Package() {0x0003FFFF, 0, 0, 152},
+ Package() {0x0003FFFF, 1, 0, 153},
+ Package() {0x0003FFFF, 2, 0, 154},
+ Package() {0x0003FFFF, 3, 0, 155},
+ Package() {0x0004FFFF, 0, 0, 152},
+ Package() {0x0004FFFF, 1, 0, 153},
+ Package() {0x0004FFFF, 2, 0, 154},
+ Package() {0x0004FFFF, 3, 0, 155},
+ Package() {0x0005FFFF, 0, 0, 152},
+ Package() {0x0005FFFF, 1, 0, 153},
+ Package() {0x0005FFFF, 2, 0, 154},
+ Package() {0x0005FFFF, 3, 0, 155},
+ Package() {0x0006FFFF, 0, 0, 152},
+ Package() {0x0006FFFF, 1, 0, 153},
+ Package() {0x0006FFFF, 2, 0, 154},
+ Package() {0x0006FFFF, 3, 0, 155},
+ Package() {0x0007FFFF, 0, 0, 152},
+ Package() {0x0007FFFF, 1, 0, 153},
+ Package() {0x0007FFFF, 2, 0, 154},
+ Package() {0x0007FFFF, 3, 0, 155},
+ Package() {0x0008FFFF, 0, 0, 152},
+ Package() {0x0008FFFF, 1, 0, 153},
+ Package() {0x0008FFFF, 2, 0, 154},
+ Package() {0x0008FFFF, 3, 0, 155},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x2BFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000010000000, // AddressMinimum - MIN
+ 0x0000000017FFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000280000000000, // AddressMinimum - MIN
+ 0x00002BFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3,0,CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3,4,CDW2)
+ CreateDWordField (Arg3,8,CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2,SUPP)
+ Store (CDW3,CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL,0x1E,CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1,One)) {
+ Or (CDW1,0x08,CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3,CTRL)) {
+ Or (CDW1,0x10,CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL,CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1,4,CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI6 RCA6
+
+ // PCI7 RCA7
+ Device (PCI7) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID,"PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID,"PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 5)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCI7")
+ Name (_STR, Unicode("PCIe 7 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 156/157/158/159 respectively. PCI7 RCA7
+ //
+ Package() {0x0001FFFF, 0, 0, 156},
+ Package() {0x0001FFFF, 1, 0, 157},
+ Package() {0x0001FFFF, 2, 0, 158},
+ Package() {0x0001FFFF, 3, 0, 159},
+ Package() {0x0002FFFF, 0, 0, 156},
+ Package() {0x0002FFFF, 1, 0, 157},
+ Package() {0x0002FFFF, 2, 0, 158},
+ Package() {0x0002FFFF, 3, 0, 159},
+ Package() {0x0003FFFF, 0, 0, 156},
+ Package() {0x0003FFFF, 1, 0, 157},
+ Package() {0x0003FFFF, 2, 0, 158},
+ Package() {0x0003FFFF, 3, 0, 159},
+ Package() {0x0004FFFF, 0, 0, 156},
+ Package() {0x0004FFFF, 1, 0, 157},
+ Package() {0x0004FFFF, 2, 0, 158},
+ Package() {0x0004FFFF, 3, 0, 159},
+ Package() {0x0005FFFF, 0, 0, 156},
+ Package() {0x0005FFFF, 1, 0, 157},
+ Package() {0x0005FFFF, 2, 0, 158},
+ Package() {0x0005FFFF, 3, 0, 159},
+ Package() {0x0006FFFF, 0, 0, 156},
+ Package() {0x0006FFFF, 1, 0, 157},
+ Package() {0x0006FFFF, 2, 0, 158},
+ Package() {0x0006FFFF, 3, 0, 159},
+ Package() {0x0007FFFF, 0, 0, 156},
+ Package() {0x0007FFFF, 1, 0, 157},
+ Package() {0x0007FFFF, 2, 0, 158},
+ Package() {0x0007FFFF, 3, 0, 159},
+ Package() {0x0008FFFF, 0, 0, 156},
+ Package() {0x0008FFFF, 1, 0, 157},
+ Package() {0x0008FFFF, 2, 0, 158},
+ Package() {0x0008FFFF, 3, 0, 159},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x2FFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000018000000, // AddressMinimum - MIN
+ 0x000000001FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00002C0000000000, // AddressMinimum - MIN
+ 0x00002FFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3,0,CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3,4,CDW2)
+ CreateDWordField (Arg3,8,CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2,SUPP)
+ Store (CDW3,CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL,0x1E,CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1,One)) {
+ Or (CDW1,0x08,CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3,CTRL)) {
+ Or (CDW1,0x10,CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL,CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1,4,CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCI7 RCA7
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
new file mode 100644
index 000000000000..17c66051a06e
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
@@ -0,0 +1,2051 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+ //
+ // S1 Start here
+ //
+
+ // PCIE6 S1 RCA2
+ Device (PCIA) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID,"PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF)
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID,"PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 6)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCIA")
+ Name (_STR, Unicode("PCIe 10 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 136/137/138/139 + 320 respectively. PCIA RCA2
+ //
+ Package() {0x0001FFFF, 0, 0, 456},
+ Package() {0x0001FFFF, 1, 0, 457},
+ Package() {0x0001FFFF, 2, 0, 458},
+ Package() {0x0001FFFF, 3, 0, 459},
+ Package() {0x0002FFFF, 0, 0, 456},
+ Package() {0x0002FFFF, 1, 0, 457},
+ Package() {0x0002FFFF, 2, 0, 458},
+ Package() {0x0002FFFF, 3, 0, 459},
+ Package() {0x0003FFFF, 0, 0, 456},
+ Package() {0x0003FFFF, 1, 0, 457},
+ Package() {0x0003FFFF, 2, 0, 458},
+ Package() {0x0003FFFF, 3, 0, 459},
+ Package() {0x0004FFFF, 0, 0, 456},
+ Package() {0x0004FFFF, 1, 0, 457},
+ Package() {0x0004FFFF, 2, 0, 458},
+ Package() {0x0004FFFF, 3, 0, 459},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x7BFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FF80000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000070000000, // AddressMinimum - MIN
+ 0x0000000077FFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000780000000000, // AddressMinimum - MIN
+ 0x00007BFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3,0,CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3,4,CDW2)
+ CreateDWordField (Arg3,8,CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2,SUPP)
+ Store (CDW3,CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL,0x1E,CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1,One)) {
+ Or (CDW1,0x08,CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3,CTRL)) {
+ Or (CDW1,0x10,CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL,CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1,4,CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCIA RCA2
+
+ // PCIEB RCA3
+ Device (PCIB) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID,"PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF)
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID,"PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 7)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCIB")
+ Name (_STR, Unicode("PCIe 11 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 140/141/142/143 + 320 respectively. PCIB RCA3
+ //
+ Package() {0x0001FFFF, 0, 0, 460},
+ Package() {0x0001FFFF, 1, 0, 461},
+ Package() {0x0001FFFF, 2, 0, 462},
+ Package() {0x0001FFFF, 3, 0, 463},
+ Package() {0x0002FFFF, 0, 0, 460},
+ Package() {0x0002FFFF, 1, 0, 461},
+ Package() {0x0002FFFF, 2, 0, 462},
+ Package() {0x0002FFFF, 3, 0, 463},
+ Package() {0x0003FFFF, 0, 0, 460},
+ Package() {0x0003FFFF, 1, 0, 461},
+ Package() {0x0003FFFF, 2, 0, 462},
+ Package() {0x0003FFFF, 3, 0, 463},
+ Package() {0x0004FFFF, 0, 0, 460},
+ Package() {0x0004FFFF, 1, 0, 461},
+ Package() {0x0004FFFF, 2, 0, 462},
+ Package() {0x0004FFFF, 3, 0, 463},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x7FFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FFC0000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000078000000, // AddressMinimum - MIN
+ 0x000000007FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00007C0000000000, // AddressMinimum - MIN
+ 0x00007FFFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3,0,CDW1)
+ If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3,4,CDW2)
+ CreateDWordField (Arg3,8,CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2,SUPP)
+ Store (CDW3,CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL,0x1E,CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1,One)) {
+ Or (CDW1,0x08,CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3,CTRL)) {
+ Or (CDW1,0x10,CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL,CDW3)
+ Return (Arg3)
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1,4,CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCIB RCA3
+
+ // PCIC RCA4
+ Device (PCIC) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 8)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCIC")
+ Name (_STR, Unicode("PCIe 12 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 144/145/146/147 + 320 respectively. PCIC RCA4
+ //
+ Package() {0x0001FFFF, 0, 0, 464},
+ Package() {0x0001FFFF, 1, 0, 465},
+ Package() {0x0001FFFF, 2, 0, 466},
+ Package() {0x0001FFFF, 3, 0, 467},
+ Package() {0x0002FFFF, 0, 0, 464},
+ Package() {0x0002FFFF, 1, 0, 465},
+ Package() {0x0002FFFF, 2, 0, 466},
+ Package() {0x0002FFFF, 3, 0, 467},
+ Package() {0x0003FFFF, 0, 0, 464},
+ Package() {0x0003FFFF, 1, 0, 465},
+ Package() {0x0003FFFF, 2, 0, 466},
+ Package() {0x0003FFFF, 3, 0, 467},
+ Package() {0x0004FFFF, 0, 0, 464},
+ Package() {0x0004FFFF, 1, 0, 465},
+ Package() {0x0004FFFF, 2, 0, 466},
+ Package() {0x0004FFFF, 3, 0, 467},
+ Package() {0x0005FFFF, 0, 0, 464},
+ Package() {0x0005FFFF, 1, 0, 465},
+ Package() {0x0005FFFF, 2, 0, 466},
+ Package() {0x0005FFFF, 3, 0, 467},
+ Package() {0x0006FFFF, 0, 0, 464},
+ Package() {0x0006FFFF, 1, 0, 465},
+ Package() {0x0006FFFF, 2, 0, 466},
+ Package() {0x0006FFFF, 3, 0, 467},
+ Package() {0x0007FFFF, 0, 0, 464},
+ Package() {0x0007FFFF, 1, 0, 465},
+ Package() {0x0007FFFF, 2, 0, 466},
+ Package() {0x0007FFFF, 3, 0, 467},
+ Package() {0x0008FFFF, 0, 0, 464},
+ Package() {0x0008FFFF, 1, 0, 465},
+ Package() {0x0008FFFF, 2, 0, 466},
+ Package() {0x0008FFFF, 3, 0, 467},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x63FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000040000000, // AddressMinimum - MIN
+ 0x0000000047FFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000600000000000, // AddressMinimum - MIN
+ 0x000063FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCIC RCA4
+
+ // PCID RCA5
+ Device (PCID) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 9)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCID")
+ Name (_STR, Unicode("PCIe 13 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 148/149/150/151 + 320 respectively. PCID RCA5
+ //
+ Package() {0x0001FFFF, 0, 0, 468},
+ Package() {0x0001FFFF, 1, 0, 469},
+ Package() {0x0001FFFF, 2, 0, 470},
+ Package() {0x0001FFFF, 3, 0, 471},
+ Package() {0x0002FFFF, 0, 0, 468},
+ Package() {0x0002FFFF, 1, 0, 469},
+ Package() {0x0002FFFF, 2, 0, 470},
+ Package() {0x0002FFFF, 3, 0, 471},
+ Package() {0x0003FFFF, 0, 0, 468},
+ Package() {0x0003FFFF, 1, 0, 469},
+ Package() {0x0003FFFF, 2, 0, 470},
+ Package() {0x0003FFFF, 3, 0, 471},
+ Package() {0x0004FFFF, 0, 0, 468},
+ Package() {0x0004FFFF, 1, 0, 469},
+ Package() {0x0004FFFF, 2, 0, 470},
+ Package() {0x0004FFFF, 3, 0, 471},
+ Package() {0x0005FFFF, 0, 0, 468},
+ Package() {0x0005FFFF, 1, 0, 469},
+ Package() {0x0005FFFF, 2, 0, 470},
+ Package() {0x0005FFFF, 3, 0, 471},
+ Package() {0x0006FFFF, 0, 0, 468},
+ Package() {0x0006FFFF, 1, 0, 469},
+ Package() {0x0006FFFF, 2, 0, 470},
+ Package() {0x0006FFFF, 3, 0, 471},
+ Package() {0x0007FFFF, 0, 0, 468},
+ Package() {0x0007FFFF, 1, 0, 469},
+ Package() {0x0007FFFF, 2, 0, 470},
+ Package() {0x0007FFFF, 3, 0, 471},
+ Package() {0x0008FFFF, 0, 0, 468},
+ Package() {0x0008FFFF, 1, 0, 469},
+ Package() {0x0008FFFF, 2, 0, 470},
+ Package() {0x0008FFFF, 3, 0, 471},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x67FFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000048000000, // AddressMinimum - MIN
+ 0x000000004FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000640000000000, // AddressMinimum - MIN
+ 0x000067FFDFFFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCID RCA5
+
+ // PCIE RCA6
+ Device (PCIE) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 10)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCIE")
+ Name (_STR, Unicode("PCIe 14 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 152/153/154/155 + 320 respectively. PCIE RCA6
+ //
+ Package() {0x0001FFFF, 0, 0, 472},
+ Package() {0x0001FFFF, 1, 0, 473},
+ Package() {0x0001FFFF, 2, 0, 474},
+ Package() {0x0001FFFF, 3, 0, 475},
+ Package() {0x0002FFFF, 0, 0, 472},
+ Package() {0x0002FFFF, 1, 0, 473},
+ Package() {0x0002FFFF, 2, 0, 474},
+ Package() {0x0002FFFF, 3, 0, 475},
+ Package() {0x0003FFFF, 0, 0, 472},
+ Package() {0x0003FFFF, 1, 0, 473},
+ Package() {0x0003FFFF, 2, 0, 474},
+ Package() {0x0003FFFF, 3, 0, 475},
+ Package() {0x0004FFFF, 0, 0, 472},
+ Package() {0x0004FFFF, 1, 0, 473},
+ Package() {0x0004FFFF, 2, 0, 474},
+ Package() {0x0004FFFF, 3, 0, 475},
+ Package() {0x0005FFFF, 0, 0, 472},
+ Package() {0x0005FFFF, 1, 0, 473},
+ Package() {0x0005FFFF, 2, 0, 474},
+ Package() {0x0005FFFF, 3, 0, 475},
+ Package() {0x0006FFFF, 0, 0, 472},
+ Package() {0x0006FFFF, 1, 0, 473},
+ Package() {0x0006FFFF, 2, 0, 474},
+ Package() {0x0006FFFF, 3, 0, 475},
+ Package() {0x0007FFFF, 0, 0, 472},
+ Package() {0x0007FFFF, 1, 0, 473},
+ Package() {0x0007FFFF, 2, 0, 474},
+ Package() {0x0007FFFF, 3, 0, 475},
+ Package() {0x0008FFFF, 0, 0, 472},
+ Package() {0x0008FFFF, 1, 0, 473},
+ Package() {0x0008FFFF, 2, 0, 474},
+ Package() {0x0008FFFF, 3, 0, 475},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x6BFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000050000000, // AddressMinimum - MIN
+ 0x0000000057FFFFFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000680000000000, // AddressMinimum - MIN
+ 0x00006BFFDFFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCIE RCA6
+
+ // PCIF RCA7
+ Device (PCIF) {
+ //
+ // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
+ // Section 6.1.5
+ //
+
+ Name (_HID, "PNP0A08")
+ Name (_CCA, ONE)
+
+ Method (_STA, 0, NotSerialized) {
+ Return (0xF) // The default value is 0x0. Unfortunately, it breaks
+ // run-time patching as the representation of 0 is special
+ // encoding and cannot be patched to expand with extra bytes
+ // easily. As such, we default to 0xF and patch this based
+ // on whether the port was enabled or not by the BIOS.
+ }
+
+ //
+ // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
+ // root complex for use with pre-PCIe operating systems.
+ // Section 6.1.2
+ //
+
+ Name (_CID, "PNP0A03")
+
+ //
+ // Declare the segment number of this root complex. Most systems only
+ // have one segment, which is numbered 0.
+ // Section 6.5.6
+ //
+
+ Name (_SEG, 11)
+
+ //
+ // Declare the base bus number, which is the bus number of the root
+ // bus in this root complex. This is usually 0, but need not be.
+ // For root complexes supporting multiple root busses, this should
+ // be the lowest numbered root bus.
+ // Section 6.5.5
+ //
+
+ Name (_BBN, 0)
+
+ //
+ // The _UID value provides a way of uniquely identifying a device
+ // in the case where more than one instance of a specific device
+ // is implemented with the same _HID/_CID. For systems with a
+ // single root complex, this is usually just 0. For systems with
+ // multiple root complexes, this should be different for each
+ // root complex.
+ // Section 6.1.12
+ //
+
+ Name (_UID, "PCIF")
+ Name (_STR, Unicode("PCIe 15 Device"))
+
+ //
+ // Declare the PCI Routing Table.
+ // This defines SPI mappings of the four line-based interrupts
+ // associated with the root complex and hierarchy below it.
+ // Section 6.2.12
+ //
+
+ Name (_PRT, Package() {
+
+ //
+ // Routing for device 0, all functions.
+ // Note: ARM doesn't support LNK nodes, so the third param
+ // is 0 and the fourth param is the SPI number of the interrupt
+ // line. In this example, the A/B/C/D interrupts are wired to
+ // SPI lines 156/157/158/159 + 320 respectively. PCIF RCA7
+ //
+ Package() {0x0001FFFF, 0, 0, 476},
+ Package() {0x0001FFFF, 1, 0, 477},
+ Package() {0x0001FFFF, 2, 0, 478},
+ Package() {0x0001FFFF, 3, 0, 479},
+ Package() {0x0002FFFF, 0, 0, 476},
+ Package() {0x0002FFFF, 1, 0, 477},
+ Package() {0x0002FFFF, 2, 0, 478},
+ Package() {0x0002FFFF, 3, 0, 479},
+ Package() {0x0003FFFF, 0, 0, 476},
+ Package() {0x0003FFFF, 1, 0, 477},
+ Package() {0x0003FFFF, 2, 0, 478},
+ Package() {0x0003FFFF, 3, 0, 479},
+ Package() {0x0004FFFF, 0, 0, 476},
+ Package() {0x0004FFFF, 1, 0, 477},
+ Package() {0x0004FFFF, 2, 0, 478},
+ Package() {0x0004FFFF, 3, 0, 479},
+ Package() {0x0005FFFF, 0, 0, 476},
+ Package() {0x0005FFFF, 1, 0, 477},
+ Package() {0x0005FFFF, 2, 0, 478},
+ Package() {0x0005FFFF, 3, 0, 479},
+ Package() {0x0006FFFF, 0, 0, 476},
+ Package() {0x0006FFFF, 1, 0, 477},
+ Package() {0x0006FFFF, 2, 0, 478},
+ Package() {0x0006FFFF, 3, 0, 479},
+ Package() {0x0007FFFF, 0, 0, 476},
+ Package() {0x0007FFFF, 1, 0, 477},
+ Package() {0x0007FFFF, 2, 0, 478},
+ Package() {0x0007FFFF, 3, 0, 479},
+ Package() {0x0008FFFF, 0, 0, 476},
+ Package() {0x0008FFFF, 1, 0, 477},
+ Package() {0x0008FFFF, 2, 0, 478},
+ Package() {0x0008FFFF, 3, 0, 479},
+ })
+
+ //
+ // Declare the resources assigned to this root complex.
+ // Section 6.2.2
+ //
+ Method (_CBA, 0, Serialized) {
+ Return (0x6FFFF0000000)
+ }
+
+ Name (RBUF, ResourceTemplate () {
+
+ //
+ // Declare the range of bus numbers assigned to this root
+ // complex. In this example, the minimum bus number will be
+ // 0, the maximum bus number will be 0xFF, supporting
+ // 256 busses total.
+ // Section 19.5.141
+ //
+
+ WordBusNumber (
+ ResourceProducer,
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ PosDecode, // Decode
+ 0, // AddressGranularity
+ 0, // AddressMinimum - Minimum Bus Number
+ 255, // AddressMaximum - Maximum Bus Number
+ 0, // AddressTranslation - Set to 0
+ 256) // RangeLength - Number of Busses
+
+ //
+ // Declare the memory range to be used for BAR memory
+ // windows. This declares a 4GB region starting at
+ // 0x4000000000.
+ // Section 19.5.80
+ //
+ // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000000058000000, // AddressMinimum - MIN
+ 0x000000005FFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000008000000 // RangeLength - LEN
+ )
+
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // NonCacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x00006C0000000000, // AddressMinimum - MIN
+ 0x00006FFFDFFFFFFF, // AddressMinimum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x000003FFE0000000 // RangeLength - LEN
+ )
+ })
+
+ Method (_CRS, 0, Serialized) {
+ Return (RBUF)
+ }
+
+ //
+ // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
+ //
+ // Argments:
+ // Arg0 A Buffer containing a UUID
+ // Arg1 An Integer containing a Revision ID of the buffer format
+ // Arg2 An Integer containing a count of entries in Arg3
+ // Arg3 A Buffer containing a list of DWORD capabilities
+ // Return Value:
+ // A Buffer containing a list of capabilities
+ // See the APCI spec, Section 6.2.10,
+ // and the PCI FW spec, Section 4.5.
+ //
+ // The following is an example, and may need modification for
+ // specific implementations.
+ //
+
+ Name (SUPP,0) // PCI _OSC Support Field value
+ Name (CTRL,0) // PCI _OSC Control Field value
+
+ Method (_OSC, 4) {
+
+ //
+ // Look for the PCI Host Bridge Interface UUID.
+ // Section 6.2.10.3
+ //
+
+ //
+ // Create DWord-adressable fields from the Capabilities Buffer
+ // Create CDW1 outside the test as it's used in the else clause.
+ //
+
+ CreateDWordField (Arg3, 0, CDW1)
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ //
+ // Save Capabilities DWord 2 & 3
+ //
+
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ //
+ // Only allow native hot plug control if OS supports:
+ // ASPM
+ // Clock PM
+ // MSI/MSI-X
+ //
+
+ If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+
+ //
+ // Mask bit 0 (and undefined bits)
+ //
+
+ And (CTRL, 0x1E, CTRL)
+ }
+
+ //
+ // Never allow native Hot plug, PME.
+ // Never allow SHPC (no SHPC controller in this system).
+ // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
+ // Allows PCI Express Capability Structure control
+ //
+
+ if (AERF) {
+ And (CTRL, 0x10, CTRL)
+ } Else {
+ And (CTRL, 0x18, CTRL)
+ }
+
+ //
+ // Check for unknown revision.
+ //
+
+ If (LNotEqual (Arg1, One)) {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ //
+ // Check if capabilities bits were masked.
+ //
+
+ If (LNotEqual (CDW3, CTRL)) {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ //
+ // Update DWORD3 in the buffer.
+ //
+
+ Store (CTRL, CDW3)
+ Return (Arg3)
+
+ } Else {
+
+ //
+ // Unrecognized UUID
+ //
+
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } // End _OSC
+
+ //
+ // Declare a _DSM method for various functions called by the OS.
+ // See the APCI spec, Section 9.14.1,
+ // and the PCI FW spec, Section 4.6.
+ // See also:
+ // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
+ //
+
+ Method (_DSM, 0x4, Serialized) {
+
+ //
+ // Match against the _DSM PCI GUID.
+ //
+
+ If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
+
+ Switch (ToInteger(Arg2)) {
+ //
+ // Function 0: Return supported functions as a bitfield
+ // with one bit for each supported function.
+ // Bit 0 must always be set, as that represents
+ // function 0 (which is what is being called here).
+ // Support for different functions may depend on
+ // the revision ID of the interface, passed as Arg1.
+ //
+
+ Case (0) {
+
+ //
+ // Functions 0-7 are supported.
+ //
+
+ Return (Buffer() {0x01})
+ }
+ }
+ }
+
+ //
+ // If not one of the function identifiers we recognize, then return a buffer
+ // with bit 0 set to 0 indicating no functions supported.
+ //
+
+ Return (Buffer() {0})
+ }
+
+ //
+ // Root Port 0 Device within the Root Complex.
+ //
+ Device (RP0) {
+ //
+ // Device 0, Function 0.
+ //
+
+ Name (_ADR, 0x00000000)
+ }
+
+ Method (_PXM, 0, NotSerialized) {
+ // Patch by code
+ Return(0xFF)
+ }
+ } // PCIF RCA7
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
new file mode 100644
index 000000000000..9a3444e468e8
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
@@ -0,0 +1,1292 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Scope(\_SB) {
+ Device(CMN0) {
+ Name(_HID, "ARMHC600") // Device Identification Objects
+ Name(_CID, "ARMHC600")
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("CMN0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceConsumer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100010000000, // AddressMinimum - MIN
+ 0x0000100013ffffff, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000004000000 // RangeLength - LEN
+ )
+ QWordMemory (
+ ResourceConsumer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100012f00000, // AddressMinimum - MIN
+ 0x0000100013ffffff, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000001100000 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
+ })
+ }
+
+ Device(MC00) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100090000A00, // AddressMinimum - MIN
+ 0x0000100090000BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 248 }
+ })
+ }
+
+ Device(MC01) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 1)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100090400A00, // AddressMinimum - MIN
+ 0x0000100090400BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 249 }
+ })
+ }
+
+ Device(MC02) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 2)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU2"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100090800A00, // AddressMinimum - MIN
+ 0x0000100090800BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 250 }
+ })
+ }
+
+ Device(MC03) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 3)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU3"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100090C00A00, // AddressMinimum - MIN
+ 0x0000100090C00BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 251 }
+ })
+ }
+
+ Device(MC04) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 4)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU4"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100091000A00, // AddressMinimum - MIN
+ 0x0000100091000BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 252 }
+ })
+ }
+
+ Device(MC05) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 5)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU5"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100091400A00, // AddressMinimum - MIN
+ 0x0000100091400BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 253 }
+ })
+ }
+
+ Device(MC06) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 6)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU6"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100091800A00, // AddressMinimum - MIN
+ 0x0000100091800BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 254 }
+ })
+ }
+
+ Device(MC07) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 7)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 0: MCU7"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000100091C00A00, // AddressMinimum - MIN
+ 0x0000100091C00BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 255 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL00) {
+ Device(DU00) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 64 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL01) {
+ Device(DU01) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 65 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL02) {
+ Device(DU02) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 66 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL03) {
+ Device(DU03) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 67 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL04) {
+ Device(DU04) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 68 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL05) {
+ Device(DU05) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 69 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL06) {
+ Device(DU06) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 71 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL07) {
+ Device(DU07) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 80 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL08) {
+ Device(DU08) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x8)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x8 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 81 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL09) {
+ Device(DU09) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x9)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x9 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 82 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0A) {
+ Device(DU0A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xA)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xA Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 83 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0B) {
+ Device(DU0B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xB)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xB Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 115 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0C) {
+ Device(DU0C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xC)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xC Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 116 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0D) {
+ Device(DU0D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xD)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xD Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 120 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0E) {
+ Device(DU0E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xE)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xE Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 121 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL0F) {
+ Device(DU0F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0xF)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0xF Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 122 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL10) {
+ Device(DU10) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x10)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x10 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 123 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL11) {
+ Device(DU11) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x11)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x11 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 124 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL12) {
+ Device(DU12) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x12)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x12 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 125 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL13) {
+ Device(DU13) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x13)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x13 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 126 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL14) {
+ Device(DU14) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x14)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x14 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 127 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL15) {
+ Device(DU15) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x15)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x15 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 166 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL16) {
+ Device(DU16) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x16)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x16 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 167 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL17) {
+ Device(DU17) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x17)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x17 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 168 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL18) {
+ Device(DU18) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x18)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x18 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 169 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL19) {
+ Device(DU19) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x19)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x19 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 176 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1A) {
+ Device(DU1A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1A Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 177 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1B) {
+ Device(DU1B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1B Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 178 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1C) {
+ Device(DU1C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1C Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 179 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1D) {
+ Device(DU1D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1D Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 186 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1E) {
+ Device(DU1E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1E Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 187 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL1F) {
+ Device(DU1F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x1F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x1F Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 188 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL20) {
+ Device(DU20) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x20)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x20 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 189 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL21) {
+ Device(DU21) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x21)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x21 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 196 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL22) {
+ Device(DU22) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x22)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x22 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 197 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL23) {
+ Device(DU23) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x23)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x23 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 198 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL24) {
+ Device(DU24) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x24)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x24 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 199 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL25) {
+ Device(DU25) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x25)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x25 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 200 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL26) {
+ Device(DU26) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x26)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x26 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 201 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL27) {
+ Device(DU27) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x27)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x27 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 202 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL28) {
+ Device(DU28) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x28)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x28 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 203 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL29) {
+ Device(DU29) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x29)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x29 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 204 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2A) {
+ Device(DU2A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2A Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 205 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2B) {
+ Device(DU2B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2B Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 206 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2C) {
+ Device(DU2C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2C Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 207 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2D) {
+ Device(DU2D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2D Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 221 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2E) {
+ Device(DU2E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2E Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 222 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL2F) {
+ Device(DU2F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x2F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x2F Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 223 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL30) {
+ Device(DU30) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x30)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x30 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 264 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL31) {
+ Device(DU31) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x31)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x31 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 265 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL32) {
+ Device(DU32) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x32)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x32 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 266 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL33) {
+ Device(DU33) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x33)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x33 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 267 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL34) {
+ Device(DU34) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x34)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x34 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 268 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL35) {
+ Device(DU35) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x35)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x35 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 269 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL36) {
+ Device(DU36) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x36)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x36 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 270 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL37) {
+ Device(DU37) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x37)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x37 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 271 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL38) {
+ Device(DU38) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x38)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x38 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 297 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL39) {
+ Device(DU39) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x39)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x39 Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 298 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3A) {
+ Device(DU3A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3A Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 299 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3B) {
+ Device(DU3B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3B Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 300 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3C) {
+ Device(DU3C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3C Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 301 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3D) {
+ Device(DU3D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3D Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3E) {
+ Device(DU3E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3E Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 313 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL3F) {
+ Device(DU3F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x3F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x3F Socket 0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 316 }
+ })
+ }
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
new file mode 100644
index 000000000000..9806278dc86e
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
@@ -0,0 +1,1292 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Scope(\_SB) {
+ Device(CMN1) {
+ Name(_HID, "ARMHC600") // Device Identification Objects
+ Name(_CID, "ARMHC600")
+ Name(_UID, 1)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("CMN1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceConsumer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500010000000, // AddressMinimum - MIN
+ 0x0000500013ffffff, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000004000000 // RangeLength - LEN
+ )
+ QWordMemory (
+ ResourceConsumer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500012f00000, // AddressMinimum - MIN
+ 0x0000500013ffffff, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000001100000 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
+ })
+ }
+
+ Device(MC10) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 8)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU0"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500090000A00, // AddressMinimum - MIN
+ 0x0000500090000BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 568 }
+ })
+ }
+
+ Device(MC11) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 9)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500090400A00, // AddressMinimum - MIN
+ 0x0000500090400BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 569 }
+ })
+ }
+
+ Device(MC12) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xa)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU2"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500090800A00, // AddressMinimum - MIN
+ 0x0000500090800BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 570 }
+ })
+ }
+
+ Device(MC13) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xb)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU3"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500090C00A00, // AddressMinimum - MIN
+ 0x0000500090C00BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 571 }
+ })
+ }
+
+ Device(MC14) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xc)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU4"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500091000A00, // AddressMinimum - MIN
+ 0x0000500091000BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 572 }
+ })
+ }
+
+ Device(MC15) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xd)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU5"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500091400A00, // AddressMinimum - MIN
+ 0x0000500091400BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 573 }
+ })
+ }
+
+ Device(MC16) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xe)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU6"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500091800A00, // AddressMinimum - MIN
+ 0x0000500091800BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 574 }
+ })
+ }
+
+ Device(MC17) {
+ Name(_HID, "ARMHD620")
+ Name(_CID, "ARMHD620")
+ Name(_UID, 0xf)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("Socket 1: MCU7"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ QWordMemory (
+ ResourceProducer, // ResourceUsage
+ PosDecode, // Decode
+ MinFixed, // IsMinFixed
+ MaxFixed, // IsMaxFixed
+ NonCacheable, // Cacheable
+ ReadWrite, // ReadAndWrite
+ 0x0000000000000000, // AddressGranularity - GRA
+ 0x0000500091C00A00, // AddressMinimum - MIN
+ 0x0000500091C00BFF, // AddressMaximum - MAX
+ 0x0000000000000000, // AddressTranslation - TRA
+ 0x0000000000000200 // RangeLength - LEN
+ )
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 575 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL40) {
+ Device(DU40) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x40)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x40 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 384 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL41) {
+ Device(DU41) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x41)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x41 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 385 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL42) {
+ Device(DU42) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x42)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x42 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 386 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL43) {
+ Device(DU43) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x43)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x43 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 387 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL44) {
+ Device(DU44) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x44)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x44 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 388 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL45) {
+ Device(DU45) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x45)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x45 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 389 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL46) {
+ Device(DU46) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x46)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x46 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 391 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL47) {
+ Device(DU47) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x47)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x47 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 400 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL48) {
+ Device(DU48) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x48)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x48 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 401 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL49) {
+ Device(DU49) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x49)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x49 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 402 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4A) {
+ Device(DU4A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4A Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 403 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4B) {
+ Device(DU4B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4B Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 435 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4C) {
+ Device(DU4C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4C Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 436 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4D) {
+ Device(DU4D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4D Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 440 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4E) {
+ Device(DU4E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4E Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 441 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL4F) {
+ Device(DU4F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x4F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x4F Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 442 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL50) {
+ Device(DU50) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x50)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x50 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 443 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL51) {
+ Device(DU51) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x51)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x51 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 444 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL52) {
+ Device(DU52) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x52)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x52 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 445 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL53) {
+ Device(DU53) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x53)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x53 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 446 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL54) {
+ Device(DU54) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x54)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x54 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 447 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL55) {
+ Device(DU55) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x55)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x55 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 486 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL56) {
+ Device(DU56) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x56)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x56 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 487 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL57) {
+ Device(DU57) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x57)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x57 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 488 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL58) {
+ Device(DU58) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x58)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x58 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 489 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL59) {
+ Device(DU59) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x59)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x59 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 496 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5A) {
+ Device(DU5A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5A Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 497 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5B) {
+ Device(DU5B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5B Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 498 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5C) {
+ Device(DU5C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5C Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 499 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5D) {
+ Device(DU5D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5D Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 506 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5E) {
+ Device(DU5E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5E Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 507 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL5F) {
+ Device(DU5F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x5F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x5F Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 508 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL60) {
+ Device(DU60) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x60)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x60 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 509 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL61) {
+ Device(DU61) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x61)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x61 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 516 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL62) {
+ Device(DU62) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x62)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x62 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 517 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL63) {
+ Device(DU63) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x63)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x63 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 518 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL64) {
+ Device(DU64) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x64)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x64 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 519 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL65) {
+ Device(DU65) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x65)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x65 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 520 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL66) {
+ Device(DU66) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x66)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x66 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 521 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL67) {
+ Device(DU67) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x67)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x67 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 522 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL69) {
+ Device(DU68) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x68)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x68 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 523 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL69) {
+ Device(DU69) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x69)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x69 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 524 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6A) {
+ Device(DU6A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6A Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 525 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6B) {
+ Device(DU6B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6B Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 526 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6C) {
+ Device(DU6C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6C Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 527 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6D) {
+ Device(DU6D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6D Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 541 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6E) {
+ Device(DU6E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6E Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 542 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL6F) {
+ Device(DU6F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x6F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x6F Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 543 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL70) {
+ Device(DU70) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x70)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x70 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 584 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL71) {
+ Device(DU71) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x71)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x71 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 585 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL72) {
+ Device(DU72) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x72)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x72 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 586 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL73) {
+ Device(DU73) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x73)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x73 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 587 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL74) {
+ Device(DU74) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x74)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x74 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 588 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL75) {
+ Device(DU75) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x75)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x75 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 589 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL76) {
+ Device(DU76) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x76)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x76 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 590 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL77) {
+ Device(DU77) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x77)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x77 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 591 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL78) {
+ Device(DU78) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x78)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x78 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 617 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL79) {
+ Device(DU79) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x79)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x79 Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 618 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7A) {
+ Device(DU7A) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7A)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7A Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 619 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7B) {
+ Device(DU7B) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7B)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7B Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 620 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7C) {
+ Device(DU7C) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7C)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7C Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 621 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7D) {
+ Device(DU7D) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7D)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7D Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7E) {
+ Device(DU7E) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7E)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7E Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 633 }
+ })
+ }
+}
+
+Scope (\_SB.SYST.CL7F) {
+ Device(DU7F) {
+ Name(_HID, "ARMHD500")
+ Name(_CID, "ARMHD500")
+ Name(_UID, 0x7F)
+ Name(_CCA, ONE)
+ Name(_STR, Unicode("DSU CPM 0x7F Socket 1"))
+ Method(_STA, 0, NotSerialized) {
+ Return (0x0f)
+ }
+ Name(_CRS, ResourceTemplate() {
+ Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 636 }
+ })
+ }
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
new file mode 100644
index 000000000000..21eb42dca243
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
@@ -0,0 +1,10 @@
+/** @file
+
+ Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Include ("PMU-S0.asi")
+Include ("PMU-S1.asi")
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max
2023-01-13 4:25 ` [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max Nhi Pham
@ 2023-02-15 11:59 ` Leif Lindholm
2023-02-24 3:26 ` Nhi Pham
0 siblings, 1 reply; 10+ messages in thread
From: Leif Lindholm @ 2023-02-15 11:59 UTC (permalink / raw)
To: Nhi Pham; +Cc: devel, patches, ardb+tianocore, Vu Nguyen
On Fri, Jan 13, 2023 at 11:25:16 +0700, Nhi Pham wrote:
> From: Vu Nguyen <vunguyen@os.amperecomputing.com>
>
> This updates the PCIe modules to add support for
> Ampere Altra Max processor which features 128 PCIe
> Gen4 lanes (distributed across eight x16 RCAs) using
> 32 controllers.
>
> Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
> ---
> .../AmpereAltraPkg/Include/NVParamDef.h | 64 ++++++--
> .../Library/Ac01PcieLib/PcieCore.h | 8 +-
> .../Library/BoardPcieLib/BoardPcieLib.c | 63 +++++++-
> .../Drivers/PcieInitPei/PcieInitPei.c | 16 +-
> .../Drivers/PcieInitPei/RootComplexNVParam.c | 101 +++++++++---
> .../Library/Ac01PcieLib/PcieCore.c | 150 +++++++++++++++---
> 6 files changed, 333 insertions(+), 69 deletions(-)
>
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
> index 3259fa1ea45c..4dfc353d2340 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
> +++ b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
> @@ -29,7 +29,7 @@
> As each non-volatile parameter requires 8 bytes, there is a total of 8K
> parameters.
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -425,10 +425,10 @@
> #define NV_SI_RO_BOARD_S0_RCA5_CFG ((107 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
> #define NV_SI_RO_BOARD_S0_RCA6_CFG ((108 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
> #define NV_SI_RO_BOARD_S0_RCA7_CFG ((109 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
> -#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
Could you split the comment additions into a separate patch?
I think there are no functional changes to this file, but that is very
hard to determine.
> #define NV_SI_RO_BOARD_S0_RCB0A_TXRX_G3PRESET ((114 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S0_RCB0B_TXRX_G3PRESET ((115 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S0_RCB1A_TXRX_G3PRESET ((116 * 8) + NV_BOARD_PARAM_START)
> @@ -437,10 +437,10 @@
> #define NV_SI_RO_BOARD_S0_RCB2B_TXRX_G3PRESET ((119 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S0_RCB3A_TXRX_G3PRESET ((120 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S0_RCB3B_TXRX_G3PRESET ((121 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> #define NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET ((126 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> #define NV_SI_RO_BOARD_S0_RCA1_TXRX_G4PRESET ((127 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> #define NV_SI_RO_BOARD_S0_RCA2_TXRX_G4PRESET ((128 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> @@ -462,8 +462,8 @@
> #define NV_SI_RO_BOARD_S1_RCA5_CFG ((144 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
> #define NV_SI_RO_BOARD_S1_RCA6_CFG ((145 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
> #define NV_SI_RO_BOARD_S1_RCA7_CFG ((146 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
> -#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> #define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G3PRESET ((149 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S1_RCB0B_TXRX_G3PRESET ((150 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S1_RCB1A_TXRX_G3PRESET ((151 * 8) + NV_BOARD_PARAM_START)
> @@ -472,10 +472,10 @@
> #define NV_SI_RO_BOARD_S1_RCB2B_TXRX_G3PRESET ((154 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S1_RCB3A_TXRX_G3PRESET ((155 * 8) + NV_BOARD_PARAM_START)
> #define NV_SI_RO_BOARD_S1_RCB3B_TXRX_G3PRESET ((156 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START)
> -#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> #define NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET ((161 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> #define NV_SI_RO_BOARD_S1_RCA3_TXRX_G4PRESET ((162 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> #define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G4PRESET ((163 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> @@ -523,7 +523,39 @@
> #define NV_SI_RO_BOARD_RAS_DDR_CE_TH1 ((205 * 8) + NV_BOARD_PARAM_START) /* Default: 0x000001F4 */
> #define NV_SI_RO_BOARD_RAS_DDR_CE_TH2 ((206 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00001388 */
> #define NV_SI_RO_BOARD_RAS_DDR_CE_THC ((207 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00000000 */
> -#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_RAS_DDR_CE_THC)
> +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_20GPRESET ((208 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_20GPRESET ((209 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_25GPRESET ((210 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_25GPRESET ((211 * 8) + NV_BOARD_PARAM_START)
> +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET ((212 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G3PRESET ((213 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G3PRESET ((214 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G3PRESET ((215 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET ((216 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G3PRESET ((217 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G3PRESET ((218 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G3PRESET ((219 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET ((220 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G3PRESET ((221 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET ((222 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G3PRESET ((223 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G3PRESET ((224 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G3PRESET ((225 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET ((226 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G4PRESET ((227 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G4PRESET ((228 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G4PRESET ((229 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET ((230 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G4PRESET ((231 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G4PRESET ((232 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G4PRESET ((233 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET ((234 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G4PRESET ((235 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET ((236 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G4PRESET ((237 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G4PRESET ((238 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET ((239 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
> +#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET)
> //
> // NOTE: Add before NV_BOARD_PARAM_MAX and increase its value
> //
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
> index 1db8a68b3df4..a18fff7dbb75 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
> +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -39,6 +39,7 @@
> #define PIPE_CLOCK_TIMEOUT 20000 // 20,000 us
> #define LTSSM_TRANSITION_TIMEOUT 100000 // 100 ms in total
> #define EP_LINKUP_TIMEOUT (10 * 1000) // 10ms
> +#define EP_LINKUP_EXTRA_TIMEOUT (500 * 1000) // 500ms
> #define LINK_WAIT_INTERVAL_US 50
>
> #define PFA_MODE_ENABLE 0
> @@ -80,6 +81,7 @@
> #define AC01_PCIE_CORE_IRQ_ENABLE_REG 0x30
> #define AC01_PCIE_CORE_IRQ_EVENT_STAT_REG 0x38
> #define AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG 0x3C
> +#define AC01_PCIE_CORE_BUS_CONTROL_REG 0x40
> #define AC01_PCIE_CORE_RESET_REG 0xC000
> #define AC01_PCIE_CORE_CLOCK_REG 0xC004
> #define AC01_PCIE_CORE_MEM_READY_REG 0xC104
> @@ -87,6 +89,7 @@
>
> // AC01_PCIE_CORE_LINK_CTRL_REG
> #define LTSSMENB_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
> +#define LTSSMENB_GET(dst) ((dst) & (BIT0))
> #define HOLD_LINK_TRAINING 0
> #define START_LINK_TRAINING 1
> #define DEVICETYPE_SET(dst, src) (((dst) & ~0xF0) | (((UINT32) (src) << 4) & 0xF0))
> @@ -120,6 +123,9 @@
> // AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG
> #define LINKUP_MASK 0x1
>
> +// AC01_PCIE_CORE_BUS_CONTROL_REG
> +#define BUS_CTL_CFG_UR_MASK 0x8
> +
> // AC01_PCIE_CORE_RESET_REG
> #define DWC_PCIE_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
> #define RESET_MASK 0x1
> diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
> index f49764097219..4e0ba551e09b 100644
> --- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
> +++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
> @@ -2,7 +2,7 @@
> Pcie board specific driver to handle asserting PERST signal to Endpoint
> card. PERST asserting is via group of GPIO pins to CPLD as Platform Specification.
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -20,6 +20,8 @@
> #define RCB_MAX_PERST_GROUPVAL 46
> #define DEFAULT_SEGMENT_NUMBER 0x0F
>
> +#define PCIE_PERST_DELAY (100 * 1000) // 100ms
> +
> VOID
> BoardPcieReleaseAllPerst (
> IN UINT8 SocketId
> @@ -32,6 +34,8 @@ BoardPcieReleaseAllPerst (
> for (GpioIndex = 0; GpioIndex < 6; GpioIndex++) {
> GpioModeConfig (GpioPin + GpioIndex, GpioConfigOutHigh);
> }
> +
> + MicroSecondDelay (PCIE_PERST_DELAY);
> }
>
> /**
> @@ -56,11 +60,54 @@ BoardPcieAssertPerst (
>
> if (!IsPullToHigh) {
> if (RootComplex->Type == RootComplexTypeA) {
> - //
> - // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
> - //
> - GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
> - - RootComplex->ID * MaxPcieControllerOfRootComplexA;
> + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
> + /* Ampere Altra: 4 */
> + //
> + // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
> + //
> + GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
> + - RootComplex->ID * MaxPcieControllerOfRootComplexA;
> + } else {
> + /* Ampere Altra Max RootComplex->ID: 4:7 */
> + if (PcieIndex < 2) {
> + switch (RootComplex->ID) {
> + case 4:
> + GpioGroupVal = 34 - (PcieIndex * 2);
> + break;
> + case 5:
> + GpioGroupVal = 38 - (PcieIndex * 2);
> + break;
> + case 6:
> + GpioGroupVal = 30 - (PcieIndex * 2);
> + break;
> + case 7:
> + GpioGroupVal = 26 - (PcieIndex * 2);
> + break;
No default?
> + }
> + } else {
> + /* PcieIndex 2:3 */
> + switch (RootComplex->ID) {
> + case 4:
> + GpioGroupVal = 46 - ((PcieIndex - 2) * 2);
> + break;
> +
> + case 5:
> + GpioGroupVal = 42 - ((PcieIndex - 2) * 2);
> + break;
> +
> + case 6:
> + GpioGroupVal = 18 - ((PcieIndex - 2) * 2);
> + break;
> +
> + case 7:
> + GpioGroupVal = 22 - ((PcieIndex - 2) * 2);
> + break;
> +
> + default:
> + DEBUG ((DEBUG_ERROR, "Invalid Root Complex ID %d\n", RootComplex->ID));
> + }
> + }
> + }
It would greatly improve readability to break this lookup sequence
into a separate helper function.
> } else {
> //
> // RootComplexTypeB: RootComplex->ID: 4->7 ; PcieIndex: 0->7
> @@ -81,7 +128,7 @@ BoardPcieAssertPerst (
> }
>
> // Keep reset as low as 100 ms as specification
> - MicroSecondDelay (100 * 1000);
> + MicroSecondDelay (PCIE_PERST_DELAY);
> } else {
> BoardPcieReleaseAllPerst (RootComplex->Socket);
> }
> @@ -113,5 +160,5 @@ BoardPcieGetSegmentNumber (
> return Ac01BoardSegment[RootComplex->Socket][RootComplex->ID];
> }
>
> - return DEFAULT_SEGMENT_NUMBER;
> + return (RootComplex->ID - 2);
> }
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
> index 17f6112ea207..a69193b07005 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
> +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -94,7 +94,7 @@ BuildRootComplexData (
> RootComplex = &mRootComplexList[RCIndex];
> RootComplex->Active = ConfigFound ? RootComplexConfig.RCStatus[RCIndex] : TRUE;
> RootComplex->DevMapLow = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
> - RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
> + RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationHigh[RCIndex] : 0;
This is counterintuitive enough as part of a patch that "adds support"
that I think it deserves to be broken out into a separate patch such
that it can explain why it's being done in a dedicated commit message.
> RootComplex->Socket = RCIndex / AC01_PCIE_MAX_RCS_PER_SOCKET;
> RootComplex->ID = RCIndex % AC01_PCIE_MAX_RCS_PER_SOCKET;
> RootComplex->CsrBase = mCsrBase[RCIndex];
> @@ -106,7 +106,12 @@ BuildRootComplexData (
> RootComplex->MmioSize = mMmioSize[RCIndex];
> RootComplex->Mmio32Base = mMmio32Base[RCIndex];
> RootComplex->Mmio32Size = mMmio32Size[RCIndex];
> - RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
> + if (IsAc01Processor ()) {
> + RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
> + } else {
> + RootComplex->Type = RootComplexTypeA;
> + }
> +
While much smaller, again I think it would help readability to break
this abstraction out into a separate helper function.
> RootComplex->MaxPcieController = (RootComplex->Type == RootComplexTypeB)
> ? MaxPcieControllerOfRootComplexB : MaxPcieControllerOfRootComplexA;
> RootComplex->Logical = BoardPcieGetSegmentNumber (RootComplex);
> @@ -168,11 +173,14 @@ PcieInitEntry (
> continue;
> }
>
> + DEBUG ((DEBUG_INIT, "Initializing S%d-RC%d...", RootComplex->Socket, RootComplex->ID));
> Status = Ac01PcieCoreSetupRC (RootComplex, FALSE, 0);
> if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "RootComplex[%d]: Init Failed\n", Index));
> + DEBUG ((DEBUG_ERROR, "Failed\n"));
> RootComplex->Active = FALSE;
> continue;
> + } else {
> + DEBUG ((DEBUG_INIT, "Done + DevMapLow/High: %d/%d\n", RootComplex->DevMapLow, RootComplex->DevMapHigh));
> }
> }
>
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> index aa34a90b44c6..1346fa616ab3 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> @@ -37,7 +37,7 @@
> | Y | Y | Y | Y | 3 |
> ----------------------------------------
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -149,6 +149,10 @@ GetDefaultDevMap (
> AC01_ROOT_COMPLEX *RootComplex
> )
> {
> + BOOLEAN IsAc01;
> +
> + IsAc01 = IsAc01Processor ();
> +
> if (RootComplex->Pcie[PcieController0].Active
> && RootComplex->Pcie[PcieController1].Active
> && RootComplex->Pcie[PcieController2].Active
> @@ -169,14 +173,20 @@ GetDefaultDevMap (
> && RootComplex->Pcie[PcieController5].Active
> && RootComplex->Pcie[PcieController6].Active
> && RootComplex->Pcie[PcieController7].Active) {
> - RootComplex->DefaultDevMapHigh = DevMapMode4;
> + if (IsAc01) {
> + RootComplex->DefaultDevMapHigh = DevMapMode4;
> + }
Who sets RootComplex->DefaultDevMapHigh if !IsAc01?
> } else if (RootComplex->Pcie[PcieController4].Active
> && RootComplex->Pcie[PcieController6].Active
> && RootComplex->Pcie[PcieController7].Active) {
> - RootComplex->DefaultDevMapHigh = DevMapMode3;
> + if (IsAc01) {
> + RootComplex->DefaultDevMapHigh = DevMapMode3;
> + }
same
> } else if (RootComplex->Pcie[PcieController4].Active
> && RootComplex->Pcie[PcieController6].Active) {
> - RootComplex->DefaultDevMapHigh = DevMapMode2;
> + if (IsAc01) {
> + RootComplex->DefaultDevMapHigh = DevMapMode2;
> + }
same
> } else {
> RootComplex->DefaultDevMapHigh = DevMapMode1;
> }
I feel this function in general could be rewritten more reader-friendly.
> @@ -203,12 +213,17 @@ GetLaneAllocation (
> EFI_STATUS Status;
> INTN RPIndex;
> NVPARAM NvParamOffset;
> - UINT32 Value, Width;
> + UINT32 Value, Width, Controller;
>
> // Retrieve lane allocation and capabilities for each controller
> if (RootComplex->Type == RootComplexTypeA) {
> - NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
> - NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
> + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
> + NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOARD_S1_RCA4_CFG;
> + NvParamOffset += (RootComplex->ID - MaxPcieControllerOfRootComplexA) * NV_PARAM_ENTRYSIZE;
> + }
Helper function.
> } else {
> //
> // There're two NVParam entries per RootComplexTypeB
> @@ -222,7 +237,13 @@ GetLaneAllocation (
> Value = 0;
> }
>
> - for (RPIndex = 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++) {
> + if (IsAc01Processor ()) {
> + Controller = MaxPcieControllerOfRootComplexA;
> + } else {
> + Controller = RootComplex->MaxPcieController;
> + }
Straightforward enough, but could still be a helper function.
> +
> + for (RPIndex = PcieController0; RPIndex < Controller; RPIndex++) {
> Width = (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK;
> switch (Width) {
> case 1:
> @@ -245,7 +266,7 @@ GetLaneAllocation (
>
> if (RootComplex->Type == RootComplexTypeB) {
> NvParamOffset += NV_PARAM_ENTRYSIZE;
> - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> if (EFI_ERROR (Status)) {
> Value = 0;
> }
> @@ -288,9 +309,17 @@ GetGen3PresetNvParamOffset (
> if (RootComplex->Socket == 0) {
> if (RootComplex->Type == RootComplexTypeA) {
> if (RootComplex->ID < MaxRootComplexA) {
> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
When we get to 4 levels of if, we absolutely need helper functions.
> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + }
> } else {
> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + }
> }
> } else {
> //
> @@ -300,9 +329,17 @@ GetGen3PresetNvParamOffset (
> }
> } else if (RootComplex->Type == RootComplexTypeA) {
> if (RootComplex->ID < MaxRootComplexA) {
> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + }
> } else {
> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + }
> }
> } else {
> //
> @@ -324,9 +361,17 @@ GetGen4PresetNvParamOffset (
> if (RootComplex->Socket == 0) {
> if (RootComplex->Type == RootComplexTypeA) {
> if (RootComplex->ID < MaxRootComplexA) {
> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> + }
> } else {
> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + }
> }
> } else {
> //
> @@ -336,9 +381,17 @@ GetGen4PresetNvParamOffset (
> }
> } else if (RootComplex->Type == RootComplexTypeA) {
> if (RootComplex->ID < MaxRootComplexA) {
> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> + }
> } else {
> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + if (IsAc01Processor ()) {
> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + } else {
> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> + }
This also looks like the exact same computation takes place 4 times
for different combos of G4PRESETs and rootcompled IDs. That should be
possible to parametrise and compute in a single function instead.
> }
> } else {
> //
> @@ -352,7 +405,7 @@ GetGen4PresetNvParamOffset (
>
> VOID
> GetPresetSetting (
> - AC01_ROOT_COMPLEX *RootComplex
> + AC01_ROOT_COMPLEX *RootComplex
> )
> {
> EFI_STATUS Status;
> @@ -377,7 +430,7 @@ GetPresetSetting (
>
> if (RootComplex->Type == RootComplexTypeB) {
> NvParamOffset += NV_PARAM_ENTRYSIZE;
> - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> if (!EFI_ERROR (Status)) {
> for (Index = MaxPcieControllerOfRootComplexA; Index < MaxPcieController; Index++) {
> RootComplex->PresetGen3[Index] = (Value >> ((Index - MaxPcieControllerOfRootComplexA) * BITS_PER_BYTE)) & BYTE_MASK;
> @@ -414,7 +467,7 @@ GetMaxSpeedGen (
> UINT8 ErrataSpeedDevMap3[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN4, LINK_SPEED_GEN4, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 2: x8 x4 x4 (PCIE_ERRATA_SPEED1)
> UINT8 ErrataSpeedDevMap4[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 3: x4 x4 x4 x4 (PCIE_ERRATA_SPEED1)
> UINT8 ErrataSpeedRcb[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // RootComplexTypeB PCIE_ERRATA_SPEED1
> - UINT8 Idx;
> + UINT8 Idx, Controller;
One definition per line?
> UINT8 *MaxGen;
>
> ASSERT (MaxPcieControllerOfRootComplexA == 4);
> @@ -452,7 +505,13 @@ GetMaxSpeedGen (
> }
> }
>
> - for (Idx = 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) {
> + if (IsAc01Processor ()) {
> + Controller = MaxPcieControllerOfRootComplexA;
> + } else {
> + Controller = RootComplex->MaxPcieController;
> + }
Straightforward enough, but could still be a helper function.
> +
> + for (Idx = 0; Idx < Controller; Idx++) {
> RootComplex->Pcie[Idx].MaxGen = RootComplex->Pcie[Idx].Active ? MaxGen[Idx] : LINK_SPEED_NONE;
> }
>
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> index ad648b1b9efd..12bd2c14544e 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -10,8 +10,10 @@
>
> #include <Guid/PlatformInfoHob.h>
> #include <Guid/RootComplexInfoHob.h>
> +#include <IndustryStandard/Pci.h>
> #include <Library/ArmGenericTimerCounterLib.h>
> #include <Library/BaseLib.h>
> +#include <Library/BaseMemoryLib.h>
> #include <Library/BoardPcieLib.h>
> #include <Library/DebugLib.h>
> #include <Library/HobLib.h>
> @@ -22,6 +24,25 @@
>
> #include "PcieCore.h"
>
> +VOID
> +EnableDbiAccess (
> + AC01_ROOT_COMPLEX *RootComplex,
> + UINT32 PcieIndex,
> + BOOLEAN EnableDbi
> + );
> +
> +BOOLEAN
> +EndpointCfgReady (
> + IN AC01_ROOT_COMPLEX *RootComplex,
> + IN UINT8 PcieIndex,
> + IN UINT32 Timeout
> + );
> +
> +BOOLEAN
> +PcieLinkUpCheck (
> + IN AC01_PCIE_CONTROLLER *Pcie
> + );
> +
> /**
> Return the next extended capability base address
>
> @@ -41,14 +62,38 @@ GetCapabilityBase (
> {
> BOOLEAN IsExtCapability = FALSE;
> PHYSICAL_ADDRESS CfgBase;
> + PHYSICAL_ADDRESS Ret = 0;
> + PHYSICAL_ADDRESS RootComplexCfgBase;
> UINT32 CapabilityId;
> UINT32 NextCapabilityPtr;
> UINT32 Val;
> + UINT32 RestoreVal;
>
> - if (IsRootComplex) {
> - CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
> - } else {
> + RootComplexCfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
> + if (!IsRootComplex) {
> + // Allow programming to config space
> + EnableDbiAccess (RootComplex, PcieIndex, TRUE);
> +
> + Val = MmioRead32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG);
> + RestoreVal = Val;
> + Val = SUB_BUS_SET (Val, DEFAULT_SUB_BUS);
> + Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
> + Val = PRIM_BUS_SET (Val, 0x0);
> + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, Val);
> CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
> +
> + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_TIMEOUT)) {
> + goto _CheckCapEnd;
> + }
> + } else {
> + CfgBase = RootComplexCfgBase;
> + }
> +
> + // Check if device provide capability
> + Val = MmioRead32 (CfgBase + PCI_COMMAND_OFFSET);
> + Val = GET_HIGH_16_BITS (Val); /* Status */
> + if (!(Val & EFI_PCI_STATUS_CAPABILITY)) {
> + goto _CheckCapEnd;
> }
>
> Val = MmioRead32 (CfgBase + TYPE1_CAP_PTR_REG);
> @@ -58,7 +103,8 @@ GetCapabilityBase (
> while (1) {
> if ((NextCapabilityPtr & WORD_ALIGN_MASK) != 0) {
> // Not alignment, just return
> - return 0;
> + Ret = 0;
> + goto _CheckCapEnd;
> }
>
> Val = MmioRead32 (CfgBase + NextCapabilityPtr);
> @@ -69,7 +115,8 @@ GetCapabilityBase (
> }
>
> if (CapabilityId == ExtCapabilityId) {
> - return (CfgBase + NextCapabilityPtr);
> + Ret = (CfgBase + NextCapabilityPtr);
> + goto _CheckCapEnd;
> }
>
> if (NextCapabilityPtr < EXT_CAPABILITY_START_BASE) {
> @@ -84,9 +131,20 @@ GetCapabilityBase (
> }
>
> if ((NextCapabilityPtr == 0) && IsExtCapability) {
> - return 0;
> + Ret = 0;
> + goto _CheckCapEnd;
> }
> }
> +
> +_CheckCapEnd:
> + if (!IsRootComplex) {
> + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, RestoreVal);
> +
> + // Disable programming to config space
> + EnableDbiAccess (RootComplex, PcieIndex, FALSE);
> + }
> +
> + return Ret;
> }
>
> /**
> @@ -677,6 +735,14 @@ Ac01PcieCoreSetupRC (
> // Hold link training
> StartLinkTraining (RootComplex, PcieIndex, FALSE);
>
> + // Clear BUSCTRL.CfgUrMask to set CRS (Configuration Request Retry Status) to 0xFFFF.FFFF
> + // rather than 0xFFFF.0001 as per PCIe specification requirement. Otherwise, this causes
> + // device drivers respond incorrectly on timeout due to long device operations.
> + TargetAddress = CsrBase + AC01_PCIE_CORE_BUS_CONTROL_REG;
> + Val = MmioRead32 (TargetAddress);
> + Val &= ~BUS_CTL_CFG_UR_MASK;
> + MmioWrite32 (TargetAddress, Val);
> +
> if (!EnableAxiPipeClock (RootComplex, PcieIndex)) {
> DEBUG ((DEBUG_ERROR, "- Pcie[%d] - PIPE clock is not stable\n", PcieIndex));
> return RETURN_DEVICE_ERROR;
> @@ -688,9 +754,14 @@ Ac01PcieCoreSetupRC (
> // Allow programming to config space
> EnableDbiAccess (RootComplex, PcieIndex, TRUE);
>
> - // Program the power limit
> TargetAddress = CfgBase + PCIE_CAPABILITY_BASE + SLOT_CAPABILITIES_REG;
> Val = MmioRead32 (TargetAddress);
> + // In order to detect the NVMe disk for booting without disk,
> + // need to set Hot-Plug Slot Capable during port initialization.
> + // It will help PCI Linux driver to initialize its slot iomem resource,
> + // the one is used for detecting the disk when it is inserted.
I don't quite understand the comment.
Is this for netbooting, then inserting an NVMe drive after boot?
> + Val = SLOT_HPC_SET (Val, 1);
> + // Program the power limit
> Val = SLOT_CAP_SLOT_POWER_LIMIT_VALUE_SET (Val, SLOT_POWER_LIMIT_75W);
> MmioWrite32 (TargetAddress, Val);
>
> @@ -755,6 +826,7 @@ Ac01PcieCoreSetupRC (
> // Link timeout after 1ms
> SetLinkTimeout (RootComplex, PcieIndex, 1);
>
> + // Mask Completion Timeout
> DisableCompletionTimeOut (RootComplex, PcieIndex, TRUE);
>
> ProgramRootPortInfo (RootComplex, PcieIndex);
> @@ -1067,21 +1139,20 @@ Ac01PFACommand (
> return Ret;
> }
>
> -UINT32
> +BOOLEAN
> EndpointCfgReady (
> IN AC01_ROOT_COMPLEX *RootComplex,
> - IN UINT8 PcieIndex
> + IN UINT8 PcieIndex,
> + IN UINT32 TimeOut
> )
> {
> PHYSICAL_ADDRESS CfgBase;
> - UINT32 TimeOut;
> UINT32 Val;
>
> CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
>
> // Loop read CfgBase value until got valid value or
> - // reach to timeout EP_LINKUP_TIMEOUT (or more depend on card)
> - TimeOut = EP_LINKUP_TIMEOUT;
> + // reach to Timeout (or more depend on card)
> do {
> Val = MmioRead32 (CfgBase);
> if (Val != 0xFFFF0001 && Val != 0xFFFFFFFF) {
> @@ -1111,7 +1182,7 @@ Ac01PcieCoreGetEndpointInfo (
> OUT UINT8 *EpMaxGen
> )
> {
> - PHYSICAL_ADDRESS CfgBase;
> + PHYSICAL_ADDRESS CfgBase, EpCfgAddr;
One definition per line?
> PHYSICAL_ADDRESS PcieCapBase;
> PHYSICAL_ADDRESS SecLatTimerAddr;
> PHYSICAL_ADDRESS TargetAddress;
> @@ -1133,8 +1204,23 @@ Ac01PcieCoreGetEndpointInfo (
> Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
> Val = PRIM_BUS_SET (Val, DEFAULT_PRIM_BUS);
> MmioWrite32 (SecLatTimerAddr, Val);
> + EpCfgAddr = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
>
> - if (EndpointCfgReady (RootComplex, PcieIndex)) {
> + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_EXTRA_TIMEOUT)) {
> + goto Exit;
> + }
> +
> + Val = MmioRead32 (EpCfgAddr);
> + // Check whether EP config space is accessible or not
> + if (Val == 0xFFFFFFFF) {
> + *EpMaxWidth = 0; // Invalid Width
> + *EpMaxGen = 0; // Invalid Speed
> + DEBUG ((DEBUG_ERROR, "PCIE%d.%d Cannot access EP config space!\n", RootComplex->ID, PcieIndex));
> + } else if (Val == 0xFFFF0001) {
> + *EpMaxWidth = 0; // Invalid Width
> + *EpMaxGen = 0; // Invalid Speed
> + DEBUG ((DEBUG_ERROR, "PCIE%d.%d EP config space still not ready to access, need poll more time!!!\n", RootComplex->ID, PcieIndex));
> + } else {
> PcieCapBase = GetCapabilityBase (RootComplex, PcieIndex, FALSE, PCIE_CAPABILITY_ID);
> if (PcieCapBase == 0) {
> DEBUG ((
> @@ -1164,6 +1250,7 @@ Ac01PcieCoreGetEndpointInfo (
> }
> }
>
> +Exit:
> // Restore value in order to not affect enumeration process
> MmioWrite32 (SecLatTimerAddr, RestoreVal);
>
> @@ -1280,6 +1367,30 @@ Ac01PcieCoreQoSLinkCheckRecovery (
> return LINK_CHECK_SUCCESS;
> }
>
> +BOOLEAN
> +Ac01PcieCoreCheckCardPresent (
> + IN AC01_PCIE_CONTROLLER *PcieController
> + )
> +{
> + EFI_PHYSICAL_ADDRESS TargetAddress;
> + UINT32 ControlValue;
> +
> + ControlValue = 0;
> +
> + TargetAddress = PcieController->CsrBase;
> +
> + ControlValue = MmioRead32 (TargetAddress + AC01_PCIE_CORE_LINK_CTRL_REG);
> +
> + if (0 == LTSSMENB_GET (ControlValue)) {
No jeopardy testing.
> + //
> + // LTSSMENB is clear to 0x00 by Hardware -> link partner is connected.
> + //
> + return TRUE;
> + }
> +
> + return FALSE;
> +}
> +
> VOID
> Ac01PcieCoreUpdateLink (
> IN AC01_ROOT_COMPLEX *RootComplex,
> @@ -1328,16 +1439,17 @@ Ac01PcieCoreUpdateLink (
> // Doing link checking and recovery if needed
> Ac01PcieCoreQoSLinkCheckRecovery (RootComplex, PcieIndex);
>
> - // Link timeout after 32ms
> - SetLinkTimeout (RootComplex, PcieIndex, 32);
> -
> // Un-mask Completion Timeout
> DisableCompletionTimeOut (RootComplex, PcieIndex, FALSE);
>
> } else {
> - *IsNextRoundNeeded = FALSE;
> FailedPciePtr[*FailedPcieCount] = PcieIndex;
> *FailedPcieCount += 1;
> +
> + if (Ac01PcieCoreCheckCardPresent (Pcie)) {
> + *IsNextRoundNeeded = TRUE;
> + DEBUG ((DEBUG_INFO, "PCIE%d.%d Link retry\n", RootComplex->ID, PcieIndex));
> + }
Another 4-level if-statement.
I'm not suggesting it's necessarily the latest addition that needs to
be broken out as a helper, but 4 is too deep.
Regards,
Leif
> }
> }
> }
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
2023-01-13 4:25 ` [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables " Nhi Pham
@ 2023-02-15 12:03 ` Leif Lindholm
2023-02-24 3:29 ` Nhi Pham
2023-02-24 18:03 ` Rebecca Cran
1 sibling, 1 reply; 10+ messages in thread
From: Leif Lindholm @ 2023-02-15 12:03 UTC (permalink / raw)
To: devel, nhi; +Cc: patches, ardb+tianocore, Tinh Nguyen
On Fri, Jan 13, 2023 at 11:25:17 +0700, Nhi Pham via groups.io wrote:
> From: Tinh Nguyen <tinhnguyen@os.amperecomputing.com>
>
> This adds ACPI DSDT tables and updates ACPI MADT table
> to support Ampere Altra Max processor.
>
> Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
Ideally, I would like to see the refactoring of existing support split
up from the additions of new support.
/
Leif
> ---
> .../AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 6 +-
> Platform/Ampere/JadePkg/Jade.dsc | 3 +-
> Platform/Ampere/JadePkg/Jade.fdf | 3 +-
> .../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf | 20 +
> .../Include/Library/AmpereCpuLib.h | 31 +-
> .../AmpereAltraPkg/Include/Platform/Ac01.h | 5 +-
> .../Drivers/AcpiPlatformDxe/AcpiMadt.c | 103 +-
> .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c | 10 +-
> .../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 +-
> .../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi | 6345 +++++++++++++++++
> .../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi | 6345 +++++++++++++++++
> .../Ampere/JadePkg/Ac02AcpiTables/CPU.asi | 152 +
> .../JadePkg/Ac02AcpiTables/CommonDevices.asi | 670 ++
> .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl | 39 +
> .../JadePkg/Ac02AcpiTables/PCI-PDRC.asi | 217 +
> .../JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi | 669 ++
> .../Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi | 2041 ++++++
> .../Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi | 2051 ++++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi | 1292 ++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi | 1292 ++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU.asi | 10 +
> 21 files changed, 21366 insertions(+), 181 deletions(-)
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
>
> diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
> index bf23edc50349..9275e0053af6 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
> +++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
> @@ -1,6 +1,6 @@
> ## @file
> #
> -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> +# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -410,8 +410,8 @@ [PcdsFixedAtBuild.common]
> #
> # Ampere Altra Core-Cluster profile
> #
> - gArmPlatformTokenSpaceGuid.PcdCoreCount|80
> - gArmPlatformTokenSpaceGuid.PcdClusterCount|40
> + gArmPlatformTokenSpaceGuid.PcdCoreCount|128
> + gArmPlatformTokenSpaceGuid.PcdClusterCount|64
>
> #
> # PL011 - Serial Terminal
> diff --git a/Platform/Ampere/JadePkg/Jade.dsc b/Platform/Ampere/JadePkg/Jade.dsc
> index 980f431fc4de..f14d286cdfb8 100644
> --- a/Platform/Ampere/JadePkg/Jade.dsc
> +++ b/Platform/Ampere/JadePkg/Jade.dsc
> @@ -1,6 +1,6 @@
> ## @file
> #
> -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> +# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -163,6 +163,7 @@ [Components.common]
> Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
> Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf
> Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
> + Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
>
> #
> # PCIe
> diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jade.fdf
> index e88c95c57abe..a578d05330ec 100644
> --- a/Platform/Ampere/JadePkg/Jade.fdf
> +++ b/Platform/Ampere/JadePkg/Jade.fdf
> @@ -1,6 +1,6 @@
> ## @file
> #
> -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> +# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -339,6 +339,7 @@ [FV.FvMain]
> INF Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
> INF RuleOverride=ACPITABLE Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf
> INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
> + INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
>
> #
> # SMBIOS
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf b/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
> new file mode 100644
> index 000000000000..2c96eaa00168
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
> @@ -0,0 +1,20 @@
> +## @file
> +#
> +# Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> + INF_VERSION = 0x0001001B
> + BASE_NAME = Ac02AcpiTables
> + FILE_GUID = 5CA064B6-5AA4-4E29-ABDC-8BF3B34DBF9E
> + MODULE_TYPE = USER_DEFINED
> + VERSION_STRING = 1.0
> +
> +[Sources]
> + Dsdt.asl
> +
> +[Packages]
> + MdePkg/MdePkg.dec
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h b/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
> index 9355e6cc7c62..94944cbe3abe 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
> +++ b/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -16,11 +16,6 @@
> #define MONOLITIC_NUM_OF_REGION 1
> #define HEMISPHERE_NUM_OF_REGION 2
> #define QUADRANT_NUM_OF_REGION 4
> -#define SUBNUMA_CPM_REGION_SIZE 4
> -#define NUM_OF_CPM_PER_MESH_ROW 8
> -
> -#define CPM_PER_ROW_OFFSET(CpmId) ((CpmId) % NUM_OF_CPM_PER_MESH_ROW)
> -#define CPM_ROW_NUMBER(CpmId) ((CpmId) / NUM_OF_CPM_PER_MESH_ROW)
>
> #define SOCKET_ID(CpuId) ((CpuId) / (PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM))
> #define CLUSTER_ID(CpuId) (((CpuId) / PLATFORM_CPU_NUM_CORES_PER_CPM) % PLATFORM_CPU_MAX_CPM)
> @@ -65,6 +60,17 @@ CpuGetVoltage (
> UINT8 Socket
> );
>
> +/**
> + Get CPU Core order number.
> +
> + @return UINT8 The order number.
> +
> +**/
> +UINT32 *
> +CpuGetCoreOrder (
> + VOID
> + );
> +
> /**
> Get the SubNUMA mode.
>
> @@ -183,19 +189,6 @@ GetMaximumNumberOfCores (
> VOID
> );
>
> -/**
> - Get the maximum number of CPM per socket. This number
> - should be the same for all sockets.
> -
> - @return UINT32 Maximum number of CPM.
> -
> -**/
> -UINT16
> -EFIAPI
> -GetMaximumNumberOfCPMs (
> - VOID
> - );
> -
> /**
> Get the number of active cores of a sockets.
>
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
> index 563dd5ef242d..2af9b33924ef 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
> +++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
> @@ -29,6 +29,9 @@
> //
> #define PLATFORM_CPU_MAX_NUM_CORES (PLATFORM_CPU_MAX_SOCKET * PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM)
>
> +#define MAX_AMPERE_ALTRA_CORES 80
> +#define MAX_AMPERE_ALTRA_MAX_CORES 128
> +
> //
> // Maximum number of memory region
> //
> @@ -301,7 +304,7 @@
> //
> // DSDT RCB0 PCIe MMIO32 Attribute
> //
> -#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x0000000001000000, 0x000000000FFFFFFF, 0x0000000000000000, 0x000000000F000000
> +#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x0000000008000000, 0x000000000FFFFFFF, 0x0000000000000000, 0x0000000008000000
>
> //
> // DSDT RCB1 PCIe MMIO32 Attribute
> diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
> index 4db1f9a383a9..cb37e5b427fb 100644
> --- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
> +++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
> @@ -65,74 +65,8 @@ EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER MADTTableHeaderTemplate = {
> ),
> };
>
> -UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> - 36, 52, 40, 56, 32, 48, 44, 60,
> - 20, 68, 24, 72, 16, 64, 28, 76,
> - 4, 8, 0, 12, 38, 54, 42, 58,
> - 34, 50, 46, 62, 22, 70, 26, 74,
> - 18, 66, 30, 78, 6, 10, 2, 14,
> - 37, 53, 41, 57, 33, 49, 45, 61,
> - 21, 69, 25, 73, 17, 65, 29, 77,
> - 5, 9, 1, 13, 39, 55, 43, 59,
> - 35, 51, 47, 63, 23, 71, 27, 75,
> - 19, 67, 31, 79, 7, 11, 3, 15,
> -};
> -
> -UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> - 32, 48, 16, 64, 36, 52, 0, 20,
> - 68, 4, 34, 50, 18, 66, 38, 54,
> - 2, 22, 70, 6, 33, 49, 17, 65,
> - 37, 53, 1, 21, 69, 5, 35, 51,
> - 19, 67, 39, 55, 3, 23, 71, 7,
> - 44, 60, 28, 76, 40, 56, 12, 24,
> - 72, 8, 46, 62, 30, 78, 42, 58,
> - 14, 26, 74, 10, 45, 61, 29, 77,
> - 41, 57, 13, 25, 73, 9, 47, 63,
> - 31, 79, 43, 59, 15, 27, 75, 11,
> -};
> -
> -UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> - 16, 32, 0, 20, 4, 18, 34, 2,
> - 22, 6, 17, 33, 1, 21, 5, 19,
> - 35, 3, 23, 7, 48, 64, 52, 68,
> - 36, 50, 66, 54, 70, 38, 49, 65,
> - 53, 69, 37, 51, 67, 55, 71, 39,
> - 28, 44, 12, 24, 8, 30, 46, 14,
> - 26, 10, 29, 45, 13, 25, 9, 31,
> - 47, 15, 27, 11, 60, 76, 56, 72,
> - 40, 62, 78, 58, 74, 42, 61, 77,
> - 57, 73, 41, 63, 79, 59, 75, 43,
> -};
> -
> EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *MadtTablePointer;
>
> -UINT32 *
> -CpuGetCoreOrder (
> - VOID
> - )
> -{
> - UINT8 SubNumaMode;
> -
> - SubNumaMode = CpuGetSubNumaMode ();
> - switch (SubNumaMode) {
> - case SUBNUMA_MODE_MONOLITHIC:
> - return (UINT32 *)&Ac01CoreOrderMonolithic;
> -
> - case SUBNUMA_MODE_HEMISPHERE:
> - return (UINT32 *)&Ac01CoreOrderHemisphere;
> -
> - case SUBNUMA_MODE_QUADRANT:
> - return (UINT32 *)&Ac01CoreOrderQuadrant;
> -
> - default:
> - // Should never reach here
> - ASSERT (FALSE);
> - return NULL;
> - }
> -
> - return NULL;
> -}
> -
> UINT32
> AcpiInstallMadtProcessorNode (
> VOID *EntryPointer,
> @@ -244,6 +178,7 @@ AcpiInstallMadtTable (
> INTN Index;
> EFI_STATUS Status;
> UINTN Size;
> + UINTN Length;
> UINT32 *CoreOrder;
> UINT32 SktMaxCoreNum;
>
> @@ -257,14 +192,14 @@ AcpiInstallMadtTable (
> }
>
> Size = sizeof (MADTTableHeaderTemplate) +
> - (PLATFORM_CPU_MAX_NUM_CORES * sizeof (GiccTemplate)) +
> - sizeof (GicDTemplate) +
> - (PLATFORM_CPU_MAX_SOCKET * sizeof (GicRTemplate)) +
> - ((SOCKET0_LAST_RC - SOCKET0_FIRST_RC + 1) * sizeof (GicItsTemplate));
> + sizeof (GiccTemplate) * GetNumberOfActiveCores () +
> + sizeof (GicDTemplate) +
> + sizeof (GicRTemplate) * GetNumberOfActiveSockets () +
> + sizeof (GicItsTemplate) * (SOCKET0_LAST_RC - SOCKET0_FIRST_RC + 1);
> if (IsSlaveSocketActive ()) {
> - Size += ((SOCKET1_LAST_RC - SOCKET1_FIRST_RC + 1) * sizeof (GicItsTemplate));
> + Size += (sizeof (GicItsTemplate) * (SOCKET1_LAST_RC - SOCKET1_FIRST_RC + 1));
> } else if (!IsSlaveSocketAvailable ()) {
> - Size += 2 * sizeof (GicItsTemplate); /* RCA0/1 */
> + Size += sizeof (GicItsTemplate) * 2; /* RCA0/1 */
> }
>
> MadtTablePointer =
> @@ -278,52 +213,56 @@ AcpiInstallMadtTable (
> sizeof (MADTTableHeaderTemplate));
>
> /* Install Gic interface for each processor */
> - Size = 0;
> + Length = 0;
> CoreOrder = CpuGetCoreOrder ();
> ASSERT (CoreOrder != NULL);
> SktMaxCoreNum = PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM;
> for (Index = 0; Index < SktMaxCoreNum; Index++) {
> if (IsCpuEnabled (CoreOrder[Index])) {
> - Size += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Size), CoreOrder[Index]);
> + Length += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Length), CoreOrder[Index]);
> }
> }
>
> for (Index = 0; Index < SktMaxCoreNum; Index++) {
> if (IsCpuEnabled (CoreOrder[Index] + SktMaxCoreNum)) {
> - Size += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Size), CoreOrder[Index] + SktMaxCoreNum);
> + Length += AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPointer + Length), CoreOrder[Index] + SktMaxCoreNum);
> }
> }
>
> /* Install Gic Distributor */
> - Size += AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Size));
> + Length += AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Length));
>
> /* Install Gic Redistributor */
> for (Index = 0; Index < PLATFORM_CPU_MAX_SOCKET; Index++) {
> - Size += AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
> + Length += AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
> }
>
> /* Install Gic ITS */
> if (!IsSlaveSocketAvailable ()) {
> for (Index = 0; Index <= 1; Index++) { /* RCA0/1 */
> - Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
> + Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
> }
> }
> for (Index = SOCKET0_FIRST_RC; Index <= SOCKET0_LAST_RC; Index++) {
> - Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
> + Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
> }
> if (IsSlaveSocketActive ()) {
> for (Index = SOCKET1_FIRST_RC; Index <= SOCKET1_LAST_RC; Index++) {
> - Size += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Size), Index);
> + Length += AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + Length), Index);
> }
> }
> +
> CopyMem (
> MadtTablePointer,
> &MADTTableHeaderTemplate,
> sizeof (MADTTableHeaderTemplate)
> );
>
> - Size += sizeof (MADTTableHeaderTemplate);
> - MadtTablePointer->Header.Length = Size;
> + Length += sizeof (MADTTableHeaderTemplate);
> + MadtTablePointer->Header.Length = Length;
> +
> + ASSERT (Size == Length);
> +
> CopyMem (
> MadtTablePointer->Header.OemId,
> PcdGetPtr (PcdAcpiDefaultOemId),
> diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
> index 117f3872a84a..28c422dff166 100644
> --- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
> +++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -16,6 +16,8 @@ STATIC EFI_EVENT mAcpiRegistration = NULL;
> */
> STATIC CONST EFI_GUID mAcpiCommonTableFile = { 0xCEFA2AEB, 0x357E, 0x4F48, { 0x80, 0x66, 0xEA, 0x95, 0x08, 0x53, 0x05, 0x6E } } ;
> STATIC CONST EFI_GUID mJadeAcpiTableFile = { 0x5addbc13, 0x8634, 0x480c, { 0x9b, 0x94, 0x67, 0x1b, 0x78, 0x55, 0xcd, 0xb8 } };
> +STATIC CONST EFI_GUID mJadeAcpiTableAc02File = { 0x5CA064B6 , 0x5AA4, 0x4E29, { 0xAB, 0xDC, 0x8B, 0xF3, 0xB3, 0x4D, 0xBF, 0x9E } };
> +
> /**
> * Callback called when ACPI Protocol is installed
> */
> @@ -31,7 +33,11 @@ AcpiNotificationEvent (
> Status = LocateAndInstallAcpiFromFv (&mAcpiCommonTableFile);
> ASSERT_EFI_ERROR (Status);
>
> - Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile);
> + if (IsAc01Processor ()) {
> + Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile);
> + } else {
> + Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableAc02File);
> + }
> ASSERT_EFI_ERROR (Status);
>
> //
> diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
> index 9eebea3de1b5..10c241834b81 100644
> --- a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
> +++ b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2021, Ampere Computing LLC. All rights reserved.<BR>
> + Copyright (c) 2021 2023, Ampere Computing LLC. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -19,6 +19,108 @@
> #include <NVParamDef.h>
> #include <Platform/Ac01.h>
>
> +UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 36, 37, 40, 41, 52, 53, 56, 57, 32, 33,
> + 44, 45, 48, 49, 60, 61, 20, 21, 24, 25,
> + 68, 69, 72, 73, 16, 17, 28, 29, 64, 65,
> + 76, 77, 4, 5, 8, 9, 0, 1, 12, 13,
> + 38, 39, 42, 43, 54, 55, 58, 59, 34, 35,
> + 46, 47, 50, 51, 62, 63, 22, 23, 26, 27,
> + 70, 71, 74, 75, 18, 19, 30, 31, 66, 67,
> + 78, 79, 6, 7, 10, 11, 2, 3, 14, 15,
> + 80, 81, 82, 83, 84, 85, 86, 87,
> + 88, 89, 90, 91, 92, 93, 94, 95,
> + 96, 97, 98, 99, 100, 101, 102, 103,
> + 104, 105, 106, 107, 108, 109, 110, 111,
> + 112, 113, 114, 115, 116, 117, 118, 119,
> + 120, 121, 122, 123, 124, 125, 126, 127,
> +};
> +
> +UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 32, 33, 48, 49, 16, 17, 64, 65, 36, 37,
> + 52, 53, 0, 1, 20, 21, 68, 69, 4, 5,
> + 34, 35, 50, 51, 18, 19, 66, 67, 38, 39,
> + 54, 55, 2, 3, 22, 23, 70, 71, 6, 7,
> + 44, 45, 60, 61, 28, 29, 76, 77, 40, 41,
> + 56, 57, 12, 13, 24, 25, 72, 73, 8, 9,
> + 46, 47, 62, 63, 30, 31, 78, 79, 42, 43,
> + 58, 59, 14, 15, 26, 27, 74, 75, 10, 11,
> + 80, 81, 82, 83, 84, 85, 86, 87,
> + 88, 89, 90, 91, 92, 93, 94, 95,
> + 96, 97, 98, 99, 100, 101, 102, 103,
> + 104, 105, 106, 107, 108, 109, 110, 111,
> + 112, 113, 114, 115, 116, 117, 118, 119,
> + 120, 121, 122, 123, 124, 125, 126, 127,
> +};
> +
> +UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 16, 17, 32, 33, 0, 1, 20, 21, 4, 5,
> + 18, 19, 34, 35, 2, 3, 22, 23, 6, 7,
> + 48, 49, 64, 65, 52, 53, 68, 69, 36, 37,
> + 50, 51, 66, 67, 54, 55, 70, 71, 38, 39,
> + 28, 29, 44, 45, 12, 13, 24, 25, 8, 9,
> + 30, 31, 46, 47, 14, 15, 26, 27, 10, 11,
> + 60, 61, 76, 77, 56, 57, 72, 73, 40, 41,
> + 62, 63, 78, 79, 58, 59, 74, 75, 42, 43,
> + 80, 81, 82, 83, 84, 85, 86, 87,
> + 88, 89, 90, 91, 92, 93, 94, 95,
> + 96, 97, 98, 99, 100, 101, 102, 103,
> + 104, 105, 106, 107, 108, 109, 110, 111,
> + 112, 113, 114, 115, 116, 117, 118, 119,
> + 120, 121, 122, 123, 124, 125, 126, 127,
> +};
> +
> +UINT32 Ac02CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 36, 37, 40, 41, 52, 53, 56, 57, 32, 33,
> + 44, 45, 48, 49, 60, 61, 20, 21, 24, 25,
> + 68, 69, 72, 73, 16, 17, 28, 29, 64, 65,
> + 76, 77, 4, 5, 8, 9, 84, 85, 88, 89,
> + 0, 1, 12, 13, 80, 81, 92, 93, 100, 101,
> + 104, 105, 96, 97, 108, 109, 116, 117, 120, 121,
> + 112, 113, 124, 125, 38, 39, 42, 43, 54, 55,
> + 58, 59, 34, 35, 46, 47, 50, 51, 62, 63,
> + 22, 23, 26, 27, 70, 71, 74, 75, 18, 19,
> + 30, 31, 66, 67, 78, 79, 6, 7, 10, 11,
> + 86, 87, 90, 91, 2, 3, 14, 15, 82, 83,
> + 94, 95, 102, 103, 106, 107, 98, 99, 110, 111,
> + 118, 119, 122, 123, 114, 115, 126, 127,
> +};
> +
> +UINT32 Ac02CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 32, 33, 48, 49, 16, 17, 64, 65, 36, 37,
> + 52, 53, 0, 1, 20, 21, 68, 69, 80, 81,
> + 4, 5, 84, 85, 96, 97, 100, 101, 112, 113,
> + 116, 117, 34, 35, 50, 51, 18, 19, 66, 67,
> + 38, 39, 54, 55, 2, 3, 22, 23, 70, 71,
> + 82, 83, 6, 7, 86, 87, 98, 99, 102, 103,
> + 114, 115, 118, 119, 44, 45, 60, 61, 28, 29,
> + 76, 77, 40, 41, 56, 57, 12, 13, 24, 25,
> + 72, 73, 92, 93, 8, 9, 88, 89, 108, 109,
> + 104, 105, 124, 125, 120, 121, 46, 47, 62, 63,
> + 30, 31, 78, 79, 42, 43, 58, 59, 14, 15,
> + 26, 27, 74, 75, 94, 95, 10, 11, 90, 91,
> + 110, 111, 106, 107, 126, 127, 122, 123,
> +};
> +
> +UINT32 Ac02CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM] = {
> + 16, 17, 32, 33, 0, 1, 20, 21,
> + 36, 37, 4, 5, 84, 85, 96, 97,
> + 18, 19, 34, 35, 2, 3, 22, 23,
> + 38, 39, 6, 7, 86, 87, 98, 99,
> + 48, 49, 64, 65, 52, 53, 68, 69,
> + 80, 81, 100, 101, 112, 113, 116, 117,
> + 50, 51, 66, 67, 54, 55, 70, 71,
> + 82, 83, 102, 103, 114, 115, 118, 119,
> + 28, 29, 44, 45, 12, 13, 24, 25,
> + 40, 41, 8, 9, 88, 89, 108, 109,
> + 30, 31, 46, 47, 14, 15, 26, 27,
> + 42, 43, 10, 11, 90, 91, 110, 111,
> + 60, 61, 76, 77, 56, 57, 72, 73,
> + 92, 93, 104, 105, 124, 125, 120, 121,
> + 62, 63, 78, 79, 58, 59, 74, 75,
> + 94, 95, 106, 107, 126, 127, 122, 123,
> +};
> +
> PLATFORM_INFO_HOB *
> GetPlatformHob (
> VOID
> @@ -94,6 +196,42 @@ CpuGetVoltage (
> return Voltage;
> }
>
> +/**
> + Get CPU Core order number.
> +
> + @return UINT8 The order number.
> +
> +**/
> +UINT32 *
> +CpuGetCoreOrder (
> + VOID
> + )
> +{
> + UINT32 *CoreOrder;
> + UINT8 SubNumaMode;
> + BOOLEAN IsAc01;
> +
> + SubNumaMode = CpuGetSubNumaMode ();
> + IsAc01 = IsAc01Processor ();
> +
> + switch (SubNumaMode) {
> + case SUBNUMA_MODE_MONOLITHIC:
> + default:
> + CoreOrder = IsAc01 ? Ac01CoreOrderMonolithic : Ac02CoreOrderMonolithic;
> + break;
> +
> + case SUBNUMA_MODE_HEMISPHERE:
> + CoreOrder = IsAc01 ? Ac01CoreOrderHemisphere : Ac02CoreOrderHemisphere;
> + break;
> +
> + case SUBNUMA_MODE_QUADRANT:
> + CoreOrder = IsAc01 ? Ac01CoreOrderQuadrant : Ac02CoreOrderQuadrant;
> + break;
> + }
> +
> + return CoreOrder;
> +}
> +
> /**
> Get the SubNUMA mode.
>
> @@ -157,14 +295,28 @@ CpuGetNumberOfSubNumaRegion (
> return NumberOfSubNumaRegion;
> }
>
> -/**
> - Get the SubNUMA node of a CPM.
> +STATIC
> +UINT8
> +CpuGetLogicCoreId (
> + UINT32 PhyCoreId
> + )
> +{
> + UINT32 *CoreOrder;
> + UINT8 LogicCoreId;
> + UINT8 SktMaxCoreNum ;
>
> - @param SocketId Socket index.
> - @param Cpm CPM index.
> - @return UINT8 The SubNUMA node of a CPM.
> + CoreOrder = CpuGetCoreOrder();
> + SktMaxCoreNum = PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM;
> +
> + for (LogicCoreId = 0; LogicCoreId < SktMaxCoreNum; LogicCoreId++) {
> + if (CoreOrder[LogicCoreId] == PhyCoreId) {
> + return LogicCoreId;
> + }
> + }
> +
> + return 0;
> +}
>
> -**/
> UINT8
> EFIAPI
> CpuGetSubNumNode (
> @@ -172,67 +324,30 @@ CpuGetSubNumNode (
> UINT16 Cpm
> )
> {
> - BOOLEAN IsAsymMesh;
> - UINT8 SubNumaNode;
> - UINT16 MaxNumberOfCPM;
> - UINT8 MiddleRow;
> - UINT8 QuadrantHigherRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {1, 1, 1, 1, 3, 3, 3, 3};
> - UINT8 QuadrantLowerRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {0, 0, 0, 0, 2, 2, 2, 2};
> - UINT8 QuadrantMiddleRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] = {0, 0, 1, 1, 3, 3, 2, 2};
> - UINT8 SubNumaMode;
> + UINT8 LogicCoreId;
> + UINT8 MaxFamliyCore;
> + UINT8 MaxNumCorePerNode;
> + UINT8 SubNumaNode;
>
> - MaxNumberOfCPM = GetMaximumNumberOfCPMs ();
> - SubNumaMode = CpuGetSubNumaMode ();
> - ASSERT (SubNumaMode <= SUBNUMA_MODE_QUADRANT);
> + LogicCoreId = CpuGetLogicCoreId (Cpm * PLATFORM_CPU_NUM_CORES_PER_CPM);
> + MaxFamliyCore = IsAc01Processor () ? MAX_AMPERE_ALTRA_CORES : MAX_AMPERE_ALTRA_MAX_CORES;
>
> - switch (SubNumaMode) {
> + switch (CpuGetSubNumaMode ()) {
> case SUBNUMA_MODE_MONOLITHIC:
> SubNumaNode = (SocketId == 0) ? 0 : 1;
> break;
>
> case SUBNUMA_MODE_HEMISPHERE:
> - if (CPM_PER_ROW_OFFSET (Cpm) >= SUBNUMA_CPM_REGION_SIZE) {
> - SubNumaNode = 1;
> - } else {
> - SubNumaNode = 0;
> - }
> -
> + MaxNumCorePerNode = MaxFamliyCore / HEMISPHERE_NUM_OF_REGION;
> + SubNumaNode = LogicCoreId / MaxNumCorePerNode;
> if (SocketId == 1) {
> SubNumaNode += HEMISPHERE_NUM_OF_REGION;
> }
> break;
>
> case SUBNUMA_MODE_QUADRANT:
> - //
> - // CPM Mesh Rows
> - //
> - // |---------------------------------------|
> - // | 00 ----------- 03 | 04 ----------- 07 | Row 0
> - // |-------------------|-------------------|
> - // | 08 ----------- 11 | 12 ----------- 15 | Row 1
> - // |-------------------|-------------------|
> - // | 16 - 17 | 18 - 19 | 20 - 21 | 22 - 23 | Middle Row
> - // |-------------------|-------------------|
> - // | 24 ----------- 27 | 28 ----------- 31 | Row 3
> - // |-------------------|-------------------|
> - // | 32 ----------- 35 | 36 ----------- 39 | Row 4
> - // |---------------------------------------|
> - //
> -
> - IsAsymMesh = (BOOLEAN)(CPM_ROW_NUMBER (MaxNumberOfCPM) % 2 != 0);
> - MiddleRow = CPM_ROW_NUMBER (MaxNumberOfCPM) / 2;
> - if (IsAsymMesh
> - && CPM_ROW_NUMBER (Cpm) == MiddleRow)
> - {
> - SubNumaNode = QuadrantMiddleRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
> -
> - } else if (CPM_ROW_NUMBER (Cpm) >= MiddleRow) {
> - SubNumaNode = QuadrantHigherRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
> -
> - } else {
> - SubNumaNode = QuadrantLowerRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)];
> - }
> -
> + MaxNumCorePerNode = MaxFamliyCore / QUADRANT_NUM_OF_REGION;
> + SubNumaNode = LogicCoreId / MaxNumCorePerNode;
> if (SocketId == 1) {
> SubNumaNode += QUADRANT_NUM_OF_REGION;
> }
> @@ -240,7 +355,7 @@ CpuGetSubNumNode (
>
> default:
> // Should never reach there.
> - SubNumaNode = 0;
> + SubNumaNode = (SocketId == 0) ? 0 : 1;
> ASSERT (FALSE);
> break;
> }
> @@ -479,22 +594,6 @@ GetMaximumNumberOfCores (
> return PlatformHob->MaxNumOfCore[0];
> }
>
> -/**
> - Get the maximum number of CPM per socket. This number
> - should be the same for all sockets.
> -
> - @return UINT16 Maximum number of CPM.
> -
> -**/
> -UINT16
> -EFIAPI
> -GetMaximumNumberOfCPMs (
> - VOID
> - )
> -{
> - return GetMaximumNumberOfCores () / PLATFORM_CPU_NUM_CORES_PER_CPM;
> -}
> -
> /**
> Get the number of active cores of a sockets.
>
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
> new file mode 100644
> index 000000000000..80b8ad86e86b
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
> @@ -0,0 +1,6345 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Scope (\_SB.SYST) {
> + Device (CL00) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL01) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL02) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL03) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL04) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL05) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL06) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL07) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x8)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL08) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x9)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL09) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xA)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xB)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xC)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xD)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xE)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0xF)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL0F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x10)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL10) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x11)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL11) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x12)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL12) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x13)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL13) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x14)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL14) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x15)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL15) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x16)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL16) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x17)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL17) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x18)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL18) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x19)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL19) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x1F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL1F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x20)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL20) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x21)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL21) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x22)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL22) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x23)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL23) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x24)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL24) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x25)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL25) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x26)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL26) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x27)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL27) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x28)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL28) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x29)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL29) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x2F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL2F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x30)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL30) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x31)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL31) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x32)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL32) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x33)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL33) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x34)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL34) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x35)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL35) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x36)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL36) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x37)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL37) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x38)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL38) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x39)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL39) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x3F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL3F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x40)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +}
> +
> +Scope (\_SB.SYST.CL00) {
> + Device(C000) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x0)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x000, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x004, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x008, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x010, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x014, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x050, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x054, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x058, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 0, 0xFD, 2}
> + }) // Domain 0
> + }
> +
> + Device(C001) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x080, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x084, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x088, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x090, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x094, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 1, 0xFD, 2}
> + }) // Domain 1
> + }
> +}
> +
> +Scope (\_SB.SYST.CL01) {
> + Device(C002) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x100, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x104, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x108, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x110, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x114, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x134, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x150, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x154, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x158, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 2, 0xFD, 2}
> + }) // Domain 2
> + }
> +
> + Device(C003) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x180, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x184, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x188, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x190, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x194, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 3, 0xFD, 2}
> + }) // Domain 3
> + }
> +}
> +
> +Scope (\_SB.SYST.CL02) {
> + Device(C004) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x200, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x204, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x208, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x210, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x214, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x234, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x250, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x254, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x258, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 4, 0xFD, 2}
> + }) // Domain 4
> + }
> +
> + Device(C005) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x280, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x284, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x288, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x290, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x294, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 5, 0xFD, 2}
> + }) // Domain 5
> + }
> +}
> +
> +Scope (\_SB.SYST.CL03) {
> + Device(C006) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x300, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x304, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x308, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x310, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x314, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x334, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x350, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x354, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x358, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 6, 0xFD, 2}
> + }) // Domain 6
> + }
> +
> + Device(C007) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x380, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x384, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x388, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x390, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x394, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 7, 0xFD, 2}
> + }) // Domain 7
> + }
> +}
> +
> +Scope (\_SB.SYST.CL04) {
> + Device(C008) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x400, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x404, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x408, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x410, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x414, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x434, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x450, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x454, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x458, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 8, 0xFD, 2}
> + }) // Domain 8
> + }
> +
> + Device(C009) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x480, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x484, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x488, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x490, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x494, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 9, 0xFD, 2}
> + }) // Domain 9
> + }
> +}
> +
> +Scope (\_SB.SYST.CL05) {
> + Device(C010) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x500, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x504, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x508, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x510, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x514, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x534, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x550, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x554, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x558, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 10, 0xFD, 2}
> + }) // Domain 10
> + }
> +
> + Device(C011) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x580, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x584, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x588, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x590, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x594, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 11, 0xFD, 2}
> + }) // Domain 11
> + }
> +}
> +
> +Scope (\_SB.SYST.CL06) {
> + Device(C012) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x600, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x604, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x608, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x610, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x614, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x634, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x650, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x654, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x658, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 12, 0xFD, 2}
> + }) // Domain 12
> + }
> +
> + Device(C013) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x680, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x684, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x688, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x690, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x694, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 13, 0xFD, 2}
> + }) // Domain 13
> + }
> +}
> +
> +Scope (\_SB.SYST.CL07) {
> + Device(C014) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x700, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x704, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x708, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x710, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x714, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x734, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x750, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x754, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x758, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 14, 0xFD, 2}
> + }) // Domain 14
> + }
> +
> + Device(C015) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x780, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x784, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x788, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x790, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x794, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 15, 0xFD, 2}
> + }) // Domain 15
> + }
> +}
> +
> +Scope (\_SB.SYST.CL08) {
> + Device(C016) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x800, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x804, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x808, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x810, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x814, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x834, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x850, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x854, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x858, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 16, 0xFD, 2}
> + }) // Domain 16
> + }
> +
> + Device(C017) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x880, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x884, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x888, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x890, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x894, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 17, 0xFD, 2}
> + }) // Domain 17
> + }
> +}
> +
> +Scope (\_SB.SYST.CL09) {
> + Device(C018) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x900, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x904, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x908, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x910, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x914, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x934, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x950, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x954, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x958, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 18, 0xFD, 2}
> + }) // Domain 18
> + }
> +
> + Device(C019) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x980, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x984, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x988, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x990, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x994, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 19, 0xFD, 2}
> + }) // Domain 19
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0A) {
> + Device(C020) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xa00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 20, 0xFD, 2}
> + }) // Domain 20
> + }
> +
> + Device(C021) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xa01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 21, 0xFD, 2}
> + }) // Domain 21
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0B) {
> + Device(C022) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xb00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 22, 0xFD, 2}
> + }) // Domain 22
> + }
> +
> + Device(C023) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xb01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 23, 0xFD, 2}
> + }) // Domain 23
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0C) {
> + Device(C024) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xc00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 24, 0xFD, 2}
> + }) // Domain 24
> + }
> +
> + Device(C025) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xc01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 25, 0xFD, 2}
> + }) // Domain 25
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0D) {
> + Device(C026) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xd00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 26, 0xFD, 2}
> + }) // Domain 26
> + }
> +
> + Device(C027) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xd01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 27, 0xFD, 2}
> + }) // Domain 27
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0E) {
> + Device(C028) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xe00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 28, 0xFD, 2}
> + }) // Domain 28
> + }
> +
> + Device(C029) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xe01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 29, 0xFD, 2}
> + }) // Domain 29
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0F) {
> + Device(C030) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xf00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 30, 0xFD, 2}
> + }) // Domain 30
> + }
> +
> + Device(C031) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0xf01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 31, 0xFD, 2}
> + }) // Domain 31
> + }
> +}
> +
> +Scope (\_SB.SYST.CL10) {
> + Device(C032) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 32, 0xFD, 2}
> + }) // Domain 32
> + }
> +
> + Device(C033) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 33, 0xFD, 2}
> + }) // Domain 33
> + }
> +}
> +
> +Scope (\_SB.SYST.CL11) {
> + Device(C034) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 34, 0xFD, 2}
> + }) // Domain 34
> + }
> +
> + Device(C035) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 35, 0xFD, 2}
> + }) // Domain 35
> + }
> +}
> +
> +Scope (\_SB.SYST.CL12) {
> + Device(C036) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 36, 0xFD, 2}
> + }) // Domain 36
> + }
> +
> + Device(C037) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 37, 0xFD, 2}
> + }) // Domain 37
> + }
> +}
> +
> +Scope (\_SB.SYST.CL13) {
> + Device(C038) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 38, 0xFD, 2}
> + }) // Domain 38
> + }
> +
> + Device(C039) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 39, 0xFD, 2}
> + }) // Domain 39
> + }
> +}
> +
> +Scope (\_SB.SYST.CL14) {
> + Device(C040) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 40, 0xFD, 2}
> + }) // Domain 40
> + }
> +
> + Device(C041) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 41, 0xFD, 2}
> + }) // Domain 41
> + }
> +}
> +
> +Scope (\_SB.SYST.CL15) {
> + Device(C042) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 42, 0xFD, 2}
> + }) // Domain 42
> + }
> +
> + Device(C043) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 43, 0xFD, 2}
> + }) // Domain 43
> + }
> +}
> +
> +Scope (\_SB.SYST.CL16) {
> + Device(C044) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 44, 0xFD, 2}
> + }) // Domain 44
> + }
> +
> + Device(C045) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 45, 0xFD, 2}
> + }) // Domain 45
> + }
> +}
> +
> +Scope (\_SB.SYST.CL17) {
> + Device(C046) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 46, 0xFD, 2}
> + }) // Domain 46
> + }
> +
> + Device(C047) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 47, 0xFD, 2}
> + }) // Domain 47
> + }
> +}
> +
> +Scope (\_SB.SYST.CL18) {
> + Device(C048) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 48, 0xFD, 2}
> + }) // Domain 48
> + }
> +
> + Device(C049) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 49, 0xFD, 2}
> + }) // Domain 49
> + }
> +}
> +
> +Scope (\_SB.SYST.CL19) {
> + Device(C050) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 50, 0xFD, 2}
> + }) // Domain 50
> + }
> +
> + Device(C051) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 51, 0xFD, 2}
> + }) // Domain 51
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1A) {
> + Device(C052) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 52, 0xFD, 2}
> + }) // Domain 52
> + }
> +
> + Device(C053) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 53, 0xFD, 2}
> + }) // Domain 53
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1B) {
> + Device(C054) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 54, 0xFD, 2}
> + }) // Domain 54
> + }
> +
> + Device(C055) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 55, 0xFD, 2}
> + }) // Domain 5
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1C) {
> + Device(C056) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 56, 0xFD, 2}
> + }) // Domain 56
> + }
> +
> + Device(C057) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 57, 0xFD, 2}
> + }) // Domain 57
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1D) {
> + Device(C058) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 58, 0xFD, 2}
> + }) // Domain 58
> + }
> +
> + Device(C059) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 59, 0xFD, 2}
> + }) // Domain 59
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1E) {
> + Device(C060) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 60, 0xFD, 2}
> + }) // Domain 60
> + }
> +
> + Device(C061) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 61, 0xFD, 2}
> + }) // Domain 61
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1F) {
> + Device(C062) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 62, 0xFD, 2}
> + }) // Domain 62
> + }
> +
> + Device(C063) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x1f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 63, 0xFD, 2}
> + }) // Domain 63
> + }
> +}
> +
> +Scope (\_SB.SYST.CL20) {
> + Device(C064) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 64, 0xFD, 2}
> + }) // Domain 64
> + }
> +
> + Device(C065) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 65, 0xFD, 2}
> + }) // Domain 65
> + }
> +}
> +
> +Scope (\_SB.SYST.CL21) {
> + Device(C066) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 66, 0xFD, 2}
> + }) // Domain 66
> + }
> +
> + Device(C067) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 67, 0xFD, 2}
> + }) // Domain 67
> + }
> +}
> +
> +Scope (\_SB.SYST.CL22) {
> + Device(C068) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 68, 0xFD, 2}
> + }) // Domain 68
> + }
> +
> + Device(C069) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 69, 0xFD, 2}
> + }) // Domain 69
> + }
> +}
> +
> +Scope (\_SB.SYST.CL23) {
> + Device(C070) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 70, 0xFD, 2}
> + }) // Domain 70
> + }
> +
> + Device(C071) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 71, 0xFD, 2}
> + }) // Domain 71
> + }
> +}
> +
> +Scope (\_SB.SYST.CL24) {
> + Device(C072) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 72, 0xFD, 2}
> + }) // Domain 72
> + }
> +
> + Device(C073) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 73, 0xFD, 2}
> + }) // Domain 73
> + }
> +}
> +
> +Scope (\_SB.SYST.CL25) {
> + Device(C074) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 74, 0xFD, 2}
> + }) // Domain 74
> + }
> +
> + Device(C075) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 75, 0xFD, 2}
> + }) // Domain 75
> + }
> +}
> +
> +Scope (\_SB.SYST.CL26) {
> + Device(C076) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 76, 0xFD, 2}
> + }) // Domain 76
> + }
> +
> + Device(C077) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 77, 0xFD, 2}
> + }) // Domain 77
> + }
> +}
> +
> +Scope (\_SB.SYST.CL27) {
> + Device(C078) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 78, 0xFD, 2}
> + }) // Domain 78
> + }
> +
> + Device(C079) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 79, 0xFD, 2}
> + }) // Domain 79
> + }
> +}
> +
> +Scope (\_SB.SYST.CL28) {
> + Device(C080) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 80, 0xFD, 2}
> + }) // Domain 80
> + }
> +
> + Device(C081) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 81, 0xFD, 2}
> + }) // Domain 81
> + }
> +}
> +
> +Scope (\_SB.SYST.CL29) {
> + Device(C082) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 82, 0xFD, 2}
> + }) // Domain 82
> + }
> +
> + Device(C083) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 83, 0xFD, 2}
> + }) // Domain 83
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2A) {
> + Device(C084) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 84, 0xFD, 2}
> + }) // Domain 84
> + }
> +
> + Device(C085) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 85, 0xFD, 2}
> + }) // Domain 85
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2B) {
> + Device(C086) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 86, 0xFD, 2}
> + }) // Domain 86
> + }
> +
> + Device(C087) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 87, 0xFD, 2}
> + }) // Domain 87
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2C) {
> + Device(C088) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 88, 0xFD, 2}
> + }) // Domain 88
> + }
> +
> + Device(C089) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 89, 0xFD, 2}
> + }) // Domain 89
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2D) {
> + Device(C090) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 90, 0xFD, 2}
> + }) // Domain 90
> + }
> +
> + Device(C091) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 91, 0xFD, 2}
> + }) // Domain 91
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2E) {
> + Device(C092) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 92, 0xFD, 2}
> + }) // Domain 92
> + }
> +
> + Device(C093) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 93, 0xFD, 2}
> + }) // Domain 93
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2F) {
> + Device(C094) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 94, 0xFD, 2}
> + }) // Domain 94
> + }
> +
> + Device(C095) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x2f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 95, 0xFD, 2}
> + }) // Domain 95
> + }
> +}
> +
> +Scope (\_SB.SYST.CL30) {
> + Device(C096) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 96, 0xFD, 2}
> + }) // Domain 96
> + }
> +
> + Device(C097) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 97, 0xFD, 2}
> + }) // Domain 97
> + }
> +}
> +
> +Scope (\_SB.SYST.CL31) {
> + Device(C098) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 98, 0xFD, 2}
> + }) // Domain 98
> + }
> +
> + Device(C099) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 99, 0xFD, 2}
> + }) // Domain 99
> + }
> +}
> +
> +Scope (\_SB.SYST.CL32) {
> + Device(C100) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 100, 0xFD, 2}
> + }) // Domain 100
> + }
> +
> + Device(C101) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 101, 0xFD, 2}
> + }) // Domain 101
> + }
> +}
> +
> +Scope (\_SB.SYST.CL33) {
> + Device(C102) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 102, 0xFD, 2}
> + }) // Domain 102
> + }
> +
> + Device(C103) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 103, 0xFD, 2}
> + }) // Domain 103
> + }
> +}
> +
> +Scope (\_SB.SYST.CL34) {
> + Device(C104) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 104, 0xFD, 2}
> + }) // Domain 104
> + }
> +
> + Device(C105) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 105, 0xFD, 2}
> + }) // Domain 105
> + }
> +}
> +
> +Scope (\_SB.SYST.CL35) {
> + Device(C106) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 106, 0xFD, 2}
> + }) // Domain 106
> + }
> +
> + Device(C107) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 107, 0xFD, 2}
> + }) // Domain 107
> + }
> +}
> +
> +Scope (\_SB.SYST.CL36) {
> + Device(C108) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 108, 0xFD, 2}
> + }) // Domain 108
> + }
> +
> + Device(C109) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 109, 0xFD, 2}
> + }) // Domain 109
> + }
> +}
> +
> +Scope (\_SB.SYST.CL37) {
> + Device(C110) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 110, 0xFD, 2}
> + }) // Domain 110
> + }
> +
> + Device(C111) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 111, 0xFD, 2}
> + }) // Domain 111
> + }
> +}
> +
> +Scope (\_SB.SYST.CL38) {
> + Device(C112) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 112, 0xFD, 2}
> + }) // Domain 112
> + }
> +
> + Device(C113) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 113, 0xFD, 2}
> + }) // Domain 113
> + }
> +}
> +
> +Scope (\_SB.SYST.CL39) {
> + Device(C114) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 114, 0xFD, 2}
> + }) // Domain 114
> + }
> +
> + Device(C115) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 115, 0xFD, 2}
> + }) // Domain 115
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3A) {
> + Device(C116) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 116, 0xFD, 2}
> + }) // Domain 116
> + }
> +
> + Device(C117) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 117, 0xFD, 2}
> + }) // Domain 117
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3B) {
> + Device(C118) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 118, 0xFD, 2}
> + }) // Domain 118
> + }
> +
> + Device(C119) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 119, 0xFD, 2}
> + }) // Domain 119
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3C) {
> + Device(C120) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 120, 0xFD, 2}
> + }) // Domain 120
> + }
> +
> + Device(C121) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 121, 0xFD, 2}
> + }) // Domain 121
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3D) {
> + Device(C122) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 122, 0xFD, 2}
> + }) // Domain 122
> + }
> +
> + Device(C123) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 123, 0xFD, 2}
> + }) // Domain 123
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3E) {
> + Device(C124) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 124, 0xFD, 2}
> + }) // Domain 124
> + }
> +
> + Device(C125) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 125, 0xFD, 2}
> + }) // Domain 125
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3F) {
> + Device(C126) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 126, 0xFD, 2}
> + }) // Domain 126
> + }
> +
> + Device(C127) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x3f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 2)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 2)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 2)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 2)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 2)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 2)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 2)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 2)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 2)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 2)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 2)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 2)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 127, 0xFD, 2}
> + }) // Domain 127
> + }
> +}
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
> new file mode 100644
> index 000000000000..09a93e9b8199
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
> @@ -0,0 +1,6345 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Scope (\_SB.SYST) {
> + Device (CL40) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x41)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL41) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x42)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL42) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x43)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL43) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x44)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL44) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x45)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL45) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x46)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL46) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x47)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL47) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x48)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL48) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x49)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL49) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x4F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL4F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x50)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL50) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x51)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL51) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x52)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL52) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x53)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL53) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x54)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL54) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x55)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL55) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x56)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL56) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x57)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL57) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x58)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL58) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x59)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL59) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x5F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL5F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x60)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL60) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x61)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL61) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x62)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL62) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x63)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL63) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x64)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL64) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x65)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL65) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x66)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL66) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x67)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL67) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x68)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL68) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x69)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL69) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x6F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL6F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x70)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL70) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x71)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL71) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x72)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL72) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x73)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL73) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x74)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL74) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x75)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL75) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x76)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL76) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x77)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL77) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x78)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL78) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x79)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL79) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7A)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7A) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7B)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7B) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7C)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7C) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7D)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7D) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7E)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7E) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x7F)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +
> + Device (CL7F) {
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0x80)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(CLPI)
> + }
> + }
> +}
> +
> +Scope (\_SB.SYST.CL40) {
> + Device(C128) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x000, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x004, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x008, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x010, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x014, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x050, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x054, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x058, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 128, 0xFD, 2}
> + }) // Domain 128
> + }
> +
> + Device(C129) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x080, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x084, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x088, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x090, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x094, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 1219, 0xFD, 2}
> + }) // Domain 129
> + }
> +}
> +
> +Scope (\_SB.SYST.CL41) {
> + Device(C130) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x100, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x104, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x108, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x110, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x114, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x134, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x150, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x154, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x158, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 130, 0xFD, 2}
> + }) // Domain 130
> + }
> +
> + Device(C131) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x180, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x184, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x188, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x190, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x194, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 131, 0xFD, 2}
> + }) // Domain 131
> + }
> +}
> +
> +Scope (\_SB.SYST.CL42) {
> + Device(C132) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x200, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x204, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x208, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x210, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x214, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x234, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x250, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x254, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x258, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 132, 0xFD, 2}
> + }) // Domain 132
> + }
> +
> + Device(C133) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x280, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x284, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x288, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x290, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x294, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 133, 0xFD, 2}
> + }) // Domain 133
> + }
> +}
> +
> +Scope (\_SB.SYST.CL43) {
> + Device(C134) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x300, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x304, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x308, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x310, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x314, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x334, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x350, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x354, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x358, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 134, 0xFD, 2}
> + }) // Domain 134
> + }
> +
> + Device(C135) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x380, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x384, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x388, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x390, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x394, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 135, 0xFD, 2}
> + }) // Domain 135
> + }
> +}
> +
> +Scope (\_SB.SYST.CL44) {
> + Device(C136) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x400, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x404, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x408, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x410, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x414, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x434, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x450, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x454, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x458, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 136, 0xFD, 2}
> + }) // Domain 136
> + }
> +
> + Device(C137) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x480, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x484, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x488, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x490, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x494, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 137, 0xFD, 2}
> + }) // Domain 137
> + }
> +}
> +
> +Scope (\_SB.SYST.CL45) {
> + Device(C138) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x500, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x504, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x508, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x510, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x514, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x534, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x550, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x554, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x558, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 138, 0xFD, 2}
> + }) // Domain 138
> + }
> +
> + Device(C139) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x580, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x584, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x588, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x590, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x594, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 139, 0xFD, 2}
> + }) // Domain 139
> + }
> +}
> +
> +Scope (\_SB.SYST.CL46) {
> + Device(C140) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x600, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x604, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x608, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x610, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x614, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x634, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x650, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x654, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x658, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 140, 0xFD, 2}
> + }) // Domain 140
> + }
> +
> + Device(C141) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x680, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x684, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x688, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x690, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x694, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 141, 0xFD, 2}
> + }) // Domain 141
> + }
> +}
> +
> +Scope (\_SB.SYST.CL47) {
> + Device(C142) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x700, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x704, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x708, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x710, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x714, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x734, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x750, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x754, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x758, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 142, 0xFD, 2}
> + }) // Domain 142
> + }
> +
> + Device(C143) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x780, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x784, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x788, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x790, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x794, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 143, 0xFD, 2}
> + }) // Domain 143
> + }
> +}
> +
> +Scope (\_SB.SYST.CL48) {
> + Device(C144) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x800, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x804, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x808, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x810, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x814, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x834, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x850, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x854, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x858, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 144, 0xFD, 2}
> + }) // Domain 144
> + }
> +
> + Device(C145) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x880, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x884, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x888, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x890, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x894, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 145, 0xFD, 2}
> + }) // Domain 145
> + }
> +}
> +
> +Scope (\_SB.SYST.CL49) {
> + Device(C146) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x900, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x904, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x908, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x910, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x914, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x934, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x950, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x954, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x958, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 146, 0xFD, 2}
> + }) // Domain 146
> + }
> +
> + Device(C147) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x980, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x984, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x988, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x990, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x994, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 147, 0xFD, 2}
> + }) // Domain 147
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4A) {
> + Device(C148) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 148, 0xFD, 2}
> + }) // Domain 148
> + }
> +
> + Device(C149) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 149, 0xFD, 2}
> + }) // Domain 149
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4B) {
> + Device(C150) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 150, 0xFD, 2}
> + }) // Domain 150
> + }
> +
> + Device(C151) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 151, 0xFD, 2}
> + }) // Domain 151
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4C) {
> + Device(C152) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 152, 0xFD, 2}
> + }) // Domain 152
> + }
> +
> + Device(C153) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 153, 0xFD, 2}
> + }) // Domain 153
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4D) {
> + Device(C154) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 154, 0xFD, 2}
> + }) // Domain 154
> + }
> +
> + Device(C155) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 155, 0xFD, 2}
> + }) // Domain 155
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4E) {
> + Device(C156) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 156, 0xFD, 2}
> + }) // Domain 156
> + }
> +
> + Device(C157) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 157, 0xFD, 2}
> + }) // Domain 157
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4F) {
> + Device(C158) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 158, 0xFD, 2}
> + }) // Domain 158
> + }
> +
> + Device(C159) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x10f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 159, 0xFD, 2}
> + }) // Domain 159
> + }
> +}
> +
> +Scope (\_SB.SYST.CL50) {
> + Device(C160) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 160, 0xFD, 2}
> + }) // Domain 160
> + }
> +
> + Device(C161) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 161, 0xFD, 2}
> + }) // Domain 161
> + }
> +}
> +
> +Scope (\_SB.SYST.CL51) {
> + Device(C162) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 162, 0xFD, 2}
> + }) // Domain 162
> + }
> +
> + Device(C163) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 163, 0xFD, 2}
> + }) // Domain 163
> + }
> +}
> +
> +Scope (\_SB.SYST.CL52) {
> + Device(C164) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 164, 0xFD, 2}
> + }) // Domain 164
> + }
> +
> + Device(C165) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 165, 0xFD, 2}
> + }) // Domain 165
> + }
> +}
> +
> +Scope (\_SB.SYST.CL53) {
> + Device(C166) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 166, 0xFD, 2}
> + }) // Domain 166
> + }
> +
> + Device(C167) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 167, 0xFD, 2}
> + }) // Domain 167
> + }
> +}
> +
> +Scope (\_SB.SYST.CL54) {
> + Device(C168) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 168, 0xFD, 2}
> + }) // Domain 168
> + }
> +
> + Device(C169) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 169, 0xFD, 2}
> + }) // Domain 169
> + }
> +}
> +
> +Scope (\_SB.SYST.CL55) {
> + Device(C170) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 170, 0xFD, 2}
> + }) // Domain 170
> + }
> +
> + Device(C171) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 171, 0xFD, 2}
> + }) // Domain 171
> + }
> +}
> +
> +Scope (\_SB.SYST.CL56) {
> + Device(C172) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 172, 0xFD, 2}
> + }) // Domain 172
> + }
> +
> + Device(C173) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 173, 0xFD, 2}
> + }) // Domain 173
> + }
> +}
> +
> +Scope (\_SB.SYST.CL57) {
> + Device(C174) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 174, 0xFD, 2}
> + }) // Domain 174
> + }
> +
> + Device(C175) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 175, 0xFD, 2}
> + }) // Domain 175
> + }
> +}
> +
> +Scope (\_SB.SYST.CL58) {
> + Device(C176) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 176, 0xFD, 2}
> + }) // Domain 176
> + }
> +
> + Device(C177) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 177, 0xFD, 2}
> + }) // Domain 177
> + }
> +}
> +
> +Scope (\_SB.SYST.CL59) {
> + Device(C178) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 178, 0xFD, 2}
> + }) // Domain 178
> + }
> +
> + Device(C179) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 179, 0xFD, 2}
> + }) // Domain 179
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5A) {
> + Device(C180) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 180, 0xFD, 2}
> + }) // Domain 180
> + }
> +
> + Device(C181) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 181, 0xFD, 2}
> + }) // Domain 181
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5B) {
> + Device(C182) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 182, 0xFD, 2}
> + }) // Domain 182
> + }
> +
> + Device(C183) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 183, 0xFD, 2}
> + }) // Domain 183
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5C) {
> + Device(C184) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 184, 0xFD, 2}
> + }) // Domain 184
> + }
> +
> + Device(C185) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 185, 0xFD, 2}
> + }) // Domain 185
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5D) {
> + Device(C186) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 186, 0xFD, 2}
> + }) // Domain 186
> + }
> +
> + Device(C187) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 187, 0xFD, 2}
> + }) // Domain 187
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5E) {
> + Device(C188) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 188, 0xFD, 2}
> + }) // Domain 188
> + }
> +
> + Device(C189) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 189, 0xFD, 2}
> + }) // Domain 189
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5F) {
> + Device(C190) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 190, 0xFD, 2}
> + }) // Domain 190
> + }
> +
> + Device(C191) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x11f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 191, 0xFD, 2}
> + }) // Domain 191
> + }
> +}
> +
> +Scope (\_SB.SYST.CL60) {
> + Device(C192) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 192, 0xFD, 2}
> + }) // Domain 192
> + }
> +
> + Device(C193) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 193, 0xFD, 2}
> + }) // Domain 193
> + }
> +}
> +
> +Scope (\_SB.SYST.CL61) {
> + Device(C194) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 194, 0xFD, 2}
> + }) // Domain 194
> + }
> +
> + Device(C195) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 195, 0xFD, 2}
> + }) // Domain 195
> + }
> +}
> +
> +Scope (\_SB.SYST.CL62) {
> + Device(C196) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 196, 0xFD, 2}
> + }) // Domain 196
> + }
> +
> + Device(C197) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 197, 0xFD, 2}
> + }) // Domain 197
> + }
> +}
> +
> +Scope (\_SB.SYST.CL63) {
> + Device(C198) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 198, 0xFD, 2}
> + }) // Domain 198
> + }
> +
> + Device(C199) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 199, 0xFD, 2}
> + }) // Domain 199
> + }
> +}
> +
> +Scope (\_SB.SYST.CL64) {
> + Device(C200) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 200, 0xFD, 2}
> + }) // Domain 200
> + }
> +
> + Device(C201) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 201, 0xFD, 2}
> + }) // Domain 201
> + }
> +}
> +
> +Scope (\_SB.SYST.CL65) {
> + Device(C202) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 202, 0xFD, 2}
> + }) // Domain 202
> + }
> +
> + Device(C203) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 203, 0xFD, 2}
> + }) // Domain 203
> + }
> +}
> +
> +Scope (\_SB.SYST.CL66) {
> + Device(C204) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 204, 0xFD, 2}
> + }) // Domain 204
> + }
> +
> + Device(C205) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 205, 0xFD, 2}
> + }) // Domain 205
> + }
> +}
> +
> +Scope (\_SB.SYST.CL67) {
> + Device(C206) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 206, 0xFD, 2}
> + }) // Domain 206
> + }
> +
> + Device(C207) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 207, 0xFD, 2}
> + }) // Domain 207
> + }
> +}
> +
> +Scope (\_SB.SYST.CL68) {
> + Device(C208) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 208, 0xFD, 2}
> + }) // Domain 208
> + }
> +
> + Device(C209) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 209, 0xFD, 2}
> + }) // Domain 209
> + }
> +}
> +
> +Scope (\_SB.SYST.CL69) {
> + Device(C210) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 210, 0xFD, 2}
> + }) // Domain 210
> + }
> +
> + Device(C211) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 211, 0xFD, 2}
> + }) // Domain 211
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6A) {
> + Device(C212) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 212, 0xFD, 2}
> + }) // Domain 212
> + }
> +
> + Device(C213) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 213, 0xFD, 2}
> + }) // Domain 213
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6B) {
> + Device(C214) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 214, 0xFD, 2}
> + }) // Domain 214
> + }
> +
> + Device(C215) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 215, 0xFD, 2}
> + }) // Domain 215
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6C) {
> + Device(C216) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 216, 0xFD, 2}
> + }) // Domain 216
> + }
> +
> + Device(C217) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 217, 0xFD, 2}
> + }) // Domain 217
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6D) {
> + Device(C218) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 218, 0xFD, 2}
> + }) // Domain 218
> + }
> +
> + Device(C219) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 219, 0xFD, 2}
> + }) // Domain 219
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6E) {
> + Device(C220) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 220, 0xFD, 2}
> + }) // Domain 220
> + }
> +
> + Device(C221) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 221, 0xFD, 2}
> + }) // Domain 221
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6F) {
> + Device(C222) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 222, 0xFD, 2}
> + }) // Domain 222
> + }
> +
> + Device(C223) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x12f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 223, 0xFD, 2}
> + }) // Domain 223
> + }
> +}
> +
> +Scope (\_SB.SYST.CL70) {
> + Device(C224) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13000)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 224, 0xFD, 2}
> + }) // Domain 224
> + }
> +
> + Device(C225) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13001)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 225, 0xFD, 2}
> + }) // Domain 225
> + }
> +}
> +
> +Scope (\_SB.SYST.CL71) {
> + Device(C226) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13100)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 226, 0xFD, 2}
> + }) // Domain 226
> + }
> +
> + Device(C227) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13101)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 227, 0xFD, 2}
> + }) // Domain 227
> + }
> +}
> +
> +Scope (\_SB.SYST.CL72) {
> + Device(C228) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13200)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 228, 0xFD, 2}
> + }) // Domain 228
> + }
> +
> + Device(C229) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13201)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 229, 0xFD, 2}
> + }) // Domain 229
> + }
> +}
> +
> +Scope (\_SB.SYST.CL73) {
> + Device(C230) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13300)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 230, 0xFD, 2}
> + }) // Domain 230
> + }
> +
> + Device(C231) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13301)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 231, 0xFD, 2}
> + }) // Domain 231
> + }
> +}
> +
> +Scope (\_SB.SYST.CL74) {
> + Device(C232) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13400)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 232, 0xFD, 2}
> + }) // Domain 232
> + }
> +
> + Device(C233) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13401)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 233, 0xFD, 2}
> + }) // Domain 233
> + }
> +}
> +
> +Scope (\_SB.SYST.CL75) {
> + Device(C234) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13500)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 234, 0xFD, 2}
> + }) // Domain 234
> + }
> +
> + Device(C235) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13501)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 235, 0xFD, 2}
> + }) // Domain 235
> + }
> +}
> +
> +Scope (\_SB.SYST.CL76) {
> + Device(C236) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13600)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 236, 0xFD, 2}
> + }) // Domain 236
> + }
> +
> + Device(C237) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13601)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 237, 0xFD, 2}
> + }) // Domain 237
> + }
> +}
> +
> +Scope (\_SB.SYST.CL77) {
> + Device(C238) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13700)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 238, 0xFD, 2}
> + }) // Domain 238
> + }
> +
> + Device(C239) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13701)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 239, 0xFD, 2}
> + }) // Domain 239
> + }
> +}
> +
> +Scope (\_SB.SYST.CL78) {
> + Device(C240) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13800)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 240, 0xFD, 2}
> + }) // Domain 240
> + }
> +
> + Device(C241) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13801)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 241, 0xFD, 2}
> + }) // Domain 241
> + }
> +}
> +
> +Scope (\_SB.SYST.CL79) {
> + Device(C242) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13900)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 242, 0xFD, 2}
> + }) // Domain 242
> + }
> +
> + Device(C243) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13901)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 243, 0xFD, 2}
> + }) // Domain 243
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7A) {
> + Device(C244) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13a00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 244, 0xFD, 2}
> + }) // Domain 244
> + }
> +
> + Device(C245) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13a01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 245, 0xFD, 2}
> + }) // Domain 245
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7B) {
> + Device(C246) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13b00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 246, 0xFD, 2}
> + }) // Domain 246
> + }
> +
> + Device(C247) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13b01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 247, 0xFD, 2}
> + }) // Domain 247
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7C) {
> + Device(C248) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13c00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 248, 0xFD, 2}
> + }) // Domain 248
> + }
> +
> + Device(C249) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13c01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 249, 0xFD, 2}
> + }) // Domain 249
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7D) {
> + Device(C250) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13d00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 250, 0xFD, 2}
> + }) // Domain 250
> + }
> +
> + Device(C251) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13d01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 251, 0xFD, 2}
> + }) // Domain 251
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7E) {
> + Device(C252) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13e00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 252, 0xFD, 2}
> + }) // Domain 252
> + }
> +
> + Device(C253) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13e01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 253, 0xFD, 2}
> + }) // Domain 253
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7F) {
> + Device(C254) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13f00)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package() {
> + Package() {5, 0, 254, 0xFD, 2}
> + }) // Domain 254
> + }
> +
> + Device(C255) {
> + Name(_HID, "ACPI0007")
> + Name(_UID, 0x13f01)
> +
> + Method (_LPI, 0, NotSerialized) {
> + return(PLPI)
> + }
> +
> + Name(PCPC, Package() {
> + 23, // NumEntries
> + 3, // Revision
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 17)}, // Highest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 17)}, // Nominal Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 17)}, // Lowest Nonlinear Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 17)}, // Lowest Performance
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 17)}, // Guaranteed Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 17)}, // Desired Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minimum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maximum Performance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Performance Reduction Tolerance Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Counter Wraparound Time
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 17)}, // Reference Counter Register
> + ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 17)}, // Delivered Counter Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 17)}, // Performance Limited Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enable Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Selection Enable
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Autonomous Activity Window Register
> + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energy Performance Preference Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 17)}, // Reference Performance Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 17)}, // Lowest Frequency Register
> + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 17)}, // Nominal Frequency Register
> + })
> + If (LEqual(CPCE, 0x1)) {
> + Method (_CPC, 0, NotSerialized) {
> + return(PCPC)
> + }
> + }
> + //Performance State dependency
> + Name(_PSD, Package(){
> + Package() {5, 0, 255, 0xFD, 2}
> + }) // Domain 255
> + }
> +}
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
> new file mode 100644
> index 000000000000..338b1aa03cfb
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
> @@ -0,0 +1,152 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Scope(\_SB) {
> + Name (CPCE, 1) // CPPC Enable
> + Name (LPIE, 0) // LPI Enable
> +
> + Method (_OSC, 4, Serialized) { // _OSC: Operating System Capabilities
> + CreateDWordField (Arg3, 0x00, STS0)
> + CreateDWordField (Arg3, 0x04, CAP0)
> + If (LEqual(Arg0, ToUUID ("0811b06e-4a27-44f9-8d60-3cbbc22e7b48")) /* Platform-wide Capabilities */) {
> + If (LNotEqual(Arg1, One)) {
> + And(STS0, 0xFFFFFFE0, STS0)
> + Or(STS0, 0x0A, STS0) // Unrecognized Revision, OSC failure
> + } Else {
> + If (LEqual(And(CAP0, 0x100), 0x100)) {
> + And(CAP0, 0xFFFFFEFF, CAP0) // No support for OS Initiated LPI
> + And(STS0, 0xFFFFFFE0, STS0)
> + Or(STS0, 0x12, STS0)
> + }
> + If (LEqual(LPIE, 0x1)) {
> + Or(CAP0, 0x80, CAP0) // Support for LPI
> + } Else {
> + And(CAP0, 0xFFFFFF7F, CAP0) // No support for LPI
> + }
> + If (LEqual(CPCE, 0x1)) {
> + Or(CAP0, 0x40, CAP0) // Support for CPPCv2
> + } Else {
> + And(CAP0, 0xFFFFFFBF, CAP0) // No support for CPPCv2
> + }
> + }
> + } Else {
> + And(STS0, 0xFFFFFFE0, STS0)
> + Or(STS0, 0x06, STS0) // Unrecognized Revision, Unrecognized UUID
> + }
> + Return (Arg3)
> + }
> +
> + Name(CLPI, Package() {
> + 0, // Version
> + 1, // Level Index
> + 1, // Count
> + Package() {
> + 1, // Min residency (uS)
> + 1, // Wake latency (uS)
> + 1, // Flags
> + 0, // Arch Context Flags
> + 0, // Residency Counter Frequency
> + 1, // No parent state
> + 0x01000000, // Integer Entry method
> + ResourceTemplate() { // Null Residency Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + ResourceTemplate() { // Null Usage Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + "Standby",
> + },
> + })
> +
> + Name(PLPI, Package() {
> + 0, // Version
> + 2, // Level Index
> + 2, // Count
> + // WFI for CPU (NS-WFI)
> + Package() {
> + 1, // Min residency (uS)
> + 1, // Wake latency (uS)
> + 1, // Flags
> + 0, // Arch Context Flags
> + 0, // Residency Counter Frequency
> + 0, // No parent state
> + ResourceTemplate () {
> + // Register Entry method
> + Register (FFixedHW,
> + 0x20, // Bit Width
> + 0x00, // Bit Offset
> + 0xFFFFFFFF, // Address
> + 0x03, // Access Size
> + )
> + },
> + ResourceTemplate() { // Null Residency Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + ResourceTemplate() { // Null Usage Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + "WFI",
> + },
> +
> + // WFI for CPU (S-WFI)
> + Package() {
> + 1, // Min residency (uS)
> + 2900, // Wake latency (uS)
> + 1, // Flags
> + 0, // Arch Context Flags
> + 0, // Residency Counter Frequency
> + 1, // No parent state
> + ResourceTemplate () {
> + // Register Entry method
> + Register (FFixedHW,
> + 0x20, // Bit Width
> + 0x00, // Bit Offset
> + 0x01, // Address
> + 0x03, // Access Size
> + )
> + },
> + ResourceTemplate() { // Null Residency Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + ResourceTemplate() { // Null Usage Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + "Standby",
> + },
> + })
> +
> + Device (SYST) { // System state
> + Name(_HID, "ACPI0010")
> + Name(_UID, 0)
> + Name (_LPI, Package() {
> + 0, // Version
> + 0, // Level Index
> + 1, // Count
> + // Retention state for Cluster
> + Package() {
> + 100, // Min residency (uS)
> + 99, // Wake latency (uS)
> + 1, // Flags
> + 0, // Arch Context Flags
> + 100, // Residency Counter Frequency
> + 0, // No Parent State
> + 0x01000100, // Integer Entry method
> + ResourceTemplate() { // Null Residency Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + ResourceTemplate() { // Null Usage Counter
> + Register (SystemMemory, 0, 0, 0, 0)
> + },
> + "System Standby"
> + },
> + })
> + }
> +}
> +
> +Include ("CPU-S0.asi")
> +Include ("CPU-S1.asi")
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
> new file mode 100644
> index 000000000000..aa6524ef2bb4
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
> @@ -0,0 +1,670 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +//
> +// Hardware Monitor
> +Device(HM00) {
> + Name(_HID, "APMC0D29")
> + Name(_UID, "HWM0")
> + Name(_DDN, "HWM0")
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Hardware Monitor Device"))
> + Method(_STA, 0, NotSerialized) {
> + return (0xF)
> + }
> + Name (_DSD, Package () {
> + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> + Package() {
> + Package() {"pcc-channel", 14}
> + }
> + })
> +}
> +
> +//
> +// Hardware Monitor
> +Device(HM01) {
> + Name(_HID, "APMC0D29")
> + Name(_UID, "HWM1")
> + Name(_DDN, "HWM1")
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Hardware Monitor Device"))
> + Method(_STA, 0, NotSerialized) {
> + return (0xF)
> + }
> + Name (_DSD, Package () {
> + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> + Package() {
> + Package() {"pcc-channel", 29}
> + }
> + })
> +}
> +
> +//
> +// Hardware Monitor
> +Device(HM02) {
> + Name(_HID, "AMPC0005")
> + Name(_UID, "HWM2")
> + Name(_DDN, "HWM2")
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Altra SoC Hardware Monitor Device"))
> + Method(_STA, 0, NotSerialized) {
> + return (0xF)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000088900000, // AddressMinimum - MIN
> + 0x000000008891FFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000020000 // RangeLength - LEN
> + )
> + })
> +}
> +
> +//
> +// Hardware Monitor
> +Device(HM03) {
> + Name(_HID, "AMPC0005")
> + Name(_UID, "HWM3")
> + Name(_DDN, "HWM3")
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Altra SoC Hardware Monitor Device"))
> + Method(_STA, 0, NotSerialized) {
> + return (0xF)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00000000C0000000, // AddressMinimum - MIN
> + 0x00000000C001FFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000020000 // RangeLength - LEN
> + )
> + })
> +}
> +
> +//
> +// DesignWare I2C on AHBC bus
> +Device(I2C4) {
> + Name(_HID, "APMC0D0F")
> + Name(_UID, 4)
> + Name(_STR, Unicode("Altra Max I2C Device"))
> + Method(_STA, 0, NotSerialized) {
> + return (0x0f)
> + }
> + Name(_CCA, ONE)
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00001000026B0000, // AddressMinimum - MIN
> + 0x00001000026BFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000010000 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 105 }
> + })
> + Device (IPI) {
> + Name(_HID, "AMPC0004")
> + Name(_CID, "IPI0001")
> + Name(_STR, Unicode("IPMI_SSIF"))
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Method(_IFT) {
> + Return(0x04) // IPMI SSIF
> + }
> + Method(_ADR) {
> + Return(0x10) // SSIF slave address
> + }
> + Method(_SRV) {
> + Return(0x0200) // IPMI Specification Revision
> + }
> + Name(_CRS, ResourceTemplate ()
> + {
> + I2cSerialBusV2 (0x0010, ControllerInitiated, 0x00061A80,
> + AddressingMode7Bit, "\\_SB.I2C4",
> + 0x00, ResourceConsumer,, Exclusive,
> + // Vendor specific data:
> + // "BMC0",
> + // Flags (2 bytes): SMBUS variable length (Bit 0), Read Checksum (Bit 1), Verify Checksum (Bit 2)
> + RawDataBuffer () { 0x42, 0x4D, 0x43, 0x30, 0x7, 0x0 }
> + )
> + })
> + }
> + Name(SSCN, Package() { 427, 499, 0 })
> + Name(FMCN, Package() { 164, 319, 0 })
> +}
> +
> +//
> +// Report APEI Errors to GHES via SCI notification.
> +// SCI notification requires one GED and one HED Device
> +// GED = Generic Event Device (ACPI0013)
> +// HED = Hardware Error Device (PNP0C33)
> +//
> +Device(GED0) {
> + Name(_HID, "ACPI0013")
> + Name(_UID, Zero)
> + Method(_STA) {
> + Return (0xF)
> + }
> + Name(_CRS, ResourceTemplate () {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 84 } // GHES
> + })
> +}
> +
> +// Shutdown button using GED.
> +Device(GED1) {
> + Name(_HID, "ACPI0013")
> + Name(_CID, "ACPI0013")
> + Name(_UID, One)
> + Method(_STA) {
> + Return (0xF)
> + }
> + Name(_CRS, ResourceTemplate () {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 327 }
> + })
> + OperationRegion(PDDR, SystemMemory, 0x1000027B0004, 4)
> + Field(PDDR, DWordAcc, NoLock, Preserve) {
> + STDI, 8
> + }
> +
> + OperationRegion(INTE, SystemMemory, 0x1000027B0030, 4)
> + Field(INTE, DWordAcc, NoLock, Preserve) {
> + STDE, 8
> + }
> +
> + OperationRegion(INTT, SystemMemory, 0x1000027B0034, 4)
> + Field(INTT, DWordAcc, NoLock, Preserve) {
> + TYPE, 8
> + }
> +
> + OperationRegion(INTP, SystemMemory, 0x1000027B0038, 4)
> + Field(INTP, DWordAcc, NoLock, Preserve) {
> + POLA, 8
> + }
> +
> + OperationRegion(INTS, SystemMemory, 0x1000027B003c, 4)
> + Field(INTS, DWordAcc, NoLock, Preserve) {
> + STDS, 8
> + }
> +
> + OperationRegion(INTC, SystemMemory, 0x1000027B0040, 4)
> + Field(INTC, DWordAcc, NoLock, Preserve) {
> + SINT, 8
> + }
> +
> + OperationRegion(INTM, SystemMemory, 0x1000027B0044, 4)
> + Field(INTM, DWordAcc, NoLock, Preserve) {
> + MASK, 8
> + }
> +
> + Method(_INI, 0, NotSerialized) {
> + // Set level type, low active (shutdown)
> + Store (0x00, TYPE)
> + Store (0x00, POLA)
> + // Set Input type (shutdown)
> + Store (0x00, STDI)
> + // Enable interrupt (shutdown)
> + Store (0x80, STDE)
> + // Unmask the interrupt.
> + Store (0x00, MASK)
> + }
> + Method(_EVT, 1) {
> + Switch (ToInteger(Arg0)) {
> + Case (327) {
> + if (And (STDS, 0x80)) {
> + //Clear the interrupt.
> + Store (0x80, SINT)
> + // Notify OSPM the power button is pressed
> + Notify (\_SB.PWRB, 0x80)
> + }
> + }
> + }
> + }
> +}
> +
> +// Power button device description
> +Device(PWRB) {
> + Name(_HID, EISAID("PNP0C0C"))
> + Name(_ADR, 0)
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Method(_STA, 0, Notserialized) {
> + Return (0x0b)
> + }
> +}
> +
> +//
> +// UART0 PL011
> +Device(URT0) {
> + Name(_HID, "ARMH0011")
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Method(_STA, 0, NotSerialized) {
> + return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100002600000, // AddressMinimum - MIN
> + 0x0000100002600FFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000001000 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 98 }
> + })
> +} // UART0
> +
> +//
> +// UART2 PL011
> +Device(URT2) {
> + Name(_HID, "ARMH0011")
> + Name(_UID, 1)
> + Name(_CCA, ONE)
> + Method(_STA, 0, NotSerialized) {
> + return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100002620000, // AddressMinimum - MIN
> + 0x0000100002620FFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000001000 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 100 }
> + })
> +} // UART1
> +
> +Device(HED0)
> +{
> + Name(_HID, EISAID("PNP0C33"))
> + Name(_UID, Zero)
> +}
> +
> +Device(NVDR) {
> + Name(_HID, "ACPI0012")
> + Method(_STA, 0, NotSerialized) {
> + return (0xf)
> + }
> + Method (_DSM, 0x4, Serialized) {
> + // Not support any functions for now
> + Return (Buffer() {0})
> + }
> + Device (NVD1) {
> + Name(_ADR, 0x0330) //NFIT Device Handle (SK0, MCU3, Channel 3, Slot 0)
> + Name(SMRT, Buffer(13) {0})
> + CreateDWordField(SMRT, 0, BSTA)
> + CreateWordField(SMRT, 4, BHTH)
> + CreateWordField(SMRT, 6, BTMP)
> + CreateByteField(SMRT, 8, BETH)
> + CreateByteField(SMRT, 9, BWTH)
> + CreateByteField(SMRT, 10, BNLF)
> + OperationRegion(BUF1, SystemMemory, 0x88980000, 16)
> + Field (BUF1, DWordAcc, NoLock, Preserve) {
> + STAT, 32, //Status
> + HLTH, 16, //Module Health
> + CTMP, 16, //Module Current Status
> + ETHS, 8, //Error Threshold Status
> + WTHS, 8, //Warning Threshold Status
> + NVLF, 8, //NVM Lifetime
> + , 40 //Reserve
> + }
> + Method (_DSM, 0x4, Serialized) {
> + //Accept only MSF Family type NVDIMM DSM functions
> + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
> + //Handle Func 0 query implemented commands
> + If(LEqual(Arg2, 0)) {
> + //Check revision and returned proper implemented commands
> + //Support only health check for now
> + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
> + }
> + //Handle MSF DSM Func 11 Get Smart and Health Info
> + If(LEqual(Arg2, 11)) {
> + Store(\_SB.NVDR.NVD1.STAT, BSTA)
> + Store(\_SB.NVDR.NVD1.HLTH, BHTH)
> + Store(\_SB.NVDR.NVD1.CTMP, BTMP)
> + Store(\_SB.NVDR.NVD1.ETHS, BETH)
> + Store(\_SB.NVDR.NVD1.WTHS, BWTH)
> + Store(\_SB.NVDR.NVD1.NVLF, BNLF)
> + Return (SMRT)
> + }
> + }
> +
> + Return (Buffer() {0})
> + }
> + Method(_STA, 0, NotSerialized) {
> + return (0xf)
> + }
> + }
> + Device (NVD2) {
> + Name(_ADR, 0x0770) //NFIT Device Handle (SK0, MCU7, Channel 7, Slot 0)
> + Name(SMRT, Buffer(13) {0})
> + CreateDWordField(SMRT, 0, BSTA)
> + CreateWordField(SMRT, 4, BHTH)
> + CreateWordField(SMRT, 6, BTMP)
> + CreateByteField(SMRT, 8, BETH)
> + CreateByteField(SMRT, 9, BWTH)
> + CreateByteField(SMRT, 10, BNLF)
> + OperationRegion(BUF1, SystemMemory, 0x88988000, 16)
> + Field (BUF1, DWordAcc, NoLock, Preserve) {
> + STAT, 32, //Status
> + HLTH, 16, //Module Health
> + CTMP, 16, //Module Current Status
> + ETHS, 8, //Error Threshold Status
> + WTHS, 8, //Warning Threshold Status
> + NVLF, 8, //NVM Lifetime
> + , 40 //Reserve
> + }
> + Method (_DSM, 0x4, Serialized) {
> + //Accept only MSF Family type NVDIMM DSM functions
> + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
> + //Handle Func 0 query implemented commands
> + If(LEqual(Arg2, 0)) {
> + //Check revision and returned proper implemented commands
> + //Support only health check for now
> + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
> + }
> + //Handle MSF DSM Func 11 Get Smart and Health Info
> + If(LEqual(Arg2, 11)) {
> + Store(\_SB.NVDR.NVD2.STAT, BSTA)
> + Store(\_SB.NVDR.NVD2.HLTH, BHTH)
> + Store(\_SB.NVDR.NVD2.CTMP, BTMP)
> + Store(\_SB.NVDR.NVD2.ETHS, BETH)
> + Store(\_SB.NVDR.NVD2.WTHS, BWTH)
> + Store(\_SB.NVDR.NVD2.NVLF, BNLF)
> + Return (SMRT)
> + }
> + }
> +
> + Return (Buffer() {0})
> + }
> + Method(_STA, 0, NotSerialized) {
> + return (0xf)
> + }
> + }
> + Device (NVD3) {
> + Name(_ADR, 0x1330) //NFIT Device Handle (SK1, MCU3, Channel 3, Slot 0)
> + Name(SMRT, Buffer(13) {0})
> + CreateDWordField(SMRT, 0, BSTA)
> + CreateWordField(SMRT, 4, BHTH)
> + CreateWordField(SMRT, 6, BTMP)
> + CreateByteField(SMRT, 8, BETH)
> + CreateByteField(SMRT, 9, BWTH)
> + CreateByteField(SMRT, 10, BNLF)
> + OperationRegion(BUF1, SystemMemory, 0xC0080000, 16)
> + Field (BUF1, DWordAcc, NoLock, Preserve) {
> + STAT, 32, //Status
> + HLTH, 16, //Module Health
> + CTMP, 16, //Module Current Status
> + ETHS, 8, //Error Threshold Status
> + WTHS, 8, //Warning Threshold Status
> + NVLF, 8, //NVM Lifetime
> + , 40 //Reserve
> + }
> + Method (_DSM, 0x4, Serialized) {
> + //Accept only MSF Family type NVDIMM DSM functions
> + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
> + //Handle Func 0 query implemented commands
> + If(LEqual(Arg2, 0)) {
> + //Check revision and returned proper implemented commands
> + //Support only health check for now
> + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
> + }
> + //Handle MSF DSM Func 11 Get Smart and Health Info
> + If(LEqual(Arg2, 11)) {
> + Store(\_SB.NVDR.NVD3.STAT, BSTA)
> + Store(\_SB.NVDR.NVD3.HLTH, BHTH)
> + Store(\_SB.NVDR.NVD3.CTMP, BTMP)
> + Store(\_SB.NVDR.NVD3.ETHS, BETH)
> + Store(\_SB.NVDR.NVD3.WTHS, BWTH)
> + Store(\_SB.NVDR.NVD3.NVLF, BNLF)
> + Return (SMRT)
> + }
> + }
> + Return (Buffer() {0})
> + }
> + Method(_STA, 0, NotSerialized) {
> + return (0xf)
> + }
> + }
> + Device (NVD4) {
> + Name(_ADR, 0x1770) //NFIT Device Handle (SK1, MCU7, Channel 7, Slot 0)
> + Name(SMRT, Buffer(13) {0})
> + CreateDWordField(SMRT, 0, BSTA)
> + CreateWordField(SMRT, 4, BHTH)
> + CreateWordField(SMRT, 6, BTMP)
> + CreateByteField(SMRT, 8, BETH)
> + CreateByteField(SMRT, 9, BWTH)
> + CreateByteField(SMRT, 10, BNLF)
> + OperationRegion(BUF1, SystemMemory, 0xC0088000, 16)
> + Field (BUF1, DWordAcc, NoLock, Preserve) {
> + STAT, 32, //Status
> + HLTH, 16, //Module Health
> + CTMP, 16, //Module Current Status
> + ETHS, 8, //Error Threshold Status
> + WTHS, 8, //Warning Threshold Status
> + NVLF, 8, //NVM Lifetime
> + , 40 //Reserve
> + }
> + Method (_DSM, 0x4, Serialized) {
> + //Accept only MSF Family type NVDIMM DSM functions
> + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) {
> + //Handle Func 0 query implemented commands
> + If(LEqual(Arg2, 0)) {
> + //Check revision and returned proper implemented commands
> + //Support only health check for now
> + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1
> + }
> + //Handle MSF DSM Func 11 Get Smart and Health Info
> + If(LEqual(Arg2, 11)) {
> + Store(\_SB.NVDR.NVD4.STAT, BSTA)
> + Store(\_SB.NVDR.NVD4.HLTH, BHTH)
> + Store(\_SB.NVDR.NVD4.CTMP, BTMP)
> + Store(\_SB.NVDR.NVD4.ETHS, BETH)
> + Store(\_SB.NVDR.NVD4.WTHS, BWTH)
> + Store(\_SB.NVDR.NVD4.NVLF, BNLF)
> + Return (SMRT)
> + }
> + }
> + Return (Buffer() {0})
> + }
> + Method(_STA, 0, NotSerialized) {
> + return (0xf)
> + }
> + }
> +}
> +
> +Device(TPM0) {
> + Name (_HID, "NNNN0000")
> + Name (_CID, "MSFT0101")
> + Name (_UID, 0)
> + Name (CRBB, 0x10000000)
> + Name (CRBL, 0x10000000)
> +
> + Name (RBUF, ResourceTemplate ()
> + {
> + Memory32Fixed (ReadWrite, 0x88500000, 0x1000, PCRE)
> + })
> +
> + Method (_CRS, 0x0, Serialized) {
> +
> + // Declare fields in PCRE
> + CreateDWordField(RBUF, ^PCRE._BAS, BASE)
> + CreateDWordField(RBUF, ^PCRE._LEN, LENG)
> +
> + // Store Updatable values into them
> + Store(CRBB, BASE)
> + Store(CRBL, LENG)
> +
> + Return (RBUF)
> + }
> +
> + Method(_STR,0)
> + {
> + Return (Unicode ("TPM 2.0 Device"))
> + }
> +
> + Method (_STA, 0)
> + {
> + if(TPMF)
> + {
> + Return (0x0f) //Enable resources
> + }
> + Return (0x0)
> + }
> +
> + //
> + // Add opregions for doorbell and PPI CRB
> + // The addresses for these operation regions should be patched
> + // with information from HOB
> + //
> + OperationRegion (TPMD, SystemMemory, 0x100000542010, 0x04)
> + Field (TPMD, DWordAcc, NoLock, Preserve) {
> + DBB0, 32 // Doorbell out register
> + }
> +
> + // PPI request CRB
> + OperationRegion (TPMC, SystemMemory, 0x88542038, 0x0C)
> + Field (TPMC, DWordAcc, NoLock, Preserve) {
> + PPIO, 32, // current PPI request
> + PPIR, 32, // last PPI request
> + PPIS, 32, // last PPI request status
> + }
> +
> + // Create objects to hold return values
> + Name (PKG2, Package (2) { Zero, Zero })
> + Name (PKG3, Package (3) { Zero, Zero, Zero })
> +
> + Method (_DSM, 0x4, Serialized) {
> + // Handle Physical Presence Interface(PPI) DSM method
> + If (LEqual (Arg0, ToUUID ("3DDDFAA6-361B-4eb4-A424-8D10089D1653"))) {
> + Switch (ToInteger (Arg2)) {
> + //
> + // Standard DSM query
> + //
> + Case (0) {
> + Return (Buffer () { 0xFF, 0x01 })
> + }
> +
> + //
> + // Get Physical Presence Interface Version - support 1.3
> + //
> + Case (1) {
> + Return ("1.3")
> + }
> +
> + //
> + // Submit TPM operation to pre-OS (Deprecated)
> + //
> + Case (2) {
> + Return (One) // Not supported
> + }
> +
> + //
> + // Get pending TPM operation requested by OS
> + //
> + Case (3) {
> + PKG2[Zero] = Zero // Success
> + PKG2[One] = PPIO // current PPI request
> + Return (PKG2)
> + }
> +
> + //
> + // Platform-specific action to transition to Pre-OS env
> + //
> + Case (4) {
> + Return (0x2) // Reboot
> + }
> +
> + //
> + // TPM operation Response to OS
> + //
> + Case (5) {
> + PKG3[Zero] = Zero // Success
> + PKG3[One] = PPIR // last PPI request
> + PKG3[2] = PPIS // last PPI request status
> + Return (PKG3)
> + }
> +
> + //
> + // Preferred language code (Deprecated)
> + //
> + Case (6) {
> + Return (0x3) // Not implemented
> + }
> +
> + //
> + // Submit TPM operation to pre-OS env 2
> + //
> + Case (7) {
> + Local0 = DerefOf (Arg3 [Zero])
> + // Write current PPI request and then to the doorbell
> + Store (Local0, PPIO)
> + Store (0x6a000000, DBB0) // MsgType: 6, Handler: 0xa (TPM-PPI)
> + Return (Zero)
> + }
> +
> + //
> + // Get User confirmation status for op
> + //
> + Case (8) {
> + Return (0x4) // Allowed and physically present user not required
> + }
> + }
> + }
> + Return (Buffer () {0})
> + }
> +}
> +
> +//
> +// LED Device
> +Device(LED) {
> + Name(_HID, "AMPC0008")
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Altra LED Device"))
> +
> + Name (_DSD, Package () {
> + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> + Package () {
> + Package () { "uuid", Package (4) { 0x5598273c, 0xa49611ea, 0xbb370242, 0xac130002 }},
> + }
> + })
> +}
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
> new file mode 100644
> index 000000000000..bc83b3ca42ba
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
> @@ -0,0 +1,39 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +DefinitionBlock("Dsdt.aml", "DSDT", 0x02, "Ampere", "Jade", 1) {
> + //
> + // Board Model
> + Name(\BDMD, "Altra Max Jade Board")
> + Name(TPMF, 0) // TPM presence
> + Name(AERF, 0) // PCIe AER Firmware-First
> +
> + Scope(\_SB) {
> +
> + Include ("CommonDevices.asi")
> +
> + Scope(\_SB.GED0) {
> + Method(_EVT, 1, Serialized) {
> + Switch (ToInteger(Arg0)) {
> + Case (84) { // GHES interrupt
> + Notify (HED0, 0x80)
> + }
> + }
> + }
> + }
> +
> + Include ("PCI-S0.Rca01.asi")
> + Include ("PCI-S0.asi")
> + Include ("PCI-S1.asi")
> + Include ("PCI-PDRC.asi")
> + }
> +
> + Include ("CPU.asi")
> + Include ("PMU.asi")
> +
> +} // DSDT
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
> new file mode 100644
> index 000000000000..7c51c1546b53
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
> @@ -0,0 +1,217 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> + // Motherboard resource consumption for PCIE resource reservation
> + // as upstream discussion "ACPI namespace details for ARM64"
> + Device (PDRC) {
> + Name (_HID, EISAID("PNP0C02"))
> + Name (_UID, 1)
> + // S0 Start here
> + Name (PDRS, ResourceTemplate() {
> + QWordMemory ( // PCIE0 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00003BFFF0000000, // AddressMinimum - MIN
> + 0x00003BFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE1 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00003FFFF0000000, // AddressMinimum - MIN
> + 0x00003FFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE2 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000023FFF0000000, // AddressMinimum - MIN
> + 0x000023FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE3 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000027FFF0000000, // AddressMinimum - MIN
> + 0x000027FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE4 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00002BFFF0000000, // AddressMinimum - MIN
> + 0x00002BFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE5 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00002FFFF0000000, // AddressMinimum - MIN
> + 0x00002FFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + // S1 Start here
> + QWordMemory ( // PCIE6 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00007BFFF0000000, // AddressMinimum - MIN
> + 0x00007BFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE7 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00007FFFF0000000, // AddressMinimum - MIN
> + 0x00007FFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE8 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000063FFF0000000, // AddressMinimum - MIN
> + 0x000063FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIE9 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000067FFF0000000, // AddressMinimum - MIN
> + 0x000067FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> + QWordMemory ( // PCIEA 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00006BFFF0000000, // AddressMinimum - MIN
> + 0x00006BFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIEB 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00006FFFF0000000, // AddressMinimum - MIN
> + 0x00006FFFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIEC 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000033FFF0000000, // AddressMinimum - MIN
> + 0x000033FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory ( // PCIED 256M CFG region for ECAM
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x000037FFF0000000, // AddressMinimum - MIN
> + 0x000037FFFFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> + })
> +
> + // Current Resource Settings
> + Method (_CRS, 0, Serialized) {
> + Return (PDRS)
> + }
> + }
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
> new file mode 100644
> index 000000000000..7d8c21f5a1de
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
> @@ -0,0 +1,669 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> + // PCI0 RCA0
> + Device (PCI0) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 12)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI0")
> + Name (_STR, Unicode("PCIe 0 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 128/129/130/131 respectively. PCI0 RCA0
> + //
> + Package() {0x0001FFFF, 0, 0, 128},
> + Package() {0x0001FFFF, 1, 0, 129},
> + Package() {0x0001FFFF, 2, 0, 130},
> + Package() {0x0001FFFF, 3, 0, 131},
> + Package() {0x0002FFFF, 0, 0, 128},
> + Package() {0x0002FFFF, 1, 0, 129},
> + Package() {0x0002FFFF, 2, 0, 130},
> + Package() {0x0002FFFF, 3, 0, 131},
> + Package() {0x0003FFFF, 0, 0, 128},
> + Package() {0x0003FFFF, 1, 0, 129},
> + Package() {0x0003FFFF, 2, 0, 130},
> + Package() {0x0003FFFF, 3, 0, 131},
> + Package() {0x0004FFFF, 0, 0, 128},
> + Package() {0x0004FFFF, 1, 0, 129},
> + Package() {0x0004FFFF, 2, 0, 130},
> + Package() {0x0004FFFF, 3, 0, 131},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x33FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000040000000, // AddressMinimum - MIN
> + 0x000000004FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000300000000000, // AddressMinimum - MIN
> + 0x000033FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI0 RCA0
> +
> + // PCI1 RCA1
> + Device (PCI1) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 13)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI1")
> + Name (_STR, Unicode("PCIe 1 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 132/133/134/135 respectively. PCI1 RCA1
> + //
> + Package() {0x0001FFFF, 0, 0, 132},
> + Package() {0x0001FFFF, 1, 0, 133},
> + Package() {0x0001FFFF, 2, 0, 134},
> + Package() {0x0001FFFF, 3, 0, 135},
> + Package() {0x0002FFFF, 0, 0, 132},
> + Package() {0x0002FFFF, 1, 0, 133},
> + Package() {0x0002FFFF, 2, 0, 134},
> + Package() {0x0002FFFF, 3, 0, 135},
> + Package() {0x0003FFFF, 0, 0, 132},
> + Package() {0x0003FFFF, 1, 0, 133},
> + Package() {0x0003FFFF, 2, 0, 134},
> + Package() {0x0003FFFF, 3, 0, 135},
> + Package() {0x0004FFFF, 0, 0, 132},
> + Package() {0x0004FFFF, 1, 0, 133},
> + Package() {0x0004FFFF, 2, 0, 134},
> + Package() {0x0004FFFF, 3, 0, 135},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x37FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000050000000, // AddressMinimum - MIN
> + 0x000000005FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000010000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + Cacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000340000000000, // AddressMinimum - MIN
> + 0x000037FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI1 RCA1
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
> new file mode 100644
> index 000000000000..6dcf8b7170be
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
> @@ -0,0 +1,2041 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> + // PCI2 RCA2
> + Device (PCI2) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF)
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 1)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI2")
> + Name (_STR, Unicode("PCIe 2 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 136/137/138/139 respectively. PCI2 RCA2
> + //
> + Package() {0x0001FFFF, 0, 0, 136},
> + Package() {0x0001FFFF, 1, 0, 137},
> + Package() {0x0001FFFF, 2, 0, 138},
> + Package() {0x0001FFFF, 3, 0, 139},
> + Package() {0x0002FFFF, 0, 0, 136},
> + Package() {0x0002FFFF, 1, 0, 137},
> + Package() {0x0002FFFF, 2, 0, 138},
> + Package() {0x0002FFFF, 3, 0, 139},
> + Package() {0x0003FFFF, 0, 0, 136},
> + Package() {0x0003FFFF, 1, 0, 137},
> + Package() {0x0003FFFF, 2, 0, 138},
> + Package() {0x0003FFFF, 3, 0, 139},
> + Package() {0x0004FFFF, 0, 0, 136},
> + Package() {0x0004FFFF, 1, 0, 137},
> + Package() {0x0004FFFF, 2, 0, 138},
> + Package() {0x0004FFFF, 3, 0, 139},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x3BFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE80000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000030000000, // AddressMinimum - MIN
> + 0x0000000037FFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000380000000000, // AddressMinimum - MIN
> + 0x00003BFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP, 0) // PCI _OSC Support Field value
> + Name (CTRL, 0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3,0,CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI2 RCA2
> +
> + // PCI3 RCA3
> + Device (PCI3) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF)
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 0)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI3")
> + Name (_STR, Unicode("PCIe 3 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 140/141/142/143 respectively. PCI3 RCA3
> + //
> + Package() {0x0001FFFF, 0, 0, 140},
> + Package() {0x0001FFFF, 1, 0, 141},
> + Package() {0x0001FFFF, 2, 0, 142},
> + Package() {0x0001FFFF, 3, 0, 143},
> + Package() {0x0002FFFF, 0, 0, 140},
> + Package() {0x0002FFFF, 1, 0, 141},
> + Package() {0x0002FFFF, 2, 0, 142},
> + Package() {0x0002FFFF, 3, 0, 143},
> + Package() {0x0003FFFF, 0, 0, 140},
> + Package() {0x0003FFFF, 1, 0, 141},
> + Package() {0x0003FFFF, 2, 0, 142},
> + Package() {0x0003FFFF, 3, 0, 143},
> + Package() {0x0004FFFF, 0, 0, 140},
> + Package() {0x0004FFFF, 1, 0, 141},
> + Package() {0x0004FFFF, 2, 0, 142},
> + Package() {0x0004FFFF, 3, 0, 143},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x3FFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE00000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000038000000, // AddressMinimum - MIN
> + 0x000000003FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00003C0000000000, // AddressMinimum - MIN
> + 0x00003FFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP, 0) // PCI _OSC Support Field value
> + Name (CTRL, 0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI3 RCA3
> +
> + // PCI4 RCA4
> + Device (PCI4) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 2)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI4")
> + Name (_STR, Unicode("PCIe 4 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 144/145/146/147 respectively. PCI4 RCA4
> + //
> + Package() {0x0001FFFF, 0, 0, 144},
> + Package() {0x0001FFFF, 1, 0, 145},
> + Package() {0x0001FFFF, 2, 0, 146},
> + Package() {0x0001FFFF, 3, 0, 147},
> + Package() {0x0002FFFF, 0, 0, 144},
> + Package() {0x0002FFFF, 1, 0, 145},
> + Package() {0x0002FFFF, 2, 0, 146},
> + Package() {0x0002FFFF, 3, 0, 147},
> + Package() {0x0003FFFF, 0, 0, 144},
> + Package() {0x0003FFFF, 1, 0, 145},
> + Package() {0x0003FFFF, 2, 0, 146},
> + Package() {0x0003FFFF, 3, 0, 147},
> + Package() {0x0004FFFF, 0, 0, 144},
> + Package() {0x0004FFFF, 1, 0, 145},
> + Package() {0x0004FFFF, 2, 0, 146},
> + Package() {0x0004FFFF, 3, 0, 147},
> + Package() {0x0005FFFF, 0, 0, 144},
> + Package() {0x0005FFFF, 1, 0, 145},
> + Package() {0x0005FFFF, 2, 0, 146},
> + Package() {0x0005FFFF, 3, 0, 147},
> + Package() {0x0006FFFF, 0, 0, 144},
> + Package() {0x0006FFFF, 1, 0, 145},
> + Package() {0x0006FFFF, 2, 0, 146},
> + Package() {0x0006FFFF, 3, 0, 147},
> + Package() {0x0007FFFF, 0, 0, 144},
> + Package() {0x0007FFFF, 1, 0, 145},
> + Package() {0x0007FFFF, 2, 0, 146},
> + Package() {0x0007FFFF, 3, 0, 147},
> + Package() {0x0008FFFF, 0, 0, 144},
> + Package() {0x0008FFFF, 1, 0, 145},
> + Package() {0x0008FFFF, 2, 0, 146},
> + Package() {0x0008FFFF, 3, 0, 147},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x23FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FEC0000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000004000000, // AddressMinimum - MIN
> + 0x0000000007FFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000004000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000200000000000, // AddressMinimum - MIN
> + 0x000023FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2))
> + {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI4 RCA4
> +
> + // PCI5 RCA5
> + Device (PCI5) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF)
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID,"PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 3)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI5")
> + Name (_STR, Unicode("PCIe 5 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 148/149/150/151 respectively. PCI5 RCA5
> + //
> + Package() {0x0001FFFF, 0, 0, 148},
> + Package() {0x0001FFFF, 1, 0, 149},
> + Package() {0x0001FFFF, 2, 0, 150},
> + Package() {0x0001FFFF, 3, 0, 151},
> + Package() {0x0002FFFF, 0, 0, 148},
> + Package() {0x0002FFFF, 1, 0, 149},
> + Package() {0x0002FFFF, 2, 0, 150},
> + Package() {0x0002FFFF, 3, 0, 151},
> + Package() {0x0003FFFF, 0, 0, 148},
> + Package() {0x0003FFFF, 1, 0, 149},
> + Package() {0x0003FFFF, 2, 0, 150},
> + Package() {0x0003FFFF, 3, 0, 151},
> + Package() {0x0004FFFF, 0, 0, 148},
> + Package() {0x0004FFFF, 1, 0, 149},
> + Package() {0x0004FFFF, 2, 0, 150},
> + Package() {0x0004FFFF, 3, 0, 151},
> + Package() {0x0005FFFF, 0, 0, 148},
> + Package() {0x0005FFFF, 1, 0, 149},
> + Package() {0x0005FFFF, 2, 0, 150},
> + Package() {0x0005FFFF, 3, 0, 151},
> + Package() {0x0006FFFF, 0, 0, 148},
> + Package() {0x0006FFFF, 1, 0, 149},
> + Package() {0x0006FFFF, 2, 0, 150},
> + Package() {0x0006FFFF, 3, 0, 151},
> + Package() {0x0007FFFF, 0, 0, 148},
> + Package() {0x0007FFFF, 1, 0, 149},
> + Package() {0x0007FFFF, 2, 0, 150},
> + Package() {0x0007FFFF, 3, 0, 151},
> + Package() {0x0008FFFF, 0, 0, 148},
> + Package() {0x0008FFFF, 1, 0, 149},
> + Package() {0x0008FFFF, 2, 0, 150},
> + Package() {0x0008FFFF, 3, 0, 151},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x27FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FF00000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000008000000, // AddressMinimum - MIN
> + 0x000000000FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000240000000000, // AddressMinimum - MIN
> + 0x000027FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP, 0) // PCI _OSC Support Field value
> + Name (CTRL, 0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2))
> + {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI5 RCA5
> +
> +
> + // PCI6 RCA6
> + Device (PCI6) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID,"PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID,"PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 4)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI6")
> + Name (_STR, Unicode("PCIe 6 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 152/153/154/155 respectively. PCI6 RCA6
> + //
> + Package() {0x0001FFFF, 0, 0, 152},
> + Package() {0x0001FFFF, 1, 0, 153},
> + Package() {0x0001FFFF, 2, 0, 154},
> + Package() {0x0001FFFF, 3, 0, 155},
> + Package() {0x0002FFFF, 0, 0, 152},
> + Package() {0x0002FFFF, 1, 0, 153},
> + Package() {0x0002FFFF, 2, 0, 154},
> + Package() {0x0002FFFF, 3, 0, 155},
> + Package() {0x0003FFFF, 0, 0, 152},
> + Package() {0x0003FFFF, 1, 0, 153},
> + Package() {0x0003FFFF, 2, 0, 154},
> + Package() {0x0003FFFF, 3, 0, 155},
> + Package() {0x0004FFFF, 0, 0, 152},
> + Package() {0x0004FFFF, 1, 0, 153},
> + Package() {0x0004FFFF, 2, 0, 154},
> + Package() {0x0004FFFF, 3, 0, 155},
> + Package() {0x0005FFFF, 0, 0, 152},
> + Package() {0x0005FFFF, 1, 0, 153},
> + Package() {0x0005FFFF, 2, 0, 154},
> + Package() {0x0005FFFF, 3, 0, 155},
> + Package() {0x0006FFFF, 0, 0, 152},
> + Package() {0x0006FFFF, 1, 0, 153},
> + Package() {0x0006FFFF, 2, 0, 154},
> + Package() {0x0006FFFF, 3, 0, 155},
> + Package() {0x0007FFFF, 0, 0, 152},
> + Package() {0x0007FFFF, 1, 0, 153},
> + Package() {0x0007FFFF, 2, 0, 154},
> + Package() {0x0007FFFF, 3, 0, 155},
> + Package() {0x0008FFFF, 0, 0, 152},
> + Package() {0x0008FFFF, 1, 0, 153},
> + Package() {0x0008FFFF, 2, 0, 154},
> + Package() {0x0008FFFF, 3, 0, 155},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x2BFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000010000000, // AddressMinimum - MIN
> + 0x0000000017FFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000280000000000, // AddressMinimum - MIN
> + 0x00002BFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3,0,CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3,4,CDW2)
> + CreateDWordField (Arg3,8,CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2,SUPP)
> + Store (CDW3,CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL,0x1E,CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1,One)) {
> + Or (CDW1,0x08,CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3,CTRL)) {
> + Or (CDW1,0x10,CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL,CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1,4,CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI6 RCA6
> +
> + // PCI7 RCA7
> + Device (PCI7) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID,"PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID,"PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 5)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCI7")
> + Name (_STR, Unicode("PCIe 7 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 156/157/158/159 respectively. PCI7 RCA7
> + //
> + Package() {0x0001FFFF, 0, 0, 156},
> + Package() {0x0001FFFF, 1, 0, 157},
> + Package() {0x0001FFFF, 2, 0, 158},
> + Package() {0x0001FFFF, 3, 0, 159},
> + Package() {0x0002FFFF, 0, 0, 156},
> + Package() {0x0002FFFF, 1, 0, 157},
> + Package() {0x0002FFFF, 2, 0, 158},
> + Package() {0x0002FFFF, 3, 0, 159},
> + Package() {0x0003FFFF, 0, 0, 156},
> + Package() {0x0003FFFF, 1, 0, 157},
> + Package() {0x0003FFFF, 2, 0, 158},
> + Package() {0x0003FFFF, 3, 0, 159},
> + Package() {0x0004FFFF, 0, 0, 156},
> + Package() {0x0004FFFF, 1, 0, 157},
> + Package() {0x0004FFFF, 2, 0, 158},
> + Package() {0x0004FFFF, 3, 0, 159},
> + Package() {0x0005FFFF, 0, 0, 156},
> + Package() {0x0005FFFF, 1, 0, 157},
> + Package() {0x0005FFFF, 2, 0, 158},
> + Package() {0x0005FFFF, 3, 0, 159},
> + Package() {0x0006FFFF, 0, 0, 156},
> + Package() {0x0006FFFF, 1, 0, 157},
> + Package() {0x0006FFFF, 2, 0, 158},
> + Package() {0x0006FFFF, 3, 0, 159},
> + Package() {0x0007FFFF, 0, 0, 156},
> + Package() {0x0007FFFF, 1, 0, 157},
> + Package() {0x0007FFFF, 2, 0, 158},
> + Package() {0x0007FFFF, 3, 0, 159},
> + Package() {0x0008FFFF, 0, 0, 156},
> + Package() {0x0008FFFF, 1, 0, 157},
> + Package() {0x0008FFFF, 2, 0, 158},
> + Package() {0x0008FFFF, 3, 0, 159},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x2FFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000018000000, // AddressMinimum - MIN
> + 0x000000001FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00002C0000000000, // AddressMinimum - MIN
> + 0x00002FFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3,0,CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3,4,CDW2)
> + CreateDWordField (Arg3,8,CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2,SUPP)
> + Store (CDW3,CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL,0x1E,CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1,One)) {
> + Or (CDW1,0x08,CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3,CTRL)) {
> + Or (CDW1,0x10,CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL,CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1,4,CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCI7 RCA7
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
> new file mode 100644
> index 000000000000..17c66051a06e
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
> @@ -0,0 +1,2051 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> + //
> + // S1 Start here
> + //
> +
> + // PCIE6 S1 RCA2
> + Device (PCIA) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID,"PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF)
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID,"PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 6)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCIA")
> + Name (_STR, Unicode("PCIe 10 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 136/137/138/139 + 320 respectively. PCIA RCA2
> + //
> + Package() {0x0001FFFF, 0, 0, 456},
> + Package() {0x0001FFFF, 1, 0, 457},
> + Package() {0x0001FFFF, 2, 0, 458},
> + Package() {0x0001FFFF, 3, 0, 459},
> + Package() {0x0002FFFF, 0, 0, 456},
> + Package() {0x0002FFFF, 1, 0, 457},
> + Package() {0x0002FFFF, 2, 0, 458},
> + Package() {0x0002FFFF, 3, 0, 459},
> + Package() {0x0003FFFF, 0, 0, 456},
> + Package() {0x0003FFFF, 1, 0, 457},
> + Package() {0x0003FFFF, 2, 0, 458},
> + Package() {0x0003FFFF, 3, 0, 459},
> + Package() {0x0004FFFF, 0, 0, 456},
> + Package() {0x0004FFFF, 1, 0, 457},
> + Package() {0x0004FFFF, 2, 0, 458},
> + Package() {0x0004FFFF, 3, 0, 459},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x7BFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FF80000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000070000000, // AddressMinimum - MIN
> + 0x0000000077FFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000780000000000, // AddressMinimum - MIN
> + 0x00007BFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3,0,CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3,4,CDW2)
> + CreateDWordField (Arg3,8,CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2,SUPP)
> + Store (CDW3,CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL,0x1E,CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1,One)) {
> + Or (CDW1,0x08,CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3,CTRL)) {
> + Or (CDW1,0x10,CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL,CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1,4,CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCIA RCA2
> +
> + // PCIEB RCA3
> + Device (PCIB) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID,"PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF)
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID,"PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 7)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCIB")
> + Name (_STR, Unicode("PCIe 11 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 140/141/142/143 + 320 respectively. PCIB RCA3
> + //
> + Package() {0x0001FFFF, 0, 0, 460},
> + Package() {0x0001FFFF, 1, 0, 461},
> + Package() {0x0001FFFF, 2, 0, 462},
> + Package() {0x0001FFFF, 3, 0, 463},
> + Package() {0x0002FFFF, 0, 0, 460},
> + Package() {0x0002FFFF, 1, 0, 461},
> + Package() {0x0002FFFF, 2, 0, 462},
> + Package() {0x0002FFFF, 3, 0, 463},
> + Package() {0x0003FFFF, 0, 0, 460},
> + Package() {0x0003FFFF, 1, 0, 461},
> + Package() {0x0003FFFF, 2, 0, 462},
> + Package() {0x0003FFFF, 3, 0, 463},
> + Package() {0x0004FFFF, 0, 0, 460},
> + Package() {0x0004FFFF, 1, 0, 461},
> + Package() {0x0004FFFF, 2, 0, 462},
> + Package() {0x0004FFFF, 3, 0, 463},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x7FFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FFC0000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000078000000, // AddressMinimum - MIN
> + 0x000000007FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00007C0000000000, // AddressMinimum - MIN
> + 0x00007FFFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3,0,CDW1)
> + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3,4,CDW2)
> + CreateDWordField (Arg3,8,CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2,SUPP)
> + Store (CDW3,CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL,0x1E,CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1,One)) {
> + Or (CDW1,0x08,CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3,CTRL)) {
> + Or (CDW1,0x10,CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL,CDW3)
> + Return (Arg3)
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1,4,CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCIB RCA3
> +
> + // PCIC RCA4
> + Device (PCIC) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 8)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCIC")
> + Name (_STR, Unicode("PCIe 12 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 144/145/146/147 + 320 respectively. PCIC RCA4
> + //
> + Package() {0x0001FFFF, 0, 0, 464},
> + Package() {0x0001FFFF, 1, 0, 465},
> + Package() {0x0001FFFF, 2, 0, 466},
> + Package() {0x0001FFFF, 3, 0, 467},
> + Package() {0x0002FFFF, 0, 0, 464},
> + Package() {0x0002FFFF, 1, 0, 465},
> + Package() {0x0002FFFF, 2, 0, 466},
> + Package() {0x0002FFFF, 3, 0, 467},
> + Package() {0x0003FFFF, 0, 0, 464},
> + Package() {0x0003FFFF, 1, 0, 465},
> + Package() {0x0003FFFF, 2, 0, 466},
> + Package() {0x0003FFFF, 3, 0, 467},
> + Package() {0x0004FFFF, 0, 0, 464},
> + Package() {0x0004FFFF, 1, 0, 465},
> + Package() {0x0004FFFF, 2, 0, 466},
> + Package() {0x0004FFFF, 3, 0, 467},
> + Package() {0x0005FFFF, 0, 0, 464},
> + Package() {0x0005FFFF, 1, 0, 465},
> + Package() {0x0005FFFF, 2, 0, 466},
> + Package() {0x0005FFFF, 3, 0, 467},
> + Package() {0x0006FFFF, 0, 0, 464},
> + Package() {0x0006FFFF, 1, 0, 465},
> + Package() {0x0006FFFF, 2, 0, 466},
> + Package() {0x0006FFFF, 3, 0, 467},
> + Package() {0x0007FFFF, 0, 0, 464},
> + Package() {0x0007FFFF, 1, 0, 465},
> + Package() {0x0007FFFF, 2, 0, 466},
> + Package() {0x0007FFFF, 3, 0, 467},
> + Package() {0x0008FFFF, 0, 0, 464},
> + Package() {0x0008FFFF, 1, 0, 465},
> + Package() {0x0008FFFF, 2, 0, 466},
> + Package() {0x0008FFFF, 3, 0, 467},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x63FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000040000000, // AddressMinimum - MIN
> + 0x0000000047FFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000600000000000, // AddressMinimum - MIN
> + 0x000063FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCIC RCA4
> +
> + // PCID RCA5
> + Device (PCID) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 9)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCID")
> + Name (_STR, Unicode("PCIe 13 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 148/149/150/151 + 320 respectively. PCID RCA5
> + //
> + Package() {0x0001FFFF, 0, 0, 468},
> + Package() {0x0001FFFF, 1, 0, 469},
> + Package() {0x0001FFFF, 2, 0, 470},
> + Package() {0x0001FFFF, 3, 0, 471},
> + Package() {0x0002FFFF, 0, 0, 468},
> + Package() {0x0002FFFF, 1, 0, 469},
> + Package() {0x0002FFFF, 2, 0, 470},
> + Package() {0x0002FFFF, 3, 0, 471},
> + Package() {0x0003FFFF, 0, 0, 468},
> + Package() {0x0003FFFF, 1, 0, 469},
> + Package() {0x0003FFFF, 2, 0, 470},
> + Package() {0x0003FFFF, 3, 0, 471},
> + Package() {0x0004FFFF, 0, 0, 468},
> + Package() {0x0004FFFF, 1, 0, 469},
> + Package() {0x0004FFFF, 2, 0, 470},
> + Package() {0x0004FFFF, 3, 0, 471},
> + Package() {0x0005FFFF, 0, 0, 468},
> + Package() {0x0005FFFF, 1, 0, 469},
> + Package() {0x0005FFFF, 2, 0, 470},
> + Package() {0x0005FFFF, 3, 0, 471},
> + Package() {0x0006FFFF, 0, 0, 468},
> + Package() {0x0006FFFF, 1, 0, 469},
> + Package() {0x0006FFFF, 2, 0, 470},
> + Package() {0x0006FFFF, 3, 0, 471},
> + Package() {0x0007FFFF, 0, 0, 468},
> + Package() {0x0007FFFF, 1, 0, 469},
> + Package() {0x0007FFFF, 2, 0, 470},
> + Package() {0x0007FFFF, 3, 0, 471},
> + Package() {0x0008FFFF, 0, 0, 468},
> + Package() {0x0008FFFF, 1, 0, 469},
> + Package() {0x0008FFFF, 2, 0, 470},
> + Package() {0x0008FFFF, 3, 0, 471},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x67FFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000048000000, // AddressMinimum - MIN
> + 0x000000004FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000640000000000, // AddressMinimum - MIN
> + 0x000067FFDFFFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCID RCA5
> +
> + // PCIE RCA6
> + Device (PCIE) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 10)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCIE")
> + Name (_STR, Unicode("PCIe 14 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 152/153/154/155 + 320 respectively. PCIE RCA6
> + //
> + Package() {0x0001FFFF, 0, 0, 472},
> + Package() {0x0001FFFF, 1, 0, 473},
> + Package() {0x0001FFFF, 2, 0, 474},
> + Package() {0x0001FFFF, 3, 0, 475},
> + Package() {0x0002FFFF, 0, 0, 472},
> + Package() {0x0002FFFF, 1, 0, 473},
> + Package() {0x0002FFFF, 2, 0, 474},
> + Package() {0x0002FFFF, 3, 0, 475},
> + Package() {0x0003FFFF, 0, 0, 472},
> + Package() {0x0003FFFF, 1, 0, 473},
> + Package() {0x0003FFFF, 2, 0, 474},
> + Package() {0x0003FFFF, 3, 0, 475},
> + Package() {0x0004FFFF, 0, 0, 472},
> + Package() {0x0004FFFF, 1, 0, 473},
> + Package() {0x0004FFFF, 2, 0, 474},
> + Package() {0x0004FFFF, 3, 0, 475},
> + Package() {0x0005FFFF, 0, 0, 472},
> + Package() {0x0005FFFF, 1, 0, 473},
> + Package() {0x0005FFFF, 2, 0, 474},
> + Package() {0x0005FFFF, 3, 0, 475},
> + Package() {0x0006FFFF, 0, 0, 472},
> + Package() {0x0006FFFF, 1, 0, 473},
> + Package() {0x0006FFFF, 2, 0, 474},
> + Package() {0x0006FFFF, 3, 0, 475},
> + Package() {0x0007FFFF, 0, 0, 472},
> + Package() {0x0007FFFF, 1, 0, 473},
> + Package() {0x0007FFFF, 2, 0, 474},
> + Package() {0x0007FFFF, 3, 0, 475},
> + Package() {0x0008FFFF, 0, 0, 472},
> + Package() {0x0008FFFF, 1, 0, 473},
> + Package() {0x0008FFFF, 2, 0, 474},
> + Package() {0x0008FFFF, 3, 0, 475},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x6BFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000050000000, // AddressMinimum - MIN
> + 0x0000000057FFFFFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000680000000000, // AddressMinimum - MIN
> + 0x00006BFFDFFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCIE RCA6
> +
> + // PCIF RCA7
> + Device (PCIF) {
> + //
> + // Hardware ID must be PNP0A08, which maps to a PCIe root complex.
> + // Section 6.1.5
> + //
> +
> + Name (_HID, "PNP0A08")
> + Name (_CCA, ONE)
> +
> + Method (_STA, 0, NotSerialized) {
> + Return (0xF) // The default value is 0x0. Unfortunately, it breaks
> + // run-time patching as the representation of 0 is special
> + // encoding and cannot be patched to expand with extra bytes
> + // easily. As such, we default to 0xF and patch this based
> + // on whether the port was enabled or not by the BIOS.
> + }
> +
> + //
> + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI
> + // root complex for use with pre-PCIe operating systems.
> + // Section 6.1.2
> + //
> +
> + Name (_CID, "PNP0A03")
> +
> + //
> + // Declare the segment number of this root complex. Most systems only
> + // have one segment, which is numbered 0.
> + // Section 6.5.6
> + //
> +
> + Name (_SEG, 11)
> +
> + //
> + // Declare the base bus number, which is the bus number of the root
> + // bus in this root complex. This is usually 0, but need not be.
> + // For root complexes supporting multiple root busses, this should
> + // be the lowest numbered root bus.
> + // Section 6.5.5
> + //
> +
> + Name (_BBN, 0)
> +
> + //
> + // The _UID value provides a way of uniquely identifying a device
> + // in the case where more than one instance of a specific device
> + // is implemented with the same _HID/_CID. For systems with a
> + // single root complex, this is usually just 0. For systems with
> + // multiple root complexes, this should be different for each
> + // root complex.
> + // Section 6.1.12
> + //
> +
> + Name (_UID, "PCIF")
> + Name (_STR, Unicode("PCIe 15 Device"))
> +
> + //
> + // Declare the PCI Routing Table.
> + // This defines SPI mappings of the four line-based interrupts
> + // associated with the root complex and hierarchy below it.
> + // Section 6.2.12
> + //
> +
> + Name (_PRT, Package() {
> +
> + //
> + // Routing for device 0, all functions.
> + // Note: ARM doesn't support LNK nodes, so the third param
> + // is 0 and the fourth param is the SPI number of the interrupt
> + // line. In this example, the A/B/C/D interrupts are wired to
> + // SPI lines 156/157/158/159 + 320 respectively. PCIF RCA7
> + //
> + Package() {0x0001FFFF, 0, 0, 476},
> + Package() {0x0001FFFF, 1, 0, 477},
> + Package() {0x0001FFFF, 2, 0, 478},
> + Package() {0x0001FFFF, 3, 0, 479},
> + Package() {0x0002FFFF, 0, 0, 476},
> + Package() {0x0002FFFF, 1, 0, 477},
> + Package() {0x0002FFFF, 2, 0, 478},
> + Package() {0x0002FFFF, 3, 0, 479},
> + Package() {0x0003FFFF, 0, 0, 476},
> + Package() {0x0003FFFF, 1, 0, 477},
> + Package() {0x0003FFFF, 2, 0, 478},
> + Package() {0x0003FFFF, 3, 0, 479},
> + Package() {0x0004FFFF, 0, 0, 476},
> + Package() {0x0004FFFF, 1, 0, 477},
> + Package() {0x0004FFFF, 2, 0, 478},
> + Package() {0x0004FFFF, 3, 0, 479},
> + Package() {0x0005FFFF, 0, 0, 476},
> + Package() {0x0005FFFF, 1, 0, 477},
> + Package() {0x0005FFFF, 2, 0, 478},
> + Package() {0x0005FFFF, 3, 0, 479},
> + Package() {0x0006FFFF, 0, 0, 476},
> + Package() {0x0006FFFF, 1, 0, 477},
> + Package() {0x0006FFFF, 2, 0, 478},
> + Package() {0x0006FFFF, 3, 0, 479},
> + Package() {0x0007FFFF, 0, 0, 476},
> + Package() {0x0007FFFF, 1, 0, 477},
> + Package() {0x0007FFFF, 2, 0, 478},
> + Package() {0x0007FFFF, 3, 0, 479},
> + Package() {0x0008FFFF, 0, 0, 476},
> + Package() {0x0008FFFF, 1, 0, 477},
> + Package() {0x0008FFFF, 2, 0, 478},
> + Package() {0x0008FFFF, 3, 0, 479},
> + })
> +
> + //
> + // Declare the resources assigned to this root complex.
> + // Section 6.2.2
> + //
> + Method (_CBA, 0, Serialized) {
> + Return (0x6FFFF0000000)
> + }
> +
> + Name (RBUF, ResourceTemplate () {
> +
> + //
> + // Declare the range of bus numbers assigned to this root
> + // complex. In this example, the minimum bus number will be
> + // 0, the maximum bus number will be 0xFF, supporting
> + // 256 busses total.
> + // Section 19.5.141
> + //
> +
> + WordBusNumber (
> + ResourceProducer,
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + PosDecode, // Decode
> + 0, // AddressGranularity
> + 0, // AddressMinimum - Minimum Bus Number
> + 255, // AddressMaximum - Maximum Bus Number
> + 0, // AddressTranslation - Set to 0
> + 256) // RangeLength - Number of Busses
> +
> + //
> + // Declare the memory range to be used for BAR memory
> + // windows. This declares a 4GB region starting at
> + // 0x4000000000.
> + // Section 19.5.80
> + //
> + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000000058000000, // AddressMinimum - MIN
> + 0x000000005FFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000008000000 // RangeLength - LEN
> + )
> +
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // NonCacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x00006C0000000000, // AddressMinimum - MIN
> + 0x00006FFFDFFFFFFF, // AddressMinimum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x000003FFE0000000 // RangeLength - LEN
> + )
> + })
> +
> + Method (_CRS, 0, Serialized) {
> + Return (RBUF)
> + }
> +
> + //
> + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments.
> + //
> + // Argments:
> + // Arg0 A Buffer containing a UUID
> + // Arg1 An Integer containing a Revision ID of the buffer format
> + // Arg2 An Integer containing a count of entries in Arg3
> + // Arg3 A Buffer containing a list of DWORD capabilities
> + // Return Value:
> + // A Buffer containing a list of capabilities
> + // See the APCI spec, Section 6.2.10,
> + // and the PCI FW spec, Section 4.5.
> + //
> + // The following is an example, and may need modification for
> + // specific implementations.
> + //
> +
> + Name (SUPP,0) // PCI _OSC Support Field value
> + Name (CTRL,0) // PCI _OSC Control Field value
> +
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
> + //
> + // Never allow native Hot plug, PME.
> + // Never allow SHPC (no SHPC controller in this system).
> + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled
> + // Allows PCI Express Capability Structure control
> + //
> +
> + if (AERF) {
> + And (CTRL, 0x10, CTRL)
> + } Else {
> + And (CTRL, 0x18, CTRL)
> + }
> +
> + //
> + // Check for unknown revision.
> + //
> +
> + If (LNotEqual (Arg1, One)) {
> + Or (CDW1, 0x08, CDW1)
> + }
> +
> + //
> + // Check if capabilities bits were masked.
> + //
> +
> + If (LNotEqual (CDW3, CTRL)) {
> + Or (CDW1, 0x10, CDW1)
> + }
> +
> + //
> + // Update DWORD3 in the buffer.
> + //
> +
> + Store (CTRL, CDW3)
> + Return (Arg3)
> +
> + } Else {
> +
> + //
> + // Unrecognized UUID
> + //
> +
> + Or (CDW1, 4, CDW1)
> + Return (Arg3)
> + }
> + } // End _OSC
> +
> + //
> + // Declare a _DSM method for various functions called by the OS.
> + // See the APCI spec, Section 9.14.1,
> + // and the PCI FW spec, Section 4.6.
> + // See also:
> + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/PCI-rsc.doc
> + //
> +
> + Method (_DSM, 0x4, Serialized) {
> +
> + //
> + // Match against the _DSM PCI GUID.
> + //
> +
> + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
> +
> + Switch (ToInteger(Arg2)) {
> + //
> + // Function 0: Return supported functions as a bitfield
> + // with one bit for each supported function.
> + // Bit 0 must always be set, as that represents
> + // function 0 (which is what is being called here).
> + // Support for different functions may depend on
> + // the revision ID of the interface, passed as Arg1.
> + //
> +
> + Case (0) {
> +
> + //
> + // Functions 0-7 are supported.
> + //
> +
> + Return (Buffer() {0x01})
> + }
> + }
> + }
> +
> + //
> + // If not one of the function identifiers we recognize, then return a buffer
> + // with bit 0 set to 0 indicating no functions supported.
> + //
> +
> + Return (Buffer() {0})
> + }
> +
> + //
> + // Root Port 0 Device within the Root Complex.
> + //
> + Device (RP0) {
> + //
> + // Device 0, Function 0.
> + //
> +
> + Name (_ADR, 0x00000000)
> + }
> +
> + Method (_PXM, 0, NotSerialized) {
> + // Patch by code
> + Return(0xFF)
> + }
> + } // PCIF RCA7
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
> new file mode 100644
> index 000000000000..9a3444e468e8
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
> @@ -0,0 +1,1292 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Scope(\_SB) {
> + Device(CMN0) {
> + Name(_HID, "ARMHC600") // Device Identification Objects
> + Name(_CID, "ARMHC600")
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("CMN0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceConsumer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100010000000, // AddressMinimum - MIN
> + 0x0000100013ffffff, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000004000000 // RangeLength - LEN
> + )
> + QWordMemory (
> + ResourceConsumer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100012f00000, // AddressMinimum - MIN
> + 0x0000100013ffffff, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000001100000 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 }
> + })
> + }
> +
> + Device(MC00) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100090000A00, // AddressMinimum - MIN
> + 0x0000100090000BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 248 }
> + })
> + }
> +
> + Device(MC01) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 1)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100090400A00, // AddressMinimum - MIN
> + 0x0000100090400BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 249 }
> + })
> + }
> +
> + Device(MC02) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 2)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU2"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100090800A00, // AddressMinimum - MIN
> + 0x0000100090800BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 250 }
> + })
> + }
> +
> + Device(MC03) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 3)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU3"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100090C00A00, // AddressMinimum - MIN
> + 0x0000100090C00BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 251 }
> + })
> + }
> +
> + Device(MC04) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 4)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU4"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100091000A00, // AddressMinimum - MIN
> + 0x0000100091000BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 252 }
> + })
> + }
> +
> + Device(MC05) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 5)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU5"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100091400A00, // AddressMinimum - MIN
> + 0x0000100091400BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 253 }
> + })
> + }
> +
> + Device(MC06) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 6)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU6"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100091800A00, // AddressMinimum - MIN
> + 0x0000100091800BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 254 }
> + })
> + }
> +
> + Device(MC07) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 7)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 0: MCU7"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000100091C00A00, // AddressMinimum - MIN
> + 0x0000100091C00BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 255 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL00) {
> + Device(DU00) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 64 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL01) {
> + Device(DU01) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 65 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL02) {
> + Device(DU02) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 66 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL03) {
> + Device(DU03) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 67 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL04) {
> + Device(DU04) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 68 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL05) {
> + Device(DU05) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 69 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL06) {
> + Device(DU06) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 71 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL07) {
> + Device(DU07) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 80 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL08) {
> + Device(DU08) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x8)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x8 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 81 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL09) {
> + Device(DU09) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x9)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x9 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 82 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0A) {
> + Device(DU0A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xA)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xA Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 83 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0B) {
> + Device(DU0B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xB)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xB Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 115 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0C) {
> + Device(DU0C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xC)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xC Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 116 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0D) {
> + Device(DU0D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xD)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xD Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 120 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0E) {
> + Device(DU0E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xE)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xE Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 121 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL0F) {
> + Device(DU0F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0xF)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0xF Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 122 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL10) {
> + Device(DU10) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x10)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x10 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 123 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL11) {
> + Device(DU11) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x11)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x11 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 124 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL12) {
> + Device(DU12) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x12)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x12 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 125 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL13) {
> + Device(DU13) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x13)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x13 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 126 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL14) {
> + Device(DU14) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x14)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x14 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 127 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL15) {
> + Device(DU15) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x15)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x15 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 166 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL16) {
> + Device(DU16) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x16)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x16 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 167 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL17) {
> + Device(DU17) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x17)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x17 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 168 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL18) {
> + Device(DU18) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x18)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x18 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 169 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL19) {
> + Device(DU19) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x19)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x19 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 176 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1A) {
> + Device(DU1A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1A Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 177 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1B) {
> + Device(DU1B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1B Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 178 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1C) {
> + Device(DU1C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1C Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 179 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1D) {
> + Device(DU1D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1D Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 186 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1E) {
> + Device(DU1E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1E Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 187 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL1F) {
> + Device(DU1F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x1F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x1F Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 188 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL20) {
> + Device(DU20) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x20)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x20 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 189 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL21) {
> + Device(DU21) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x21)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x21 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 196 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL22) {
> + Device(DU22) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x22)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x22 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 197 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL23) {
> + Device(DU23) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x23)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x23 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 198 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL24) {
> + Device(DU24) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x24)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x24 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 199 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL25) {
> + Device(DU25) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x25)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x25 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 200 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL26) {
> + Device(DU26) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x26)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x26 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 201 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL27) {
> + Device(DU27) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x27)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x27 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 202 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL28) {
> + Device(DU28) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x28)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x28 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 203 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL29) {
> + Device(DU29) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x29)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x29 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 204 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2A) {
> + Device(DU2A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2A Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 205 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2B) {
> + Device(DU2B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2B Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 206 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2C) {
> + Device(DU2C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2C Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 207 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2D) {
> + Device(DU2D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2D Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 221 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2E) {
> + Device(DU2E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2E Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 222 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL2F) {
> + Device(DU2F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x2F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x2F Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 223 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL30) {
> + Device(DU30) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x30)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x30 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 264 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL31) {
> + Device(DU31) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x31)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x31 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 265 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL32) {
> + Device(DU32) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x32)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x32 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 266 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL33) {
> + Device(DU33) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x33)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x33 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 267 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL34) {
> + Device(DU34) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x34)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x34 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 268 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL35) {
> + Device(DU35) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x35)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x35 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 269 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL36) {
> + Device(DU36) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x36)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x36 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 270 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL37) {
> + Device(DU37) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x37)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x37 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 271 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL38) {
> + Device(DU38) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x38)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x38 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 297 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL39) {
> + Device(DU39) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x39)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x39 Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 298 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3A) {
> + Device(DU3A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3A Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 299 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3B) {
> + Device(DU3B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3B Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 300 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3C) {
> + Device(DU3C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3C Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 301 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3D) {
> + Device(DU3D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3D Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3E) {
> + Device(DU3E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3E Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 313 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL3F) {
> + Device(DU3F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x3F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x3F Socket 0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 316 }
> + })
> + }
> +}
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
> new file mode 100644
> index 000000000000..9806278dc86e
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
> @@ -0,0 +1,1292 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Scope(\_SB) {
> + Device(CMN1) {
> + Name(_HID, "ARMHC600") // Device Identification Objects
> + Name(_CID, "ARMHC600")
> + Name(_UID, 1)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("CMN1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceConsumer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500010000000, // AddressMinimum - MIN
> + 0x0000500013ffffff, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000004000000 // RangeLength - LEN
> + )
> + QWordMemory (
> + ResourceConsumer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500012f00000, // AddressMinimum - MIN
> + 0x0000500013ffffff, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000001100000 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 }
> + })
> + }
> +
> + Device(MC10) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 8)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU0"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500090000A00, // AddressMinimum - MIN
> + 0x0000500090000BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 568 }
> + })
> + }
> +
> + Device(MC11) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 9)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500090400A00, // AddressMinimum - MIN
> + 0x0000500090400BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 569 }
> + })
> + }
> +
> + Device(MC12) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xa)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU2"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500090800A00, // AddressMinimum - MIN
> + 0x0000500090800BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 570 }
> + })
> + }
> +
> + Device(MC13) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xb)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU3"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500090C00A00, // AddressMinimum - MIN
> + 0x0000500090C00BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 571 }
> + })
> + }
> +
> + Device(MC14) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xc)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU4"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500091000A00, // AddressMinimum - MIN
> + 0x0000500091000BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 572 }
> + })
> + }
> +
> + Device(MC15) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xd)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU5"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500091400A00, // AddressMinimum - MIN
> + 0x0000500091400BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 573 }
> + })
> + }
> +
> + Device(MC16) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xe)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU6"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500091800A00, // AddressMinimum - MIN
> + 0x0000500091800BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 574 }
> + })
> + }
> +
> + Device(MC17) {
> + Name(_HID, "ARMHD620")
> + Name(_CID, "ARMHD620")
> + Name(_UID, 0xf)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("Socket 1: MCU7"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + QWordMemory (
> + ResourceProducer, // ResourceUsage
> + PosDecode, // Decode
> + MinFixed, // IsMinFixed
> + MaxFixed, // IsMaxFixed
> + NonCacheable, // Cacheable
> + ReadWrite, // ReadAndWrite
> + 0x0000000000000000, // AddressGranularity - GRA
> + 0x0000500091C00A00, // AddressMinimum - MIN
> + 0x0000500091C00BFF, // AddressMaximum - MAX
> + 0x0000000000000000, // AddressTranslation - TRA
> + 0x0000000000000200 // RangeLength - LEN
> + )
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 575 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL40) {
> + Device(DU40) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x40)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x40 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 384 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL41) {
> + Device(DU41) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x41)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x41 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 385 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL42) {
> + Device(DU42) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x42)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x42 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 386 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL43) {
> + Device(DU43) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x43)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x43 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 387 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL44) {
> + Device(DU44) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x44)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x44 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 388 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL45) {
> + Device(DU45) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x45)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x45 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 389 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL46) {
> + Device(DU46) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x46)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x46 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 391 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL47) {
> + Device(DU47) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x47)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x47 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 400 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL48) {
> + Device(DU48) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x48)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x48 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 401 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL49) {
> + Device(DU49) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x49)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x49 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 402 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4A) {
> + Device(DU4A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4A Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 403 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4B) {
> + Device(DU4B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4B Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 435 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4C) {
> + Device(DU4C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4C Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 436 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4D) {
> + Device(DU4D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4D Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 440 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4E) {
> + Device(DU4E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4E Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 441 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL4F) {
> + Device(DU4F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x4F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x4F Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 442 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL50) {
> + Device(DU50) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x50)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x50 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 443 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL51) {
> + Device(DU51) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x51)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x51 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 444 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL52) {
> + Device(DU52) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x52)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x52 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 445 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL53) {
> + Device(DU53) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x53)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x53 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 446 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL54) {
> + Device(DU54) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x54)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x54 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 447 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL55) {
> + Device(DU55) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x55)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x55 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 486 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL56) {
> + Device(DU56) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x56)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x56 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 487 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL57) {
> + Device(DU57) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x57)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x57 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 488 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL58) {
> + Device(DU58) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x58)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x58 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 489 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL59) {
> + Device(DU59) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x59)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x59 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 496 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5A) {
> + Device(DU5A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5A Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 497 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5B) {
> + Device(DU5B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5B Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 498 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5C) {
> + Device(DU5C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5C Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 499 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5D) {
> + Device(DU5D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5D Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 506 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5E) {
> + Device(DU5E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5E Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 507 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL5F) {
> + Device(DU5F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x5F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x5F Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 508 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL60) {
> + Device(DU60) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x60)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x60 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 509 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL61) {
> + Device(DU61) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x61)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x61 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 516 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL62) {
> + Device(DU62) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x62)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x62 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 517 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL63) {
> + Device(DU63) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x63)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x63 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 518 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL64) {
> + Device(DU64) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x64)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x64 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 519 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL65) {
> + Device(DU65) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x65)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x65 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 520 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL66) {
> + Device(DU66) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x66)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x66 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 521 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL67) {
> + Device(DU67) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x67)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x67 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 522 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL69) {
> + Device(DU68) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x68)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x68 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 523 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL69) {
> + Device(DU69) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x69)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x69 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 524 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6A) {
> + Device(DU6A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6A Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 525 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6B) {
> + Device(DU6B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6B Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 526 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6C) {
> + Device(DU6C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6C Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 527 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6D) {
> + Device(DU6D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6D Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 541 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6E) {
> + Device(DU6E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6E Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 542 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL6F) {
> + Device(DU6F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x6F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x6F Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 543 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL70) {
> + Device(DU70) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x70)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x70 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 584 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL71) {
> + Device(DU71) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x71)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x71 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 585 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL72) {
> + Device(DU72) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x72)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x72 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 586 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL73) {
> + Device(DU73) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x73)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x73 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 587 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL74) {
> + Device(DU74) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x74)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x74 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 588 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL75) {
> + Device(DU75) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x75)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x75 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 589 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL76) {
> + Device(DU76) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x76)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x76 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 590 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL77) {
> + Device(DU77) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x77)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x77 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 591 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL78) {
> + Device(DU78) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x78)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x78 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 617 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL79) {
> + Device(DU79) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x79)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x79 Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 618 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7A) {
> + Device(DU7A) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7A)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7A Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 619 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7B) {
> + Device(DU7B) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7B)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7B Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 620 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7C) {
> + Device(DU7C) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7C)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7C Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 621 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7D) {
> + Device(DU7D) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7D)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7D Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7E) {
> + Device(DU7E) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7E)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7E Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 633 }
> + })
> + }
> +}
> +
> +Scope (\_SB.SYST.CL7F) {
> + Device(DU7F) {
> + Name(_HID, "ARMHD500")
> + Name(_CID, "ARMHD500")
> + Name(_UID, 0x7F)
> + Name(_CCA, ONE)
> + Name(_STR, Unicode("DSU CPM 0x7F Socket 1"))
> + Method(_STA, 0, NotSerialized) {
> + Return (0x0f)
> + }
> + Name(_CRS, ResourceTemplate() {
> + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 636 }
> + })
> + }
> +}
> diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
> new file mode 100644
> index 000000000000..21eb42dca243
> --- /dev/null
> +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
> @@ -0,0 +1,10 @@
> +/** @file
> +
> + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +Include ("PMU-S0.asi")
> +Include ("PMU-S1.asi")
> --
> 2.25.1
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max
2023-02-15 11:59 ` Leif Lindholm
@ 2023-02-24 3:26 ` Nhi Pham
2023-03-14 13:20 ` Leif Lindholm
0 siblings, 1 reply; 10+ messages in thread
From: Nhi Pham @ 2023-02-24 3:26 UTC (permalink / raw)
To: Leif Lindholm, Nhi Pham; +Cc: devel, patches, ardb+tianocore, Vu Nguyen
Hi Leif,
Thanks for your reviewing. Most of your feedback is valid. I will fix
them. There is a comment that need your more explanation.
Please see the inline reply for more details.
On 2/15/2023 6:59 PM, Leif Lindholm wrote:
> On Fri, Jan 13, 2023 at 11:25:16 +0700, Nhi Pham wrote:
>> From: Vu Nguyen <vunguyen@os.amperecomputing.com>
>>
>> This updates the PCIe modules to add support for
>> Ampere Altra Max processor which features 128 PCIe
>> Gen4 lanes (distributed across eight x16 RCAs) using
>> 32 controllers.
>>
>> Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
>> ---
>> .../AmpereAltraPkg/Include/NVParamDef.h | 64 ++++++--
>> .../Library/Ac01PcieLib/PcieCore.h | 8 +-
>> .../Library/BoardPcieLib/BoardPcieLib.c | 63 +++++++-
>> .../Drivers/PcieInitPei/PcieInitPei.c | 16 +-
>> .../Drivers/PcieInitPei/RootComplexNVParam.c | 101 +++++++++---
>> .../Library/Ac01PcieLib/PcieCore.c | 150 +++++++++++++++---
>> 6 files changed, 333 insertions(+), 69 deletions(-)
>>
>> diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
>> index 3259fa1ea45c..4dfc353d2340 100644
>> --- a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
>> +++ b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
>> @@ -29,7 +29,7 @@
>> As each non-volatile parameter requires 8 bytes, there is a total of 8K
>> parameters.
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -425,10 +425,10 @@
>> #define NV_SI_RO_BOARD_S0_RCA5_CFG ((107 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
>> #define NV_SI_RO_BOARD_S0_RCA6_CFG ((108 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
>> #define NV_SI_RO_BOARD_S0_RCA7_CFG ((109 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
>> -#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET ((110 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA1_TXRX_G3PRESET ((111 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA2_TXRX_G3PRESET ((112 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA3_TXRX_G3PRESET ((113 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
> Could you split the comment additions into a separate patch?
> I think there are no functional changes to this file, but that is very
> hard to determine.
Thanks, I will split it out.
>
>> #define NV_SI_RO_BOARD_S0_RCB0A_TXRX_G3PRESET ((114 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S0_RCB0B_TXRX_G3PRESET ((115 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S0_RCB1A_TXRX_G3PRESET ((116 * 8) + NV_BOARD_PARAM_START)
>> @@ -437,10 +437,10 @@
>> #define NV_SI_RO_BOARD_S0_RCB2B_TXRX_G3PRESET ((119 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S0_RCB3A_TXRX_G3PRESET ((120 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S0_RCB3B_TXRX_G3PRESET ((121 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET ((122 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA5_TXRX_G3PRESET ((123 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA6_TXRX_G3PRESET ((124 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S0_RCA7_TXRX_G3PRESET ((125 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> #define NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET ((126 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> #define NV_SI_RO_BOARD_S0_RCA1_TXRX_G4PRESET ((127 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> #define NV_SI_RO_BOARD_S0_RCA2_TXRX_G4PRESET ((128 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> @@ -462,8 +462,8 @@
>> #define NV_SI_RO_BOARD_S1_RCA5_CFG ((144 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
>> #define NV_SI_RO_BOARD_S1_RCA6_CFG ((145 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020202 */
>> #define NV_SI_RO_BOARD_S1_RCA7_CFG ((146 * 8) + NV_BOARD_PARAM_START) /* Default: 0x02020003 */
>> -#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET ((147 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S1_RCA3_TXRX_G3PRESET ((148 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> #define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G3PRESET ((149 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S1_RCB0B_TXRX_G3PRESET ((150 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S1_RCB1A_TXRX_G3PRESET ((151 * 8) + NV_BOARD_PARAM_START)
>> @@ -472,10 +472,10 @@
>> #define NV_SI_RO_BOARD_S1_RCB2B_TXRX_G3PRESET ((154 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S1_RCB3A_TXRX_G3PRESET ((155 * 8) + NV_BOARD_PARAM_START)
>> #define NV_SI_RO_BOARD_S1_RCB3B_TXRX_G3PRESET ((156 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START)
>> -#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET ((157 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S1_RCA5_TXRX_G3PRESET ((158 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S1_RCA6_TXRX_G3PRESET ((159 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_S1_RCA7_TXRX_G3PRESET ((160 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> #define NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET ((161 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> #define NV_SI_RO_BOARD_S1_RCA3_TXRX_G4PRESET ((162 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> #define NV_SI_RO_BOARD_S1_RCB0A_TXRX_G4PRESET ((163 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> @@ -523,7 +523,39 @@
>> #define NV_SI_RO_BOARD_RAS_DDR_CE_TH1 ((205 * 8) + NV_BOARD_PARAM_START) /* Default: 0x000001F4 */
>> #define NV_SI_RO_BOARD_RAS_DDR_CE_TH2 ((206 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00001388 */
>> #define NV_SI_RO_BOARD_RAS_DDR_CE_THC ((207 * 8) + NV_BOARD_PARAM_START) /* Default: 0x00000000 */
>> -#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_RAS_DDR_CE_THC)
>> +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_20GPRESET ((208 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_20GPRESET ((209 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_25GPRESET ((210 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_25GPRESET ((211 * 8) + NV_BOARD_PARAM_START)
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET ((212 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G3PRESET ((213 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G3PRESET ((214 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G3PRESET ((215 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET ((216 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G3PRESET ((217 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G3PRESET ((218 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G3PRESET ((219 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET ((220 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G3PRESET ((221 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET ((222 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G3PRESET ((223 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G3PRESET ((224 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G3PRESET ((225 * 8) + NV_BOARD_PARAM_START) /* Default: 0xFFFFFFFF */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET ((226 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G4PRESET ((227 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G4PRESET ((228 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G4PRESET ((229 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET ((230 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G4PRESET ((231 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G4PRESET ((232 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G4PRESET ((233 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET ((234 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G4PRESET ((235 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET ((236 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G4PRESET ((237 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G4PRESET ((238 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET ((239 * 8) + NV_BOARD_PARAM_START) /* Default: 0x57575757 */
>> +#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET)
>> //
>> // NOTE: Add before NV_BOARD_PARAM_MAX and increase its value
>> //
>> diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
>> index 1db8a68b3df4..a18fff7dbb75 100644
>> --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
>> +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h
>> @@ -1,6 +1,6 @@
>> /** @file
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -39,6 +39,7 @@
>> #define PIPE_CLOCK_TIMEOUT 20000 // 20,000 us
>> #define LTSSM_TRANSITION_TIMEOUT 100000 // 100 ms in total
>> #define EP_LINKUP_TIMEOUT (10 * 1000) // 10ms
>> +#define EP_LINKUP_EXTRA_TIMEOUT (500 * 1000) // 500ms
>> #define LINK_WAIT_INTERVAL_US 50
>>
>> #define PFA_MODE_ENABLE 0
>> @@ -80,6 +81,7 @@
>> #define AC01_PCIE_CORE_IRQ_ENABLE_REG 0x30
>> #define AC01_PCIE_CORE_IRQ_EVENT_STAT_REG 0x38
>> #define AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG 0x3C
>> +#define AC01_PCIE_CORE_BUS_CONTROL_REG 0x40
>> #define AC01_PCIE_CORE_RESET_REG 0xC000
>> #define AC01_PCIE_CORE_CLOCK_REG 0xC004
>> #define AC01_PCIE_CORE_MEM_READY_REG 0xC104
>> @@ -87,6 +89,7 @@
>>
>> // AC01_PCIE_CORE_LINK_CTRL_REG
>> #define LTSSMENB_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
>> +#define LTSSMENB_GET(dst) ((dst) & (BIT0))
>> #define HOLD_LINK_TRAINING 0
>> #define START_LINK_TRAINING 1
>> #define DEVICETYPE_SET(dst, src) (((dst) & ~0xF0) | (((UINT32) (src) << 4) & 0xF0))
>> @@ -120,6 +123,9 @@
>> // AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG
>> #define LINKUP_MASK 0x1
>>
>> +// AC01_PCIE_CORE_BUS_CONTROL_REG
>> +#define BUS_CTL_CFG_UR_MASK 0x8
>> +
>> // AC01_PCIE_CORE_RESET_REG
>> #define DWC_PCIE_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1))
>> #define RESET_MASK 0x1
>> diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
>> index f49764097219..4e0ba551e09b 100644
>> --- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
>> +++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
>> @@ -2,7 +2,7 @@
>> Pcie board specific driver to handle asserting PERST signal to Endpoint
>> card. PERST asserting is via group of GPIO pins to CPLD as Platform Specification.
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -20,6 +20,8 @@
>> #define RCB_MAX_PERST_GROUPVAL 46
>> #define DEFAULT_SEGMENT_NUMBER 0x0F
>>
>> +#define PCIE_PERST_DELAY (100 * 1000) // 100ms
>> +
>> VOID
>> BoardPcieReleaseAllPerst (
>> IN UINT8 SocketId
>> @@ -32,6 +34,8 @@ BoardPcieReleaseAllPerst (
>> for (GpioIndex = 0; GpioIndex < 6; GpioIndex++) {
>> GpioModeConfig (GpioPin + GpioIndex, GpioConfigOutHigh);
>> }
>> +
>> + MicroSecondDelay (PCIE_PERST_DELAY);
>> }
>>
>> /**
>> @@ -56,11 +60,54 @@ BoardPcieAssertPerst (
>>
>> if (!IsPullToHigh) {
>> if (RootComplex->Type == RootComplexTypeA) {
>> - //
>> - // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
>> - //
>> - GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
>> - - RootComplex->ID * MaxPcieControllerOfRootComplexA;
>> + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
>> + /* Ampere Altra: 4 */
>> + //
>> + // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3
>> + //
>> + GpioGroupVal = RCA_MAX_PERST_GROUPVAL - PcieIndex
>> + - RootComplex->ID * MaxPcieControllerOfRootComplexA;
>> + } else {
>> + /* Ampere Altra Max RootComplex->ID: 4:7 */
>> + if (PcieIndex < 2) {
>> + switch (RootComplex->ID) {
>> + case 4:
>> + GpioGroupVal = 34 - (PcieIndex * 2);
>> + break;
>> + case 5:
>> + GpioGroupVal = 38 - (PcieIndex * 2);
>> + break;
>> + case 6:
>> + GpioGroupVal = 30 - (PcieIndex * 2);
>> + break;
>> + case 7:
>> + GpioGroupVal = 26 - (PcieIndex * 2);
>> + break;
> No default?
Will add default case.
>
>> + }
>> + } else {
>> + /* PcieIndex 2:3 */
>> + switch (RootComplex->ID) {
>> + case 4:
>> + GpioGroupVal = 46 - ((PcieIndex - 2) * 2);
>> + break;
>> +
>> + case 5:
>> + GpioGroupVal = 42 - ((PcieIndex - 2) * 2);
>> + break;
>> +
>> + case 6:
>> + GpioGroupVal = 18 - ((PcieIndex - 2) * 2);
>> + break;
>> +
>> + case 7:
>> + GpioGroupVal = 22 - ((PcieIndex - 2) * 2);
>> + break;
>> +
>> + default:
>> + DEBUG ((DEBUG_ERROR, "Invalid Root Complex ID %d\n", RootComplex->ID));
>> + }
>> + }
>> + }
> It would greatly improve readability to break this lookup sequence
> into a separate helper function.
Will improve it.
>
>> } else {
>> //
>> // RootComplexTypeB: RootComplex->ID: 4->7 ; PcieIndex: 0->7
>> @@ -81,7 +128,7 @@ BoardPcieAssertPerst (
>> }
>>
>> // Keep reset as low as 100 ms as specification
>> - MicroSecondDelay (100 * 1000);
>> + MicroSecondDelay (PCIE_PERST_DELAY);
>> } else {
>> BoardPcieReleaseAllPerst (RootComplex->Socket);
>> }
>> @@ -113,5 +160,5 @@ BoardPcieGetSegmentNumber (
>> return Ac01BoardSegment[RootComplex->Socket][RootComplex->ID];
>> }
>>
>> - return DEFAULT_SEGMENT_NUMBER;
>> + return (RootComplex->ID - 2);
>> }
>> diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
>> index 17f6112ea207..a69193b07005 100644
>> --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
>> +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
>> @@ -1,6 +1,6 @@
>> /** @file
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -94,7 +94,7 @@ BuildRootComplexData (
>> RootComplex = &mRootComplexList[RCIndex];
>> RootComplex->Active = ConfigFound ? RootComplexConfig.RCStatus[RCIndex] : TRUE;
>> RootComplex->DevMapLow = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
>> - RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
>> + RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationHigh[RCIndex] : 0;
> This is counterintuitive enough as part of a patch that "adds support"
> that I think it deserves to be broken out into a separate patch such
> that it can explain why it's being done in a dedicated commit message.
Will put this fix in a separate patch.
>
>> RootComplex->Socket = RCIndex / AC01_PCIE_MAX_RCS_PER_SOCKET;
>> RootComplex->ID = RCIndex % AC01_PCIE_MAX_RCS_PER_SOCKET;
>> RootComplex->CsrBase = mCsrBase[RCIndex];
>> @@ -106,7 +106,12 @@ BuildRootComplexData (
>> RootComplex->MmioSize = mMmioSize[RCIndex];
>> RootComplex->Mmio32Base = mMmio32Base[RCIndex];
>> RootComplex->Mmio32Size = mMmio32Size[RCIndex];
>> - RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
>> + if (IsAc01Processor ()) {
>> + RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
>> + } else {
>> + RootComplex->Type = RootComplexTypeA;
>> + }
>> +
> While much smaller, again I think it would help readability to break
> this abstraction out into a separate helper function.
Agree, will add helper functions. Also, check the later comments for
this patch to improve the code readability.
>
>> RootComplex->MaxPcieController = (RootComplex->Type == RootComplexTypeB)
>> ? MaxPcieControllerOfRootComplexB : MaxPcieControllerOfRootComplexA;
>> RootComplex->Logical = BoardPcieGetSegmentNumber (RootComplex);
>> @@ -168,11 +173,14 @@ PcieInitEntry (
>> continue;
>> }
>>
>> + DEBUG ((DEBUG_INIT, "Initializing S%d-RC%d...", RootComplex->Socket, RootComplex->ID));
>> Status = Ac01PcieCoreSetupRC (RootComplex, FALSE, 0);
>> if (EFI_ERROR (Status)) {
>> - DEBUG ((DEBUG_ERROR, "RootComplex[%d]: Init Failed\n", Index));
>> + DEBUG ((DEBUG_ERROR, "Failed\n"));
>> RootComplex->Active = FALSE;
>> continue;
>> + } else {
>> + DEBUG ((DEBUG_INIT, "Done + DevMapLow/High: %d/%d\n", RootComplex->DevMapLow, RootComplex->DevMapHigh));
>> }
>> }
>>
>> diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
>> index aa34a90b44c6..1346fa616ab3 100644
>> --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
>> +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
>> @@ -37,7 +37,7 @@
>> | Y | Y | Y | Y | 3 |
>> ----------------------------------------
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -149,6 +149,10 @@ GetDefaultDevMap (
>> AC01_ROOT_COMPLEX *RootComplex
>> )
>> {
>> + BOOLEAN IsAc01;
>> +
>> + IsAc01 = IsAc01Processor ();
>> +
>> if (RootComplex->Pcie[PcieController0].Active
>> && RootComplex->Pcie[PcieController1].Active
>> && RootComplex->Pcie[PcieController2].Active
>> @@ -169,14 +173,20 @@ GetDefaultDevMap (
>> && RootComplex->Pcie[PcieController5].Active
>> && RootComplex->Pcie[PcieController6].Active
>> && RootComplex->Pcie[PcieController7].Active) {
>> - RootComplex->DefaultDevMapHigh = DevMapMode4;
>> + if (IsAc01) {
>> + RootComplex->DefaultDevMapHigh = DevMapMode4;
>> + }
> Who sets RootComplex->DefaultDevMapHigh if !IsAc01?
It will be the default value (0) because Ampere Altra Max does not have
Root Complex Type B.
>
>> } else if (RootComplex->Pcie[PcieController4].Active
>> && RootComplex->Pcie[PcieController6].Active
>> && RootComplex->Pcie[PcieController7].Active) {
>> - RootComplex->DefaultDevMapHigh = DevMapMode3;
>> + if (IsAc01) {
>> + RootComplex->DefaultDevMapHigh = DevMapMode3;
>> + }
> same
>
>> } else if (RootComplex->Pcie[PcieController4].Active
>> && RootComplex->Pcie[PcieController6].Active) {
>> - RootComplex->DefaultDevMapHigh = DevMapMode2;
>> + if (IsAc01) {
>> + RootComplex->DefaultDevMapHigh = DevMapMode2;
>> + }
> same
>
>> } else {
>> RootComplex->DefaultDevMapHigh = DevMapMode1;
>> }
> I feel this function in general could be rewritten more reader-friendly.
>
>> @@ -203,12 +213,17 @@ GetLaneAllocation (
>> EFI_STATUS Status;
>> INTN RPIndex;
>> NVPARAM NvParamOffset;
>> - UINT32 Value, Width;
>> + UINT32 Value, Width, Controller;
>>
>> // Retrieve lane allocation and capabilities for each controller
>> if (RootComplex->Type == RootComplexTypeA) {
>> - NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
>> - NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
>> + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
>> + NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOARD_S1_RCA4_CFG;
>> + NvParamOffset += (RootComplex->ID - MaxPcieControllerOfRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + }
> Helper function.
>
>> } else {
>> //
>> // There're two NVParam entries per RootComplexTypeB
>> @@ -222,7 +237,13 @@ GetLaneAllocation (
>> Value = 0;
>> }
>>
>> - for (RPIndex = 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++) {
>> + if (IsAc01Processor ()) {
>> + Controller = MaxPcieControllerOfRootComplexA;
>> + } else {
>> + Controller = RootComplex->MaxPcieController;
>> + }
> Straightforward enough, but could still be a helper function.
>
>> +
>> + for (RPIndex = PcieController0; RPIndex < Controller; RPIndex++) {
>> Width = (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK;
>> switch (Width) {
>> case 1:
>> @@ -245,7 +266,7 @@ GetLaneAllocation (
>>
>> if (RootComplex->Type == RootComplexTypeB) {
>> NvParamOffset += NV_PARAM_ENTRYSIZE;
>> - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
>> + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
>> if (EFI_ERROR (Status)) {
>> Value = 0;
>> }
>> @@ -288,9 +309,17 @@ GetGen3PresetNvParamOffset (
>> if (RootComplex->Socket == 0) {
>> if (RootComplex->Type == RootComplexTypeA) {
>> if (RootComplex->ID < MaxRootComplexA) {
>> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
> When we get to 4 levels of if, we absolutely need helper functions.
>
>> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + }
>> } else {
>> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + }
>> }
>> } else {
>> //
>> @@ -300,9 +329,17 @@ GetGen3PresetNvParamOffset (
>> }
>> } else if (RootComplex->Type == RootComplexTypeA) {
>> if (RootComplex->ID < MaxRootComplexA) {
>> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + }
>> } else {
>> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + }
>> }
>> } else {
>> //
>> @@ -324,9 +361,17 @@ GetGen4PresetNvParamOffset (
>> if (RootComplex->Socket == 0) {
>> if (RootComplex->Type == RootComplexTypeA) {
>> if (RootComplex->ID < MaxRootComplexA) {
>> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
>> + }
>> } else {
>> - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + }
>> }
>> } else {
>> //
>> @@ -336,9 +381,17 @@ GetGen4PresetNvParamOffset (
>> }
>> } else if (RootComplex->Type == RootComplexTypeA) {
>> if (RootComplex->ID < MaxRootComplexA) {
>> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
>> + }
>> } else {
>> - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + if (IsAc01Processor ()) {
>> + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + } else {
>> + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
>> + }
> This also looks like the exact same computation takes place 4 times
> for different combos of G4PRESETs and rootcompled IDs. That should be
> possible to parametrise and compute in a single function instead.
Correct, will improve it.
>
>> }
>> } else {
>> //
>> @@ -352,7 +405,7 @@ GetGen4PresetNvParamOffset (
>>
>> VOID
>> GetPresetSetting (
>> - AC01_ROOT_COMPLEX *RootComplex
>> + AC01_ROOT_COMPLEX *RootComplex
>> )
>> {
>> EFI_STATUS Status;
>> @@ -377,7 +430,7 @@ GetPresetSetting (
>>
>> if (RootComplex->Type == RootComplexTypeB) {
>> NvParamOffset += NV_PARAM_ENTRYSIZE;
>> - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
>> + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
>> if (!EFI_ERROR (Status)) {
>> for (Index = MaxPcieControllerOfRootComplexA; Index < MaxPcieController; Index++) {
>> RootComplex->PresetGen3[Index] = (Value >> ((Index - MaxPcieControllerOfRootComplexA) * BITS_PER_BYTE)) & BYTE_MASK;
>> @@ -414,7 +467,7 @@ GetMaxSpeedGen (
>> UINT8 ErrataSpeedDevMap3[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN4, LINK_SPEED_GEN4, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 2: x8 x4 x4 (PCIE_ERRATA_SPEED1)
>> UINT8 ErrataSpeedDevMap4[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 3: x4 x4 x4 x4 (PCIE_ERRATA_SPEED1)
>> UINT8 ErrataSpeedRcb[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // RootComplexTypeB PCIE_ERRATA_SPEED1
>> - UINT8 Idx;
>> + UINT8 Idx, Controller;
> One definition per line?
Will fix.
>
>> UINT8 *MaxGen;
>>
>> ASSERT (MaxPcieControllerOfRootComplexA == 4);
>> @@ -452,7 +505,13 @@ GetMaxSpeedGen (
>> }
>> }
>>
>> - for (Idx = 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) {
>> + if (IsAc01Processor ()) {
>> + Controller = MaxPcieControllerOfRootComplexA;
>> + } else {
>> + Controller = RootComplex->MaxPcieController;
>> + }
> Straightforward enough, but could still be a helper function.
>
>> +
>> + for (Idx = 0; Idx < Controller; Idx++) {
>> RootComplex->Pcie[Idx].MaxGen = RootComplex->Pcie[Idx].Active ? MaxGen[Idx] : LINK_SPEED_NONE;
>> }
>>
>> diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
>> index ad648b1b9efd..12bd2c14544e 100644
>> --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
>> +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
>> @@ -1,6 +1,6 @@
>> /** @file
>>
>> - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
>> + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
>>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> @@ -10,8 +10,10 @@
>>
>> #include <Guid/PlatformInfoHob.h>
>> #include <Guid/RootComplexInfoHob.h>
>> +#include <IndustryStandard/Pci.h>
>> #include <Library/ArmGenericTimerCounterLib.h>
>> #include <Library/BaseLib.h>
>> +#include <Library/BaseMemoryLib.h>
>> #include <Library/BoardPcieLib.h>
>> #include <Library/DebugLib.h>
>> #include <Library/HobLib.h>
>> @@ -22,6 +24,25 @@
>>
>> #include "PcieCore.h"
>>
>> +VOID
>> +EnableDbiAccess (
>> + AC01_ROOT_COMPLEX *RootComplex,
>> + UINT32 PcieIndex,
>> + BOOLEAN EnableDbi
>> + );
>> +
>> +BOOLEAN
>> +EndpointCfgReady (
>> + IN AC01_ROOT_COMPLEX *RootComplex,
>> + IN UINT8 PcieIndex,
>> + IN UINT32 Timeout
>> + );
>> +
>> +BOOLEAN
>> +PcieLinkUpCheck (
>> + IN AC01_PCIE_CONTROLLER *Pcie
>> + );
>> +
>> /**
>> Return the next extended capability base address
>>
>> @@ -41,14 +62,38 @@ GetCapabilityBase (
>> {
>> BOOLEAN IsExtCapability = FALSE;
>> PHYSICAL_ADDRESS CfgBase;
>> + PHYSICAL_ADDRESS Ret = 0;
>> + PHYSICAL_ADDRESS RootComplexCfgBase;
>> UINT32 CapabilityId;
>> UINT32 NextCapabilityPtr;
>> UINT32 Val;
>> + UINT32 RestoreVal;
>>
>> - if (IsRootComplex) {
>> - CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
>> - } else {
>> + RootComplexCfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
>> + if (!IsRootComplex) {
>> + // Allow programming to config space
>> + EnableDbiAccess (RootComplex, PcieIndex, TRUE);
>> +
>> + Val = MmioRead32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG);
>> + RestoreVal = Val;
>> + Val = SUB_BUS_SET (Val, DEFAULT_SUB_BUS);
>> + Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
>> + Val = PRIM_BUS_SET (Val, 0x0);
>> + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, Val);
>> CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
>> +
>> + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_TIMEOUT)) {
>> + goto _CheckCapEnd;
>> + }
>> + } else {
>> + CfgBase = RootComplexCfgBase;
>> + }
>> +
>> + // Check if device provide capability
>> + Val = MmioRead32 (CfgBase + PCI_COMMAND_OFFSET);
>> + Val = GET_HIGH_16_BITS (Val); /* Status */
>> + if (!(Val & EFI_PCI_STATUS_CAPABILITY)) {
>> + goto _CheckCapEnd;
>> }
>>
>> Val = MmioRead32 (CfgBase + TYPE1_CAP_PTR_REG);
>> @@ -58,7 +103,8 @@ GetCapabilityBase (
>> while (1) {
>> if ((NextCapabilityPtr & WORD_ALIGN_MASK) != 0) {
>> // Not alignment, just return
>> - return 0;
>> + Ret = 0;
>> + goto _CheckCapEnd;
>> }
>>
>> Val = MmioRead32 (CfgBase + NextCapabilityPtr);
>> @@ -69,7 +115,8 @@ GetCapabilityBase (
>> }
>>
>> if (CapabilityId == ExtCapabilityId) {
>> - return (CfgBase + NextCapabilityPtr);
>> + Ret = (CfgBase + NextCapabilityPtr);
>> + goto _CheckCapEnd;
>> }
>>
>> if (NextCapabilityPtr < EXT_CAPABILITY_START_BASE) {
>> @@ -84,9 +131,20 @@ GetCapabilityBase (
>> }
>>
>> if ((NextCapabilityPtr == 0) && IsExtCapability) {
>> - return 0;
>> + Ret = 0;
>> + goto _CheckCapEnd;
>> }
>> }
>> +
>> +_CheckCapEnd:
>> + if (!IsRootComplex) {
>> + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, RestoreVal);
>> +
>> + // Disable programming to config space
>> + EnableDbiAccess (RootComplex, PcieIndex, FALSE);
>> + }
>> +
>> + return Ret;
>> }
>>
>> /**
>> @@ -677,6 +735,14 @@ Ac01PcieCoreSetupRC (
>> // Hold link training
>> StartLinkTraining (RootComplex, PcieIndex, FALSE);
>>
>> + // Clear BUSCTRL.CfgUrMask to set CRS (Configuration Request Retry Status) to 0xFFFF.FFFF
>> + // rather than 0xFFFF.0001 as per PCIe specification requirement. Otherwise, this causes
>> + // device drivers respond incorrectly on timeout due to long device operations.
>> + TargetAddress = CsrBase + AC01_PCIE_CORE_BUS_CONTROL_REG;
>> + Val = MmioRead32 (TargetAddress);
>> + Val &= ~BUS_CTL_CFG_UR_MASK;
>> + MmioWrite32 (TargetAddress, Val);
>> +
>> if (!EnableAxiPipeClock (RootComplex, PcieIndex)) {
>> DEBUG ((DEBUG_ERROR, "- Pcie[%d] - PIPE clock is not stable\n", PcieIndex));
>> return RETURN_DEVICE_ERROR;
>> @@ -688,9 +754,14 @@ Ac01PcieCoreSetupRC (
>> // Allow programming to config space
>> EnableDbiAccess (RootComplex, PcieIndex, TRUE);
>>
>> - // Program the power limit
>> TargetAddress = CfgBase + PCIE_CAPABILITY_BASE + SLOT_CAPABILITIES_REG;
>> Val = MmioRead32 (TargetAddress);
>> + // In order to detect the NVMe disk for booting without disk,
>> + // need to set Hot-Plug Slot Capable during port initialization.
>> + // It will help PCI Linux driver to initialize its slot iomem resource,
>> + // the one is used for detecting the disk when it is inserted.
> I don't quite understand the comment.
> Is this for netbooting, then inserting an NVMe drive after boot?
This is a part of PCIe Hotplug feature that will be upstreamed later.
Now we will remove this change.
>
>> + Val = SLOT_HPC_SET (Val, 1);
>> + // Program the power limit
>> Val = SLOT_CAP_SLOT_POWER_LIMIT_VALUE_SET (Val, SLOT_POWER_LIMIT_75W);
>> MmioWrite32 (TargetAddress, Val);
>>
>> @@ -755,6 +826,7 @@ Ac01PcieCoreSetupRC (
>> // Link timeout after 1ms
>> SetLinkTimeout (RootComplex, PcieIndex, 1);
>>
>> + // Mask Completion Timeout
>> DisableCompletionTimeOut (RootComplex, PcieIndex, TRUE);
>>
>> ProgramRootPortInfo (RootComplex, PcieIndex);
>> @@ -1067,21 +1139,20 @@ Ac01PFACommand (
>> return Ret;
>> }
>>
>> -UINT32
>> +BOOLEAN
>> EndpointCfgReady (
>> IN AC01_ROOT_COMPLEX *RootComplex,
>> - IN UINT8 PcieIndex
>> + IN UINT8 PcieIndex,
>> + IN UINT32 TimeOut
>> )
>> {
>> PHYSICAL_ADDRESS CfgBase;
>> - UINT32 TimeOut;
>> UINT32 Val;
>>
>> CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
>>
>> // Loop read CfgBase value until got valid value or
>> - // reach to timeout EP_LINKUP_TIMEOUT (or more depend on card)
>> - TimeOut = EP_LINKUP_TIMEOUT;
>> + // reach to Timeout (or more depend on card)
>> do {
>> Val = MmioRead32 (CfgBase);
>> if (Val != 0xFFFF0001 && Val != 0xFFFFFFFF) {
>> @@ -1111,7 +1182,7 @@ Ac01PcieCoreGetEndpointInfo (
>> OUT UINT8 *EpMaxGen
>> )
>> {
>> - PHYSICAL_ADDRESS CfgBase;
>> + PHYSICAL_ADDRESS CfgBase, EpCfgAddr;
> One definition per line?
>
>> PHYSICAL_ADDRESS PcieCapBase;
>> PHYSICAL_ADDRESS SecLatTimerAddr;
>> PHYSICAL_ADDRESS TargetAddress;
>> @@ -1133,8 +1204,23 @@ Ac01PcieCoreGetEndpointInfo (
>> Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
>> Val = PRIM_BUS_SET (Val, DEFAULT_PRIM_BUS);
>> MmioWrite32 (SecLatTimerAddr, Val);
>> + EpCfgAddr = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
>>
>> - if (EndpointCfgReady (RootComplex, PcieIndex)) {
>> + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_EXTRA_TIMEOUT)) {
>> + goto Exit;
>> + }
>> +
>> + Val = MmioRead32 (EpCfgAddr);
>> + // Check whether EP config space is accessible or not
>> + if (Val == 0xFFFFFFFF) {
>> + *EpMaxWidth = 0; // Invalid Width
>> + *EpMaxGen = 0; // Invalid Speed
>> + DEBUG ((DEBUG_ERROR, "PCIE%d.%d Cannot access EP config space!\n", RootComplex->ID, PcieIndex));
>> + } else if (Val == 0xFFFF0001) {
>> + *EpMaxWidth = 0; // Invalid Width
>> + *EpMaxGen = 0; // Invalid Speed
>> + DEBUG ((DEBUG_ERROR, "PCIE%d.%d EP config space still not ready to access, need poll more time!!!\n", RootComplex->ID, PcieIndex));
>> + } else {
>> PcieCapBase = GetCapabilityBase (RootComplex, PcieIndex, FALSE, PCIE_CAPABILITY_ID);
>> if (PcieCapBase == 0) {
>> DEBUG ((
>> @@ -1164,6 +1250,7 @@ Ac01PcieCoreGetEndpointInfo (
>> }
>> }
>>
>> +Exit:
>> // Restore value in order to not affect enumeration process
>> MmioWrite32 (SecLatTimerAddr, RestoreVal);
>>
>> @@ -1280,6 +1367,30 @@ Ac01PcieCoreQoSLinkCheckRecovery (
>> return LINK_CHECK_SUCCESS;
>> }
>>
>> +BOOLEAN
>> +Ac01PcieCoreCheckCardPresent (
>> + IN AC01_PCIE_CONTROLLER *PcieController
>> + )
>> +{
>> + EFI_PHYSICAL_ADDRESS TargetAddress;
>> + UINT32 ControlValue;
>> +
>> + ControlValue = 0;
>> +
>> + TargetAddress = PcieController->CsrBase;
>> +
>> + ControlValue = MmioRead32 (TargetAddress + AC01_PCIE_CORE_LINK_CTRL_REG);
>> +
>> + if (0 == LTSSMENB_GET (ControlValue)) {
> No jeopardy testing.
Sorry, could you explain more about jeopardy testing?
>
>> + //
>> + // LTSSMENB is clear to 0x00 by Hardware -> link partner is connected.
>> + //
>> + return TRUE;
>> + }
>> +
>> + return FALSE;
>> +}
>> +
>> VOID
>> Ac01PcieCoreUpdateLink (
>> IN AC01_ROOT_COMPLEX *RootComplex,
>> @@ -1328,16 +1439,17 @@ Ac01PcieCoreUpdateLink (
>> // Doing link checking and recovery if needed
>> Ac01PcieCoreQoSLinkCheckRecovery (RootComplex, PcieIndex);
>>
>> - // Link timeout after 32ms
>> - SetLinkTimeout (RootComplex, PcieIndex, 32);
>> -
>> // Un-mask Completion Timeout
>> DisableCompletionTimeOut (RootComplex, PcieIndex, FALSE);
>>
>> } else {
>> - *IsNextRoundNeeded = FALSE;
>> FailedPciePtr[*FailedPcieCount] = PcieIndex;
>> *FailedPcieCount += 1;
>> +
>> + if (Ac01PcieCoreCheckCardPresent (Pcie)) {
>> + *IsNextRoundNeeded = TRUE;
>> + DEBUG ((DEBUG_INFO, "PCIE%d.%d Link retry\n", RootComplex->ID, PcieIndex));
>> + }
> Another 4-level if-statement.
> I'm not suggesting it's necessarily the latest addition that needs to
> be broken out as a helper, but 4 is too deep.
Thanks Leif a lot for the suggestions for improving the code readability.
Best regards,
Nhi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
2023-02-15 12:03 ` [edk2-devel] " Leif Lindholm
@ 2023-02-24 3:29 ` Nhi Pham
0 siblings, 0 replies; 10+ messages in thread
From: Nhi Pham @ 2023-02-24 3:29 UTC (permalink / raw)
To: devel, quic_llindhol, nhi; +Cc: patches, ardb+tianocore, Tinh Nguyen
Hi Leif,
On 2/15/2023 7:03 PM, Leif Lindholm via groups.io wrote:
> On Fri, Jan 13, 2023 at 11:25:17 +0700, Nhi Pham via groups.io wrote:
>> From: Tinh Nguyen <tinhnguyen@os.amperecomputing.com>
>>
>> This adds ACPI DSDT tables and updates ACPI MADT table
>> to support Ampere Altra Max processor.
>>
>> Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
> Ideally, I would like to see the refactoring of existing support split
> up from the additions of new support.
>
> /
> Leif
Thanks, Leif. I will try to split it out.
Best regards,
Nhi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
2023-01-13 4:25 ` [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables " Nhi Pham
2023-02-15 12:03 ` [edk2-devel] " Leif Lindholm
@ 2023-02-24 18:03 ` Rebecca Cran
1 sibling, 0 replies; 10+ messages in thread
From: Rebecca Cran @ 2023-02-24 18:03 UTC (permalink / raw)
To: devel, nhi; +Cc: patches, quic_llindhol, ardb+tianocore, Tinh Nguyen
It's not a problem, but the syntax used here is technically 'legacy' vs
the newer ASL 2.0 syntax.
>From https://acpica.org/sites/acpica/files/ASL2.0Overview.pdf
Version 6.0 of the Advanced Configuration and Power interface (ACPI)
specification introduced
support for standard symbolic operators and expressions in the ACPI
Source Language (ASL).
These changes are known as ASL 2.0 and are detailed in chapter 19 of the
ACPI specification.
This document intends to increase visibility and further explain the
benefits and implementation
of these changes.
Legacy ASL
As more developers begin working with ACPI, the limitations of the ASL
language itself have
become more apparent. The main mathematical and logical operators of ASL
are expressed in
Polish notation, which places operators to the left of operands, as
shown in the examples below:
Add (X, Y, Z)
LEqual (X, Y)
Building complex expressions with this notation can make ASL code
practically unreadable by
humans. Even experienced BIOS engineers can find ASL expressions
difficult to parse, while
developers new to the language might find ASL to be inaccessible
compared to languages that
use a more common notation.
ASL 2.0
Fortunately version 6.0 of the ACPI specification has introduced
standard symbolic operators
and infix expressions for ASL that are similar to those used in C and
other common algebraic
languages. The following examples show how the legacy ASL syntax above
is expressed in
ASL 2.0:
Z = X + Y
If (X == Y)
The ASL 2.0 operator precedence and associativity rules are identical to
the C language.These
new symbolic operators are backwards compatible with existing legacy ASL
operators, and are
implemented with only minor changes to the ASL compiler and AML
disassembler.
These changes to the ASL language are significant enough to warrant
changing the name of the
language to ASL 2.0, as compared to legacy ASL.
--
Rebecca Cran
On 1/12/23 9:25 PM, Nhi Pham via groups.io wrote:
> + Method (_OSC, 4) {
> +
> + //
> + // Look for the PCI Host Bridge Interface UUID.
> + // Section 6.2.10.3
> + //
> +
> + //
> + // Create DWord-adressable fields from the Capabilities Buffer
> + // Create CDW1 outside the test as it's used in the else clause.
> + //
> +
> + CreateDWordField (Arg3, 0, CDW1)
> + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
> +
> + CreateDWordField (Arg3, 4, CDW2)
> + CreateDWordField (Arg3, 8, CDW3)
> +
> + //
> + // Save Capabilities DWord 2 & 3
> + //
> +
> + Store (CDW2, SUPP)
> + Store (CDW3, CTRL)
> +
> + //
> + // Only allow native hot plug control if OS supports:
> + // ASPM
> + // Clock PM
> + // MSI/MSI-X
> + //
> +
> + If (LNotEqual (And (SUPP, 0x16), 0x16)) {
> +
> + //
> + // Mask bit 0 (and undefined bits)
> + //
> +
> + And (CTRL, 0x1E, CTRL)
> + }
> +
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max
2023-02-24 3:26 ` Nhi Pham
@ 2023-03-14 13:20 ` Leif Lindholm
0 siblings, 0 replies; 10+ messages in thread
From: Leif Lindholm @ 2023-03-14 13:20 UTC (permalink / raw)
To: Nhi Pham; +Cc: Nhi Pham, devel, patches, ardb+tianocore, Vu Nguyen
Urgh, I think I forgot to reply to this - apologies.
On Fri, Feb 24, 2023 at 10:26:42 +0700, Nhi Pham wrote:
> Hi Leif,
>
> Thanks for your reviewing. Most of your feedback is valid. I will fix them.
> There is a comment that need your more explanation.
>
> Please see the inline reply for more details.
>
> > > diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> > > index aa34a90b44c6..1346fa616ab3 100644
> > > --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> > > +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c
> > > @@ -37,7 +37,7 @@
> > > | Y | Y | Y | Y | 3 |
> > > ----------------------------------------
> > > - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> > > + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
> > > SPDX-License-Identifier: BSD-2-Clause-Patent
> > > @@ -149,6 +149,10 @@ GetDefaultDevMap (
> > > AC01_ROOT_COMPLEX *RootComplex
> > > )
> > > {
> > > + BOOLEAN IsAc01;
> > > +
> > > + IsAc01 = IsAc01Processor ();
> > > +
> > > if (RootComplex->Pcie[PcieController0].Active
> > > && RootComplex->Pcie[PcieController1].Active
> > > && RootComplex->Pcie[PcieController2].Active
> > > @@ -169,14 +173,20 @@ GetDefaultDevMap (
> > > && RootComplex->Pcie[PcieController5].Active
> > > && RootComplex->Pcie[PcieController6].Active
> > > && RootComplex->Pcie[PcieController7].Active) {
> > > - RootComplex->DefaultDevMapHigh = DevMapMode4;
> > > + if (IsAc01) {
> > > + RootComplex->DefaultDevMapHigh = DevMapMode4;
> > > + }
> >
> > Who sets RootComplex->DefaultDevMapHigh if !IsAc01?
>
> It will be the default value (0) because Ampere Altra Max does not have Root
> Complex Type B.
OK.
So, this just looks a bit like a maintenance nightmare.
There are so many places that individually check for a specific
platform.
And this is not the most readable file to begin with.
So looking at this *existing* function, it seems to be determining how
many PCIe controllers are active. Could we simplify it with some
arithmetic instead of translating truth tables to C conditionals?
If so, it looks like we could have a single IsAc01 check, covering
cases 2-4?
/
Leif
> >
> > > } else if (RootComplex->Pcie[PcieController4].Active
> > > && RootComplex->Pcie[PcieController6].Active
> > > && RootComplex->Pcie[PcieController7].Active) {
> > > - RootComplex->DefaultDevMapHigh = DevMapMode3;
> > > + if (IsAc01) {
> > > + RootComplex->DefaultDevMapHigh = DevMapMode3;
> > > + }
> > same
> >
> > > } else if (RootComplex->Pcie[PcieController4].Active
> > > && RootComplex->Pcie[PcieController6].Active) {
> > > - RootComplex->DefaultDevMapHigh = DevMapMode2;
> > > + if (IsAc01) {
> > > + RootComplex->DefaultDevMapHigh = DevMapMode2;
> > > + }
> > same
> >
> > > } else {
> > > RootComplex->DefaultDevMapHigh = DevMapMode1;
> > > }
> > I feel this function in general could be rewritten more reader-friendly.
> >
> > > @@ -203,12 +213,17 @@ GetLaneAllocation (
> > > EFI_STATUS Status;
> > > INTN RPIndex;
> > > NVPARAM NvParamOffset;
> > > - UINT32 Value, Width;
> > > + UINT32 Value, Width, Controller;
> > > // Retrieve lane allocation and capabilities for each controller
> > > if (RootComplex->Type == RootComplexTypeA) {
> > > - NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
> > > - NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) {
> > > + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
> > > + NvParamOffset += RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOARD_S1_RCA4_CFG;
> > > + NvParamOffset += (RootComplex->ID - MaxPcieControllerOfRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + }
> > Helper function.
> >
> > > } else {
> > > //
> > > // There're two NVParam entries per RootComplexTypeB
> > > @@ -222,7 +237,13 @@ GetLaneAllocation (
> > > Value = 0;
> > > }
> > > - for (RPIndex = 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++) {
> > > + if (IsAc01Processor ()) {
> > > + Controller = MaxPcieControllerOfRootComplexA;
> > > + } else {
> > > + Controller = RootComplex->MaxPcieController;
> > > + }
> > Straightforward enough, but could still be a helper function.
> >
> > > +
> > > + for (RPIndex = PcieController0; RPIndex < Controller; RPIndex++) {
> > > Width = (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK;
> > > switch (Width) {
> > > case 1:
> > > @@ -245,7 +266,7 @@ GetLaneAllocation (
> > > if (RootComplex->Type == RootComplexTypeB) {
> > > NvParamOffset += NV_PARAM_ENTRYSIZE;
> > > - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> > > + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> > > if (EFI_ERROR (Status)) {
> > > Value = 0;
> > > }
> > > @@ -288,9 +309,17 @@ GetGen3PresetNvParamOffset (
> > > if (RootComplex->Socket == 0) {
> > > if (RootComplex->Type == RootComplexTypeA) {
> > > if (RootComplex->ID < MaxRootComplexA) {
> > > - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > When we get to 4 levels of if, we absolutely need helper functions.
> >
> > > + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + }
> > > } else {
> > > - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + }
> > > }
> > > } else {
> > > //
> > > @@ -300,9 +329,17 @@ GetGen3PresetNvParamOffset (
> > > }
> > > } else if (RootComplex->Type == RootComplexTypeA) {
> > > if (RootComplex->ID < MaxRootComplexA) {
> > > - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + }
> > > } else {
> > > - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + }
> > > }
> > > } else {
> > > //
> > > @@ -324,9 +361,17 @@ GetGen4PresetNvParamOffset (
> > > if (RootComplex->Socket == 0) {
> > > if (RootComplex->Type == RootComplexTypeA) {
> > > if (RootComplex->ID < MaxRootComplexA) {
> > > - NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET + RootComplex->ID * NV_PARAM_ENTRYSIZE;
> > > + }
> > > } else {
> > > - NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + }
> > > }
> > > } else {
> > > //
> > > @@ -336,9 +381,17 @@ GetGen4PresetNvParamOffset (
> > > }
> > > } else if (RootComplex->Type == RootComplexTypeA) {
> > > if (RootComplex->ID < MaxRootComplexA) {
> > > - NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET + (RootComplex->ID - 2) * NV_PARAM_ENTRYSIZE;
> > > + }
> > > } else {
> > > - NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + if (IsAc01Processor ()) {
> > > + NvParamOffset = NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + } else {
> > > + NvParamOffset = NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
> > > + }
> > This also looks like the exact same computation takes place 4 times
> > for different combos of G4PRESETs and rootcompled IDs. That should be
> > possible to parametrise and compute in a single function instead.
> Correct, will improve it.
> >
> > > }
> > > } else {
> > > //
> > > @@ -352,7 +405,7 @@ GetGen4PresetNvParamOffset (
> > > VOID
> > > GetPresetSetting (
> > > - AC01_ROOT_COMPLEX *RootComplex
> > > + AC01_ROOT_COMPLEX *RootComplex
> > > )
> > > {
> > > EFI_STATUS Status;
> > > @@ -377,7 +430,7 @@ GetPresetSetting (
> > > if (RootComplex->Type == RootComplexTypeB) {
> > > NvParamOffset += NV_PARAM_ENTRYSIZE;
> > > - Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> > > + Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
> > > if (!EFI_ERROR (Status)) {
> > > for (Index = MaxPcieControllerOfRootComplexA; Index < MaxPcieController; Index++) {
> > > RootComplex->PresetGen3[Index] = (Value >> ((Index - MaxPcieControllerOfRootComplexA) * BITS_PER_BYTE)) & BYTE_MASK;
> > > @@ -414,7 +467,7 @@ GetMaxSpeedGen (
> > > UINT8 ErrataSpeedDevMap3[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN4, LINK_SPEED_GEN4, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 2: x8 x4 x4 (PCIE_ERRATA_SPEED1)
> > > UINT8 ErrataSpeedDevMap4[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcation 3: x4 x4 x4 x4 (PCIE_ERRATA_SPEED1)
> > > UINT8 ErrataSpeedRcb[MaxPcieControllerOfRootComplexA] = { LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // RootComplexTypeB PCIE_ERRATA_SPEED1
> > > - UINT8 Idx;
> > > + UINT8 Idx, Controller;
> > One definition per line?
> Will fix.
> >
> > > UINT8 *MaxGen;
> > > ASSERT (MaxPcieControllerOfRootComplexA == 4);
> > > @@ -452,7 +505,13 @@ GetMaxSpeedGen (
> > > }
> > > }
> > > - for (Idx = 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) {
> > > + if (IsAc01Processor ()) {
> > > + Controller = MaxPcieControllerOfRootComplexA;
> > > + } else {
> > > + Controller = RootComplex->MaxPcieController;
> > > + }
> > Straightforward enough, but could still be a helper function.
> >
> > > +
> > > + for (Idx = 0; Idx < Controller; Idx++) {
> > > RootComplex->Pcie[Idx].MaxGen = RootComplex->Pcie[Idx].Active ? MaxGen[Idx] : LINK_SPEED_NONE;
> > > }
> > > diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> > > index ad648b1b9efd..12bd2c14544e 100644
> > > --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> > > +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
> > > @@ -1,6 +1,6 @@
> > > /** @file
> > > - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
> > > + Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.<BR>
> > > SPDX-License-Identifier: BSD-2-Clause-Patent
> > > @@ -10,8 +10,10 @@
> > > #include <Guid/PlatformInfoHob.h>
> > > #include <Guid/RootComplexInfoHob.h>
> > > +#include <IndustryStandard/Pci.h>
> > > #include <Library/ArmGenericTimerCounterLib.h>
> > > #include <Library/BaseLib.h>
> > > +#include <Library/BaseMemoryLib.h>
> > > #include <Library/BoardPcieLib.h>
> > > #include <Library/DebugLib.h>
> > > #include <Library/HobLib.h>
> > > @@ -22,6 +24,25 @@
> > > #include "PcieCore.h"
> > > +VOID
> > > +EnableDbiAccess (
> > > + AC01_ROOT_COMPLEX *RootComplex,
> > > + UINT32 PcieIndex,
> > > + BOOLEAN EnableDbi
> > > + );
> > > +
> > > +BOOLEAN
> > > +EndpointCfgReady (
> > > + IN AC01_ROOT_COMPLEX *RootComplex,
> > > + IN UINT8 PcieIndex,
> > > + IN UINT32 Timeout
> > > + );
> > > +
> > > +BOOLEAN
> > > +PcieLinkUpCheck (
> > > + IN AC01_PCIE_CONTROLLER *Pcie
> > > + );
> > > +
> > > /**
> > > Return the next extended capability base address
> > > @@ -41,14 +62,38 @@ GetCapabilityBase (
> > > {
> > > BOOLEAN IsExtCapability = FALSE;
> > > PHYSICAL_ADDRESS CfgBase;
> > > + PHYSICAL_ADDRESS Ret = 0;
> > > + PHYSICAL_ADDRESS RootComplexCfgBase;
> > > UINT32 CapabilityId;
> > > UINT32 NextCapabilityPtr;
> > > UINT32 Val;
> > > + UINT32 RestoreVal;
> > > - if (IsRootComplex) {
> > > - CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
> > > - } else {
> > > + RootComplexCfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << DEV_SHIFT);
> > > + if (!IsRootComplex) {
> > > + // Allow programming to config space
> > > + EnableDbiAccess (RootComplex, PcieIndex, TRUE);
> > > +
> > > + Val = MmioRead32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG);
> > > + RestoreVal = Val;
> > > + Val = SUB_BUS_SET (Val, DEFAULT_SUB_BUS);
> > > + Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
> > > + Val = PRIM_BUS_SET (Val, 0x0);
> > > + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, Val);
> > > CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
> > > +
> > > + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_TIMEOUT)) {
> > > + goto _CheckCapEnd;
> > > + }
> > > + } else {
> > > + CfgBase = RootComplexCfgBase;
> > > + }
> > > +
> > > + // Check if device provide capability
> > > + Val = MmioRead32 (CfgBase + PCI_COMMAND_OFFSET);
> > > + Val = GET_HIGH_16_BITS (Val); /* Status */
> > > + if (!(Val & EFI_PCI_STATUS_CAPABILITY)) {
> > > + goto _CheckCapEnd;
> > > }
> > > Val = MmioRead32 (CfgBase + TYPE1_CAP_PTR_REG);
> > > @@ -58,7 +103,8 @@ GetCapabilityBase (
> > > while (1) {
> > > if ((NextCapabilityPtr & WORD_ALIGN_MASK) != 0) {
> > > // Not alignment, just return
> > > - return 0;
> > > + Ret = 0;
> > > + goto _CheckCapEnd;
> > > }
> > > Val = MmioRead32 (CfgBase + NextCapabilityPtr);
> > > @@ -69,7 +115,8 @@ GetCapabilityBase (
> > > }
> > > if (CapabilityId == ExtCapabilityId) {
> > > - return (CfgBase + NextCapabilityPtr);
> > > + Ret = (CfgBase + NextCapabilityPtr);
> > > + goto _CheckCapEnd;
> > > }
> > > if (NextCapabilityPtr < EXT_CAPABILITY_START_BASE) {
> > > @@ -84,9 +131,20 @@ GetCapabilityBase (
> > > }
> > > if ((NextCapabilityPtr == 0) && IsExtCapability) {
> > > - return 0;
> > > + Ret = 0;
> > > + goto _CheckCapEnd;
> > > }
> > > }
> > > +
> > > +_CheckCapEnd:
> > > + if (!IsRootComplex) {
> > > + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BUS_REG, RestoreVal);
> > > +
> > > + // Disable programming to config space
> > > + EnableDbiAccess (RootComplex, PcieIndex, FALSE);
> > > + }
> > > +
> > > + return Ret;
> > > }
> > > /**
> > > @@ -677,6 +735,14 @@ Ac01PcieCoreSetupRC (
> > > // Hold link training
> > > StartLinkTraining (RootComplex, PcieIndex, FALSE);
> > > + // Clear BUSCTRL.CfgUrMask to set CRS (Configuration Request Retry Status) to 0xFFFF.FFFF
> > > + // rather than 0xFFFF.0001 as per PCIe specification requirement. Otherwise, this causes
> > > + // device drivers respond incorrectly on timeout due to long device operations.
> > > + TargetAddress = CsrBase + AC01_PCIE_CORE_BUS_CONTROL_REG;
> > > + Val = MmioRead32 (TargetAddress);
> > > + Val &= ~BUS_CTL_CFG_UR_MASK;
> > > + MmioWrite32 (TargetAddress, Val);
> > > +
> > > if (!EnableAxiPipeClock (RootComplex, PcieIndex)) {
> > > DEBUG ((DEBUG_ERROR, "- Pcie[%d] - PIPE clock is not stable\n", PcieIndex));
> > > return RETURN_DEVICE_ERROR;
> > > @@ -688,9 +754,14 @@ Ac01PcieCoreSetupRC (
> > > // Allow programming to config space
> > > EnableDbiAccess (RootComplex, PcieIndex, TRUE);
> > > - // Program the power limit
> > > TargetAddress = CfgBase + PCIE_CAPABILITY_BASE + SLOT_CAPABILITIES_REG;
> > > Val = MmioRead32 (TargetAddress);
> > > + // In order to detect the NVMe disk for booting without disk,
> > > + // need to set Hot-Plug Slot Capable during port initialization.
> > > + // It will help PCI Linux driver to initialize its slot iomem resource,
> > > + // the one is used for detecting the disk when it is inserted.
> > I don't quite understand the comment.
> > Is this for netbooting, then inserting an NVMe drive after boot?
> This is a part of PCIe Hotplug feature that will be upstreamed later. Now we
> will remove this change.
> >
> > > + Val = SLOT_HPC_SET (Val, 1);
> > > + // Program the power limit
> > > Val = SLOT_CAP_SLOT_POWER_LIMIT_VALUE_SET (Val, SLOT_POWER_LIMIT_75W);
> > > MmioWrite32 (TargetAddress, Val);
> > > @@ -755,6 +826,7 @@ Ac01PcieCoreSetupRC (
> > > // Link timeout after 1ms
> > > SetLinkTimeout (RootComplex, PcieIndex, 1);
> > > + // Mask Completion Timeout
> > > DisableCompletionTimeOut (RootComplex, PcieIndex, TRUE);
> > > ProgramRootPortInfo (RootComplex, PcieIndex);
> > > @@ -1067,21 +1139,20 @@ Ac01PFACommand (
> > > return Ret;
> > > }
> > > -UINT32
> > > +BOOLEAN
> > > EndpointCfgReady (
> > > IN AC01_ROOT_COMPLEX *RootComplex,
> > > - IN UINT8 PcieIndex
> > > + IN UINT8 PcieIndex,
> > > + IN UINT32 TimeOut
> > > )
> > > {
> > > PHYSICAL_ADDRESS CfgBase;
> > > - UINT32 TimeOut;
> > > UINT32 Val;
> > > CfgBase = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
> > > // Loop read CfgBase value until got valid value or
> > > - // reach to timeout EP_LINKUP_TIMEOUT (or more depend on card)
> > > - TimeOut = EP_LINKUP_TIMEOUT;
> > > + // reach to Timeout (or more depend on card)
> > > do {
> > > Val = MmioRead32 (CfgBase);
> > > if (Val != 0xFFFF0001 && Val != 0xFFFFFFFF) {
> > > @@ -1111,7 +1182,7 @@ Ac01PcieCoreGetEndpointInfo (
> > > OUT UINT8 *EpMaxGen
> > > )
> > > {
> > > - PHYSICAL_ADDRESS CfgBase;
> > > + PHYSICAL_ADDRESS CfgBase, EpCfgAddr;
> > One definition per line?
> >
> > > PHYSICAL_ADDRESS PcieCapBase;
> > > PHYSICAL_ADDRESS SecLatTimerAddr;
> > > PHYSICAL_ADDRESS TargetAddress;
> > > @@ -1133,8 +1204,23 @@ Ac01PcieCoreGetEndpointInfo (
> > > Val = SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum);
> > > Val = PRIM_BUS_SET (Val, DEFAULT_PRIM_BUS);
> > > MmioWrite32 (SecLatTimerAddr, Val);
> > > + EpCfgAddr = RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNum << BUS_SHIFT);
> > > - if (EndpointCfgReady (RootComplex, PcieIndex)) {
> > > + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_EXTRA_TIMEOUT)) {
> > > + goto Exit;
> > > + }
> > > +
> > > + Val = MmioRead32 (EpCfgAddr);
> > > + // Check whether EP config space is accessible or not
> > > + if (Val == 0xFFFFFFFF) {
> > > + *EpMaxWidth = 0; // Invalid Width
> > > + *EpMaxGen = 0; // Invalid Speed
> > > + DEBUG ((DEBUG_ERROR, "PCIE%d.%d Cannot access EP config space!\n", RootComplex->ID, PcieIndex));
> > > + } else if (Val == 0xFFFF0001) {
> > > + *EpMaxWidth = 0; // Invalid Width
> > > + *EpMaxGen = 0; // Invalid Speed
> > > + DEBUG ((DEBUG_ERROR, "PCIE%d.%d EP config space still not ready to access, need poll more time!!!\n", RootComplex->ID, PcieIndex));
> > > + } else {
> > > PcieCapBase = GetCapabilityBase (RootComplex, PcieIndex, FALSE, PCIE_CAPABILITY_ID);
> > > if (PcieCapBase == 0) {
> > > DEBUG ((
> > > @@ -1164,6 +1250,7 @@ Ac01PcieCoreGetEndpointInfo (
> > > }
> > > }
> > > +Exit:
> > > // Restore value in order to not affect enumeration process
> > > MmioWrite32 (SecLatTimerAddr, RestoreVal);
> > > @@ -1280,6 +1367,30 @@ Ac01PcieCoreQoSLinkCheckRecovery (
> > > return LINK_CHECK_SUCCESS;
> > > }
> > > +BOOLEAN
> > > +Ac01PcieCoreCheckCardPresent (
> > > + IN AC01_PCIE_CONTROLLER *PcieController
> > > + )
> > > +{
> > > + EFI_PHYSICAL_ADDRESS TargetAddress;
> > > + UINT32 ControlValue;
> > > +
> > > + ControlValue = 0;
> > > +
> > > + TargetAddress = PcieController->CsrBase;
> > > +
> > > + ControlValue = MmioRead32 (TargetAddress + AC01_PCIE_CORE_LINK_CTRL_REG);
> > > +
> > > + if (0 == LTSSMENB_GET (ControlValue)) {
> > No jeopardy testing.
> Sorry, could you explain more about jeopardy testing?
> >
> > > + //
> > > + // LTSSMENB is clear to 0x00 by Hardware -> link partner is connected.
> > > + //
> > > + return TRUE;
> > > + }
> > > +
> > > + return FALSE;
> > > +}
> > > +
> > > VOID
> > > Ac01PcieCoreUpdateLink (
> > > IN AC01_ROOT_COMPLEX *RootComplex,
> > > @@ -1328,16 +1439,17 @@ Ac01PcieCoreUpdateLink (
> > > // Doing link checking and recovery if needed
> > > Ac01PcieCoreQoSLinkCheckRecovery (RootComplex, PcieIndex);
> > > - // Link timeout after 32ms
> > > - SetLinkTimeout (RootComplex, PcieIndex, 32);
> > > -
> > > // Un-mask Completion Timeout
> > > DisableCompletionTimeOut (RootComplex, PcieIndex, FALSE);
> > > } else {
> > > - *IsNextRoundNeeded = FALSE;
> > > FailedPciePtr[*FailedPcieCount] = PcieIndex;
> > > *FailedPcieCount += 1;
> > > +
> > > + if (Ac01PcieCoreCheckCardPresent (Pcie)) {
> > > + *IsNextRoundNeeded = TRUE;
> > > + DEBUG ((DEBUG_INFO, "PCIE%d.%d Link retry\n", RootComplex->ID, PcieIndex));
> > > + }
> > Another 4-level if-statement.
> > I'm not suggesting it's necessarily the latest addition that needs to
> > be broken out as a helper, but 4 is too deep.
>
> Thanks Leif a lot for the suggestions for improving the code readability.
>
> Best regards,
>
> Nhi
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor
2023-01-13 4:25 [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
2023-01-13 4:25 ` [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max Nhi Pham
2023-01-13 4:25 ` [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables " Nhi Pham
@ 2023-03-29 4:49 ` Nhi Pham
2 siblings, 0 replies; 10+ messages in thread
From: Nhi Pham @ 2023-03-29 4:49 UTC (permalink / raw)
To: quic_llindhol; +Cc: devel, patches, ardb+tianocore, Nhi Pham
Hi Leif,
Sorry to have kept you waiting. I was not able to send the v2 out sooner
than I wanted as the large refactor changes has been well-tested. I have
just sent the v2. I hope all your comments are addressed.
Thanks so much.
Nhi
On 1/13/2023 11:25 AM, Nhi Pham wrote:
> This patchset adds support for Ampere Altra Max processor.
>
> Tinh Nguyen (1):
> JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
>
> Vu Nguyen (1):
> Ampere: PCIe: Add support for Ampere Altra Max
>
> .../AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 6 +-
> Platform/Ampere/JadePkg/Jade.dsc | 3 +-
> Platform/Ampere/JadePkg/Jade.fdf | 3 +-
> .../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf | 20 +
> .../Include/Library/AmpereCpuLib.h | 31 +-
> .../AmpereAltraPkg/Include/NVParamDef.h | 64 +-
> .../AmpereAltraPkg/Include/Platform/Ac01.h | 5 +-
> .../Library/Ac01PcieLib/PcieCore.h | 8 +-
> .../Drivers/AcpiPlatformDxe/AcpiMadt.c | 103 +-
> .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c | 10 +-
> .../Library/BoardPcieLib/BoardPcieLib.c | 63 +-
> .../Drivers/PcieInitPei/PcieInitPei.c | 16 +-
> .../Drivers/PcieInitPei/RootComplexNVParam.c | 101 +-
> .../Library/Ac01PcieLib/PcieCore.c | 150 +-
> .../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 +-
> .../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi | 6345 +++++++++++++++++
> .../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi | 6345 +++++++++++++++++
> .../Ampere/JadePkg/Ac02AcpiTables/CPU.asi | 152 +
> .../JadePkg/Ac02AcpiTables/CommonDevices.asi | 670 ++
> .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl | 39 +
> .../JadePkg/Ac02AcpiTables/PCI-PDRC.asi | 217 +
> .../JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi | 669 ++
> .../Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi | 2041 ++++++
> .../Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi | 2051 ++++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi | 1292 ++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi | 1292 ++++
> .../Ampere/JadePkg/Ac02AcpiTables/PMU.asi | 10 +
> 27 files changed, 21699 insertions(+), 250 deletions(-)
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi
> create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-03-29 4:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-13 4:25 [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
2023-01-13 4:25 ` [edk2-platforms][PATCH 1/2] Ampere: PCIe: Add support for Ampere Altra Max Nhi Pham
2023-02-15 11:59 ` Leif Lindholm
2023-02-24 3:26 ` Nhi Pham
2023-03-14 13:20 ` Leif Lindholm
2023-01-13 4:25 ` [edk2-platforms][PATCH 2/2] JadePkg: ACPI: Support ACPI tables " Nhi Pham
2023-02-15 12:03 ` [edk2-devel] " Leif Lindholm
2023-02-24 3:29 ` Nhi Pham
2023-02-24 18:03 ` Rebecca Cran
2023-03-29 4:49 ` [edk2-platforms][PATCH 0/2] Support Ampere Altra Max processor Nhi Pham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox