[edk2-devel] [edk2-platforms][PATCH 08/34] JadePkg: Initial support for static ACPI tables

Nhi Pham via groups.io nhi=os.amperecomputing.com at groups.io
Wed Dec 9 09:25:05 UTC 2020


Supports some ACPI tables for Mt. Jade Platform including: DSDT, SPCR,
DBG2, GTDT, FACP, SSDT. The ACPI tables are also installed into memory
by the AcpiPlatformDxe driver.

Signed-off-by: Nhi Pham <nhi at os.amperecomputing.com>
---
 Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dsc.inc                       |    8 +
 Platform/Ampere/JadePkg/Jade.dsc                                    |   22 +
 Platform/Ampere/JadePkg/Jade.fdf                                    |    7 +
 Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf                   |   41 +
 Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf |   47 +
 Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatform.h      |   26 +
 Silicon/Ampere/AmpereAltraPkg/Include/AcpiHeader.h                  |   37 +
 Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c   |   66 +
 Platform/Ampere/JadePkg/AcpiTables/CPU-S0.asi                       | 5639 ++++++++++++++++++++
 Platform/Ampere/JadePkg/AcpiTables/CPU-S1.asi                       | 5639 ++++++++++++++++++++
 Platform/Ampere/JadePkg/AcpiTables/CPU.asi                          |  127 +
 Platform/Ampere/JadePkg/AcpiTables/Dbg2.aslc                        |   87 +
 Platform/Ampere/JadePkg/AcpiTables/Dsdt.asl                         |  399 ++
 Platform/Ampere/JadePkg/AcpiTables/Fadt.aslc                        |   87 +
 Platform/Ampere/JadePkg/AcpiTables/Gtdt.aslc                        |  180 +
 Platform/Ampere/JadePkg/AcpiTables/PCI-PDRC.asi                     |  217 +
 Platform/Ampere/JadePkg/AcpiTables/PCI-S0.Rca01.asi                 |  671 +++
 Platform/Ampere/JadePkg/AcpiTables/PCI-S0.asi                       | 2059 +++++++
 Platform/Ampere/JadePkg/AcpiTables/PCI-S1.asi                       | 2060 +++++++
 Platform/Ampere/JadePkg/AcpiTables/PMU-S0.asi                       | 1303 +++++
 Platform/Ampere/JadePkg/AcpiTables/PMU-S1.asi                       | 1303 +++++
 Platform/Ampere/JadePkg/AcpiTables/PMU.asi                          |   10 +
 Platform/Ampere/JadePkg/AcpiTables/Spcr.aslc                        |   81 +
 Platform/Ampere/JadePkg/AcpiTables/Ssdt.asl                         |   15 +
 24 files changed, 20131 insertions(+)

diff --git a/Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dsc.inc b/Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dsc.inc
index 4dbc7dc35bc7..ecd67511a8be 100755
--- a/Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dsc.inc
+++ b/Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dsc.inc
@@ -456,6 +456,14 @@ [PcdsFixedAtBuild.common]
   # GUID of the UI app
   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
 
+  #
+  # ACPI table
+  #
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId|"Ampere"
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId|0x2020206172746C41 # Altra
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId|0x2E504D41 # AMP.
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision|0x01000013
+
   #
   # Enable strict image permissions for all images. (This applies
   # only to images that were built with >= 4 KB section alignment.)
diff --git a/Platform/Ampere/JadePkg/Jade.dsc b/Platform/Ampere/JadePkg/Jade.dsc
index 02157cb52f6e..e92d5079c3a0 100755
--- a/Platform/Ampere/JadePkg/Jade.dsc
+++ b/Platform/Ampere/JadePkg/Jade.dsc
@@ -60,11 +60,23 @@ [LibraryClasses]
   #
   FailSafeLib|Platform/Ampere/Library/FailSafeLib/FailSafeLib.inf
 
+  #
+  # ACPI Libraries
+  #
+  AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
+  AcpiHelperLib|Platform/Ampere/Library/AcpiHelperLib/AcpiHelperLib.inf
+  AcpiPccLib|Platform/Ampere/Library/AcpiPccLib/AcpiPccLib.inf
+
 ################################################################################
 #
 # Specific Platform Pcds
 #
 ################################################################################
+[PcdsFeatureFlag.common]
+  #
+  # Activate AcpiSdtProtocol
+  #
+  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
 
 [PcdsFixedAtBuild]
 !ifdef $(FIRMWARE_VER)
@@ -97,3 +109,13 @@ [Components.common]
   # FailSafe and Watchdog Timer
   #
   Platform/Ampere/Drivers/FailSafeDxe/FailSafeDxe.inf
+
+  #
+  # ACPI
+  #
+  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf {
+    <PcdsFixedAtBuild>
+      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2B
+  }
+  Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
+  Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jade.fdf
index 0e97a5e30186..321156fb8f60 100755
--- a/Platform/Ampere/JadePkg/Jade.fdf
+++ b/Platform/Ampere/JadePkg/Jade.fdf
@@ -280,4 +280,11 @@ [FV.FvMain]
   #
   INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
 
+  #
+  # ACPI
+  #
+  INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
+  INF Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
+  INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
+
 !include Platform/Ampere/FvRules.fdf.inc
diff --git a/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf b/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
new file mode 100644
index 000000000000..500371d3d2c2
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
@@ -0,0 +1,41 @@
+## @file
+#
+# Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x0001001B
+  BASE_NAME                      = JadeAcpiTables
+  FILE_GUID                      = 5ADDBC13-8634-480C-9B94-671B7855CDB8
+  MODULE_TYPE                    = USER_DEFINED
+  VERSION_STRING                 = 1.0
+
+[Sources]
+  Dsdt.asl
+  Dbg2.aslc
+  Ssdt.asl
+  Gtdt.aslc
+  Fadt.aslc
+  Spcr.aslc
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dec
+
+[FixedPcd]
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase            ## CONSUMES
+  gArmPlatformTokenSpaceGuid.PL011UartInterrupt                   ## CONSUMES
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount                     ## CONSUMES
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision        ## CONSUMES
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision    ## CONSUMES
+
+  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase             ## CONSUMES
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate                 ## CONSUMES
diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
new file mode 100644
index 000000000000..1ec8602aede5
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -0,0 +1,47 @@
+## @file
+#
+# Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x0001001B
+  BASE_NAME                      = AcpiPlatformDxe
+  FILE_GUID                      = CDA4ED56-6960-4092-885D-FEF37D29093E
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = AcpiPlatformDxeInitialize
+
+[Sources.common]
+  AcpiPlatform.h
+  AcpiPlatformDxe.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  Silicon/Ampere/AmperePkg.dec
+  Silicon/Ampere/AmpereAltraPkg/Ac01Pkg.dec
+
+[LibraryClasses]
+  UefiBootServicesTableLib
+  UefiRuntimeServicesTableLib
+  UefiDriverEntryPoint
+  DebugLib
+  BaseLib
+  UefiLib
+  AcpiLib
+
+[Guids]
+  gArmMpCoreInfoGuid
+  gEfiAcpiTableGuid
+
+[Protocols]
+  gEfiAcpiTableProtocolGuid                     ## ALWAYS_CONSUMED
+
+[Depex]
+  gEfiAcpiTableProtocolGuid
diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatform.h b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatform.h
new file mode 100644
index 000000000000..60b2ed22d05b
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatform.h
@@ -0,0 +1,26 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _ACPI_PLATFORM_H_
+#define _ACPI_PLATFORM_H_
+
+#include <Uefi.h>
+#include <IndustryStandard/Acpi63.h>
+#include <Guid/EventGroup.h>
+#include <Protocol/AcpiTable.h>
+#include <Library/UefiLib.h>
+#include <Library/AcpiLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+#include <Library/PrintLib.h>
+#include <Library/DebugLib.h>
+
+#endif /* _ACPI_PLATFORM_H_ */
diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/AcpiHeader.h b/Silicon/Ampere/AmpereAltraPkg/Include/AcpiHeader.h
new file mode 100644
index 000000000000..99323f6ee739
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/AcpiHeader.h
@@ -0,0 +1,37 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _ACPI_HEADER_H_
+#define _ACPI_HEADER_H_
+
+#include <IndustryStandard/Acpi.h>
+
+//
+// ACPI table information used to initialize tables.
+//
+#define EFI_ACPI_OEM_ID           {'A','m','p','e','r','e'}
+#define EFI_ACPI_OEM_TABLE_ID     SIGNATURE_64('A','l','t','r','a',' ',' ',' ')
+#define EFI_ACPI_OEM_REVISION     FixedPcdGet32 (PcdAcpiDefaultOemRevision)
+#define EFI_ACPI_CREATOR_ID       SIGNATURE_32('A','M','P','.')
+#define EFI_ACPI_CREATOR_REVISION FixedPcdGet32 (PcdAcpiDefaultCreatorRevision)
+
+// A macro to initialise the common header part of EFI ACPI tables as defined by
+// EFI_ACPI_DESCRIPTION_HEADER structure.
+#define __ACPI_HEADER(Signature, Type, Revision) {                \
+    Signature,                      /* UINT32  Signature */       \
+    sizeof (Type),                  /* UINT32  Length */          \
+    Revision,                       /* UINT8   Revision */        \
+    0,                              /* UINT8   Checksum */        \
+    EFI_ACPI_OEM_ID,                /* UINT8   OemId[6] */        \
+    EFI_ACPI_OEM_TABLE_ID,          /* UINT64  OemTableId */      \
+    EFI_ACPI_OEM_REVISION,          /* UINT32  OemRevision */     \
+    EFI_ACPI_CREATOR_ID,            /* UINT32  CreatorId */       \
+    EFI_ACPI_CREATOR_REVISION       /* UINT32  CreatorRevision */ \
+  }
+
+#endif /* _ACPI_HEADER_H_ */
diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
new file mode 100644
index 000000000000..346f23cbe5fb
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
@@ -0,0 +1,66 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "AcpiPlatform.h"
+
+STATIC EFI_EVENT mAcpiRegistration = NULL;
+
+/*
+ * This GUID must match the FILE_GUID in AcpiTables.inf of each boards
+ */
+STATIC CONST EFI_GUID mJadeAcpiTableFile = { 0x5addbc13, 0x8634, 0x480c, { 0x9b, 0x94, 0x67, 0x1b, 0x78, 0x55, 0xcd, 0xb8 } };
+
+/**
+ * Callback called when ACPI Protocol is installed
+ */
+STATIC VOID
+AcpiNotificationEvent (
+  IN  EFI_EVENT                Event,
+  IN  VOID                     *Context
+  )
+{
+  EFI_STATUS  Status;
+  EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER  *Rsdp;
+
+  Status = LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile);
+  ASSERT_EFI_ERROR (Status);
+
+  //
+  // Find ACPI table RSD_PTR from the system table.
+  //
+  Status = EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VOID **) &Rsdp);
+  if (EFI_ERROR (Status)) {
+    Status = EfiGetSystemConfigurationTable (&gEfiAcpi10TableGuid, (VOID **) &Rsdp);
+  }
+
+  if (!EFI_ERROR (Status) &&
+      Rsdp != NULL &&
+      Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION &&
+      Rsdp->RsdtAddress != 0) {
+    // ARM Platforms must set the RSDT address to NULL
+    Rsdp->RsdtAddress = 0;
+  }
+}
+
+EFI_STATUS
+EFIAPI
+AcpiPlatformDxeInitialize (
+  IN EFI_HANDLE         ImageHandle,
+  IN EFI_SYSTEM_TABLE   *SystemTable
+  )
+{
+  EfiCreateProtocolNotifyEvent (
+    &gEfiAcpiTableProtocolGuid,
+    TPL_CALLBACK,
+    AcpiNotificationEvent,
+    NULL,
+    &mAcpiRegistration
+    );
+
+  return EFI_SUCCESS;
+}
diff --git a/Platform/Ampere/JadePkg/AcpiTables/CPU-S0.asi b/Platform/Ampere/JadePkg/AcpiTables/CPU-S0.asi
new file mode 100755
index 000000000000..91a08c2e558d
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/CPU-S0.asi
@@ -0,0 +1,5639 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Device(C000) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x0)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x000, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x004, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x008, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x00c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x010, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x050, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x054, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x080, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x084, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x088, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x08c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x090, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x0d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x0d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C002) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x100, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x104, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x108, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x110, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x12c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x134, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x150, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x154, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x180, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x184, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x188, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x190, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C004) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x200, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x204, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x208, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x210, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x22c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x234, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x250, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x254, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x280, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x284, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x288, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x290, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C006) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x300, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x304, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x308, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x310, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x32c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x334, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x350, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x354, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x380, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x384, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x388, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x390, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C008) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x400, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x404, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x408, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x40c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x410, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x42c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x434, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x450, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x454, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x480, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x484, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x488, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x48c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x490, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x4ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x4b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x4d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x4d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C010) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x500, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x504, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x508, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x50c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x510, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x52c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x534, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x550, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x554, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x580, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x584, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x588, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x58c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x590, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x5ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x5b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x5d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x5d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C012) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x600, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x604, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x608, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x60c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x610, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x62c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x634, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x650, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x654, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x680, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x684, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x688, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x68c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x690, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x6ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x6b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x6d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x6d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C014) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x700, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x704, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x708, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x70c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x710, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x72c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x734, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x750, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x754, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x780, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x784, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x788, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x78c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x790, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x7ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x7b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x7d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x7d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C016) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x800, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x804, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x808, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x80c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x810, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x82c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x834, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x850, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x854, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x880, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x884, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x888, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x88c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x890, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x8ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x8b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x8d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x8d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C018) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x900, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x904, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x908, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x90c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x910, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x92c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x934, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x950, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x954, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x980, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x984, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x988, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x98c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x990, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x9ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x9b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x9d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x9d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C020) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xa00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xa2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xa34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xa80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xaac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xab4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xad0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xad4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C022) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xb00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xb2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xb34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xb80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xbac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xbb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xbd0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xbd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C024) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xc00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xc2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xc34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xc80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xcac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xcb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xcd0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xcd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C026) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xd00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xd2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xd34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xd80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xdac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xdb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xdd0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xdd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C028) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xe00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xe2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xe34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xe80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xeac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xeb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xed0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xed4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C030) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0xf00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf00, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf04, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf08, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf0c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf10, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xf2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xf34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf50, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0xf80, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf84, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf88, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf8c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf90, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0xfac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xfb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xfd0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xfd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C032) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1000, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1004, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1008, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x100c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1010, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x102c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1034, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1050, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1054, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1080, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1084, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1088, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x108c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1090, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x10ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x10b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C034) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1100, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1104, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1108, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x110c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1110, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x112c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1134, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1150, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1154, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1180, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1184, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1188, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x118c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1190, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x11ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x11b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x11d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x11d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C036) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1200, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1204, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1208, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x120c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1210, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x122c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1234, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1250, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1254, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1280, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1284, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1288, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x128c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1290, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x12ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x12b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x12d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x12d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C038) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1300, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1304, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1308, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x130c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1310, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x132c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1334, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1350, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1354, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1380, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1384, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1388, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x138c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1390, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x13ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x13b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x13d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x13d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C040) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1400, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1404, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1408, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x140c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1410, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x142c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1434, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1450, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1454, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1480, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1484, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1488, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x148c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1490, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x14ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x14b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x14d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x14d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C042) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1500, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1504, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1508, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x150c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1510, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x152c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1534, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1550, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1554, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1580, 2)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1584, 2)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1588, 2)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x158c, 2)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1590, 2)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x15ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x15b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x15d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x15d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C044) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1600, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1604, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1608, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x160c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1610, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x162c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1634, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1650, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1654, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1680, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1684, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1688, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x168c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1690, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x16ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x16b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x16d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x16d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C046) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1700, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1704, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1708, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x170c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1710, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x172c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1734, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1750, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1754, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1780, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1784, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1788, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x178c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1790, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x17ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x17b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x17d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x17d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C048) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1800, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1804, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1808, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x180c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1810, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x182c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1834, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1850, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1854, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1880, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1884, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1888, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x188c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1890, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x18ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x18b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C050) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1900, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1904, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1908, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x190c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1910, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x192c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1934, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1950, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1954, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1980, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1984, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1988, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x198c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1990, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x19ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x19b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x19d0, 2)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x19d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C052) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1a2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1a34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1a80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1aac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1ab4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ad0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ad4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C054) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1b2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1b34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1b80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1bac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1bb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1bd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1bd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C056) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1c2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1c34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1c80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1cac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1cb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1cd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1cd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C058) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1d2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1d34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1d80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1dac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1db4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1dd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1dd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C060) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1e2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1e34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1e80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1eac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1eb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ed0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ed4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C062) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x1f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1f2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1f34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x1f80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x1fac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1fb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1fd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1fd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C064) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2000, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2004, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2008, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x200c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2010, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x202c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2034, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2050, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2054, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2080, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2084, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2088, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x208c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2090, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x20ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x20b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C066) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2100, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2104, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2108, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x210c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2110, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x212c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2134, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2150, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2154, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2180, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2184, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2188, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x218c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2190, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x21ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x21b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x21d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x21d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C068) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2200, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2204, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2208, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x220c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2210, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x222c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2234, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2250, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2254, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2280, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2284, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2288, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x228c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2290, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x22ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x22b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x22d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x22d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C070) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2300, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2304, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2308, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x230c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2310, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x232c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2334, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2350, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2354, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2380, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2384, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2388, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x238c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2390, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x23ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x23b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x23d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x23d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C072) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2400, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2404, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2408, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x240c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2410, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x242c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2434, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2450, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2454, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2480, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2484, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2488, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x248c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2490, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x24ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x24b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x24d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x24d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C074) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2500, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2504, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2508, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x250c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2510, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x252c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2534, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2550, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2554, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2580, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2584, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2588, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x258c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2590, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x25ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x25b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x25d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x25d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C076) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2600, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2604, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2608, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x260c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2610, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x262c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2634, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2650, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2654, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2680, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2684, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2688, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x268c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2690, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x26ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x26b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x26d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x26d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C078) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2700, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2704, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2708, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x270c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2710, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x272c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2734, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2750, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2754, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2780, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2784, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2788, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x278c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2790, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x27ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x27b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x27d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x27d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C080) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2800, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2804, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2808, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x280c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2810, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x282c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2834, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2850, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2854, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2880, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2884, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2888, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x288c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2890, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x28ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x28b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C082) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2900, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2904, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2908, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x290c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2910, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x292c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2934, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2950, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2954, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2980, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2984, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2988, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x298c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2990, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x29ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x29b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x29d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x29d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C084) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2a2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2a34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2a80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2aac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2ab4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ad0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ad4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C086) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2b2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2b34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2b80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2bac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2bb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2bd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2bd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C088) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2c2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2c34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2c80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2cac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2cb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2cd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2cd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C090) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2d2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2d34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2d80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2dac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2db4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2dd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2dd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C092) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2e2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2e34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2e80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2eac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2eb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ed0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ed4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C094) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x2f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2f2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2f34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x2f80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x2fac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2fb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2fd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2fd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C096) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3000, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3004, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3008, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x300c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3010, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x302c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3034, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3050, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3054, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3080, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3084, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3088, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x308c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3090, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x30ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x30b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C098) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3100, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3104, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3108, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x310c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3110, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x312c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3134, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3150, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3154, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3180, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3184, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3188, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x318c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3190, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x31ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x31b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x31d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x31d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C100) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3200, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3204, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3208, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x320c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3210, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x322c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3234, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3250, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3254, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3280, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3284, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3288, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x328c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3290, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x32ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x32b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x32d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x32d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C102) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3300, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3304, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3308, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x330c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3310, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x332c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3334, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3350, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3354, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3380, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3384, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3388, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x338c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3390, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x33ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x33b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x33d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x33d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C104) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3400, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3404, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3408, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x340c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3410, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x342c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3434, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3450, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3454, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3480, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3484, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3488, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x348c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3490, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x34ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x34b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x34d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x34d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C106) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3500, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3504, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3508, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x350c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3510, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x352c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3534, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3550, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3554, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3580, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3584, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3588, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x358c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3590, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x35ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x35b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x35d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x35d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C108) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3600, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3604, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3608, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x360c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3610, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x362c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3634, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3650, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3654, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3680, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3684, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3688, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x368c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3690, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x36ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x36b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x36d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x36d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C110) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3700, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3704, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3708, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x370c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3710, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x372c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3734, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3750, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3754, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3780, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3784, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3788, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x378c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3790, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x37ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x37b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x37d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x37d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C112) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3800, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3804, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3808, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x380c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3810, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x382c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3834, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3850, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3854, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3880, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3884, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3888, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x388c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3890, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x38ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x38b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C114) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3900, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3904, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3908, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x390c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3910, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x392c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3934, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3950, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3954, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3980, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3984, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3988, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x398c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3990, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x39ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x39b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x39d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x39d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C116) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3a2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3a34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3a80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3aac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3ab4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ad0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ad4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C118) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3b2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3b34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3b80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3bac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3bb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3bd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3bd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C120) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3c2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3c34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3c80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3cac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3cb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3cd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3cd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C122) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3d2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3d34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3d80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3dac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3db4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3dd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3dd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C124) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3e2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3e34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3e80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3eac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3eb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ed0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ed4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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
+}
+
+Device(C126) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x3f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3f2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3f34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 32, 0, 0x3f80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3fac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3fb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3fd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3fd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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/AcpiTables/CPU-S1.asi b/Platform/Ampere/JadePkg/AcpiTables/CPU-S1.asi
new file mode 100755
index 000000000000..174e1d8d286d
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/CPU-S1.asi
@@ -0,0 +1,5639 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Device(C128) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x000, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x004, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x008, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x00c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x010, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x014, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x050, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x054, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x058, 18)},         // 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(PlatformCommChannel, 32, 0, 0x080, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x084, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x088, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x08c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x090, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x094, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x0d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x0d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x0d8, 18)},         // 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
+}
+
+Device(C130) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x100, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x104, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x108, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x110, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x114, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x12c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x134, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x150, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x154, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x158, 18)},         // 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(PlatformCommChannel, 32, 0, 0x180, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x184, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x188, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x190, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x194, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d8, 18)},         // 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
+}
+
+Device(C132) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x200, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x204, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x208, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x210, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x214, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x22c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x234, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x250, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x254, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x258, 18)},         // 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(PlatformCommChannel, 32, 0, 0x280, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x284, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x288, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x290, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x294, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d8, 18)},         // 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
+}
+
+Device(C134) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x300, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x304, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x308, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x310, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x314, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x32c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x334, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x350, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x354, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x358, 18)},         // 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(PlatformCommChannel, 32, 0, 0x380, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x384, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x388, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x390, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x394, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d8, 18)},         // 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
+}
+
+Device(C136) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x400, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x404, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x408, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x40c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x410, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x414, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x42c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x434, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x450, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x454, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x458, 18)},         // 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(PlatformCommChannel, 32, 0, 0x480, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x484, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x488, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x48c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x490, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x494, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x4ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x4b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x4d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x4d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x4d8, 18)},         // 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
+}
+
+Device(C138) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x500, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x504, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x508, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x50c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x510, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x514, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x52c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x534, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x550, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x554, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x558, 18)},         // 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(PlatformCommChannel, 32, 0, 0x580, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x584, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x588, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x58c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x590, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x594, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x5ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x5b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x5d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x5d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x5d8, 18)},         // 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
+}
+
+Device(C140) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x600, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x604, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x608, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x60c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x610, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x614, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x62c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x634, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x650, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x654, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x658, 18)},         // 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(PlatformCommChannel, 32, 0, 0x680, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x684, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x688, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x68c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x690, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x694, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x6ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x6b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x6d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x6d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x6d8, 18)},         // 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
+}
+
+Device(C142) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x700, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x704, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x708, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x70c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x710, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x714, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x72c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x734, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x750, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x754, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x758, 18)},         // 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(PlatformCommChannel, 32, 0, 0x780, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x784, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x788, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x78c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x790, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x794, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x7ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x7b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x7d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x7d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x7d8, 18)},         // 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
+}
+
+Device(C144) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x800, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x804, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x808, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x80c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x810, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x814, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x82c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x834, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x850, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x854, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x858, 18)},         // 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(PlatformCommChannel, 32, 0, 0x880, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x884, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x888, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x88c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x890, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x894, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x8ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x8b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x8d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x8d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x8d8, 18)},         // 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
+}
+
+Device(C146) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x900, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x904, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x908, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x90c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x910, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x914, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x92c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x934, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x950, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x954, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x958, 18)},         // 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(PlatformCommChannel, 32, 0, 0x980, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x984, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x988, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x98c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x990, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x994, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x9ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x9b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x9d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x9d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x9d8, 18)},         // 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
+}
+
+Device(C148) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xa2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xa34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xa80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xa94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xaac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xab4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xad0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xad4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xad8, 18)},         // 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
+}
+
+Device(C150) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xb2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xb34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xb80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xb94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xbac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xbb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xbd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xbd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xbd8, 18)},         // 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
+}
+
+Device(C152) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xc2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xc34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xc80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xc94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xcac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xcb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xcd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xcd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xcd8, 18)},         // 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
+}
+
+Device(C154) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xd2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xd34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xd80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xd94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xdac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xdb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xdd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xdd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xdd8, 18)},         // 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
+}
+
+Device(C156) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xe2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xe34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xe80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xe94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xeac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xeb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xed0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xed4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xed8, 18)},         // 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
+}
+
+Device(C158) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x10f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xf2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xf34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf58, 18)},         // 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(PlatformCommChannel, 32, 0, 0xf80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xf94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xfac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0xfb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xfd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xfd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0xfd8, 18)},         // 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
+}
+
+Device(C160) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1000, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1004, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1008, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x100c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1010, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1014, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x102c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1034, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1050, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1054, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1058, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1080, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1084, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1088, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x108c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1090, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1094, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x10ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x10b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x10d8, 18)},         // 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
+}
+
+Device(C162) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1100, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1104, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1108, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x110c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1110, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1114, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x112c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1134, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1150, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1154, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1158, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1180, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1184, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1188, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x118c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1190, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1194, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x11ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x11b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x11d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x11d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x11d8, 18)},         // 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
+}
+
+Device(C164) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1200, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1204, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1208, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x120c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1210, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1214, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x122c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1234, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1250, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1254, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1258, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1280, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1284, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1288, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x128c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1290, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1294, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x12ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x12b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x12d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x12d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x12d8, 18)},         // 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
+}
+
+Device(C166) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1300, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1304, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1308, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x130c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1310, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1314, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x132c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1334, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1350, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1354, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1358, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1380, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1384, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1388, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x138c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1390, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1394, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x13ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x13b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x13d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x13d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x13d8, 18)},         // 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
+}
+
+Device(C168) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1400, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1404, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1408, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x140c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1410, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1414, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x142c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1434, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1450, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1454, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1458, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1480, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1484, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1488, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x148c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1490, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1494, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x14ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x14b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x14d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x14d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x14d8, 18)},         // 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
+}
+
+Device(C170) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1500, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1504, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1508, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x150c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1510, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1514, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x152c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1534, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1550, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1554, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1558, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1580, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1584, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1588, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x158c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1590, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1594, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x15ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x15b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x15d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x15d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x15d8, 18)},         // 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
+}
+
+Device(C172) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1600, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1604, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1608, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x160c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1610, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1614, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x162c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1634, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1650, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1654, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1658, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1680, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1684, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1688, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x168c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1690, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1694, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x16ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x16b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x16d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x16d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x16d8, 18)},         // 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
+}
+
+Device(C174) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1700, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1704, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1708, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x170c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1710, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1714, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x172c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1734, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1750, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1754, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1758, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1780, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1784, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1788, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x178c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1790, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1794, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x17ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x17b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x17d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x17d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x17d8, 18)},         // 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
+}
+
+Device(C176) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1800, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1804, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1808, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x180c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1810, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1814, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x182c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1834, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1850, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1854, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1858, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1880, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1884, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1888, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x188c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1890, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1894, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x18ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x18b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x18d8, 18)},         // 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
+}
+
+Device(C178) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1900, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1904, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1908, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x190c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1910, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1914, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x192c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1934, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1950, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1954, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1958, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1980, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1984, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1988, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x198c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1990, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1994, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x19ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x19b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x19d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x19d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x19d8, 18)},         // 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
+}
+
+Device(C180) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1a2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1a34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1a80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1a94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1aac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1ab4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ad0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ad4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ad8, 18)},         // 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
+}
+
+Device(C182) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1b2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1b34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1b80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1b94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1bac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1bb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1bd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1bd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1bd8, 18)},         // 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
+}
+
+Device(C184) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1c2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1c34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1c80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1c94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1cac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1cb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1cd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1cd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1cd8, 18)},         // 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
+}
+
+Device(C186) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1d2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1d34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1d80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1d94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1dac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1db4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1dd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1dd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1dd8, 18)},         // 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
+}
+
+Device(C188) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1e2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1e34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1e80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1e94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1eac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1eb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ed0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ed4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1ed8, 18)},         // 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
+}
+
+Device(C190) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x11f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1f2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1f34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x1f80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1f94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1fac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x1fb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1fd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1fd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x1fd8, 18)},         // 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
+}
+
+Device(C192) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2000, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2004, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2008, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x200c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2010, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2014, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x202c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2034, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2050, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2054, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2058, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2080, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2084, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2088, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x208c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2090, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2094, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x20ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x20b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x20d8, 18)},         // 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
+}
+
+Device(C194) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2100, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2104, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2108, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x210c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2110, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2114, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x212c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2134, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2150, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2154, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2158, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2180, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2184, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2188, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x218c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2190, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2194, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x21ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x21b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x21d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x21d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x21d8, 18)},         // 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
+}
+
+Device(C196) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2200, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2204, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2208, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x220c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2210, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2214, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x222c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2234, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2250, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2254, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2258, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2280, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2284, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2288, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x228c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2290, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2294, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x22ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x22b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x22d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x22d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x22d8, 18)},         // 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
+}
+
+Device(C198) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2300, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2304, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2308, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x230c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2310, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2314, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x232c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2334, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2350, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2354, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2358, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2380, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2384, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2388, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x238c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2390, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2394, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x23ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x23b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x23d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x23d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x23d8, 18)},         // 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
+}
+
+Device(C200) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2400, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2404, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2408, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x240c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2410, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2414, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x242c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2434, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2450, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2454, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2458, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2480, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2484, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2488, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x248c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2490, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2494, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x24ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x24b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x24d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x24d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x24d8, 18)},         // 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
+}
+
+Device(C202) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2500, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2504, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2508, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x250c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2510, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2514, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x252c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2534, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2550, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2554, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2558, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2580, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2584, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2588, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x258c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2590, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2594, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x25ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x25b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x25d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x25d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x25d8, 18)},         // 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
+}
+
+Device(C204) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2600, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2604, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2608, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x260c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2610, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2614, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x262c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2634, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2650, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2654, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2658, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2680, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2684, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2688, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x268c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2690, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2694, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x26ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x26b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x26d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x26d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x26d8, 18)},         // 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
+}
+
+Device(C206) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2700, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2704, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2708, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x270c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2710, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2714, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x272c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2734, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2750, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2754, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2758, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2780, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2784, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2788, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x278c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2790, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2794, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x27ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x27b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x27d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x27d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x27d8, 18)},         // 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
+}
+
+Device(C208) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2800, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2804, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2808, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x280c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2810, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2814, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x282c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2834, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2850, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2854, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2858, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2880, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2884, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2888, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x288c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2890, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2894, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x28ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x28b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x28d8, 18)},         // 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
+}
+
+Device(C210) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2900, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2904, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2908, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x290c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2910, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2914, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x292c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2934, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2950, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2954, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2958, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2980, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2984, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2988, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x298c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2990, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2994, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x29ac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x29b4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x29d0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x29d4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x29d8, 18)},         // 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
+}
+
+Device(C212) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2a2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2a34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2a80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2a94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2aac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2ab4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ad0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ad4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ad8, 18)},         // 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
+}
+
+Device(C214) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2b2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2b34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2b80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2b94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2bac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2bb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2bd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2bd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2bd8, 18)},         // 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
+}
+
+Device(C216) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2c2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2c34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2c80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2c94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2cac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2cb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2cd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2cd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2cd8, 18)},         // 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
+}
+
+Device(C218) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2d2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2d34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2d80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2d94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2dac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2db4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2dd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2dd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2dd8, 18)},         // 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
+}
+
+Device(C220) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2e2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2e34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2e80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2e94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2eac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2eb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ed0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ed4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2ed8, 18)},         // 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
+}
+
+Device(C222) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x12f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f00, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f04, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f08, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f0c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f10, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f14, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2f2c, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2f34, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f50, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f54, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f58, 18)},         // 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(PlatformCommChannel, 32, 0, 0x2f80, 18)},         // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f84, 18)},         // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f88, 18)},         // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f8c, 18)},         // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f90, 18)},         // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2f94, 18)},         // Desired Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Minimum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Maximum Performance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Reduction Tolerance Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Time Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Counter Wraparound Time
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2fac, 18)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x2fb4, 18)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2fd0, 18)},         // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2fd4, 18)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x2fd8, 18)},         // 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
+}
+
+Device(C224) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13000)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3000, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3004, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3008, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x300c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3010, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x302c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3034, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3050, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3054, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3080, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3084, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3088, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x308c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3090, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x30ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x30b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x30d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 225, 0xFD, 2}
+  }) // Domain 225
+}
+
+Device(C226) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13100)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3100, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3104, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3108, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x310c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3110, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x312c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3134, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3150, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3154, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3180, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3184, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3188, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x318c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3190, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x31ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x31b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x31d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x31d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 227, 0xFD, 2}
+  }) // Domain 227
+}
+
+Device(C228) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13200)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3200, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3204, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3208, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x320c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3210, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x322c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3234, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3250, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3254, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3280, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3284, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3288, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x328c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3290, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x32ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x32b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x32d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x32d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 229, 0xFD, 2}
+  }) // Domain 229
+}
+
+Device(C230) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13300)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3300, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3304, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3308, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x330c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3310, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x332c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3334, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3350, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3354, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3380, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3384, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3388, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x338c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3390, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x33ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x33b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x33d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x33d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 231, 0xFD, 2}
+  }) // Domain 231
+}
+
+Device(C232) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13400)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3400, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3404, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3408, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x340c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3410, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x342c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3434, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3450, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3454, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3480, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3484, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3488, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x348c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3490, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x34ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x34b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x34d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x34d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 233, 0xFD, 2}
+  }) // Domain 233
+}
+
+Device(C234) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13500)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3500, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3504, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3508, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x350c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3510, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x352c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3534, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3550, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3554, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3580, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3584, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3588, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x358c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3590, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x35ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x35b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x35d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x35d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 235, 0xFD, 2}
+  }) // Domain 235
+}
+
+Device(C236) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13600)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3600, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3604, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3608, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x360c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3610, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x362c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3634, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3650, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3654, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3680, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3684, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3688, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x368c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3690, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x36ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x36b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x36d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x36d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 237, 0xFD, 2}
+  }) // Domain 237
+}
+
+Device(C238) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13700)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3700, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3704, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3708, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x370c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3710, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x372c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3734, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3750, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3754, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3780, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3784, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3788, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x378c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3790, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x37ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x37b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x37d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x37d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 239, 0xFD, 2}
+  }) // Domain 239
+}
+
+Device(C240) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13800)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3800, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3804, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3808, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x380c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3810, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x382c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3834, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3850, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3854, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3880, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3884, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3888, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x388c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3890, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x38ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x38b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x38d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 241, 0xFD, 2}
+  }) // Domain 241
+}
+
+Device(C242) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13900)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3900, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3904, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3908, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x390c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3910, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x392c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3934, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3950, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3954, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3980, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3984, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3988, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x398c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3990, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x39ac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x39b4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x39d0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x39d4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 243, 0xFD, 2}
+  }) // Domain 243
+}
+
+Device(C244) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13a00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3a2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3a34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3a80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3a90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3aac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3ab4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ad0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ad4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 245, 0xFD, 2}
+  }) // Domain 245
+}
+
+Device(C246) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13b00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3b2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3b34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3b80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3b90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3bac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3bb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3bd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3bd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 247, 0xFD, 2}
+  }) // Domain 247
+}
+
+Device(C248) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13c00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3c2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3c34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3c80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3c90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3cac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3cb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3cd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3cd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 249, 0xFD, 2}
+  }) // Domain 249
+}
+
+Device(C250) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13d00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3d2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3d34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3d80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3d90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3dac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3db4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3dd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3dd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 251, 0xFD, 2}
+  }) // Domain 251
+}
+
+Device(C252) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13e00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3e2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3e34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3e80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3e90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3eac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3eb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ed0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3ed4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 253, 0xFD, 2}
+  }) // Domain 253
+}
+
+Device(C254) {
+  Name(_HID, "ACPI0007")
+  Name(_UID, 0x13f00)
+
+  Method (_LPI, 0, NotSerialized) {
+    return(PLPI)
+  }
+
+  Name(PCPC, Package() {
+    23,                                                         // NumEntries
+    3,                                                          // Revision
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f00, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f04, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f08, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f0c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f10, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3f2c, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3f34, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f50, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f54, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 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(PlatformCommChannel, 32, 0, 0x3f80, 2)},        // Highest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f84, 2)},        // Nominal Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f88, 2)},        // Lowest Nonlinear Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f8c, 2)},        // Lowest Performance
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3f90, 2)},        // Guaranteed Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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(PlatformCommChannel, 64, 0, 0x3fac, 2)},         // Reference Counter Register
+    ResourceTemplate(){Register(PlatformCommChannel, 64, 0, 0x3fb4, 2)},         // Delivered Counter Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Performance Limited Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Enable Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Selection Enable
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Autonomous Activity Window Register
+    ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)},     // Energy Performance Preference Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3fd0, 2)},        // Reference Performance Register
+    ResourceTemplate(){Register(PlatformCommChannel, 32, 0, 0x3fd4, 2)},         // Lowest Frequency Register
+    ResourceTemplate(){Register(PlatformCommChannel, 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, 255, 0xFD, 2}
+  }) // Domain 255
+}
diff --git a/Platform/Ampere/JadePkg/AcpiTables/CPU.asi b/Platform/Ampere/JadePkg/AcpiTables/CPU.asi
new file mode 100755
index 000000000000..00c09340b957
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/CPU.asi
@@ -0,0 +1,127 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+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(PLPI, Package() {
+  0,                     // Version
+  1,                     // Level Index
+  2,                     // Count
+  // WFI for CPU (NS-WFI)
+  Package() {
+    1,                   // Min residency (uS)
+    1,                   // Wake latency (uS)
+    1,                   // Flags
+    0,                   // Arch Context Flags
+    100,                 // 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)
+    },
+    "Standby",
+  },
+  // Retention state for CPU (S-WFI)
+  Package() {
+    2,                   // Min residency (uS)
+    2,                   // Wake latency (uS)
+    1,                   // Flags
+    0,                   // Arch Context Flags
+    100,                 // Residency Counter Frequency
+    1,                   // Parent node can be in Standby states
+    ResourceTemplate () {
+      // Register Entry method
+      Register (FFixedHW,
+        0x20,            // Bit Width
+        0x00,            // Bit Offset
+        0x00000001,      // 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_ATF"
+  },
+})
+
+Device (SYST) {            // System state
+  Name(_HID, "ACPI0010")
+  Name(_UID, 1)
+  Name (_LPI, Package() {
+    0,                     // Version
+    0,                     // Level Index
+    1,                     // Count
+    // Retention state for Cluster
+    Package() {
+      100,               // Min residency (uS)
+      100,               // Wake latency (uS)
+      1,                   // Flags
+      0,                   // Arch Context Flags
+      100,                 // Residency Counter Frequency
+      0,                   // No Parent State
+      0x02000100,          // Integer Entry method
+      ResourceTemplate() { // Null Residency Counter
+        Register (SystemMemory, 0, 0, 0, 0)
+      },
+      ResourceTemplate() { // Null Usage Counter
+        Register (SystemMemory, 0, 0, 0, 0)
+      },
+      "Standby"
+    },
+  })
+
+  Include ("CPU-S0.asi")
+  Include ("CPU-S1.asi")
+}
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Dbg2.aslc b/Platform/Ampere/JadePkg/AcpiTables/Dbg2.aslc
new file mode 100644
index 000000000000..ee3f370afe04
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Dbg2.aslc
@@ -0,0 +1,87 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/DebugPort2Table.h>
+#include <AcpiHeader.h>
+
+#pragma pack(1)
+
+#define DBG2_NUM_DEBUG_PORTS                       1
+#define DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS   1
+#define DBG2_NAMESPACESTRING_FIELD_SIZE            10
+#define SERIAL_PORT_PL011_UART_ADDR_SIZE           0x8
+
+#define NAME_STR_UART2     {'\\', '_', 'S', 'B', '.', 'U', 'R', 'T', '2', '\0'}
+
+typedef struct {
+  EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Dbg2Device;
+  EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE        BaseAddressRegister;
+  UINT32                                        AddressSize;
+  UINT8                                         NameSpaceString[DBG2_NAMESPACESTRING_FIELD_SIZE];
+} DBG2_DEBUG_DEVICE_INFORMATION;
+
+typedef struct {
+  EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE       Description;
+  DBG2_DEBUG_DEVICE_INFORMATION                 Dbg2DeviceInfo[DBG2_NUM_DEBUG_PORTS];
+} DBG2_TABLE;
+
+
+#define DBG2_DEBUG_PORT_DDI(NumReg, SubType, UartBase, UartAddrLen, UartNameStr) {                                    \
+    {                                                                                                                 \
+      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,         /* UINT8     Revision */                        \
+      sizeof (DBG2_DEBUG_DEVICE_INFORMATION),                         /* UINT16    Length */                          \
+      NumReg,                                                         /* UINT8     NumberofGenericAddressRegisters */ \
+      DBG2_NAMESPACESTRING_FIELD_SIZE,                                /* UINT16    NameSpaceStringLength */           \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, NameSpaceString),     /* UINT16    NameSpaceStringOffset */           \
+      0,                                                              /* UINT16    OemDataLength */                   \
+      0,                                                              /* UINT16    OemDataOffset */                   \
+      EFI_ACPI_DBG2_PORT_TYPE_SERIAL,                                 /* UINT16    Port Type */                       \
+      SubType,                                                        /* UINT16    Port Subtype */                    \
+      {EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE},               /* UINT8     Reserved[2] */                     \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, BaseAddressRegister), /* UINT16    BaseAddressRegister Offset */      \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, AddressSize)          /* UINT16    AddressSize Offset */              \
+    },                                                                                                                \
+    ARM_GAS32 (UartBase),                            /* EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE BaseAddressRegister */ \
+    UartAddrLen,                                     /* UINT32  AddressSize */                                        \
+    UartNameStr                                      /* UINT8   NameSpaceString[DBG2_NAMESPACESTRING_FIELD_SIZE] */   \
+  }
+
+
+STATIC DBG2_TABLE Dbg2 = {
+  {
+    __ACPI_HEADER (
+      EFI_ACPI_6_3_DEBUG_PORT_2_TABLE_SIGNATURE,
+      DBG2_TABLE,
+      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION
+    ),
+    OFFSET_OF (DBG2_TABLE, Dbg2DeviceInfo),
+    DBG2_NUM_DEBUG_PORTS                                 /* UINT32  NumberDbgDeviceInfo */
+  },
+  {
+    // Kernel Debug Port
+    DBG2_DEBUG_PORT_DDI (
+      DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS,
+      EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_ARM_SBSA_GENERIC_UART,
+      FixedPcdGet64 (PcdSerialDbgRegisterBase),
+      SERIAL_PORT_PL011_UART_ADDR_SIZE,
+      NAME_STR_UART2
+      ),
+  }
+};
+
+#pragma pack()
+
+//
+// Reference the table being generated to prevent the optimizer from removing
+// the data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Dbg2;
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Dsdt.asl b/Platform/Ampere/JadePkg/AcpiTables/Dsdt.asl
new file mode 100755
index 000000000000..57d256d194de
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Dsdt.asl
@@ -0,0 +1,399 @@
+/** @file
+
+  Copyright (c) 2020, 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, "Jade Board")
+  Name(TPMF, 0x0)  // TPM presence
+  Scope(\_SB) {
+
+    Include ("CPU.asi")
+    Include ("PMU.asi")
+
+    //
+    // 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", 15}
+        }
+      })
+    }
+
+    //
+    // 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", 31}
+        }
+      })
+    }
+
+    //
+    // Hardware Monitor
+    Device(HM02) {
+      Name(_HID, "AMPC0005")
+      Name(_UID, "HWM2")
+      Name(_DDN, "HWM2")
+      Name(_CCA, ONE)
+      Name(_STR, Unicode("AC01 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("AC01 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
+          0x0000000088920000,   // AddressMinimum - MIN
+          0x000000008893FFFF,   // AddressMaximum - MAX
+          0x0000000000000000,   // AddressTranslation - TRA
+          0x0000000000020000    // RangeLength - LEN
+        )
+      })
+    }
+
+    //
+    // DesignWare I2C on AHBC bus
+    Device(I2C4) {
+      Name(_HID, "APMC0D0F")
+      Name(_UID, 4)
+      Name(_STR, Unicode("eMAG2 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 ()
+        {
+          I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
+          AddressingMode7Bit, "\\_SB.I2C4",
+          0x00, ResourceConsumer,,
+          )
+        })
+      }
+      Name(SSCN, Package() { 427, 499, 0 })
+      Name(FMCN, Package() { 87, 159, 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
+        })
+        Method(_EVT, 1) {
+          Switch (ToInteger(Arg0)) {
+            Case (84) { // GHES interrupt
+              Notify (HED0, 0x80)
+            }
+          }
+        }
+    }
+
+    // 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, 1)
+        Method(_STA, 0, NotSerialized) {
+          return (0xf)
+        }
+      }
+      Device (NVD2) {
+        Name(_ADR, 2)
+        Method(_STA, 0, NotSerialized) {
+          return (0xf)
+        }
+      }
+      Device (NVD3) {
+        Name(_ADR, 3)
+        Method(_STA, 0, NotSerialized) {
+          return (0xf)
+        }
+      }
+      Device (NVD4) {
+        Name(_ADR, 4)
+        Method(_STA, 0, NotSerialized) {
+          return (0xf)
+        }
+      }
+    }
+
+    Device (TPM0) {
+      Name (_HID, "MSFT0101")
+      Name (_CID, "MSFT0101")
+      Name (_UID, 0)
+      Method (_CRS, 0x0, Serialized) {
+        Name (RBUF, ResourceTemplate () {
+          //QWORDMemory(ResourceConsumer, , MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x80300000, 0x80300FFF, 0x0, 0x1000,, ,)
+          Memory32Fixed (ReadWrite, 0x88500000, 0x1000, PCRE)
+        })
+        Return (RBUF)
+      }
+
+      Method (_STR,0) {
+        Return (Unicode ("TPM 2.0 Device"))
+      }
+
+      Method (_STA, 0) {
+        if (TPMF) {
+          Return (0x0f)  //Enable resources
+        }
+        Return (0x0)
+      }
+    }
+
+    Include ("PCI-S0.Rca01.asi")
+    Include ("PCI-S0.asi")
+    Include ("PCI-S1.asi")
+    Include ("PCI-PDRC.asi")
+  }
+} // DSDT
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Fadt.aslc b/Platform/Ampere/JadePkg/AcpiTables/Fadt.aslc
new file mode 100644
index 000000000000..3fb4cae9303c
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Fadt.aslc
@@ -0,0 +1,87 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/AcpiLib.h>
+#include <IndustryStandard/Acpi63.h>
+#include <AcpiHeader.h>
+
+//
+// This macro defines the FADT flag options.
+//
+#define FADT_FLAGS  (EFI_ACPI_6_3_HW_REDUCED_ACPI | \
+                     EFI_ACPI_6_3_PWR_BUTTON)
+
+
+EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
+  __ACPI_HEADER (
+    EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
+    EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE,
+    EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
+  ),
+  0,                                                                        // UINT32     FirmwareCtrl
+  0,                                                                        // UINT32     Dsdt
+  EFI_ACPI_RESERVED_BYTE,                                                   // UINT8      Reserved0
+  EFI_ACPI_6_3_PM_PROFILE_PERFORMANCE_SERVER,                               // UINT8      PreferredPmProfile
+  0,                                                                        // UINT16     SciInt
+  0,                                                                        // UINT32     SmiCmd
+  0,                                                                        // UINT8      AcpiEnable
+  0,                                                                        // UINT8      AcpiDisable
+  0,                                                                        // UINT8      S4BiosReq
+  0,                                                                        // UINT8      PstateCnt
+  0,                                                                        // UINT32     Pm1aEvtBlk
+  0,                                                                        // UINT32     Pm1bEvtBlk
+  0,                                                                        // UINT32     Pm1aCntBlk
+  0,                                                                        // UINT32     Pm1bCntBlk
+  0,                                                                        // UINT32     Pm2CntBlk
+  0,                                                                        // UINT32     PmTmrBlk
+  0,                                                                        // UINT32     Gpe0Blk
+  0,                                                                        // UINT32     Gpe1Blk
+  0,                                                                        // UINT8      Pm1EvtLen
+  0,                                                                        // UINT8      Pm1CntLen
+  0,                                                                        // UINT8      Pm2CntLen
+  0,                                                                        // UINT8      PmTmrLen
+  0,                                                                        // UINT8      Gpe0BlkLen
+  0,                                                                        // UINT8      Gpe1BlkLen
+  0,                                                                        // UINT8      Gpe1Base
+  0,                                                                        // UINT8      CstCnt
+  0,                                                                        // UINT16     PLvl2Lat
+  0,                                                                        // UINT16     PLvl3Lat
+  0,                                                                        // UINT16     FlushSize
+  0,                                                                        // UINT16     FlushStride
+  0,                                                                        // UINT8      DutyOffset
+  0,                                                                        // UINT8      DutyWidth
+  0,                                                                        // UINT8      DayAlrm
+  0,                                                                        // UINT8      MonAlrm
+  0,                                                                        // UINT8      Century
+  0,                                                                        // UINT16     IaPcBootArch
+  0,                                                                        // UINT8      Reserved1
+  FADT_FLAGS,                                                               // UINT32     Flags
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  ResetReg
+  0,                                                                        // UINT8      ResetValue
+  EFI_ACPI_6_3_ARM_PSCI_COMPLIANT,                                          // UINT16     ArmBootArchFlags
+  EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,                 // UINT8      MinorRevision
+  0,                                                                        // UINT64     XFirmwareCtrl
+  0,                                                                        // UINT64     XDsdt
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk
+  NULL_GAS,                                                                 // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk
+  ARM_GAS32(0),                                                             // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  SleepControlReg
+  ARM_GAS32(0),                                                             // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  SleepStatusReg
+  0                                                                         // UINT64 HypervisorVendorIdentity
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Fadt;
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Gtdt.aslc b/Platform/Ampere/JadePkg/AcpiTables/Gtdt.aslc
new file mode 100644
index 000000000000..30c5067a927d
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Gtdt.aslc
@@ -0,0 +1,180 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/PcdLib.h>
+#include <Library/AcpiLib.h>
+#include <IndustryStandard/Acpi63.h>
+#include <AcpiHeader.h>
+
+#define SYSTEM_TIMER_BASE_ADDRESS       0xFFFFFFFFFFFFFFFF
+#define CNT_READ_BASE_ADDRESS           0xFFFFFFFFFFFFFFFF
+
+#define SECURE_TIMER_EL1_GSIV           0x1D
+#define NON_SECURE_TIMER_EL1_GSIV       0x1E
+#define VIRTUAL_TIMER_GSIV              0x1B
+#define NON_SECURE_EL2_GSIV             0x1A
+
+#define GTDT_TIMER_EDGE_TRIGGERED   EFI_ACPI_6_3_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE
+#define GTDT_TIMER_LEVEL_TRIGGERED  0
+#define GTDT_TIMER_ACTIVE_LOW       EFI_ACPI_6_3_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY
+#define GTDT_TIMER_ACTIVE_HIGH      0
+#define GTDT_TIMER_SAVE_CONTEXT     EFI_ACPI_6_3_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY
+#define GTDT_TIMER_LOSE_CONTEXT     0
+
+#define GTDT_GTIMER_FLAGS          (GTDT_TIMER_LOSE_CONTEXT | GTDT_TIMER_ACTIVE_HIGH | GTDT_TIMER_LEVEL_TRIGGERED)
+
+#define WATCHDOG_COUNT              FixedPcdGet32 (PcdWatchdogCount)
+#define PLATFORM_TIMER_COUNT        (WATCHDOG_COUNT + 1)
+#define TIMER_FRAMES_COUNT          3
+
+#define GT_BLOCK_CTL_BASE               0x0000100002700000
+#define GT_BLOCK_FRAME0_CTL_BASE        0x0000100002710000
+#define GT_BLOCK_FRAME0_CTL_EL0_BASE    0xFFFFFFFFFFFFFFFF
+#define GT_BLOCK_FRAME0_GSIV            0x58
+
+#define GT_BLOCK_FRAME1_CTL_BASE        0x0000100002720000
+#define GT_BLOCK_FRAME1_CTL_EL0_BASE    0xFFFFFFFFFFFFFFFF
+#define GT_BLOCK_FRAME1_GSIV            0x59
+
+#define GT_BLOCK_FRAME2_CTL_BASE        0x0000100002730000
+#define GT_BLOCK_FRAME2_CTL_EL0_BASE    0xFFFFFFFFFFFFFFFF
+#define GT_BLOCK_FRAME2_GSIV            0x5A
+
+#define GTX_TIMER_EDGE_TRIGGERED        EFI_ACPI_6_3_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE
+#define GTX_TIMER_LEVEL_TRIGGERED       0
+#define GTX_TIMER_ACTIVE_LOW            EFI_ACPI_6_3_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY
+#define GTX_TIMER_ACTIVE_HIGH           0
+
+#define GTX_TIMER_FLAGS                 (GTX_TIMER_ACTIVE_HIGH | GTX_TIMER_LEVEL_TRIGGERED)
+
+#define GTX_TIMER_SECURE                EFI_ACPI_6_3_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER
+#define GTX_TIMER_NON_SECURE            0
+#define GTX_TIMER_SAVE_CONTEXT          EFI_ACPI_6_3_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY
+#define GTX_TIMER_LOSE_CONTEXT          0
+
+#define GTX_COMMON_FLAGS_S              (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_SECURE)
+#define GTX_COMMON_FLAGS_NS             (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_NON_SECURE)
+
+#define SBSA_WATCHDOG_REFRESH_BASE     0x00001000027D0000
+#define SBSA_WATCHDOG_CONTROL_BASE     0x00001000027C0000
+#define SBSA_WATCHDOG_GSIV             0x5C
+
+#define SBSA_WATCHDOG_EDGE_TRIGGERED   EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE
+#define SBSA_WATCHDOG_LEVEL_TRIGGERED  0
+#define SBSA_WATCHDOG_ACTIVE_LOW       EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY
+#define SBSA_WATCHDOG_ACTIVE_HIGH      0
+#define SBSA_WATCHDOG_SECURE           EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER
+#define SBSA_WATCHDOG_NON_SECURE       0
+
+#define SBSA_WATCHDOG_FLAGS            (SBSA_WATCHDOG_NON_SECURE | SBSA_WATCHDOG_ACTIVE_HIGH | SBSA_WATCHDOG_LEVEL_TRIGGERED)
+
+#pragma pack (1)
+
+typedef struct {
+  EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE          Gtdt;
+  EFI_ACPI_6_3_GTDT_GT_BLOCK_STRUCTURE                  GtBlock;
+  EFI_ACPI_6_3_GTDT_GT_BLOCK_TIMER_STRUCTURE            Frames[TIMER_FRAMES_COUNT];
+#if (WATCHDOG_COUNT != 0)
+  EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE     Watchdogs[WATCHDOG_COUNT];
+#endif
+} EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLES;
+
+#pragma pack ()
+
+EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
+  {
+    __ACPI_HEADER (
+      EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
+      EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLES,
+      EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION
+    ),
+    SYSTEM_TIMER_BASE_ADDRESS,                              // UINT64  CntControlBasePhysicalAddress
+    EFI_ACPI_RESERVED_DWORD,                                // UINT32  Reserved
+    SECURE_TIMER_EL1_GSIV,                                  // UINT32  SecurePL1TimerGSIV
+    GTDT_GTIMER_FLAGS,                                      // UINT32  SecurePL1TimerFlags
+    NON_SECURE_TIMER_EL1_GSIV,                              // UINT32  NonSecurePL1TimerGSIV
+    GTDT_GTIMER_FLAGS,                                      // UINT32  NonSecurePL1TimerFlags
+    VIRTUAL_TIMER_GSIV,                                     // UINT32  VirtualTimerGSIV
+    GTDT_GTIMER_FLAGS,                                      // UINT32  VirtualTimerFlags
+    NON_SECURE_EL2_GSIV,                                    // UINT32  NonSecurePL2TimerGSIV
+    GTDT_GTIMER_FLAGS,                                      // UINT32  NonSecurePL2TimerFlags
+    CNT_READ_BASE_ADDRESS,                                  // UINT64  CntReadBasePhysicalAddress
+    PLATFORM_TIMER_COUNT,                                   // UINT32  PlatformTimerCount
+    sizeof (EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE),  // UINT32  PlatformTimerOffset
+  },
+  {
+    EFI_ACPI_6_3_GTDT_GT_BLOCK,                           // UINT8 Type
+    sizeof(EFI_ACPI_6_3_GTDT_GT_BLOCK_STRUCTURE)          // UINT16 Length
+      + sizeof(EFI_ACPI_6_3_GTDT_GT_BLOCK_TIMER_STRUCTURE) *
+        TIMER_FRAMES_COUNT,
+    EFI_ACPI_RESERVED_BYTE,                               // UINT8 Reserved
+    GT_BLOCK_CTL_BASE,                                    // UINT64 CntCtlBase
+    TIMER_FRAMES_COUNT,                                   // UINT32 GTBlockTimerCount
+    sizeof(EFI_ACPI_6_3_GTDT_GT_BLOCK_STRUCTURE)          // UINT32 GTBlockTimerOffset
+  },
+  {
+    {
+      0,                                                    // UINT8 GTFrameNumber
+      {EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE},                             // UINT8 Reserved[3]
+      GT_BLOCK_FRAME0_CTL_BASE,                             // UINT64 CntBaseX
+      GT_BLOCK_FRAME0_CTL_EL0_BASE,                         // UINT64 CntEL0BaseX
+      GT_BLOCK_FRAME0_GSIV,                                 // UINT32 GTxPhysicalTimerGSIV
+      GTX_TIMER_FLAGS,                                      // UINT32 GTxPhysicalTimerFlags
+      0,                                                    // UINT32 GTxVirtualTimerGSIV
+      0,                                                    // UINT32 GTxVirtualTimerFlags
+      GTX_COMMON_FLAGS_NS                                   // UINT32 GTxCommonFlags
+    },
+    {
+      1,                                                    // UINT8 GTFrameNumber
+      {EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE},                             // UINT8 Reserved[3]
+      GT_BLOCK_FRAME1_CTL_BASE,                             // UINT64 CntBaseX
+      GT_BLOCK_FRAME1_CTL_EL0_BASE,                         // UINT64 CntEL0BaseX
+      GT_BLOCK_FRAME1_GSIV,                                 // UINT32 GTxPhysicalTimerGSIV
+      GTX_TIMER_FLAGS,                                      // UINT32 GTxPhysicalTimerFlags
+      0,                                                    // UINT32 GTxVirtualTimerGSIV
+      0,                                                    // UINT32 GTxVirtualTimerFlags
+      GTX_COMMON_FLAGS_NS                                   // UINT32 GTxCommonFlags
+    },
+    {
+      2,                                                    // UINT8 GTFrameNumber
+      {EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE,
+       EFI_ACPI_RESERVED_BYTE},                             // UINT8 Reserved[3]
+      GT_BLOCK_FRAME2_CTL_BASE,                             // UINT64 CntBaseX
+      GT_BLOCK_FRAME2_CTL_EL0_BASE,                         // UINT64 CntEL0BaseX
+      GT_BLOCK_FRAME2_GSIV,                                 // UINT32 GTxPhysicalTimerGSIV
+      GTX_TIMER_FLAGS,                                      // UINT32 GTxPhysicalTimerFlags
+      0,                                                    // UINT32 GTxVirtualTimerGSIV
+      0,                                                    // UINT32 GTxVirtualTimerFlags
+      GTX_COMMON_FLAGS_NS                                   // UINT32 GTxCommonFlags
+    },
+  },
+#if (WATCHDOG_COUNT != 0)
+  {
+    {
+      EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG,                      // UINT8 Type
+      sizeof(EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE),    // UINT16 Length
+      EFI_ACPI_RESERVED_BYTE,                                       // UINT8 Reserved
+      SBSA_WATCHDOG_REFRESH_BASE,                                   // UINT64 RefreshFramePhysicalAddress
+      SBSA_WATCHDOG_CONTROL_BASE,                                   // UINT64 WatchdogControlFramePhysicalAddress
+      SBSA_WATCHDOG_GSIV,                                           // UINT32 WatchdogTimerGSIV
+      SBSA_WATCHDOG_FLAGS                                           // UINT32 WatchdogTimerFlags
+    }
+  }
+#endif
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Gtdt;
diff --git a/Platform/Ampere/JadePkg/AcpiTables/PCI-PDRC.asi b/Platform/Ampere/JadePkg/AcpiTables/PCI-PDRC.asi
new file mode 100644
index 000000000000..16c00c35e3fe
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PCI-PDRC.asi
@@ -0,0 +1,217 @@
+/** @file
+
+  Copyright (c) 2020, 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/AcpiTables/PCI-S0.Rca01.asi b/Platform/Ampere/JadePkg/AcpiTables/PCI-S0.Rca01.asi
new file mode 100755
index 000000000000..0141d1696881
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PCI-S0.Rca01.asi
@@ -0,0 +1,671 @@
+/** @file
+
+  Copyright (c) 2020, 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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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/AcpiTables/PCI-S0.asi b/Platform/Ampere/JadePkg/AcpiTables/PCI-S0.asi
new file mode 100755
index 000000000000..c146d8379e33
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PCI-S0.asi
@@ -0,0 +1,2059 @@
+/** @file
+
+  Copyright (c) 2020, 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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to Return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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 RCB0
+  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 RCB0
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+          0x0000000000800000,   // AddressMinimum - MIN
+          0x0000000007FFFFFF,   // AddressMinimum - MAX
+          0x0000000000000000,   // AddressTranslation - TRA
+          0x0000000007800000    // 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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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 RCB0
+
+  // PCI5 RCB1
+  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 RCB1
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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 RCB1
+
+
+  // PCI6 RCB2
+  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 RCB2
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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 RCB2
+
+  // PCI7 RCB3
+  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 RCB3
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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).
+        // Allows PCI Express AER control
+        // Allows PCI Express Capabitlity Structure control
+        //
+
+        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 RCB3
diff --git a/Platform/Ampere/JadePkg/AcpiTables/PCI-S1.asi b/Platform/Ampere/JadePkg/AcpiTables/PCI-S1.asi
new file mode 100755
index 000000000000..1cfa6a81b250
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PCI-S1.asi
@@ -0,0 +1,2060 @@
+/** @file
+
+  Copyright (c) 2020, 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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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 RCB0
+  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 RCB0
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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 RCB0
+
+  // PCID RCB1
+  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 RCB1
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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 RCB1
+
+  // PCIE RCB2
+  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 RCB2
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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 RCB2
+
+  // PCIF RCB3
+  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 RCB3
+      //
+      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)
+    }
+
+    Method (_CRS, 0, Serialized) {
+
+      //
+      // Declare a ResourceTemplate buffer to return the resource
+      // requirements from _CRS.
+      // Section 19.5.109
+      //
+
+      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
+        )
+      })
+
+      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)
+        }
+
+        //
+        // Always allow native Hot plug, PME, AER (no dependencies).
+        // Never allow SHPC (no SHPC controller in this system).
+        //
+
+        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 RCB3
diff --git a/Platform/Ampere/JadePkg/AcpiTables/PMU-S0.asi b/Platform/Ampere/JadePkg/AcpiTables/PMU-S0.asi
new file mode 100755
index 000000000000..0e9db557d925
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PMU-S0.asi
@@ -0,0 +1,1303 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+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
+    0x000010001fffffff,   // AddressMaximum - MAX
+    0x0000000000000000,   // AddressTranslation - TRA
+    0x0000000010000000    // RangeLength - LEN
+  )
+  QWordMemory (
+    ResourceConsumer,     // ResourceUsage
+    PosDecode,            // Decode
+    MinFixed,             // IsMinFixed
+    MaxFixed,             // IsMaxFixed
+    NonCacheable,         // Cacheable
+    ReadWrite,            // ReadAndWrite
+    0x0000000000000000,   // AddressGranularity - GRA
+    0x0000100012500000,   // AddressMinimum - MIN
+    0x00001000164fffff,   // AddressMaximum - MAX
+    0x0000000000000000,   // AddressTranslation - TRA
+    0x0000000004000000    // RangeLength - LEN
+  )
+  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
+      0x000010008C000A00,   // AddressMinimum - MIN
+      0x000010008C000BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008C400A00,   // AddressMinimum - MIN
+      0x000010008C400BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008C800A00,   // AddressMinimum - MIN
+      0x000010008C800BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008CC00A00,   // AddressMinimum - MIN
+      0x000010008CC00BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008D000A00,   // AddressMinimum - MIN
+      0x000010008D000BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008D400A00,   // AddressMinimum - MIN
+      0x000010008D400BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008D800A00,   // AddressMinimum - MIN
+      0x000010008D800BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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
+      0x000010008DC00A00,   // AddressMinimum - MIN
+      0x000010008DC00BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x000000,
+          0x000100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x010000,
+          0x010100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x020000,
+          0x020100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x030000,
+          0x030100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x040000,
+          0x040100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x050000,
+          0x050100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x060000,
+          0x060100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x070000,
+          0x070100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x080000,
+          0x080100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x090000,
+          0x090100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0A0000,
+          0x0A0100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0B0000,
+          0x0B0100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0C0000,
+          0x0C0100
+        }
+      }
+    }
+  })
+}
+
+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) { 221 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0D0000,
+          0x0D0100
+        }
+      }
+    }
+  })
+}
+
+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) { 222 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0E0000,
+          0x0E0100
+        }
+      }
+    }
+  })
+}
+
+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) { 223 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x0F0000,
+          0x0F0100
+        }
+      }
+    }
+  })
+}
+
+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) { 248 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100000,
+          0x100100
+        }
+      }
+    }
+  })
+}
+
+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) { 249 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x110000,
+          0x110100
+        }
+      }
+    }
+  })
+}
+
+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) { 250 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x120000,
+          0x120100
+        }
+      }
+    }
+  })
+}
+
+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) { 251 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x130000,
+          0x130100
+        }
+      }
+    }
+  })
+}
+
+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) { 252 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x140000,
+          0x140100
+        }
+      }
+    }
+  })
+}
+
+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) { 253 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x150000,
+          0x150100
+        }
+      }
+    }
+  })
+}
+
+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) { 254 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x160000,
+          0x160100
+        }
+      }
+    }
+  })
+}
+
+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) { 255 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x170000,
+          0x170100
+        }
+      }
+    }
+  })
+}
+
+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) { 297 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x180000,
+          0x180100
+        }
+      }
+    }
+  })
+}
+
+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) { 298 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x190000,
+          0x190100
+        }
+      }
+    }
+  })
+}
+
+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) { 299 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1A0000,
+          0x1A0100
+        }
+      }
+    }
+  })
+}
+
+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) { 300 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1B0000,
+          0x1B0100
+        }
+      }
+    }
+  })
+}
+
+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) { 301 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1C0000,
+          0x1C0100
+        }
+      }
+    }
+  })
+}
+
+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) { 313 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1D0000,
+          0x1D0100
+        }
+      }
+    }
+  })
+}
+
+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) { 316 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1E0000,
+          0x1E0100
+        }
+      }
+    }
+  })
+}
+
+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) { 317 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1F0000,
+          0x1F0100
+        }
+      }
+    }
+  })
+}
+
+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) { 318 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x200000,
+          0x200100
+        }
+      }
+    }
+  })
+}
+
+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) { 319 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x210000,
+          0x210100
+        }
+      }
+    }
+  })
+}
+
+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) { 344 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x220000,
+          0x220100
+        }
+      }
+    }
+  })
+}
+
+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) { 345 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x230000,
+          0x230100
+        }
+      }
+    }
+  })
+}
+
+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) { 346 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x240000,
+          0x240100
+        }
+      }
+    }
+  })
+}
+
+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) { 347 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x250000,
+          0x250100
+        }
+      }
+    }
+  })
+}
+
+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) { 348 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x260000,
+          0x260100
+        }
+      }
+    }
+  })
+}
+
+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) { 349 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x270000,
+          0x270100
+        }
+      }
+    }
+  })
+}
diff --git a/Platform/Ampere/JadePkg/AcpiTables/PMU-S1.asi b/Platform/Ampere/JadePkg/AcpiTables/PMU-S1.asi
new file mode 100755
index 000000000000..1ae1bac8098b
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PMU-S1.asi
@@ -0,0 +1,1303 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+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
+    0x000050001fffffff,   // AddressMaximum - MAX
+    0x0000000000000000,   // AddressTranslation - TRA
+    0x0000000010000000    // RangeLength - LEN
+  )
+  QWordMemory (
+    ResourceConsumer,     // ResourceUsage
+    PosDecode,            // Decode
+    MinFixed,             // IsMinFixed
+    MaxFixed,             // IsMaxFixed
+    NonCacheable,         // Cacheable
+    ReadWrite,            // ReadAndWrite
+    0x0000000000000000,   // AddressGranularity - GRA
+    0x0000500012500000,   // AddressMinimum - MIN
+    0x00005000164fffff,   // AddressMaximum - MAX
+    0x0000000000000000,   // AddressTranslation - TRA
+    0x0000000004000000    // RangeLength - LEN
+  )
+  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
+      0x000050008C000A00,   // AddressMinimum - MIN
+      0x000050008C000BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008C400A00,   // AddressMinimum - MIN
+      0x000050008C400BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008C800A00,   // AddressMinimum - MIN
+      0x000050008C800BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008CC00A00,   // AddressMinimum - MIN
+      0x000050008CC00BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008D000A00,   // AddressMinimum - MIN
+      0x000050008D000BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008D400A00,   // AddressMinimum - MIN
+      0x000050008D400BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008D800A00,   // AddressMinimum - MIN
+      0x000050008D800BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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
+      0x000050008DC00A00,   // AddressMinimum - MIN
+      0x000050008DC00BFF,   // AddressMaximum - MAX
+      0x0000000000000000,   // AddressTranslation - TRA
+      0x0000000000000200    // RangeLength - LEN
+    )
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100000000,
+          0x100000100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100010000,
+          0x100010100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100020000,
+          0x100020100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100030000,
+          0x100030100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100040000,
+          0x100040100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100050000,
+          0x100050100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100060000,
+          0x100060100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100070000,
+          0x100070100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100080000,
+          0x100080100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100090000,
+          0x100090100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000A0000,
+          0x1000A0100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000B0000,
+          0x1000B0100
+        }
+      }
+    }
+  })
+}
+
+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 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000C0000,
+          0x1000C0100
+        }
+      }
+    }
+  })
+}
+
+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) { 541 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000D0000,
+          0x1000D0100
+        }
+      }
+    }
+  })
+}
+
+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) { 542 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000E0000,
+          0x1000E0100
+        }
+      }
+    }
+  })
+}
+
+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) { 543 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1000F0000,
+          0x1000F0100
+        }
+      }
+    }
+  })
+}
+
+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) { 568 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100100000,
+          0x100100100
+        }
+      }
+    }
+  })
+}
+
+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) { 569 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100110000,
+          0x100110100
+        }
+      }
+    }
+  })
+}
+
+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) { 570 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100120000,
+          0x100120100
+        }
+      }
+    }
+  })
+}
+
+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) { 571 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100130000,
+          0x100130100
+        }
+      }
+    }
+  })
+}
+
+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) { 572 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100140000,
+          0x100140100
+        }
+      }
+    }
+  })
+}
+
+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) { 573 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100150000,
+          0x100150100
+        }
+      }
+    }
+  })
+}
+
+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) { 574 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100160000,
+          0x100160100
+        }
+      }
+    }
+  })
+}
+
+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) { 575 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100170000,
+          0x100170100
+        }
+      }
+    }
+  })
+}
+
+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) { 617 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100180000,
+          0x100180100
+        }
+      }
+    }
+  })
+}
+
+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) { 618 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100190000,
+          0x100190100
+        }
+      }
+    }
+  })
+}
+
+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) { 619 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001A0000,
+          0x1001A0100
+        }
+      }
+    }
+  })
+}
+
+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) { 620 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001B0000,
+          0x1001B0100
+        }
+      }
+    }
+  })
+}
+
+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) { 621 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001C0000,
+          0x1001C0100
+        }
+      }
+    }
+  })
+}
+
+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) { 633 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001D0000,
+          0x1001D0100
+        }
+      }
+    }
+  })
+}
+
+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) { 636 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001E0000,
+          0x1001E0100
+        }
+      }
+    }
+  })
+}
+
+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) { 637 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x1001F0000,
+          0x1001F0100
+        }
+      }
+    }
+  })
+}
+
+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) { 638 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100200000,
+          0x100200100
+        }
+      }
+    }
+  })
+}
+
+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) { 639 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100210000,
+          0x100210100
+        }
+      }
+    }
+  })
+}
+
+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) { 664 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100220000,
+          0x100220100
+        }
+      }
+    }
+  })
+}
+
+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) { 665 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100230000,
+          0x100230100
+        }
+      }
+    }
+  })
+}
+
+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) { 666 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100240000,
+          0x100240100
+        }
+      }
+    }
+  })
+}
+
+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) { 667 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100250000,
+          0x100250100
+        }
+      }
+    }
+  })
+}
+
+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) { 668 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100260000,
+          0x100260100
+        }
+      }
+    }
+  })
+}
+
+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) { 669 }
+  })
+  Name (_DSD, Package () {
+    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+    Package () {
+      Package (2) {
+        "cpus",
+        Package (2) {
+          0x100270000,
+          0x100270100
+        }
+      }
+    }
+  })
+}
diff --git a/Platform/Ampere/JadePkg/AcpiTables/PMU.asi b/Platform/Ampere/JadePkg/AcpiTables/PMU.asi
new file mode 100644
index 000000000000..0d177de8696d
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/PMU.asi
@@ -0,0 +1,10 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+Include ("PMU-S0.asi")
+Include ("PMU-S1.asi")
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Spcr.aslc b/Platform/Ampere/JadePkg/AcpiTables/Spcr.aslc
new file mode 100644
index 000000000000..44523de4b63e
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Spcr.aslc
@@ -0,0 +1,81 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/PcdLib.h>
+#include <Library/AcpiLib.h>
+#include <IndustryStandard/Acpi63.h>
+#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+#include <AcpiHeader.h>
+
+STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
+  __ACPI_HEADER (
+    EFI_ACPI_6_3_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
+    EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,
+    EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION
+    ),
+  // UINT8                                   InterfaceType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART,
+  // UINT8                                   Reserved1[3];
+  {
+    EFI_ACPI_RESERVED_BYTE,
+    EFI_ACPI_RESERVED_BYTE,
+    EFI_ACPI_RESERVED_BYTE
+  },
+  // EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE  BaseAddress;
+  ARM_GAS32 (FixedPcdGet64 (PcdSerialRegisterBase)),
+  // UINT8                                   InterruptType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC,
+  // UINT8                                   Irq;
+  0,                                         // Not used on ARM
+  // UINT32                                  GlobalSystemInterrupt;
+  FixedPcdGet32 (PL011UartInterrupt),
+  // UINT8                                   BaudRate;
+#if (FixedPcdGet64 (PcdUartDefaultBaudRate) == 9600)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 19200)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 57600)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 115200)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200,
+#else
+#error Unsupported SPCR Baud Rate
+#endif
+  // UINT8                                   Parity;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY,
+  // UINT8                                   StopBits;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1,
+  // UINT8                                   FlowControl;
+  0,
+  // UINT8                                   TerminalType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8,
+  // UINT8                                   Reserved2;
+  EFI_ACPI_RESERVED_BYTE,
+  // UINT16                                  PciDeviceId;
+  0xFFFF,
+  // UINT16                                  PciVendorId;
+  0xFFFF,
+  // UINT8                                   PciBusNumber;
+  0x00,
+  // UINT8                                   PciDeviceNumber;
+  0x00,
+  // UINT8                                   PciFunctionNumber;
+  0x00,
+  // UINT32                                  PciFlags;
+  0x00000000,
+  // UINT8                                   PciSegment;
+  0x00,
+  // UINT32                                  Reserved3;
+  EFI_ACPI_RESERVED_DWORD
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Spcr;
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Ssdt.asl b/Platform/Ampere/JadePkg/AcpiTables/Ssdt.asl
new file mode 100755
index 000000000000..3f37fc62d955
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Ssdt.asl
@@ -0,0 +1,15 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+DefinitionBlock("Ssdt.aml", "SSDT", 2, "Ampere", "Altra   ", 0x00000001)
+{
+    Method (MAIN, 0, NotSerialized)
+    {
+        Return (Zero)
+    }
+}
-- 
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68514): https://edk2.groups.io/g/devel/message/68514
Mute This Topic: https://groups.io/mt/78825498/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list