public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor
@ 2023-03-29  4:32 Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap Nhi Pham
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Nhi Pham

This patchset adds support for Ampere Altra Max processor and updates for some
bugfixes.

Changes since v1:
  + Improved readability per Leif's feedback, such as: Add helper functions.
  split out the supports, bugfixes, and code refactor.

Tinh Nguyen (1):
  JadePkg: ACPI: Support ACPI tables for Ampere Altra Max

Vu Nguyen (8):
  AmpereAltraPkg: Correct PCIe Devmap
  AmpereAltraPkg: Correct PCIe memory attribute
  JadePkg: PCIe: Add delay after releasing PERST
  AmpereAltraPkg: Update Ampere specific platform PCIe core
  AmpereAltraPkg: Update Ampere Core/Cluster profile
  Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max
  Ampere: PCIe: Add support for Ampere Altra Max
  AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons

 .../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       |   36 +-
 .../AmpereAltraPkg/Include/Platform/Ac01.h    |    7 +-
 .../Library/Ac01PcieLib/PcieCore.h            |    8 +-
 .../Drivers/AcpiPlatformDxe/AcpiMadt.c        |  105 +-
 .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c |   10 +-
 .../Library/BoardPcieLib/BoardPcieLib.c       |   83 +-
 .../Drivers/PcieInitPei/PcieInitPei.c         |  133 +-
 .../Drivers/PcieInitPei/RootComplexNVParam.c  |  344 +-
 .../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  |  513 ++
 .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl    |   26 +
 .../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, 21731 insertions(+), 404 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] 12+ messages in thread

* [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 2/9] AmpereAltraPkg: Correct PCIe memory attribute Nhi Pham
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

This corrects the high devmap of Root Complex (RC)
that should be fetched from a high bifurcation.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 .../Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
index 17f6112ea207..76d3f90aa833 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];
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 2/9] AmpereAltraPkg: Correct PCIe memory attribute
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 3/9] JadePkg: PCIe: Add delay after releasing PERST Nhi Pham
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

This fixes the memory attribute of the first
RC Type B (RCB0).

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
index d45688f88401..0db3bfb62018 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
@@ -292,7 +292,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
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 3/9] JadePkg: PCIe: Add delay after releasing PERST
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 2/9] AmpereAltraPkg: Correct PCIe memory attribute Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 4/9] AmpereAltraPkg: Update Ampere specific platform PCIe core Nhi Pham
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

According to PCIe specification, following exit from a Conventional Reset,
some devices may require additional time before they are able to respond
to Requests they receive, so this patch adds a delay after releasing the
PERST signal.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 .../Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c    | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
index f49764097219..5041eb726288 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);
 }
 
 /**
@@ -81,7 +85,7 @@ BoardPcieAssertPerst (
     }
 
     // Keep reset as low as 100 ms as specification
-    MicroSecondDelay (100 * 1000);
+    MicroSecondDelay (PCIE_PERST_DELAY);
   } else {
     BoardPcieReleaseAllPerst (RootComplex->Socket);
   }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 4/9] AmpereAltraPkg: Update Ampere specific platform PCIe core
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (2 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 3/9] JadePkg: PCIe: Add delay after releasing PERST Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 5/9] AmpereAltraPkg: Update Ampere Core/Cluster profile Nhi Pham
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

This patch updates the following:
- Check End Point configuration space is accessible or
  not before getting its capability.
- Add new function to check PCIe card is present or not.
- Set CRS (Configuration Request Retry Status) to follow
  PCIe specifications.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 .../Library/Ac01PcieLib/PcieCore.h            |   8 +-
 .../Library/Ac01PcieLib/PcieCore.c            | 150 ++++++++++++++----
 2 files changed, 128 insertions(+), 30 deletions(-)

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/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c
index ad648b1b9efd..855b094f7948 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;
@@ -1067,21 +1133,20 @@ Ac01PFACommand (
   return Ret;
 }
 
-UINT32
+BOOLEAN
 EndpointCfgReady (
-  IN AC01_ROOT_COMPLEX  *RootComplex,
-  IN UINT8              PcieIndex
+  IN AC01_ROOT_COMPLEX *RootComplex,
+  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) {
@@ -1112,6 +1177,7 @@ Ac01PcieCoreGetEndpointInfo (
   )
 {
   PHYSICAL_ADDRESS      CfgBase;
+  PHYSICAL_ADDRESS      EpCfgAddr;
   PHYSICAL_ADDRESS      PcieCapBase;
   PHYSICAL_ADDRESS      SecLatTimerAddr;
   PHYSICAL_ADDRESS      TargetAddress;
@@ -1133,8 +1199,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 +1245,7 @@ Ac01PcieCoreGetEndpointInfo (
     }
   }
 
+Exit:
   // Restore value in order to not affect enumeration process
   MmioWrite32 (SecLatTimerAddr, RestoreVal);
 
@@ -1280,6 +1362,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,
@@ -1314,30 +1420,16 @@ Ac01PcieCoreUpdateLink (
         Pcie->LinkUp = TRUE;
         Val = MmioRead32 (CfgBase + PCIE_CAPABILITY_BASE + LINK_CONTROL_LINK_STATUS_REG);
 
-        DEBUG ((
-          DEBUG_INFO,
-          "%a Socket%d RootComplex%d RP%d NEGO_LINK_WIDTH: 0x%x LINK_SPEED: 0x%x\n",
-          __FUNCTION__,
-          RootComplex->Socket,
-          RootComplex->ID,
-          PcieIndex,
-          CAP_NEGO_LINK_WIDTH_GET (Val),
-          CAP_LINK_SPEED_GET (Val)
-          ));
-
         // 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;
+        *IsNextRoundNeeded = !(*IsNextRoundNeeded) ? Ac01PcieCoreCheckCardPresent (Pcie) : TRUE;
       }
     }
   }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 5/9] AmpereAltraPkg: Update Ampere Core/Cluster profile
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (3 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 4/9] AmpereAltraPkg: Update Ampere specific platform PCIe core Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 6/9] Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max Nhi Pham
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 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 number of cores and clusters to add support
for the Ampere Altra Max processor.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc  | 6 +++---
 Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h | 5 ++++-
 2 files changed, 7 insertions(+), 4 deletions(-)

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/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
index 0db3bfb62018..4bea14d7d2b6 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.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
 
@@ -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
 //
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 6/9] Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (4 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 5/9] AmpereAltraPkg: Update Ampere Core/Cluster profile Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 7/9] Ampere: PCIe: Add support " Nhi Pham
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

This adds PHY preset NVParams definition for each Root complex
to support Ampere Altra Max platform.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 .../AmpereAltraPkg/Include/NVParamDef.h       | 36 +++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h
index 3259fa1ea45c..4326fddfe977 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
 
@@ -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
 //
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 7/9] Ampere: PCIe: Add support for Ampere Altra Max
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (5 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 6/9] Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 8/9] AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons Nhi Pham
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 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 platform specific 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>
---
 .../Library/BoardPcieLib/BoardPcieLib.c       |  75 +++-
 .../Drivers/PcieInitPei/PcieInitPei.c         | 131 ++++---
 .../Drivers/PcieInitPei/RootComplexNVParam.c  | 344 +++++++++++-------
 3 files changed, 364 insertions(+), 186 deletions(-)

diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
index 5041eb726288..bb69587db54f 100644
--- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
+++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c
@@ -38,6 +38,54 @@ BoardPcieReleaseAllPerst (
   MicroSecondDelay (PCIE_PERST_DELAY);
 }
 
+EFI_STATUS
+GetGpioGroup (
+  IN  UINT8 RootComplexId,
+  IN  UINT8 PcieIndex,
+  OUT UINT32 *GpioGroupVal
+  )
+{
+  /* Ampere Altra Max RootComplex->ID: 4:7 */
+  if (PcieIndex < 2) {
+    switch (RootComplexId) {
+      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;
+      default:
+        return EFI_INVALID_PARAMETER;
+    }
+  } else {
+    /* Ampere Altra Max RootComplex->ID: 4:7 */
+    switch (RootComplexId) {
+      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:
+        return EFI_INVALID_PARAMETER;
+    }
+  }
+
+  return EFI_SUCCESS;
+}
+
 /**
   Assert PERST of PCIe controller
 
@@ -56,15 +104,28 @@ BoardPcieAssertPerst (
   IN BOOLEAN           IsPullToHigh
   )
 {
-  UINT32 GpioGroupVal, Val, GpioIndex, GpioPin;
+  UINT32     GpioGroupVal;
+  UINT32     Val;
+  UINT32     GpioIndex;
+  UINT32     GpioPin;
+  EFI_STATUS Status;
 
   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 {
+        Status = GetGpioGroup (RootComplex->ID, PcieIndex, &GpioGroupVal);
+        if (EFI_ERROR (Status)) {
+          DEBUG ((DEBUG_ERROR, "Invalid Root Complex ID %d\n", RootComplex->ID));
+          return Status;
+        }
+      }
     } else {
       //
       // RootComplexTypeB: RootComplex->ID: 4->7 ; PcieIndex: 0->7
@@ -117,5 +178,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 76d3f90aa833..598a2e64d02f 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c
@@ -40,61 +40,33 @@ STATIC UINT64                   mMmio32Size1P[AC01_PCIE_MAX_ROOT_COMPLEX]    = {
 STATIC UINT64                   mMmioBase[AC01_PCIE_MAX_ROOT_COMPLEX]        = { AC01_PCIE_MMIO_BASE_LIST };
 STATIC UINT64                   mMmioSize[AC01_PCIE_MAX_ROOT_COMPLEX]        = { AC01_PCIE_MMIO_SIZE_LIST };
 
+AC01_ROOT_COMPLEX_TYPE
+GetRootComplexType (
+  UINT8 RootComplexId
+  )
+{
+  if (IsAc01Processor ()) {
+    return (RootComplexId < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
+  }
+
+  return RootComplexTypeA;
+}
+
 VOID
-BuildRootComplexData (
-  VOID
+ConfigureRootComplex (
+  BOOLEAN                           IsConfigFound,
+  ROOT_COMPLEX_CONFIG_VARSTORE_DATA RootComplexConfig
   )
 {
-  AC01_ROOT_COMPLEX                    *RootComplex;
-  BOOLEAN                              ConfigFound;
-  EFI_PEI_READ_ONLY_VARIABLE2_PPI      *VariablePpi;
-  EFI_STATUS                           Status;
-  ROOT_COMPLEX_CONFIG_VARSTORE_DATA    RootComplexConfig;
-  UINT8                                RCIndex;
-  UINT8                                PcieIndex;
-  UINTN                                DataSize;
-
-  ConfigFound = FALSE;
-
-  //
-  // Get the Root Complex config from NVRAM
-  //
-  Status = PeiServicesLocatePpi (
-             &gEfiPeiReadOnlyVariable2PpiGuid,
-             0,
-             NULL,
-             (VOID **)&VariablePpi
-             );
-  if (!EFI_ERROR (Status)) {
-    DataSize = sizeof (RootComplexConfig);
-    Status = VariablePpi->GetVariable (
-                            VariablePpi,
-                            ROOT_COMPLEX_CONFIG_VARSTORE_NAME,
-                            &gRootComplexConfigFormSetGuid,
-                            NULL,
-                            &DataSize,
-                            &RootComplexConfig
-                            );
-    if (!EFI_ERROR (Status)) {
-      ConfigFound = TRUE;
-    }
-  }
-
-  ZeroMem (&mRootComplexList, sizeof (AC01_ROOT_COMPLEX) * AC01_PCIE_MAX_ROOT_COMPLEX);
-
-  //
-  // Adjust Root Complex MMIO32 base address in 1P or 2P configuration
-  //
-  if (!IsSlaveSocketAvailable ()) {
-    CopyMem ((VOID *)&mMmio32Base, (VOID *)&mMmio32Base1P, sizeof (mMmio32Base1P));
-    CopyMem ((VOID *)&mMmio32Size, (VOID *)&mMmio32Size1P, sizeof (mMmio32Size1P));
-  }
+  UINT8             RCIndex;
+  UINT8             PcieIndex;
+  AC01_ROOT_COMPLEX *RootComplex;
 
   for (RCIndex = 0; RCIndex < AC01_PCIE_MAX_ROOT_COMPLEX; RCIndex++) {
     RootComplex = &mRootComplexList[RCIndex];
-    RootComplex->Active = ConfigFound ? RootComplexConfig.RCStatus[RCIndex] : TRUE;
-    RootComplex->DevMapLow = ConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
-    RootComplex->DevMapHigh = ConfigFound ? RootComplexConfig.RCBifurcationHigh[RCIndex] : 0;
+    RootComplex->Active = IsConfigFound ? RootComplexConfig.RCStatus[RCIndex] : TRUE;
+    RootComplex->DevMapLow = IsConfigFound ? RootComplexConfig.RCBifurcationLow[RCIndex] : 0;
+    RootComplex->DevMapHigh = IsConfigFound ? 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 +78,7 @@ BuildRootComplexData (
     RootComplex->MmioSize = mMmioSize[RCIndex];
     RootComplex->Mmio32Base = mMmio32Base[RCIndex];
     RootComplex->Mmio32Size = mMmio32Size[RCIndex];
-    RootComplex->Type = (RootComplex->ID < MaxRootComplexA) ? RootComplexTypeA : RootComplexTypeB;
+    RootComplex->Type = GetRootComplexType (RootComplex->ID);
     RootComplex->MaxPcieController = (RootComplex->Type == RootComplexTypeB)
                                      ? MaxPcieControllerOfRootComplexB : MaxPcieControllerOfRootComplexA;
     RootComplex->Logical = BoardPcieGetSegmentNumber (RootComplex);
@@ -146,6 +118,60 @@ BuildRootComplexData (
   }
 }
 
+VOID
+BuildRootComplexData (
+  VOID
+  )
+{
+  BOOLEAN                              IsConfigFound;
+  EFI_PEI_READ_ONLY_VARIABLE2_PPI      *VariablePpi;
+  EFI_STATUS                           Status;
+  ROOT_COMPLEX_CONFIG_VARSTORE_DATA    RootComplexConfig;
+  UINTN                                DataSize;
+
+  IsConfigFound = FALSE;
+  ZeroMem ((VOID *)&RootComplexConfig, sizeof (ROOT_COMPLEX_CONFIG_VARSTORE_DATA));
+
+  //
+  // Get the Root Complex config from NVRAM
+  //
+  Status = PeiServicesLocatePpi (
+             &gEfiPeiReadOnlyVariable2PpiGuid,
+             0,
+             NULL,
+             (VOID **)&VariablePpi
+             );
+  if (!EFI_ERROR (Status)) {
+    DataSize = sizeof (RootComplexConfig);
+    Status = VariablePpi->GetVariable (
+                            VariablePpi,
+                            ROOT_COMPLEX_CONFIG_VARSTORE_NAME,
+                            &gRootComplexConfigFormSetGuid,
+                            NULL,
+                            &DataSize,
+                            &RootComplexConfig
+                            );
+    if (!EFI_ERROR (Status)) {
+      IsConfigFound = TRUE;
+    }
+  }
+
+  ZeroMem (&mRootComplexList, sizeof (AC01_ROOT_COMPLEX) * AC01_PCIE_MAX_ROOT_COMPLEX);
+
+  //
+  // Adjust Root Complex MMIO32 base address in 1P or 2P configuration
+  //
+  if (!IsSlaveSocketAvailable ()) {
+    CopyMem ((VOID *)&mMmio32Base, (VOID *)&mMmio32Base1P, sizeof (mMmio32Base1P));
+    CopyMem ((VOID *)&mMmio32Size, (VOID *)&mMmio32Size1P, sizeof (mMmio32Size1P));
+  }
+
+  //
+  // All necessary information is available, config Root complex accordingly
+  //
+  ConfigureRootComplex (IsConfigFound, RootComplexConfig);
+}
+
 EFI_STATUS
 EFIAPI
 PcieInitEntry (
@@ -168,11 +194,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..da730c4bd219 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
 
@@ -55,6 +55,12 @@
 
 #include "RootComplexNVParam.h"
 
+typedef enum {
+  Gen3Preset = 0,
+  Gen4Preset,
+  GenPresetMax
+} NVPARAM_PCIE_PRESET_TYPE;
+
 STATIC
 BOOLEAN
 IsEmptyRC (
@@ -144,85 +150,233 @@ SetRootComplexBifurcation (
   }
 }
 
-VOID
+DEV_MAP_MODE
 GetDefaultDevMap (
-  AC01_ROOT_COMPLEX *RootComplex
+  IN AC01_ROOT_COMPLEX *RootComplex,
+  IN BOOLEAN           IsGetDevMapLow
   )
 {
-  if (RootComplex->Pcie[PcieController0].Active
-      && RootComplex->Pcie[PcieController1].Active
-      && RootComplex->Pcie[PcieController2].Active
-      && RootComplex->Pcie[PcieController3].Active) {
-    RootComplex->DefaultDevMapLow = DevMapMode4;
-  } else if (RootComplex->Pcie[PcieController0].Active
-             && RootComplex->Pcie[PcieController2].Active
-             && RootComplex->Pcie[PcieController3].Active) {
-    RootComplex->DefaultDevMapLow = DevMapMode3;
-  } else if (RootComplex->Pcie[PcieController0].Active
-             && RootComplex->Pcie[PcieController2].Active) {
-    RootComplex->DefaultDevMapLow = DevMapMode2;
-  } else {
-    RootComplex->DefaultDevMapLow = DevMapMode1;
-  }
+  UINT8        StartIndex;
+  DEV_MAP_MODE DevMapMode;
+
+  DevMapMode = MaxDevMapMode;
+  StartIndex = IsGetDevMapLow ? PcieController0 : PcieController4;
+
+  while (DevMapMode >= DevMapMode1)
+  {
+    switch (DevMapMode) {
+    case DevMapMode4:
+      if (RootComplex->Pcie[StartIndex].Active
+          && RootComplex->Pcie[StartIndex + 1].Active
+          && RootComplex->Pcie[StartIndex + 2].Active
+          && RootComplex->Pcie[StartIndex + 3].Active) {
+            return DevMapMode4;
+          }
+      break;
+    case DevMapMode3:
+      if (RootComplex->Pcie[StartIndex].Active
+          && RootComplex->Pcie[StartIndex + 2].Active
+          && RootComplex->Pcie[StartIndex + 3].Active) {
+            return DevMapMode3;
+          }
+      break;
+    case DevMapMode2:
+      if (RootComplex->Pcie[StartIndex].Active
+          && RootComplex->Pcie[StartIndex + 2].Active) {
+            return DevMapMode2;
+          }
+      break;
+    default:
+      return DevMapMode1;
+    }
 
-  if (RootComplex->Pcie[PcieController4].Active
-      && RootComplex->Pcie[PcieController5].Active
-      && RootComplex->Pcie[PcieController6].Active
-      && RootComplex->Pcie[PcieController7].Active) {
-    RootComplex->DefaultDevMapHigh = DevMapMode4;
-  } else if (RootComplex->Pcie[PcieController4].Active
-             && RootComplex->Pcie[PcieController6].Active
-             && RootComplex->Pcie[PcieController7].Active) {
-    RootComplex->DefaultDevMapHigh = DevMapMode3;
-  } else if (RootComplex->Pcie[PcieController4].Active
-             && RootComplex->Pcie[PcieController6].Active) {
-    RootComplex->DefaultDevMapHigh = DevMapMode2;
-  } else {
-    RootComplex->DefaultDevMapHigh = DevMapMode1;
+    DevMapMode--;
   }
 
+  return DevMapMode1;
+}
+
+VOID
+GetDevMap (
+  IN OUT AC01_ROOT_COMPLEX *RootComplex
+  )
+{
+  //
+  // Get default Devmap low and configure Devmap low accordingly.
+  //
+  RootComplex->DefaultDevMapLow = GetDefaultDevMap (RootComplex, TRUE);
   if (RootComplex->DevMapLow == 0) {
     RootComplex->DevMapLow = RootComplex->DefaultDevMapLow;
   }
 
+  //
+  // Get default Devmap high and configure Devmap high accordingly.
+  //
+  RootComplex->DefaultDevMapHigh = IsAc01Processor () ? GetDefaultDevMap (RootComplex, FALSE) : DevMapMode1;
   if (RootComplex->Type == RootComplexTypeB && RootComplex->DevMapHigh == 0) {
     RootComplex->DevMapHigh = RootComplex->DefaultDevMapHigh;
   }
 
+  //
+  // Set bifurcation bases on Devmap high and Devmap low.
+  //
   SetRootComplexBifurcation (RootComplex, PcieController0, RootComplex->DevMapLow);
   if (RootComplex->Type == RootComplexTypeB) {
     SetRootComplexBifurcation (RootComplex, PcieController4, RootComplex->DevMapHigh);
   }
 }
 
+UINT8
+GetMaxController (
+  IN AC01_ROOT_COMPLEX *RootComplex
+  )
+{
+  if (IsAc01Processor ()) {
+    return MaxPcieControllerOfRootComplexA;
+  }
+
+  return RootComplex->MaxPcieController;
+}
+
+NVPARAM
+CalculateNvParamOffset (
+  IN AC01_ROOT_COMPLEX *RootComplex,
+  IN UINT8             PaddingOrder,
+  IN UINT8             StartIndex,
+  IN UINT64            StartOffset
+  )
+{
+  UINT8   NeededPadding;
+  INT8    PositionFromStartIndex;
+  NVPARAM NvParamOffset;
+
+
+  NeededPadding = RootComplex->ID - PaddingOrder;
+  PositionFromStartIndex = (RootComplex->ID - StartIndex) + NeededPadding;
+  NvParamOffset = StartOffset + PositionFromStartIndex * NV_PARAM_ENTRYSIZE;
+
+  return NvParamOffset;
+}
+
+EFI_STATUS_CODE_TYPE
+GetNvParamOffsetLane (
+  IN  AC01_ROOT_COMPLEX *RootComplex,
+  OUT NVPARAM           *NvParamOffset
+  )
+{
+  BOOLEAN IsAc01;
+  BOOLEAN IsRootComplexTypeA;
+  BOOLEAN IsSocket0;
+  UINT8   StartIndex;
+  UINT64  StartOffset;
+  UINT8   PaddingOrder;
+
+  IsSocket0 = RootComplex->Socket == 0 ? TRUE : FALSE;
+  IsAc01 = IsAc01Processor ();
+  IsRootComplexTypeA = RootComplex->Type == RootComplexTypeA ? TRUE : FALSE;
+
+  if (!IsAc01 && (RootComplex->ID >= MaxPcieControllerOfRootComplexA)) {
+    // Because from NV_SI_RO_BOARD_S0_RCA4_CFG to NV_SI_RO_BOARD_S0_RCA7_CFG for supporting
+    // Altra Max are not sequential arrangement with NV_SI_RO_BOARD_S0_RCA0_CFG
+    // so the start index will be the first Root Complex ID which using these NVParams
+    // (NV_SI_RO_BOARD_S0_RCA4_CFG to NV_SI_RO_BOARD_S0_RCA7_CFG) to support Altra Max processor.
+    StartIndex = 4;
+    StartOffset = IsSocket0 ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOARD_S1_RCA4_CFG;
+    PaddingOrder = RootComplex->ID;
+  } else {
+    StartIndex = 0;
+    StartOffset = IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG;
+    PaddingOrder = IsRootComplexTypeA ? RootComplex->ID : MaxRootComplexA;
+  }
+
+  *NvParamOffset = CalculateNvParamOffset (RootComplex, PaddingOrder, StartIndex, StartOffset);
+  return EFI_SUCCESS;
+}
+
+EFI_STATUS
+GetNvParamOffsetPreset (
+  IN  AC01_ROOT_COMPLEX        *RootComplex,
+  IN  NVPARAM_PCIE_PRESET_TYPE PresetType,
+  OUT NVPARAM                  *NvParamOffset
+  )
+{
+  BOOLEAN IsAc01;
+  BOOLEAN IsRootComplexTypeA;
+  BOOLEAN IsSocket0;
+  UINT8   StartIndex;
+  UINT64  StartOffset;
+  UINT8   PaddingOrder;
+
+  IsSocket0 = RootComplex->Socket == 0 ? TRUE : FALSE;
+  IsAc01 = IsAc01Processor ();
+  IsRootComplexTypeA = RootComplex->Type == RootComplexTypeA ? TRUE : FALSE;
+
+  switch (PresetType) {
+  case Gen3Preset:
+    if (IsAc01) {
+      StartOffset = IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET :
+                                NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET;
+    } else {
+      StartOffset = IsSocket0 ? NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET :
+                                NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET;
+    }
+    break;
+
+  case Gen4Preset:
+    if (IsAc01) {
+      StartOffset = IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET :
+                                NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET;
+    } else {
+      StartOffset = IsSocket0 ? NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET :
+                                NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET;
+    }
+    break;
+
+  default:
+    return EFI_INVALID_PARAMETER;
+  }
+
+  //
+  // For Socket 0, NVParams for all Root Complexes are supported so starting from RCA0.
+  // For Socket 1, NVParams for RCA0 and RCA1 are not supported so starting from RCA2.
+  //
+  StartIndex = IsSocket0 ? 0 : 2;
+  //
+  // There're two NVParam entries per RootComplexTypeB
+  // so padding need to be start from MaxRootComplexA to
+  // get the first NVParam entry of RootComplexTypeB
+  //
+  PaddingOrder = IsRootComplexTypeA ? RootComplex->ID : MaxRootComplexA;
+
+  *NvParamOffset = CalculateNvParamOffset (RootComplex, PaddingOrder, StartIndex, StartOffset);
+
+  return EFI_SUCCESS;
+}
+
 VOID
 GetLaneAllocation (
-  AC01_ROOT_COMPLEX *RootComplex
+  IN OUT AC01_ROOT_COMPLEX *RootComplex
   )
 {
   EFI_STATUS Status;
   INTN       RPIndex;
   NVPARAM    NvParamOffset;
-  UINT32     Value, Width;
+  UINT32     Value;
+  UINT32     Width;
+  UINT32     MaxController;
 
-  // 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;
+  Status = GetNvParamOffsetLane (RootComplex, &NvParamOffset);
+  if (!EFI_ERROR (Status)) {
+    Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+    if (EFI_ERROR (Status)) {
+      Value = 0;
+    }
   } else {
-    //
-    // There're two NVParam entries per RootComplexTypeB
-    //
-    NvParamOffset = (RootComplex->Socket == 0) ? NV_SI_RO_BOARD_S0_RCB0_LO_CFG : NV_SI_RO_BOARD_S1_RCB0_LO_CFG;
-    NvParamOffset += (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2);
-  }
-
-  Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
-  if (EFI_ERROR (Status)) {
     Value = 0;
   }
 
-  for (RPIndex = 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++) {
+  MaxController = GetMaxController (RootComplex);
+  for (RPIndex = PcieController0; RPIndex < MaxController; RPIndex++) {
     Width = (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK;
     switch (Width) {
     case 1:
@@ -278,78 +432,6 @@ GetLaneAllocation (
   }
 }
 
-NVPARAM
-GetGen3PresetNvParamOffset (
-  AC01_ROOT_COMPLEX *RootComplex
-  )
-{
-  NVPARAM NvParamOffset;
-
-  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;
-      } else {
-        NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
-      }
-    } else {
-      //
-      // There're two NVParam entries per RootComplexTypeB
-      //
-      NvParamOffset = NV_SI_RO_BOARD_S0_RCB0A_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2);
-    }
-  } else if (RootComplex->Type == RootComplexTypeA) {
-    if (RootComplex->ID < MaxRootComplexA) {
-      NvParamOffset = NV_SI_RO_BOARD_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;
-    }
-  } else {
-    //
-    // There're two NVParam entries per RootComplexTypeB
-    //
-    NvParamOffset = NV_SI_RO_BOARD_S1_RCB0A_TXRX_G3PRESET + (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2);
-  }
-
-  return NvParamOffset;
-}
-
-NVPARAM
-GetGen4PresetNvParamOffset (
-  AC01_ROOT_COMPLEX *RootComplex
-  )
-{
-  NVPARAM NvParamOffset;
-
-  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;
-      } else {
-        NvParamOffset = NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE;
-      }
-    } else {
-      //
-      // There're two NVParam entries per RootComplexTypeB
-      //
-      NvParamOffset = NV_SI_RO_BOARD_S0_RCB0A_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2);
-    }
-  } else if (RootComplex->Type == RootComplexTypeA) {
-    if (RootComplex->ID < MaxRootComplexA) {
-      NvParamOffset = NV_SI_RO_BOARD_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;
-    }
-  } else {
-    //
-    // There're two NVParam entries per RootComplexTypeB
-    //
-    NvParamOffset = NV_SI_RO_BOARD_S1_RCB0A_TXRX_G4PRESET + (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2);
-  }
-
-  return NvParamOffset;
-}
-
 VOID
 GetPresetSetting (
   AC01_ROOT_COMPLEX *RootComplex
@@ -366,9 +448,11 @@ GetPresetSetting (
     RootComplex->PresetGen4[Index] = PRESET_INVALID;
   }
 
-  NvParamOffset = GetGen3PresetNvParamOffset (RootComplex);
-
-  Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+  // Get NVParam offset of Gen3 preset
+  Status = GetNvParamOffsetPreset (RootComplex, Gen3Preset, &NvParamOffset);
+  if (!EFI_ERROR (Status)) {
+    Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+  }
   if (!EFI_ERROR (Status)) {
     for (Index = 0; Index < MaxPcieControllerOfRootComplexA; Index++) {
       RootComplex->PresetGen3[Index] = (Value >> (Index * BITS_PER_BYTE)) & BYTE_MASK;
@@ -385,9 +469,11 @@ GetPresetSetting (
     }
   }
 
-  NvParamOffset = GetGen4PresetNvParamOffset (RootComplex);
-
-  Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+  // Get NVParam offset of Gen4 preset.
+  Status = GetNvParamOffsetPreset (RootComplex, Gen4Preset, &NvParamOffset);
+  if (!EFI_ERROR (Status)) {
+    Status = NVParamGet (NvParamOffset, NV_PERM_ALL, &Value);
+  }
   if (!EFI_ERROR (Status)) {
     for (Index = 0; Index < MaxPcieControllerOfRootComplexA; Index++) {
       RootComplex->PresetGen4[Index] = (Value >> (Index * BITS_PER_BYTE)) & BYTE_MASK;
@@ -415,6 +501,7 @@ GetMaxSpeedGen (
   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 MaxController;
   UINT8 *MaxGen;
 
   ASSERT (MaxPcieControllerOfRootComplexA == 4);
@@ -452,7 +539,8 @@ GetMaxSpeedGen (
     }
   }
 
-  for (Idx = 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) {
+  MaxController = GetMaxController (RootComplex);
+  for (Idx = 0; Idx < MaxController; Idx++) {
     RootComplex->Pcie[Idx].MaxGen = RootComplex->Pcie[Idx].Active ? MaxGen[Idx] : LINK_SPEED_NONE;
   }
 
@@ -509,6 +597,6 @@ ParseRootComplexNVParamData (
 
   GetPresetSetting (RootComplex);
   GetLaneAllocation (RootComplex);
-  GetDefaultDevMap (RootComplex);
+  GetDevMap (RootComplex);
   GetMaxSpeedGen (RootComplex);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 8/9] AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (6 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 7/9] Ampere: PCIe: Add support " Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 9/9] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max Nhi Pham
  2023-03-29 16:07 ` [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Leif Lindholm
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 UTC (permalink / raw)
  To: devel; +Cc: patches, quic_llindhol, ardb+tianocore, Vu Nguyen, Nhi Pham

From: Vu Nguyen <vunguyen@os.amperecomputing.com>

This change helps to update the following:
- Add logic to get SubNUMA node region for Ampere silicons
  (Altra and Altra Max processor) as a common API in AmpereCpuLibCommon.
- Leverage the added API of AmpereCpuLibCommon accordingly.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
 .../Include/Library/AmpereCpuLib.h            |  31 +--
 .../Drivers/AcpiPlatformDxe/AcpiMadt.c        | 105 ++------
 .../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 ++++++++++++------
 3 files changed, 205 insertions(+), 174 deletions(-)

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/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
index 419ce578e452..db1f96029f46 100644
--- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.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
 
@@ -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,
@@ -245,6 +179,7 @@ AcpiInstallMadtTable (
   INTN                       Index;
   EFI_STATUS                 Status;
   UINTN                      Size;
+  UINTN                      Length;
   UINT32                     *CoreOrder;
   UINT32                     SktMaxCoreNum;
 
@@ -258,14 +193,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 =
@@ -279,52 +214,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/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon.c
index 9eebea3de1b5..919d9d77b25c 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   UINT32*      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.
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [edk2-platforms][PATCH v2 9/9] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (7 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 8/9] AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons Nhi Pham
@ 2023-03-29  4:32 ` Nhi Pham
  2023-03-29 16:07 ` [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Leif Lindholm
  9 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29  4:32 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>
---
 Platform/Ampere/JadePkg/Jade.dsc              |    3 +-
 Platform/Ampere/JadePkg/Jade.fdf              |    3 +-
 .../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf |   20 +
 .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c |   10 +-
 .../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi  | 6345 +++++++++++++++++
 .../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi  | 6345 +++++++++++++++++
 .../Ampere/JadePkg/Ac02AcpiTables/CPU.asi     |  152 +
 .../JadePkg/Ac02AcpiTables/CommonDevices.asi  |  513 ++
 .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl    |   26 +
 .../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 +
 16 files changed, 20985 insertions(+), 4 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/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/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/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..17ecd52a553f
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi
@@ -0,0 +1,513 @@
+/** @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)
+     }
+   }
+}
diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
new file mode 100644
index 000000000000..ce12272f961d
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl
@@ -0,0 +1,26 @@
+/** @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(AERF, 0)  // PCIe AER Firmware-First
+
+  Scope(\_SB) {
+    Include ("CommonDevices.asi")
+    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..51730d391522
--- /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..1870ad5b3329
--- /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..b6cf18fb2218
--- /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..cb03247895a6
--- /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] 12+ messages in thread

* Re: [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor
  2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
                   ` (8 preceding siblings ...)
  2023-03-29  4:32 ` [edk2-platforms][PATCH v2 9/9] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max Nhi Pham
@ 2023-03-29 16:07 ` Leif Lindholm
  2023-03-29 16:24   ` Nhi Pham
  9 siblings, 1 reply; 12+ messages in thread
From: Leif Lindholm @ 2023-03-29 16:07 UTC (permalink / raw)
  To: Nhi Pham; +Cc: devel, patches, ardb+tianocore

Hi Nhi,

Thanks - this was a lot easier to review.
For the series:
Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
Pushed as 4811c37ae347..d8d167f11ac5.

/
    Leif

On Wed, Mar 29, 2023 at 11:32:37 +0700, Nhi Pham wrote:
> This patchset adds support for Ampere Altra Max processor and updates for some
> bugfixes.
> 
> Changes since v1:
>   + Improved readability per Leif's feedback, such as: Add helper functions.
>   split out the supports, bugfixes, and code refactor.
> 
> Tinh Nguyen (1):
>   JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
> 
> Vu Nguyen (8):
>   AmpereAltraPkg: Correct PCIe Devmap
>   AmpereAltraPkg: Correct PCIe memory attribute
>   JadePkg: PCIe: Add delay after releasing PERST
>   AmpereAltraPkg: Update Ampere specific platform PCIe core
>   AmpereAltraPkg: Update Ampere Core/Cluster profile
>   Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max
>   Ampere: PCIe: Add support for Ampere Altra Max
>   AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons
> 
>  .../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       |   36 +-
>  .../AmpereAltraPkg/Include/Platform/Ac01.h    |    7 +-
>  .../Library/Ac01PcieLib/PcieCore.h            |    8 +-
>  .../Drivers/AcpiPlatformDxe/AcpiMadt.c        |  105 +-
>  .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c |   10 +-
>  .../Library/BoardPcieLib/BoardPcieLib.c       |   83 +-
>  .../Drivers/PcieInitPei/PcieInitPei.c         |  133 +-
>  .../Drivers/PcieInitPei/RootComplexNVParam.c  |  344 +-
>  .../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  |  513 ++
>  .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl    |   26 +
>  .../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, 21731 insertions(+), 404 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] 12+ messages in thread

* Re: [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor
  2023-03-29 16:07 ` [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Leif Lindholm
@ 2023-03-29 16:24   ` Nhi Pham
  0 siblings, 0 replies; 12+ messages in thread
From: Nhi Pham @ 2023-03-29 16:24 UTC (permalink / raw)
  To: Leif Lindholm, Nhi Pham; +Cc: devel, patches, ardb+tianocore

Thanks a lot Leif for the quick review and merging.

Best regards,

Nhi

On 3/29/2023 11:07 PM, Leif Lindholm wrote:
> Hi Nhi,
>
> Thanks - this was a lot easier to review.
> For the series:
> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
> Pushed as 4811c37ae347..d8d167f11ac5.
>
> /
>      Leif
>
> On Wed, Mar 29, 2023 at 11:32:37 +0700, Nhi Pham wrote:
>> This patchset adds support for Ampere Altra Max processor and updates for some
>> bugfixes.
>>
>> Changes since v1:
>>    + Improved readability per Leif's feedback, such as: Add helper functions.
>>    split out the supports, bugfixes, and code refactor.
>>
>> Tinh Nguyen (1):
>>    JadePkg: ACPI: Support ACPI tables for Ampere Altra Max
>>
>> Vu Nguyen (8):
>>    AmpereAltraPkg: Correct PCIe Devmap
>>    AmpereAltraPkg: Correct PCIe memory attribute
>>    JadePkg: PCIe: Add delay after releasing PERST
>>    AmpereAltraPkg: Update Ampere specific platform PCIe core
>>    AmpereAltraPkg: Update Ampere Core/Cluster profile
>>    Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max
>>    Ampere: PCIe: Add support for Ampere Altra Max
>>    AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons
>>
>>   .../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       |   36 +-
>>   .../AmpereAltraPkg/Include/Platform/Ac01.h    |    7 +-
>>   .../Library/Ac01PcieLib/PcieCore.h            |    8 +-
>>   .../Drivers/AcpiPlatformDxe/AcpiMadt.c        |  105 +-
>>   .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c |   10 +-
>>   .../Library/BoardPcieLib/BoardPcieLib.c       |   83 +-
>>   .../Drivers/PcieInitPei/PcieInitPei.c         |  133 +-
>>   .../Drivers/PcieInitPei/RootComplexNVParam.c  |  344 +-
>>   .../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  |  513 ++
>>   .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl    |   26 +
>>   .../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, 21731 insertions(+), 404 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] 12+ messages in thread

end of thread, other threads:[~2023-03-29 16:24 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-29  4:32 [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 2/9] AmpereAltraPkg: Correct PCIe memory attribute Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 3/9] JadePkg: PCIe: Add delay after releasing PERST Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 4/9] AmpereAltraPkg: Update Ampere specific platform PCIe core Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 5/9] AmpereAltraPkg: Update Ampere Core/Cluster profile Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 6/9] Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 7/9] Ampere: PCIe: Add support " Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 8/9] AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons Nhi Pham
2023-03-29  4:32 ` [edk2-platforms][PATCH v2 9/9] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max Nhi Pham
2023-03-29 16:07 ` [edk2-platforms][PATCH v2 0/9] Support Ampere Altra Max processor Leif Lindholm
2023-03-29 16:24   ` Nhi Pham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox