From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102088+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102088+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064575802203.4465121111714; Tue, 28 Mar 2023 21:36:15 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ZluxYY1788612xkWqXupNJO1; Tue, 28 Mar 2023 21:36:15 -0700 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.118]) by mx.groups.io with SMTP id smtpd.web11.16987.1680064574607994527 for ; Tue, 28 Mar 2023 21:36:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q1POYr8leQzBBCeMZft+90DwhmXBzatVjmKZGlV69M5fz8Q6DxdVT5b4XGbx/9qzh/hLAlw1Jde31dy2s2XtGF5AeDOg4VVPdOXchaPGubsPBxHpDF9konm2VPszgtBr7rAjDpuph49eQOX4AxNqhvZWPrBciW0Bz4MdKWqWS3KkRdCXD5ANO8dSDXeiApAkbPfqfmGuLH1pnvDtaIm1P6Aq8Op1di4/PDqe1T/eOHwoKOOIusqlMIEmbq/Lno0qEuTzZG130tPegDB5w7bWygX9wZ1ph4o7P/RpjoX1R74wPnSQh5KeGSLIjc/ovW0GHnSm1QsXr3OLEv581ZVISA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=U4tLnDW4B1R3ZBIehJg87OJSffGxMDCuWdVS9dxpNzQ=; b=iR+SjKEj0swSAUBHZfb8MqGqifge4kDGgpGykcuwDKfB7atN44qOm1EAQeuS4EfvjCuJMXsICDgyi1EIswFQuNhv3tzZwfI4PRd6NrTlrQ+hWBi5SLPn9qEKTHIsNX+lckp52xvjtKtnZ5beu1fDm0SxrK/pYLMFcjeRQ0+Qiuytw/Ama5btT3pRe5FEmQlJfuGYH+nKWVvtx+kdg50Cy/5CZXCskAGiI1m4I0LIg+678jVYpOnoNC2VVzjgdtYTNgbR6SALbgb+aToFQJ1sKLBDzIR8V9x1Jg9TsTyD2Zws9lYJQZKkS9JvUUBvmZUTsAFc4rmW9yHAPr45k0ay/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by MWHPR01MB2509.prod.exchangelabs.com (2603:10b6:300:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:12 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:12 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 1/9] AmpereAltraPkg: Correct PCIe Devmap Date: Wed, 29 Mar 2023 11:32:38 +0700 Message-ID: <20230329043246.495600-2-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|MWHPR01MB2509:EE_ X-MS-Office365-Filtering-Correlation-Id: a3a0c78a-e87f-4f94-b831-08db300f1fa3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: CLWHZQmLaZUJxtg2KZ+oYM8topR0rySNEIs41DJ3c6nQeeQ7PTnxbZPFnwfDqQ5rLbnZYdY4puC360dqD5PifdrIg/PhjoHlixwZ2CzHdyYmSGFzgnyR8HogFagAkBqOvpXXWQpKIKhdVFMDrY/ubitHA25dYbmcEYiuGrt+H2rNS8/ORDnVa3VdJCLzDJS9bKLvR+4fE+eV9wOoUu+/us522CqPRByGugWH1UvTLykzoyIFy+RQdD9x7ClK6bk2ol1sqnl0w+k793OdrX/9YKhDbgBjYbcVQvtSdiZL67TS0hZmLYpjremUOTWuQyD6Oc8jtRu1D9MxoQE8+ScunjxgZwBfm+TVE3Osy1q5Iu9v6kHqba2WU118yVgxN6MafGEfxSly+x211tMNkN4O8mqpPmLdys2vLqZNp3p8zye4TvZcbBmwFUsMiXmcSkGeDEI8nXSP61ouqnqu7Bah5EGdUqYtLC29+YCiNt2MWByjwRjBuTegTQWADnVMtveC6ZGn/X/p77B1IpNu1xWx7EyLKsAp6AGE6xWtKXqTyDRgKzVYe1MnimJsu8RhMe/c8DlO+KspcHPdkc8IUY/YBGM54sqjP1FNwoU5flFjIp0GB1tq6CDFjByi8xGNVLcp X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QoM/MaGUWCiHng2fa1odUCUkXIbvnOflSgJJ9DhxfhH3gtdJXp1uS5MhPtUH?= =?us-ascii?Q?pSs/0hDA9loPop/7L4aoILMy+RZ4bS/NnBTvDLRlPG9Px/9T0vvs9M9510Rq?= =?us-ascii?Q?eT3Keu4QthjUXRBOZVkIqlFq9nq+rYKyOVT8Eb2SKGmzC/JmNI90qHWAGyis?= =?us-ascii?Q?xhf/RNFCKyIMKqBWJHmDlS8hyMhXC6ykLo6QDT8vMomSThT8H5gpOl1OJHe+?= =?us-ascii?Q?U5Eo+LY9SAS/FNkQ7uoRdZiFaNPzy/cmdR/ttnQiCodnxxTuzuN+XKyVs/6R?= =?us-ascii?Q?zdxWppH77WEHU/n0n20bwuh80+D4QPZ4OZpAkGd8nV4ZbQgDx7HtgHy/u/Ul?= =?us-ascii?Q?k8Ez7PnBcivx2JebGjcnn+X1LlD3vWVCZGvNQdKmqhHN04i6dYddrh378hSF?= =?us-ascii?Q?LN03OQrtBP6+bMi1zpthMbD29UNsBOIRweObUFOsbSDU8gCzEtvvIfgQVpvE?= =?us-ascii?Q?zf3eSS7O+QiCSssVg4+b0ZWgyl8lLWdoxpUh6HpX2vPoSGTUNdYdwQK5H1oH?= =?us-ascii?Q?Bv2hz6xhMGNOwu2QV0hjIHDzy69CHGbBIeM6n2mL3tAVSO9mwFT51bkxOtfc?= =?us-ascii?Q?Cza/BMJYPjixVu+TY54p2JClQcsD7Whc6KvaiYLPq+RgPUgZdQH71N5MGY+8?= =?us-ascii?Q?NcmmS7sTQFZbFbMxwcL73Zid5UjM6DTupKxj/ccbpQaBQW3UlEXjUzWWFRDI?= =?us-ascii?Q?G05bwVHqAQIPvVjBfrgjom5m/i/ZnxS2IICJdNKOw708Mj+934tBTgkhRZ3Z?= =?us-ascii?Q?Tsyqp1PQb6eqrUFadoWQNfB8U8MjOPM6Xtjkf7Tw1/tEXxUJnDt5kgz9xiz4?= =?us-ascii?Q?4yop8Feq7GSfI0ng1qXlmFnm3fE7Iq8EExL3bWzMYj+ys1nlAh13zS2OB3vJ?= =?us-ascii?Q?MrNfUySzmAHlLiF2LbuF4PR6G956nvaG3uFgZ9clX+PvZlOUi9s3cLu1gbu2?= =?us-ascii?Q?JJUpSpGcbB/vnNck1D8yNyuuSpJe2K8dpsKudDJePNq9U55kNNUpd72megnR?= =?us-ascii?Q?vuipNSvz0gJRymrr9ONjRvF97BNrxArPy9E51Jd9zAGtuh8HEVOEJdR83Zgg?= =?us-ascii?Q?Co2/nag2lN8fFLNs54XCXFCJOQVAF5e+mrlTVIaBqWmvxPORGWmKY2wTlxyS?= =?us-ascii?Q?oVy35pSoL3/qIO/au3WCtGbhT3sSW7+f/JIErWofMBPqg+VH+MH2L9XCWxAm?= =?us-ascii?Q?EY3CCLOt7JztepxNrvxlduxDkyqfLmLSY61UYK9x5lPziIpItBK/hwAhCu+P?= =?us-ascii?Q?XsLLVjDFHxFcCq6uWlkuuKbrtWqAsCB0wCkiI5usy1YstEvbzDnWE1Yw/6D9?= =?us-ascii?Q?xLpgHW6DcGRFgSCFb06JSQbGH7ew+HROeWId5MatQqv4Lac8229WEQQVbAUJ?= =?us-ascii?Q?Ft7xT/r7bPGItBmn8PkTI6VXUiCj565Sc8SkgjAI0YLyYlBOYtuFxWpSeI3O?= =?us-ascii?Q?BRGGZFOWXvhhIGm2eQESLiybOr0s02EuDecZzJX3U39hbTcVK4fZ7F8ERYMh?= =?us-ascii?Q?k07mBQcx9ZbBKS/ubCF49Cf1aa0qIaODmDmn2CbHfbYB+R4XnN0kRpGDP58W?= =?us-ascii?Q?GvT5HPFDSVWoVZ7l3ZACKO8/RMiQKL7ZFX1SGX0plfqxLTLaJRcrDvfYz1rw?= =?us-ascii?Q?QULB6yiyeuAY89gTduVAZMM=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3a0c78a-e87f-4f94-b831-08db300f1fa3 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:12.0094 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ijY+CWYHWoPOgBXjGe3VDugNkTbUvYdIc9bs0fLckwLfzs7kZmDGDp/lPA9wLOKlhlfcbS0kDTixQi0Qj0bABIUbnYUj+q+1aeIgCAEbdgI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR01MB2509 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: SGGPYzUhKuJFL6DvYMX3r5Tbx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064575; bh=l01LICpZfxArFTDiqMttocEW/8XNUuZ14f/EVDHgIZ8=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=I5mhNMwSUzrY4gqGCRC2L24Z8fpFTktnYJG9xNsDBd0Cv+3Ix9IaqUZ8DaY3WbtpKXy ITysuLVIMUwBJuRt02cQdd3EbBxAHOwAvLgxuZ0LJpIO6riwY2HAV9f2rhXVV9GcGl/++ y6HZUkw8RlgzOgOGunJNJG018MS12S7+e6c= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064576680100002 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This corrects the high devmap of Root Complex (RC) that should be fetched from a high bifurcation. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.= c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c index 17f6112ea207..76d3f90aa833 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -94,7 +94,7 @@ BuildRootComplexData ( RootComplex =3D &mRootComplexList[RCIndex]; RootComplex->Active =3D ConfigFound ? RootComplexConfig.RCStatus[RCInd= ex] : TRUE; RootComplex->DevMapLow =3D ConfigFound ? RootComplexConfig.RCBifurcati= onLow[RCIndex] : 0; - RootComplex->DevMapHigh =3D ConfigFound ? RootComplexConfig.RCBifurcat= ionLow[RCIndex] : 0; + RootComplex->DevMapHigh =3D ConfigFound ? RootComplexConfig.RCBifurcat= ionHigh[RCIndex] : 0; RootComplex->Socket =3D RCIndex / AC01_PCIE_MAX_RCS_PER_SOCKET; RootComplex->ID =3D RCIndex % AC01_PCIE_MAX_RCS_PER_SOCKET; RootComplex->CsrBase =3D mCsrBase[RCIndex]; --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102088): https://edk2.groups.io/g/devel/message/102088 Mute This Topic: https://groups.io/mt/97922248/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102089+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102089+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064580104483.3718588754158; Tue, 28 Mar 2023 21:36:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id amE1YY1788612xKUW9mJpf3P; Tue, 28 Mar 2023 21:36:19 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.112]) by mx.groups.io with SMTP id smtpd.web10.16861.1680064578866533910 for ; Tue, 28 Mar 2023 21:36:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S8+ssHl62QKmNMPhoxF1zfANxJ4zIEasxJkO6BQPcHJe04ZVIAyTbblo5K7/Hw8fVkK+QmhRR+p5ZQBhYoIC/5oGw/ls7SWuTzRd9zt3+hn/E4h7R31swsDizbdDQRdBlgap/GaPtGcEeGEalJ5wrzed177tbonQ9+5Ft1WD6wBG02E6O0l1D5aBskbZVrUnmBoQBzReg5apglqOySUK9eaUqyIwdLJa1FCp6tZMSlDi7gns7+NAkHJWEc7+nNzrX2FxOEjtiqHBNaXXtV31qe8glNfS9xptHWsCTxSbNStL5+xOrW4raicnewiZ3V45q5AHmtBYXL/foJVBCv99NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=r93vLC3e0QTgCZq84q2Q20bm+Xl1S3sKmQN9c7RNC3U=; b=ejzha3W+dhFVJ4QYl5dV3mAgYfSsZb422hGWXZSXPGIb0NuhexbBe9viN9cQB8s2JsHW/Fv18NR94Pk7Orn2qkrgD0uChsezOQUOPrU46Eb/U0Ddfd39C1GXVDRA11mQ/2tFKh9G8YmXh03WsdbprtghsbAXAwDrXsCvTQtzh1WiPqALc8eO1oFYzkk3iIw1Sba7Wak4DjjC6AlT9ik9FWr1lMc6yAT+ursDrPLQE5cY1VxwDLfrkUyT4IY1CbSJappLOs4/H1diX+B501zji+wCZ86/m9beY57yiaB7oISDdmgxrcr7dEXz9ToSjwgeKmLjxY7RkQ6BdKy0Q6fHGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:14 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:14 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 2/9] AmpereAltraPkg: Correct PCIe memory attribute Date: Wed, 29 Mar 2023 11:32:39 +0700 Message-ID: <20230329043246.495600-3-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b7af109-f21c-4b43-0319-08db300f20f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: XfCnQilOxGtRLsGT/dM4Cs1wCIFuG5SBYRr0vq/qgu93xzllycl1L47xaQSJql7V/FFdog3pvQdedZtfzkxmWElCEhLae7uyiN8dzq74SxQ7E+g1PiVf0Mr1ZXfdi72wGJ4ZbOX3dS3ZiStmz8hAXTWO9IX8m80K/+CEc0bBumpoo1fRi3ltS2reoGFsgXLJtNs9TCfeKgnCU9cPn1bZzagrCUJVBrWUI3ANaDW/M6u6YoBwp+IXSWYCuWOo6dZEpVZJVCJzOsdxg0MLPTOTXUf7X3QnUIhUwYCVgCBYNrMFULwKjfM06eKCWNQ7fTBfBYpN9pZvik1lCDnHH1ScWUVhQnDctg7SgMmZjv7pil//i7oKT0TjtOR8teyzUGCvJCt+OyxnMqbI6iAuFP2bBV/ZgC/x9rSYbLu4uV9dvAW1V7dWfBcKkc4SOPllSIim5Rzf1WjFx9Ox+tyd9Qsm/mtCoyR7S3MQHt9tAt3a0VPndAfOzypnbuUiQJlKDYDrXgEoEl7Z/khc3WmE5/UhQ/t4zd4TA/FGNQKSnZsjebqP+J9l1FvaIXF+jxQ9vMZM99j05HSMs9k8NY6xh5TGIrv3Wrp0K2Rcj5AaB9BHuie5T0KamFCUhc+BgnV+F10q X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jcY+U5paZMwm7JBEcNnCFViCKknujTtG1qz/BQPEDgm/tyyhCPr8ZMCkmbNk?= =?us-ascii?Q?M6vty8nK5uyAicvPmV6XkkYpKBvILcCJ86a8353oKGlrLnP7bzjIjX2akv4g?= =?us-ascii?Q?FKdnN7yKwJ04s2D1Yx/RKeT0XTdz7GNRXtuZufNQ0S0aG7G9p15DmQMLthgc?= =?us-ascii?Q?z5a1rXvnk5oEv+jmoIWO/DMWE4qhmOvzDsZZVLJ+DCKXwDqg/s13MhR4cg8a?= =?us-ascii?Q?0HA37rNwlxC2z20q4l+76aWVM55uFq3I52l3675jxj+xPppNW0kLb52QjYKH?= =?us-ascii?Q?abCka4oM4bym5NXG/bpjmISa56tCKT0fqAABSuDNl8v9zyvpz9JNI5Sob6e6?= =?us-ascii?Q?TVS0TmyWD24FOzORXo0bfamYVbHequkuiE8yBThhLCjm2xu/Cdk/dCTeNKb3?= =?us-ascii?Q?q5uBl34GYEEhs1vnYTbYbwFFL7WBkJrbi8Z93ZhRIMBufMhxV3c42JJv9LDs?= =?us-ascii?Q?9g6/PKkn49iWBzBqMlZqEB+iuGU9gH+n9bjRVwAE2xZLzfWFX1+W27Iz4LEy?= =?us-ascii?Q?qJnqMZzq8B/VMlY6GyIFJ3WOiVgjiZAvh8CAB9tcutQ9AG48TVl7GQmlfsY6?= =?us-ascii?Q?3Uzko/bS7Vl82kqsBcqpUSOtAc977hDPPVgFGWgpL0apOoJzfQZQXGySumkl?= =?us-ascii?Q?lX3mAt0XCg0Q90NrLiyCHOQ7kQBMsRbp/kxjjVtYeRHJp5z+Wp0dywqHIudp?= =?us-ascii?Q?zzVFtpoYKi5gq8IRU5Idcdwe/YL1VlV+l6K/fHDGQ9vFzCBA0idH+SqEUESR?= =?us-ascii?Q?s3XBW5Q40S7IsVpidlr9b5/5PdVHjY6yYDksmPKU1J2MFabt+D4rB2FgWmHq?= =?us-ascii?Q?uUsh/Xqha8ndLgoba+OkUem8BxHiQyGBrlM8U5W/35OyDS7kWGK4WwfiApkE?= =?us-ascii?Q?JvTZBFzM1/tVO3ufUFvxxYvPmGdH21GnfUZl/W1dmM3fKI21TU3dHGvdB9mV?= =?us-ascii?Q?47EREyLWmABkeLlxwWAMEew31g6BNeC9XLEYhtLDOHrUx1bEY9Vh+jEoOTy6?= =?us-ascii?Q?V2dAF3JpgTNa987uJdIMVh1jW0dQnZl8b3xAZpdss5YN64yBk5m0+DXgF+vG?= =?us-ascii?Q?mrSMSQypTaMhUbovWj3xH9QNMUMoj/CoXHKCzc2iXvkhwZ3xny24IKUgPPWz?= =?us-ascii?Q?snaxSxxi/obYqxHq7QxXiZbTyg3ge5F8gqFcdtXDAVrHdKKNCFEEkIEwxawa?= =?us-ascii?Q?na7WKbIWRE2Ta+Jltm71kfi/eLJV+b0K2xawknQivCRgDW0B6fxED+DiWmW4?= =?us-ascii?Q?cdRM2nSnNR1R+KXxDAR4U6ieDNSQsp89LYqRn95V0OK5LoQXp3hvTqM6kL8H?= =?us-ascii?Q?7qklRAamkWYBcLyFORaAsjgei79rWU8zahn0+17mUH3WrZwFW7G5HRv3Tpv2?= =?us-ascii?Q?yrvhHnNZJBj2WWNlGNF+F46K4ScrDz/ttVKU/+h1R/9CE5i2y7LikJQiMCue?= =?us-ascii?Q?IgFzqDraeb2Tufcugxtl3WP+3M2AcUHS+/6x+hXZuKzCIlQsd+aU3+1L0Nxs?= =?us-ascii?Q?LXSVWPK/qY5zFMnujudAPKooboeLnLdJs1yzfAnkIUyKBJo2soI8Kixb9lGf?= =?us-ascii?Q?AC/DunoLGlukMti/7018kWIQjIzGNFZ96JInpgkj9ViO+ijzA85WkwEWhsAQ?= =?us-ascii?Q?FIzX0tt3Vv16VStscKLn3u0=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b7af109-f21c-4b43-0319-08db300f20f4 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:14.2040 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HBzBjC1UuJcpboeERSe5YPJQEj5QkguefcQPbmvrzp7usPooPzUnAiVm9AJLaKLqXxqfutBGfEHmpiAr5HTywHZkpxeHBJ3nkh1xHrA2onc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: tMiHuscGGjf5IWhNiJmseBaxx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064579; bh=Bd3BQs2RT2uV0z9yNNHvDiPrjWAw1RltMx3sJoyurG0=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=EeKZtf2SVxy52AOotqGQVhPtXgXUUsIDnhCIc+bD0Smd5ymcb+axkKZqdu3r2CGadLT tHY2I9rbcWowCZEA5iKj8kQOaiG1m9NYBWl3n/GfEKmWPkaq09XqFdgUc3HULSUNJwnBH /hXvvSPiuZTcFhRjXgK8S1UvZBku8mwMLnE= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064580608100001 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This fixes the memory attribute of the first RC Type B (RCB0). Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silico= n/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h index d45688f88401..0db3bfb62018 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h +++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h @@ -292,7 +292,7 @@ // // DSDT RCB0 PCIe MMIO32 Attribute // -#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x00000000010= 00000, 0x000000000FFFFFFF, 0x0000000000000000, 0x000000000F000000 +#define AC01_PCIE_RCB0_QMEM_LIST 0x0000000000000000, 0x00000000080= 00000, 0x000000000FFFFFFF, 0x0000000000000000, 0x0000000008000000 =20 // // DSDT RCB1 PCIe MMIO32 Attribute --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102089): https://edk2.groups.io/g/devel/message/102089 Mute This Topic: https://groups.io/mt/97922249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102090+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102090+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064580470638.4920802225911; Tue, 28 Mar 2023 21:36:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id i4gsYY1788612xpKPoYDHuyC; Tue, 28 Mar 2023 21:36:20 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.112]) by mx.groups.io with SMTP id smtpd.web10.16861.1680064578866533910 for ; Tue, 28 Mar 2023 21:36:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CAc7H8yK6l65IwhdcANbicii69tEE5eSBzNAGv4vW2i3e2tYPm9Cui3Soip994bG7n7QGFP0xr2rYtI9bkuj6FErzuQKWkeWJRY5GAK8jddYTGr1oIaqRiDF0HZ5YwMsdew7PiA1OwYmVmgcyqQD0tK5D/nw2tkjMV2E5af3EDy/n35/U6b3NI13mBOd02y7L1FyfsQZufdPT9KgenTOy7nIx6nrvODS7FINe71v4RAV0DnpbVIN3Zo6RBZfNc+MpCgwq6z2z40NVvc8UYkp4SismUr2q4ZtMQabmHPLaObKHv2Rb6sBeOxZ+jj+eCDyUaK+oF/OxR9rpkbolRKPCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N1TCNQYkNRDIrm/Pz63FUYecwXqPW518+jovhx+eGKc=; b=N0EYH0mu2/j8xDTznYDyMOziaaokI22KJ1ajgxiMqyTgrwRKnD1M0ATaP318JgkGlmGJpqI3qvOwNfHtaLSVDYX5iM5hVqf+91OQ9Z07IOIMU43xKiKEP5iwUZyRjDxn4yFu3ASb+9eYWzAdEh/sScpbLV2BtPIViy/xcHWJVmnUM0RNJPAPF/LOWcRdiF5CzZMyVRac1nVPonJIzydxa1s2RRsCX7phmhGQvSYd9l+OYbI1DHNWHtoF9O3YhCBrjkMAg5F6wf9lAcDecnNe2MFoRq2cN9uXmDdPdBCkICIs5jN4qgXJQvVw4oxszDn51K+ksACozdfJdyuelMz/7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:16 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:16 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 3/9] JadePkg: PCIe: Add delay after releasing PERST Date: Wed, 29 Mar 2023 11:32:40 +0700 Message-ID: <20230329043246.495600-4-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e8a5648-61af-4271-e388-08db300f223c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: oS1EBJI/mtSamV5WWx/oanOyccgniPqBUJ+Hpx/WqPgCK/9z6qIJLmIYVpBIvxx4OKjrprNWBQoL9/9YV7ZyBfsvVMM2R4KJXi7yQ58wnTi5MMAu2aiDR9rGsF9vHM8gNvAXlDssVe6rJAVuQKY99sNTDz4PwBfv3a1xLTjo51di3Zv3S4UJ2EKJnxXwYz8rcLPYK1owDLC9ZyyZUfJgpG0mo+84HlnxXdEAzrkhGMa1JyA1QFIzP3EcnzaYwc4Dex4+x2Lc+cTW3Utr84qqz9DgsnDB8KaPElWuyu8xefkY5vksUexDjXkAiyrDu/gOBglRWx3dgbphSOaHyWj2ChYrnvmM95Ijd1MTJHGuTD+6qn4ruS9ZOdr5F7Mw5Qer1uKzvUqNn2HOmjgrBmDlsSlZxYLT1rRYa1EofbtxQOhxeL/9UW6t5MyOU75ciWbH2q+PoII8hQUa5sTLEQxFGIAuh8SITp1FbTv66vGfh07HnvrD2hymvDh2jz0qvyqy2l/Qf9m8GT+rBuhce9ghaOd10BfPrjE1YchxRhwD+6dXyWTT3iqECFNI7WN+TsFSh/AHY4cvffIKUCo092ydEIxRGhMBq5Xtut2FFCye2fE791KLxoix1QYMxX0DJIU7 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PaKZEcJNJCPGcohLEG+RfTTCSEFaiuEO7uoYnYhrbA1DEo8xAfAf9el5WnIy?= =?us-ascii?Q?jWPQDZQ1lpAHEAYX/aKEMZWdWVlgzOQaEWuldOmNTjHQpEViTHRSTkqEqZ6r?= =?us-ascii?Q?HazCvd/eo2VefVjO2CbyERzxgqiCURClOGy/fcnti6wifNvLbTnc9ofRXFBQ?= =?us-ascii?Q?V0mIqT/hnTDaqefEF15Bt3sOB3tQLD5A1ss/OEyHZjoD7O5VnZ9n2yb481A+?= =?us-ascii?Q?uQqgatS+EidxIAoxEaMavO5KrPiZGVxdrfNlOtRlrTe6Y+8gW6sa4NatT8LV?= =?us-ascii?Q?ytnQPV0ZINAehbSSLSJqfJtaIp7Ew/ofKSXhpPikhmmsEPyC5KcWrgna68B6?= =?us-ascii?Q?K6FCoOp3KFBLXS3Ds5D8XWvuVdjforDQNWZ+eM241nxuavSfkWCk3/0Ujl6o?= =?us-ascii?Q?TtNrRmjHztDfXDWtd3/W5NHHhxVB9xaGyNw2nso++vB6sFYPE3c1tQvNGWLN?= =?us-ascii?Q?M+gjxYJzsEm1SryD449BeeMH94w+hqiNRoFhPG3Arhd1mFWqnvVHn5BgX3yL?= =?us-ascii?Q?K+kziEkRDuSX2W4ZBUsrUmExPeg6wSAR88ux585k/+7ogPKi/xtOImb/QBZQ?= =?us-ascii?Q?wpyTJVwRvwYJKS6anYyK4U6V/KuBbYnOsTtov69rluFFcU7oM5qrBBqxNOsH?= =?us-ascii?Q?nZKJKmV92PDBDaBt38LdcLLFD0mEmZbjMZjxbEu0QVvpceL12I26xavRB6Ao?= =?us-ascii?Q?52e3iVejpcJR0+OzycH+2yDOUoo29Rng2ygNob4hC9vugJZnypQ5Q91sVA/7?= =?us-ascii?Q?mOXf8HllzfY8h4IYc9sDXTIXKi4aZUvCEJnl3mk2cregyzylTMQalAFueQg6?= =?us-ascii?Q?o9A72rQuQlY06kw2aUedyXkGwriwTUhxauzsGnY4VTOEZRxAfdkdSHmuXDlt?= =?us-ascii?Q?YjZXchZEoE1w5x6b2sCsdbbc6l96ov5tEbFssXLng87W622pZdqvkj7/PRyi?= =?us-ascii?Q?hPNN+sCXEl0uFlKjVou5gJSWU+B9IBOnUgEkJtHhX+nqHfWochm4AZuOZ/Lp?= =?us-ascii?Q?uxZzzEsYvhXVgxUUJWS0LmSTBtpvnFtPJ93MuI63OVHK/PGeCE82ye5PV5wd?= =?us-ascii?Q?pgkAUY1Bk1maZbnCsm4HgznkV7Vl4IH68xhYhUSuVb63XoIl6h9MmnBgvjuR?= =?us-ascii?Q?+NZiaoHO95IQjp2mxCPRpPPlMJvgEEozME2/EfvEQoSAag6WrM6KsA8+mFCW?= =?us-ascii?Q?hEJjATBK3JXq6NPuC81fubOEG15pGN+Ek4VvF41ghFK4F8qJ8sXjcDdWbcKl?= =?us-ascii?Q?DAl5TQKGbMTJo+b80BZdebOJ9y8BCRCprw1jQvJvXBFZSKRchqlu41B6xQTj?= =?us-ascii?Q?ssdUyYZr3Nstu1NFGKd2vnfle3W2Oyjm82/JzI+plnJfGTmMtbo113+UX2Ni?= =?us-ascii?Q?l4BlIZ9Zdu/QGiGmL8GFoNa5zy+UyW/LFzpdwKVsi67ruHEwgDzUwYODcmMO?= =?us-ascii?Q?HCngBG6GH5VtPxZW/DBvqLfexnAq97Xk9tUT/x7894EWdm5uNzgo2zspNNz4?= =?us-ascii?Q?8xS5TPDwi+WorquX3/tHf3RJjlIkUL1C+3meiHd2fSFBxXEaDU1Cdt5UPMSo?= =?us-ascii?Q?fD0A4iKlKsibbMxr0jLF8hWFPGz2GkhLj4Pyfmwrg9XlDdjGLSTgcdRBOQ8C?= =?us-ascii?Q?GBsmlg06Ee/MQcUrBJwxpVU=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e8a5648-61af-4271-e388-08db300f223c X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:16.3356 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QfuejTFXoWkhT6fa7GvBEIhdl+uBPzkAPGJoamWRLtcO5HhBGDcz82yFLevZJeJysWL+Yf4QRr22zY19XR8noqyJTekQqlUH1+PeU5BZUyE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: sJ3jxS09np1y4VajI77WmkJrx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064580; bh=oyzxABoeFHZx4gEUSlKwey7IM0LNxus2mmJZ/M2Y02M=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=CKAdlfysvJnofqg4GEkoCpLeETHWYttlrpbpOr5Us8CHAD7DSQAh6FchyegQpZc5+HS 038R1X0FougQGptT/+LyTPdQ6+yN2IQLDMncCjXFymC0F3e6ifCw538h4F00LyYFjIZB0 avsJ2ZMYB1qzCQ2LhCDD+nonl+4iXy5srZ0= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064582595100005 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen According to PCIe specification, following exit from a Conventional Reset, some devices may require additional time before they are able to respond to Requests they receive, so this patch adds a delay after releasing the PERST signal. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/= Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c index f49764097219..5041eb726288 100644 --- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c +++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c @@ -2,7 +2,7 @@ Pcie board specific driver to handle asserting PERST signal to Endpoint card. PERST asserting is via group of GPIO pins to CPLD as Platform Spec= ification. =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -20,6 +20,8 @@ #define RCB_MAX_PERST_GROUPVAL 46 #define DEFAULT_SEGMENT_NUMBER 0x0F =20 +#define PCIE_PERST_DELAY (100 * 1000) // 100ms + VOID BoardPcieReleaseAllPerst ( IN UINT8 SocketId @@ -32,6 +34,8 @@ BoardPcieReleaseAllPerst ( for (GpioIndex =3D 0; GpioIndex < 6; GpioIndex++) { GpioModeConfig (GpioPin + GpioIndex, GpioConfigOutHigh); } + + MicroSecondDelay (PCIE_PERST_DELAY); } =20 /** @@ -81,7 +85,7 @@ BoardPcieAssertPerst ( } =20 // Keep reset as low as 100 ms as specification - MicroSecondDelay (100 * 1000); + MicroSecondDelay (PCIE_PERST_DELAY); } else { BoardPcieReleaseAllPerst (RootComplex->Socket); } --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102090): https://edk2.groups.io/g/devel/message/102090 Mute This Topic: https://groups.io/mt/97922250/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102091+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102091+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064583357712.4762817363662; Tue, 28 Mar 2023 21:36:23 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id U9zkYY1788612xQfnAZVpNEZ; Tue, 28 Mar 2023 21:36:23 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.133]) by mx.groups.io with SMTP id smtpd.web10.16862.1680064582195773388 for ; Tue, 28 Mar 2023 21:36:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aCknc+g9a9iVPbeCBDeNsn0HULA4t+3JuSjGCo7ohJIGjm90Q9ZCrACM80H4Eir4BU9El3wZhtlxOc7wy+shm/iDZISD0SkU/A+HclX/m/Jtk1DqyolazTL2Al5Os56ita/RGs+fmMHCbPcq3ZE77BrerKERBut+wFp3hAXFTgWRa+yC4Bd/z3N2XcS8NaZRTbNFjvapQf2BvPPN6+md40KHZk7gU8NlYpZD9x60NVOvbRMWTfXbuICTWt7IXEiBvBztuwHMQD796ujFekOfXSzY6AFt/69ViRRrdr3R0LB0ZLn0nZKbc3qiwis404GJKwV9pJGzsDxk1Wj4UzGweg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GM/IbUkPNnVlTzn26GB7C90+N2EoIGRuzH6SiAuyP0U=; b=jKLg9WryLS77Ln/znuImgSSEH8ELtHXHDQAt0x2FyYalYb26VlW7S5oCjjZyr+h56EuOsO2/+RQmjlninRla53F97iqR0alAoNw5vomAInkjmJdTk0iI/eXN9oBlwhETolu4Hi9z+iGU3DfqUsfDAm4MpuAJ61tFChDwuxz2wt9TW/8JCFS58Ln9QVHtVwMNRZKrAFjr1hoiU718RHCu9QKUnOSsWtaYEx8F1MsR82KsfH99vrrGapli+dwMqOVPIuqOONPvRVrB3Jb7ROQr2lEEo0uah0wbU3doALDtn41ifkk+3gGgKWhmZcx3bG9yteUixjxImKZyiTvhedLMbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:18 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:18 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 4/9] AmpereAltraPkg: Update Ampere specific platform PCIe core Date: Wed, 29 Mar 2023 11:32:41 +0700 Message-ID: <20230329043246.495600-5-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 796e8727-690c-4b2d-a515-08db300f2383 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: CtCXFOM6uZryU0Fd/OEYVCEIqLeHdxIzxjmV9OJt/nzHW//alLlvLMVbBLUqri5gZMbqivnB1BFElkTd52sKqRfLijb4YkKN1MK75xtta5Zp3xQ1FBgrRsVE2KhKvF5B2B+TQJkwUc7Qf6TC/+I72VodpLCL4ur0g37i3vCu23zpvAFt59ywcyFtDWTV5LYZ9HsIpzOdAk1Gn4n4f/HgM59f5VYJyhyIOfDnQ4m9qR5Sf9r6Pd9GU0J8gt3wtwE5HSKKdGeKFSPbGFd69n+0KHp0uNjJFCD99Vu+9JW+7gBcPivtI95ZJwGvk9JTN263tGCH4HnDeMwzMl7S6+wPIqzUZGovWSoC9QENn0Gh08qzm70QejagMxdCMMmqXfLlW7dg5R8sxoKhZnQS30LVQanh2o1S9Zrgfa3HzoXdzeZzaOR6LMK2KJya4QGU7UWQcsobKn5dDxT0FoDF073NeKfWLRloOOltU7U71/Cywy8mAjmVH1xTUmSw6lvIxqoSAVHeggzm6Tvxj0kP3ACr+8H9VP77Unxelc28oxw9O+9982Y9QC2YMRjHYUB5Pp+3E6Yh8m8J3BFX+CN4mKcbvQRUQqKeJ/JCqguVXBhM6DSLKfj1gbIdhUfvmQRWSdqX X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?W+OsYHahbslO/5TAul4a/6DVDTIZgF2PAXeWWOt5IT1ZqH+DYNhepIF+YsDR?= =?us-ascii?Q?1i2AdSZr3d2M3WnDypMKVHwPy/oMgWGlLAP8eWmE683uHFCIi6rU5HFTYV+u?= =?us-ascii?Q?9JtJs+3SyE9bJ2xm6v5u2VceUqAGfJWXpYZ2fK5YyuWlzbdr98a1xEZmp1bG?= =?us-ascii?Q?HNjJJrdFp81XkYcMmFLc3R/oh5Tlj1Rv0MBb6hIWtc/od5knn6T6A+Qqrxbl?= =?us-ascii?Q?pO6k8Y+0GwhDa4X6usXYlbjkiYQNyI7vtVveZnPh36lBm2opHaLv7oc7T5cy?= =?us-ascii?Q?daj9dns7Unn3oJ8pThr0uuzIh3j9iyheLzLXNBEKhktsx+d1l6OgdQct3Jp5?= =?us-ascii?Q?xKZq4Tpw4F8DU4q90QSdL7SRQRGTJNr28NnUAoLWWX3zo/aqt+bZogXF4J8Z?= =?us-ascii?Q?ZA+DWLE/dti5/71X1HJAjueEHchSrLI8BZ4ZzNJn8TZCcjZFCPnvusXsnFdf?= =?us-ascii?Q?1vmmdrSGBZranVwjnLog/RIIrTnTAl+6qwHwYnTylxU5DG7kfzOrmpxLqETn?= =?us-ascii?Q?rg4lueJ/sLJAnmYQUdz/0uJFlo3lC+2+p0Iwo7cY5hi+bt0N8li2l9xb4t1n?= =?us-ascii?Q?PeqFN/IOl4HXhrjJGm2gL0IItPWOSoROu5yBH3SJEFpMxEZO/UPYbiIJDJon?= =?us-ascii?Q?Lm9xIMwWABaHHd35CrDy/M2YpA+0dP9zOUQxmrrNMISju8lI0d8LHUapq0PG?= =?us-ascii?Q?Zt5tfATk8CLamUzz3BeRW2LuxTi15+5ldLgKcgshcwCxfXmY6CmU3TAVlbcT?= =?us-ascii?Q?NBfzEtQcfnjvX62az32Z/ATBO4WNM6+7xchgX+FB6wfOdi3SlK31yfeHltpH?= =?us-ascii?Q?35xftUXCW5pTwz/vms/hjZOGpDpsHHbSWDZk5dpkv9zKFMLlJLqLd0Fhm6Mx?= =?us-ascii?Q?BzOOKBXlIMypuGNrRAs4DevCmi9JWioSecJ5D4Abuk/DnH5LXCx2s92W3LEd?= =?us-ascii?Q?FAVTXk71EKQwavSpJ+QQm04TljO6yfow1kbDVAlyy+8g2OT5DDev7hgZ2upg?= =?us-ascii?Q?4B4/JroGWMYpNUumlR4IEuawcgcp9JXp/Tv0zpXrBL6wce+e6nptMfshTpjQ?= =?us-ascii?Q?YshyNQBEWk8O3Zepk+zfjbeLQArHu8absfMCzGEm0cl4vYVwnVPe9mJjLoUt?= =?us-ascii?Q?cKAvkiHehmR7pOU7UlP4SMUeb+FJFyJib1z35XV3h4n6HST0Qzm5ktYvjBrP?= =?us-ascii?Q?KyWuCqjLaQQKqj8jxHtaNOLNG6Prc9zcxfWmVu/la/A3G0/gECt0RhBlBEr6?= =?us-ascii?Q?PimVUkQBy/pAgFInpjTcA419FLsVajRL182cdPy+z30d/KX6LTjD8x6G/Zhv?= =?us-ascii?Q?H64jUvZNw/lMn7yVr9fyrKs3wxAK4kBNKTpEPdU4qOx0d06WCGMScVRniQdh?= =?us-ascii?Q?eHFurMU/IpFlVfmqKY7ijSvc1n+bB2niV+aGUMTrdRH7gkNwdh/2cXZky5vB?= =?us-ascii?Q?z0w+mKOPvCfsZihMerHU1l6SazzVVkJTF3WAarHDyiMGRvE2CR4l+jayiPhp?= =?us-ascii?Q?uqyggHxmK8ngYlXB2L/+jojLBvTKEaTX90q8oeHBo3RwbFA8wxTsMNOgHxKt?= =?us-ascii?Q?0+uej0V97ZmgYFu/ZIuZBgnJJNvcfhmaf3MPl+L0NiIqfDoIY5shlQCLkcOv?= =?us-ascii?Q?ZFjGcWnkmhy6jkNtPMLr7SE=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 796e8727-690c-4b2d-a515-08db300f2383 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:18.4974 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9pRp8cGMFRWubF7vayi8fbHXpkEtUPDZALpKKYOKUsjZVBm2OABmpQz7ZcQO9VeRfiAgESDPe8tGPW3iGDPXO/IyQIi0EJmLNZBSD24WH7E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: upb7texa4WyqhfMqgP8OtL7vx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064583; bh=oYVoCsWAUMtwkkqMMFabafmo/CVMoRkml25vigiKY8c=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=Mr7T7vLmUNKpLR39yYwtMpoFR9CmFNqCoqmlSzqUQACFYJ0QJz2s4OPMCQOcGnp+6Jb gl9kpbrAh6Ujwv5MZFWsiK1H/8IIivRi7wqJM3yjUzXMuxc/QnRmkJPhIYur3q7uzVW3n GSYZWnWr0M0aXR13pj+Wc0EjRYhh5sPNuX4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064584670100011 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This patch updates the following: - Check End Point configuration space is accessible or not before getting its capability. - Add new function to check PCIe card is present or not. - Set CRS (Configuration Request Retry Status) to follow PCIe specifications. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../Library/Ac01PcieLib/PcieCore.h | 8 +- .../Library/Ac01PcieLib/PcieCore.c | 150 ++++++++++++++---- 2 files changed, 128 insertions(+), 30 deletions(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h b= /Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h index 1db8a68b3df4..a18fff7dbb75 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.h @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -39,6 +39,7 @@ #define PIPE_CLOCK_TIMEOUT 20000 // 20,000 us #define LTSSM_TRANSITION_TIMEOUT 100000 // 100 ms in total #define EP_LINKUP_TIMEOUT (10 * 1000) // 10ms +#define EP_LINKUP_EXTRA_TIMEOUT (500 * 1000) // 500ms #define LINK_WAIT_INTERVAL_US 50 =20 #define PFA_MODE_ENABLE 0 @@ -80,6 +81,7 @@ #define AC01_PCIE_CORE_IRQ_ENABLE_REG 0x30 #define AC01_PCIE_CORE_IRQ_EVENT_STAT_REG 0x38 #define AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG 0x3C +#define AC01_PCIE_CORE_BUS_CONTROL_REG 0x40 #define AC01_PCIE_CORE_RESET_REG 0xC000 #define AC01_PCIE_CORE_CLOCK_REG 0xC004 #define AC01_PCIE_CORE_MEM_READY_REG 0xC104 @@ -87,6 +89,7 @@ =20 // AC01_PCIE_CORE_LINK_CTRL_REG #define LTSSMENB_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (= src)) & 0x1)) +#define LTSSMENB_GET(dst) ((dst) & (BIT0)) #define HOLD_LINK_TRAINING 0 #define START_LINK_TRAINING 1 #define DEVICETYPE_SET(dst, src) (((dst) & ~0xF0) | (((UINT32) = (src) << 4) & 0xF0)) @@ -120,6 +123,9 @@ // AC01_PCIE_CORE_BLOCK_EVENT_STAT_REG #define LINKUP_MASK 0x1 =20 +// AC01_PCIE_CORE_BUS_CONTROL_REG +#define BUS_CTL_CFG_UR_MASK 0x8 + // AC01_PCIE_CORE_RESET_REG #define DWC_PCIE_SET(dst, src) (((dst) & ~0x1) | (((UINT32) (src)) & 0x1= )) #define RESET_MASK 0x1 diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c b= /Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c index ad648b1b9efd..855b094f7948 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c +++ b/Silicon/Ampere/AmpereAltraPkg/Library/Ac01PcieLib/PcieCore.c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -10,8 +10,10 @@ =20 #include #include +#include #include #include +#include #include #include #include @@ -22,6 +24,25 @@ =20 #include "PcieCore.h" =20 +VOID +EnableDbiAccess ( + AC01_ROOT_COMPLEX *RootComplex, + UINT32 PcieIndex, + BOOLEAN EnableDbi + ); + +BOOLEAN +EndpointCfgReady ( + IN AC01_ROOT_COMPLEX *RootComplex, + IN UINT8 PcieIndex, + IN UINT32 Timeout + ); + +BOOLEAN +PcieLinkUpCheck ( + IN AC01_PCIE_CONTROLLER *Pcie + ); + /** Return the next extended capability base address =20 @@ -41,14 +62,38 @@ GetCapabilityBase ( { BOOLEAN IsExtCapability =3D FALSE; PHYSICAL_ADDRESS CfgBase; + PHYSICAL_ADDRESS Ret =3D 0; + PHYSICAL_ADDRESS RootComplexCfgBase; UINT32 CapabilityId; UINT32 NextCapabilityPtr; UINT32 Val; + UINT32 RestoreVal; =20 - if (IsRootComplex) { - CfgBase =3D RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].Dev= Num << DEV_SHIFT); - } else { + RootComplexCfgBase =3D RootComplex->MmcfgBase + (RootComplex->Pcie[PcieI= ndex].DevNum << DEV_SHIFT); + if (!IsRootComplex) { + // Allow programming to config space + EnableDbiAccess (RootComplex, PcieIndex, TRUE); + + Val =3D MmioRead32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_= SEC_BUS_PRI_BUS_REG); + RestoreVal =3D Val; + Val =3D SUB_BUS_SET (Val, DEFAULT_SUB_BUS); + Val =3D SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum); + Val =3D PRIM_BUS_SET (Val, 0x0); + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BU= S_REG, Val); CfgBase =3D RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].Dev= Num << BUS_SHIFT); + + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_TIMEOUT)) { + goto _CheckCapEnd; + } + } else { + CfgBase =3D RootComplexCfgBase; + } + + // Check if device provide capability + Val =3D MmioRead32 (CfgBase + PCI_COMMAND_OFFSET); + Val =3D GET_HIGH_16_BITS (Val); /* Status */ + if (!(Val & EFI_PCI_STATUS_CAPABILITY)) { + goto _CheckCapEnd; } =20 Val =3D MmioRead32 (CfgBase + TYPE1_CAP_PTR_REG); @@ -58,7 +103,8 @@ GetCapabilityBase ( while (1) { if ((NextCapabilityPtr & WORD_ALIGN_MASK) !=3D 0) { // Not alignment, just return - return 0; + Ret =3D 0; + goto _CheckCapEnd; } =20 Val =3D MmioRead32 (CfgBase + NextCapabilityPtr); @@ -69,7 +115,8 @@ GetCapabilityBase ( } =20 if (CapabilityId =3D=3D ExtCapabilityId) { - return (CfgBase + NextCapabilityPtr); + Ret =3D (CfgBase + NextCapabilityPtr); + goto _CheckCapEnd; } =20 if (NextCapabilityPtr < EXT_CAPABILITY_START_BASE) { @@ -84,9 +131,20 @@ GetCapabilityBase ( } =20 if ((NextCapabilityPtr =3D=3D 0) && IsExtCapability) { - return 0; + Ret =3D 0; + goto _CheckCapEnd; } } + +_CheckCapEnd: + if (!IsRootComplex) { + MmioWrite32 (RootComplexCfgBase + SEC_LAT_TIMER_SUB_BUS_SEC_BUS_PRI_BU= S_REG, RestoreVal); + + // Disable programming to config space + EnableDbiAccess (RootComplex, PcieIndex, FALSE); + } + + return Ret; } =20 /** @@ -677,6 +735,14 @@ Ac01PcieCoreSetupRC ( // Hold link training StartLinkTraining (RootComplex, PcieIndex, FALSE); =20 + // Clear BUSCTRL.CfgUrMask to set CRS (Configuration Request Retry Sta= tus) to 0xFFFF.FFFF + // rather than 0xFFFF.0001 as per PCIe specification requirement. Othe= rwise, this causes + // device drivers respond incorrectly on timeout due to long device op= erations. + TargetAddress =3D CsrBase + AC01_PCIE_CORE_BUS_CONTROL_REG; + Val =3D MmioRead32 (TargetAddress); + Val &=3D ~BUS_CTL_CFG_UR_MASK; + MmioWrite32 (TargetAddress, Val); + if (!EnableAxiPipeClock (RootComplex, PcieIndex)) { DEBUG ((DEBUG_ERROR, "- Pcie[%d] - PIPE clock is not stable\n", Pcie= Index)); return RETURN_DEVICE_ERROR; @@ -1067,21 +1133,20 @@ Ac01PFACommand ( return Ret; } =20 -UINT32 +BOOLEAN EndpointCfgReady ( - IN AC01_ROOT_COMPLEX *RootComplex, - IN UINT8 PcieIndex + IN AC01_ROOT_COMPLEX *RootComplex, + IN UINT8 PcieIndex, + IN UINT32 TimeOut ) { PHYSICAL_ADDRESS CfgBase; - UINT32 TimeOut; UINT32 Val; =20 CfgBase =3D RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].DevNu= m << BUS_SHIFT); =20 // Loop read CfgBase value until got valid value or - // reach to timeout EP_LINKUP_TIMEOUT (or more depend on card) - TimeOut =3D EP_LINKUP_TIMEOUT; + // reach to Timeout (or more depend on card) do { Val =3D MmioRead32 (CfgBase); if (Val !=3D 0xFFFF0001 && Val !=3D 0xFFFFFFFF) { @@ -1112,6 +1177,7 @@ Ac01PcieCoreGetEndpointInfo ( ) { PHYSICAL_ADDRESS CfgBase; + PHYSICAL_ADDRESS EpCfgAddr; PHYSICAL_ADDRESS PcieCapBase; PHYSICAL_ADDRESS SecLatTimerAddr; PHYSICAL_ADDRESS TargetAddress; @@ -1133,8 +1199,23 @@ Ac01PcieCoreGetEndpointInfo ( Val =3D SEC_BUS_SET (Val, RootComplex->Pcie[PcieIndex].DevNum); Val =3D PRIM_BUS_SET (Val, DEFAULT_PRIM_BUS); MmioWrite32 (SecLatTimerAddr, Val); + EpCfgAddr =3D RootComplex->MmcfgBase + (RootComplex->Pcie[PcieIndex].Dev= Num << BUS_SHIFT); =20 - if (EndpointCfgReady (RootComplex, PcieIndex)) { + if (!EndpointCfgReady (RootComplex, PcieIndex, EP_LINKUP_EXTRA_TIMEOUT))= { + goto Exit; + } + + Val =3D MmioRead32 (EpCfgAddr); + // Check whether EP config space is accessible or not + if (Val =3D=3D 0xFFFFFFFF) { + *EpMaxWidth =3D 0; // Invalid Width + *EpMaxGen =3D 0; // Invalid Speed + DEBUG ((DEBUG_ERROR, "PCIE%d.%d Cannot access EP config space!\n", Roo= tComplex->ID, PcieIndex)); + } else if (Val =3D=3D 0xFFFF0001) { + *EpMaxWidth =3D 0; // Invalid Width + *EpMaxGen =3D 0; // Invalid Speed + DEBUG ((DEBUG_ERROR, "PCIE%d.%d EP config space still not ready to acc= ess, need poll more time!!!\n", RootComplex->ID, PcieIndex)); + } else { PcieCapBase =3D GetCapabilityBase (RootComplex, PcieIndex, FALSE, PCIE= _CAPABILITY_ID); if (PcieCapBase =3D=3D 0) { DEBUG (( @@ -1164,6 +1245,7 @@ Ac01PcieCoreGetEndpointInfo ( } } =20 +Exit: // Restore value in order to not affect enumeration process MmioWrite32 (SecLatTimerAddr, RestoreVal); =20 @@ -1280,6 +1362,30 @@ Ac01PcieCoreQoSLinkCheckRecovery ( return LINK_CHECK_SUCCESS; } =20 +BOOLEAN +Ac01PcieCoreCheckCardPresent ( + IN AC01_PCIE_CONTROLLER *PcieController + ) +{ + EFI_PHYSICAL_ADDRESS TargetAddress; + UINT32 ControlValue; + + ControlValue =3D 0; + + TargetAddress =3D PcieController->CsrBase; + + ControlValue =3D MmioRead32 (TargetAddress + AC01_PCIE_CORE_LINK_CTRL_RE= G); + + if (0 =3D=3D LTSSMENB_GET (ControlValue)) { + // + // LTSSMENB is clear to 0x00 by Hardware -> link partner is connected. + // + return TRUE; + } + + return FALSE; +} + VOID Ac01PcieCoreUpdateLink ( IN AC01_ROOT_COMPLEX *RootComplex, @@ -1314,30 +1420,16 @@ Ac01PcieCoreUpdateLink ( Pcie->LinkUp =3D TRUE; Val =3D MmioRead32 (CfgBase + PCIE_CAPABILITY_BASE + LINK_CONTROL_= LINK_STATUS_REG); =20 - DEBUG (( - DEBUG_INFO, - "%a Socket%d RootComplex%d RP%d NEGO_LINK_WIDTH: 0x%x LINK_SPEED= : 0x%x\n", - __FUNCTION__, - RootComplex->Socket, - RootComplex->ID, - PcieIndex, - CAP_NEGO_LINK_WIDTH_GET (Val), - CAP_LINK_SPEED_GET (Val) - )); - // Doing link checking and recovery if needed Ac01PcieCoreQoSLinkCheckRecovery (RootComplex, PcieIndex); =20 - // Link timeout after 32ms - SetLinkTimeout (RootComplex, PcieIndex, 32); - // Un-mask Completion Timeout DisableCompletionTimeOut (RootComplex, PcieIndex, FALSE); =20 } else { - *IsNextRoundNeeded =3D FALSE; FailedPciePtr[*FailedPcieCount] =3D PcieIndex; *FailedPcieCount +=3D 1; + *IsNextRoundNeeded =3D !(*IsNextRoundNeeded) ? Ac01PcieCoreCheckCa= rdPresent (Pcie) : TRUE; } } } --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102091): https://edk2.groups.io/g/devel/message/102091 Mute This Topic: https://groups.io/mt/97922251/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102092+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102092+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064583728897.0411406296438; Tue, 28 Mar 2023 21:36:23 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id pBeFYY1788612xuBuQJiumJE; Tue, 28 Mar 2023 21:36:23 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.133]) by mx.groups.io with SMTP id smtpd.web10.16862.1680064582195773388 for ; Tue, 28 Mar 2023 21:36:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HI0RorNS3YNDSJwRvw3PN9YgPBH+JvdjJmHnhzHdGMjwOtGSQUwV1PHtFpM4F5leKRepBdI0/37VnfCjP4FDZN6MLXF42AvU3VHR5PopGytpRt919jKaomvTMod6v8LTHCJnb3iW2hl1oNPxefrpierykxGPn6afIttbYiVQRqFsPj6LfokvwVFmoGZ7B17VGp/4hM+4AH/0xuph9MqJbl4ckCfuZxJL6gWHFWY2TKgovlWpAP/a9VMXeUyVLmBSDWhczDMqV0OgmigqXQAMS1QHYyDJv2nBSvxjsQLc/x6lnF6eT80mOIDE4DH6kOF1h+pd1K+jm0N4SCHenmb6Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=r4o6F9VLJcxuB7/BhXEBQWocF1V1fR9UptUITKJD7F8=; b=oelZjinN8PJTngEqTMB6WGE6pGiJXyEjBi9+8c6nEDEL6kko2gJTJTjsstCHupFSBRucaUx3Z28YJcy3oxj/GDJUnK5tnKKsxg/XiqQ0x9a1c+v/ah8Wav9CYTmfbvuA3JoiaTNbI8s9Jh0G2c6Gx14H0Z8Y4qBg7ts7JvA8kSKPiwUEKsIPgZmSFIyZxa9KSM9RSsTWCPtdUuJ81JO6H3stbXZYMN2/3CP3CrVkTi+3fcW2TGprPXDZKvwN65Rpo/XLtIIk8am9TNl/Ih0jTAeo/Ai8ym9J3gjw5PYPcnFVYoeFH01xRVAOLfoLfEiBGs7An8CMZg8HAOuT+fVwYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:20 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:20 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 5/9] AmpereAltraPkg: Update Ampere Core/Cluster profile Date: Wed, 29 Mar 2023 11:32:42 +0700 Message-ID: <20230329043246.495600-6-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 11f3702a-a3b3-4372-cc5b-08db300f24cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: m7OgHFisj54dS+2pCMEcX+wn4CR0Tj5PM4koIzlIxeYacGq+zuoFPDWBw2DzjrXo1LCNuCWjrrBIdno1FMcvB7LqIDcMLxToG1dsPaVzUHXhFZ2F1jyMG8TQKLXymwTfFk67r70bdMPf36C7p2w7xlUcxCHsZ5pQot32lBtr4PG4uSTCx0OsmWpwxKZvJwIVRLJrC0543GvQBsnI6fakbPCVmrn/8XmdQ1RR4MUS5FtuEU0QFoN/YoH5QSmHVvD8DFB53lCZzZKrY39ouVpwyl7DOvOTLBnmOMFdy0e2eZ4hEehvCsdTDzTroviRqumaRwIyH0peHD3Ms2vzL0qr5BY+TViY0qJn5eBJCczrM+ilHxpvXmGyF9BqT0SbNjqoFERw3+6x8eiGbiwZQUcYQLjKOXIYSR9gbzKDAHiS5Y1IEisZ+pB/mOVXJQyiUd9lyRU5U7xScUGmS7ch9TvF2vwgru9FcDkjbAXVBRK0f1Uh2dkB6ANEkWYBjimyYIO5C13h/Fx4sUNHAdwkFjVivyWcGygj1B3mUWdaGurjVcoGM/212+dU9fna+O2AxIyAq30v00fmXEXSnVl3B7UFFBvpb8PIAsc7G9QfoKybqNUZHySa29y1XG7PKT8nqCRa X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JpSdcp8yP3uMpUz/sCeDjQj2PMp3NkkJo5qNLBBpBF7xxHFFBdHRWYf9eC4u?= =?us-ascii?Q?7XDoIx+NisUe+EVyhXEWeXE3/x1Pk88/wx1MWf7qVe/KQNQ/fw//Doy69PYn?= =?us-ascii?Q?Pq6fORDxrG1apgjMxGuWApPhMew0ul4EsXbc3Tvga3k9BpTZ6Aw2apjilMLp?= =?us-ascii?Q?toeNSjinNU2rgP5c2Bpmn0+Stjw3cSH1bVhwNHwDQb1Y3s47Z5qeLII4AsIo?= =?us-ascii?Q?32MfUMCN6NP/+A+aP59TwUGjUt7dR6Bim+nSr06hZQe5m6RM37NrpTtEZJkU?= =?us-ascii?Q?PGm2AY3giY6j5sJkyCBa/E23MwGKMwf6NX17BOufo1FGv5hLoZ6OBbFw6kmJ?= =?us-ascii?Q?FdSSdcKT37ZWheJXDTloOSb/aakcdLpb0Ba4/cQ50XN8My0+DJbwpg3cJyhv?= =?us-ascii?Q?Hd4tLzRfVDVkRHxzmbW73tlMb5SKtOjDamrgr6VeVXPOOhlICIJUwk8CutYu?= =?us-ascii?Q?a3W2Qm3yIEWzg6EjeKqL4w2mFHtznSNQGlwFNCKRZ346cQeM6RnX91NgHqDw?= =?us-ascii?Q?vnnlR9vS6QgdnFA+jHu8j/LUdvDxfhb0IE/1B0d3WqZrFU+eTkZoxlAWdRPg?= =?us-ascii?Q?Po9L2MlQ0qhsYwbqiIK58lGOsDctUN8G+jai9SASTwADxeFdZBRVC1wbwhBY?= =?us-ascii?Q?SebB4OtgwFP4dJLrnvngxCSolWmyDdQLJ120gPmcSslxou6JBYWTvzmCZq7g?= =?us-ascii?Q?7Oqpf0O6x6U98jJPzfMj/U4gI9JWtWGxoPQOq9l+vB+5WnymSUcjrRD3qmVJ?= =?us-ascii?Q?rDbbDtyi+riKOk3iTozMPZeoZgjPZSHsniI7wpD3M9vb7cNchPgbN09V9ljn?= =?us-ascii?Q?0np6XNaxb7a/G2W92mCJhfE7pblXVw4UVOw2V7TctTDxUzcli1MJkr/WujFp?= =?us-ascii?Q?03iQi9MhiALsXXvtNSUo54U6OJIIOeqHDmKrHzEtkiF/xsb8YeUFSqwp3KDC?= =?us-ascii?Q?k0YKhwIpflr2i6k2IegKBV7xOM2XpOZAvt3gPyuTmLpU7bxHnM7PHADBnZov?= =?us-ascii?Q?jU8kV39pzG0oocMyCofE6KNaHfyLOVK2NKNCLQOrD/aUhcNRWeaBg2JdzumC?= =?us-ascii?Q?toprstmoXrnOkB3Gr4JGWo3CxwKEaoAth0v/ZOX+z+562MIbLKZTbrs5ZkMT?= =?us-ascii?Q?qaR9LiEgJc3dY4HSuu6uZVm4ECYPYZ6sZeDs9/lrqWHZz+c5wpnSPp5TFiqx?= =?us-ascii?Q?EhMkpaxU5jn9QXq7rAl5U+9lIAbSWZS8BpQGsm8o4f8qAD31YQe8f4bfUqz1?= =?us-ascii?Q?LSkk3IDJCwUw7gy+0lsiPK5jhNAq5C1fvrUGKWLV3iHddmHROaYYeDfFvY2C?= =?us-ascii?Q?5Nr0IpzByrWxIYh4wqtLolyBtNAUW5JdJLh+xAG1NU2ZOnRs4uOMtciCxA/7?= =?us-ascii?Q?v6ASMZxdb6yMqZqm78FxFIqVdHKOeoPkvjtrNsrDM3yPamqwXDel3W3b9z5j?= =?us-ascii?Q?OdmstN3IOVwujfvbQ7WudOH09EHOxGfW0iOgzQUY0TtW4TGphhDYkNGeQkQD?= =?us-ascii?Q?HFkeYRGh4v6MwUszLqDflPJs9ahwelWydip6hEDWWJs32TxUEj7XMoVgZnxv?= =?us-ascii?Q?1VA8emoazxcx4K9W9jy0QQ18fgqL5PzwZY/22o18EEAe/WHH1jOQkIupN5ZX?= =?us-ascii?Q?xRbSv47e1Y1soPF0hVqOVpw=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11f3702a-a3b3-4372-cc5b-08db300f24cc X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:20.6215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tZoHeshMc66Mc1zRkGRJA9CkNKpeKrG10AWV+j4micBDdYdJpQmNxwvjGGA7uD6zOsKIhwq01JDr+MjdAt0IzlxvKdoFmcW7Hvmtt2ZrmBU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: 09JKZMgeu2wnsXIjCxjK0bPgx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064583; bh=CbxW6HzZEYeYs17Lr9c2NXKy42J1eNz2j+N6adp6WHQ=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=EDRRzJAXPAGNGx1vzMBFihd6PDEp1z1BV+ErAgpa2TGnjcvhjHjjPsyNOE97BhKDboQ 82u1ApRRm30lMGNOXuPelAb78WQgGTodgmoPd+2xnFZ4SV3q17VP+geBcO4ejsxlMfOry XjVTUzoYtpAwv6F28RccFHnqOca1cIzUahg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064584641100010 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This updates the number of cores and clusters to add support for the Ampere Altra Max processor. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 6 +++--- Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc b/Silicon= /Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc index bf23edc50349..9275e0053af6 100644 --- a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc +++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc @@ -1,6 +1,6 @@ ## @file # -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -410,8 +410,8 @@ [PcdsFixedAtBuild.common] # # Ampere Altra Core-Cluster profile # - gArmPlatformTokenSpaceGuid.PcdCoreCount|80 - gArmPlatformTokenSpaceGuid.PcdClusterCount|40 + gArmPlatformTokenSpaceGuid.PcdCoreCount|128 + gArmPlatformTokenSpaceGuid.PcdClusterCount|64 =20 # # PL011 - Serial Terminal diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h b/Silico= n/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h index 0db3bfb62018..4bea14d7d2b6 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h +++ b/Silicon/Ampere/AmpereAltraPkg/Include/Platform/Ac01.h @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -29,6 +29,9 @@ // #define PLATFORM_CPU_MAX_NUM_CORES (PLATFORM_CPU_MAX_SOCKET * PLATF= ORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM) =20 +#define MAX_AMPERE_ALTRA_CORES 80 +#define MAX_AMPERE_ALTRA_MAX_CORES 128 + // // Maximum number of memory region // --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102092): https://edk2.groups.io/g/devel/message/102092 Mute This Topic: https://groups.io/mt/97922252/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102093+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102093+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064585812717.8032239233735; Tue, 28 Mar 2023 21:36:25 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 0h0SYY1788612xYuefc5u0yr; Tue, 28 Mar 2023 21:36:25 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.131]) by mx.groups.io with SMTP id smtpd.web10.16864.1680064584736974689 for ; Tue, 28 Mar 2023 21:36:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CWg4tChLmzWP5r44D1HQ6LrawoVfSfCGdSkmtVkKWHf+NFs0pBppbm4Mt9usRQt+SBedsWmBd47NRJ3fhFnhptfwweFSaqIzdHkUVrbxTn5TJESWBDuurva4CPzQXYuJJ/cU/Wp7+OL8K/lkqT5IGyXqAu6MDo9g2atZIqn+8wYJN6PHX+RaZAu6eIbDS21bI6SYG+qjMKgpzeVnW/tNrydzMPkSIdRhbvcl3jDqlxPq/59buNQcLKF513R1sZb+GRmTi6Ao42ULMz2jRjmtmYr3CJmUJZvz2USOMmAuBxaHlwNbRqtnpNsiErtVk4MUarCNYyZoxrUrcac4cWIWqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YCLzan1v2nHOtnS0QC74dNc/+8j+NVaBAgtDDomyz/c=; b=cOyiXn8SMSIQoOy2V6lLBU32IQPkaCvZIeOGaPSzb2gn3AiOqVQyS550v2JL2Q6NBOLcea8mdWyoaNBIDvuq+A25zvMvs2/0ObBCctTlPOj1lUqJlp7ZWAeKkZ5RFLXA8wsJG9sCzJ15tCSniTRdHT2KmZErQuHJwbApOOucP7AQA9Bk/U1XXopW3Lc/0wUE5pOV4NUEOz/boPtIBD9zRPZFFtw6CTUFh9ngPh8G7ohtLNFbPdacdV62S/SNqEStulzxcGmOeYVQMXTZH26ZEN517tgMu5TJaAe1/mC7seTmeeyU5y6jGWAzc8+GGuGsnO8Ga1I0irXU2IcVvKC5Uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:22 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:22 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 6/9] Ampere: PCIe: Add PHY preset NVParams for Ampere Altra Max Date: Wed, 29 Mar 2023 11:32:43 +0700 Message-ID: <20230329043246.495600-7-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 16b4f33e-6a4b-420d-941b-08db300f2613 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: hQaU8tMJTdqgS6R2bWjmuiHqQiiScYiZWmdHqhBfDVnldycbp80E3YuZdV3Bcl9eUqVf4pLD1cUj3bhjzc8K1py5gvKzk/v8/NkKsihmD05WeWGegbVPFoTO2/4bMGsxAmnYkEGCS3fJEBYLQkhwxnMKppNfpUb1ZqroxAFJ9q1F4R95H8mXpc2kIvg7+IjYtIiBVICQr3U92veN8UYypk457QUFZuI/JT6eRvDDuceWHu1OOZgG72mDpZ3YZc3di09RgFuhVQxkR9wmLrD3JewydQlgpWdNo/OQnKHtJhfgi7xPzxvXUFeGxe7pn+BM5+NRykrFs6ZhZB86tcOc4R2p6fLAErbG2n2/APB+wkIBs+1ypD014MSB1xy4XFuFNldiGiWtX9pYD5swPqNFQS6tJEz/h4McPhHzsNJAyEGabReFYxoGyavYfJ8MZejux5mW1GtbNpZrRcUWlEfHwMT/sU9MwjK+Ve2V8XWBvthAqiliga/b0rO0S++4CD/K3SFISCnRHIjXZ6cE7XWRWU+sXKl71vVSVJkGl2u+qXIbCm7n5IODiGBmKBd8cfA6vATqNO/yCrfezSa2WmVX8EnCmKBb5NieYTNGW6QMHSC6hwAR2009dab7mbVoyAhb X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RtRtqQkklRtoqWLVPYMufZLxmusZnUt0M17C35sox1jno1/yIMITBGqrXvv0?= =?us-ascii?Q?hjB5lYZB86ARJWhLN+igI4fm6+ZjJzaPH1Pr1yPeGTnWMFpkBQmqwvIxPOCa?= =?us-ascii?Q?s+9TnqOlbOW6ukfhnpZ+jYFUWKS1QKyizvk+KuB8HYMZKXapLbNXJsbXJcaC?= =?us-ascii?Q?sQClmf90F8stRyNBVSWuDAhRhvh0RBLIV1tqbY7xXt6U6pSGO4te3uQ5lSsK?= =?us-ascii?Q?OvHJnJUDlt1YbznCzaAkb0NL2dxZ5nSp1cS70Hebx2vj+3AH/ZdsxfBPHlKI?= =?us-ascii?Q?DDx/vrYc8zcb3qGKrIfKfdLLLPkvFaMQ3C53ifFyg+eKTo0WSTwc5W9kXeTu?= =?us-ascii?Q?+kNmmdVQKYe6MaG8oEgKMV6vjwt44jI21UTiXNYY+ht6pToZuKYPyqgu1DNr?= =?us-ascii?Q?LKMzm8Vf5Mj60uh6NAMhyR+FL41bZAVqUlxAri3aSTuvQUphMNSz/Wq8fs42?= =?us-ascii?Q?kyNoi2suwXpt1a5B2kEHxI6GF047LNG3LBuA5rHbqxMUmJPgNBZqweaTOBVS?= =?us-ascii?Q?EcwqEVr+lLInmYSlRA0WlbKo4d5nnNFMPD4BuMtxGe9DqbJAmfVotXo+cNJI?= =?us-ascii?Q?kCw0YXegBnzBR6kPb1gTGQxTU7YIecirA0to0aPuPVeIopGCJrdLh7c1cFUZ?= =?us-ascii?Q?Bak5BoLM+EpYuTExNMGmhnjWH9sIjVq1p4cSgnGHCCm1tJ8fGYGv+Y3MG47v?= =?us-ascii?Q?0780BQc38vHBl3hE8EJ2t3o2C6MuEZZDllowU4AGF9S8cArzCzIQuRRMkcfk?= =?us-ascii?Q?axQCNXxEDCt6V8NmIkrD7WQbiZhZ5Q3wty4tIjlBSyvHlUtAhcHRVdPOmM/g?= =?us-ascii?Q?fYZLBAtMmI0j54puM9g3RPD1Dbj7wDnFpnRVrDm0/g89i9qM1KhUDLiomexP?= =?us-ascii?Q?ytuNRaijWRosNsAyFEjSChPbXhcIaF8g2fqTVLd840p1pHQktg6tcj0NNBEm?= =?us-ascii?Q?UQA0IyRqkpVV7bPjOsb3IvPUhR6bx2tjypOy+3Enjeqsgi6UZKBRyKr3q+vR?= =?us-ascii?Q?bcgqmMXDFf/6g120Mx9SAEM1EOtrqTSTqwuceyBs2szdpI7L7v5CW5GgAsLf?= =?us-ascii?Q?4fU9R9G9dsPfkFMEp/YQTmx+/lh1X2vNsXFP83T3m/Y661WdsvVjPnnPNwyR?= =?us-ascii?Q?RD/D+SfiJy2XhpTEZ9sBtEXTE/lLgDByMU66Z0G59Ou3KVK69t16lP7nJrlI?= =?us-ascii?Q?aHqt8DO/QJ6sTdiabKeGCNEzTf2ZBRU2/NmJlOgwAdCBsj4YxTCswTLiO+E5?= =?us-ascii?Q?oO4QbZ0BCVjfU9Q/VwR9u+IZwUXV0mCQYDGEuS8rfYsZxelvTou4dtqeZdmy?= =?us-ascii?Q?A88qvBtqTBhmEeVY+9A5nulmv8DqVFfQeIAZuoJbMvgoWKLuTL50YnbBCUzO?= =?us-ascii?Q?1bsyJz1u6wqTykSr4fCsq3+1lkuvcsch2oGFM7Jlu79Fd2AiW8Idbd4d9X/z?= =?us-ascii?Q?uvhB1ru5o+Cr0BMwGj/oHGiTvEZGxR0e9AbjClamWfiVh2ZKERmj96ztNo7U?= =?us-ascii?Q?Zqqe8UNmznOTB0D8F7kOlSMuu+0ld9gtwjhAPgWatPlD0e2peb2PyfTHhYDC?= =?us-ascii?Q?HwYR32TwY/Rqsxv29qV38SzrpDyr6/RGbOCLrCh6Uqkq/sVqutZ1o/u+14Zq?= =?us-ascii?Q?hs9L7dRJpTpr+jeP2jAf7pI=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16b4f33e-6a4b-420d-941b-08db300f2613 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:22.7554 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NSGhUGjwkG4yyWxy6Yn9tK+DI3E0n7NXrR4sKBbr+9iUcLzIh6IxKaviEnr+4yRItJd34CIjzTRsUCB5w+AXqZyNcEpgl+nQ0EkCm7IYsF4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: vVt487ECUtGlQA24zeLSo3dpx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064585; bh=+uCb1p1f0gjcmGeNEtMnl1MsBrQNyChD+CgWpJjHSGc=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=pKWc0zzkMiLJ2SLLqM1RX1KvBSBm3D2LQNl6B4sVjYWOiMe8tD/dQwknVFK8ih0/HIj KRfGGu71iolcJBPbCTql8PJnCiIN+9KBNb8JjgQqhz7VUxxuBJ+cdu3M4egoJll7EtYR4 LZBi47wO5Ar2s1gPxEgLVPP6GnO1rqDojKc= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064586637100018 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This adds PHY preset NVParams definition for each Root complex to support Ampere Altra Max platform. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../AmpereAltraPkg/Include/NVParamDef.h | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h b/Silicon/A= mpere/AmpereAltraPkg/Include/NVParamDef.h index 3259fa1ea45c..4326fddfe977 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h +++ b/Silicon/Ampere/AmpereAltraPkg/Include/NVParamDef.h @@ -29,7 +29,7 @@ As each non-volatile parameter requires 8 bytes, there is a total of 8K parameters. =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -523,7 +523,39 @@ #define NV_SI_RO_BOARD_RAS_DDR_CE_TH1 ((205 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x000001F4 */ #define NV_SI_RO_BOARD_RAS_DDR_CE_TH2 ((206 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x00001388 */ #define NV_SI_RO_BOARD_RAS_DDR_CE_THC ((207 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x00000000 */ -#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_= RAS_DDR_CE_THC) +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_20GPRESET ((208 * 8) + NV_= BOARD_PARAM_START) +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_20GPRESET ((209 * 8) + NV_= BOARD_PARAM_START) +#define NV_SI_RO_BOARD_MQ_SX_RCA0_TXRX_25GPRESET ((210 * 8) + NV_= BOARD_PARAM_START) +#define NV_SI_RO_BOARD_MQ_SX_RCA1_TXRX_25GPRESET ((211 * 8) + NV_= BOARD_PARAM_START) +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET ((212 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G3PRESET ((213 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G3PRESET ((214 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G3PRESET ((215 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G3PRESET ((216 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G3PRESET ((217 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G3PRESET ((218 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G3PRESET ((219 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET ((220 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G3PRESET ((221 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G3PRESET ((222 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G3PRESET ((223 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G3PRESET ((224 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G3PRESET ((225 * 8) + NV_= BOARD_PARAM_START) /* Default: 0xFFFFFFFF */ +#define NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET ((226 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA1_TXRX_G4PRESET ((227 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA2_TXRX_G4PRESET ((228 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA3_TXRX_G4PRESET ((229 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA4_TXRX_G4PRESET ((230 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA5_TXRX_G4PRESET ((231 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA6_TXRX_G4PRESET ((232 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S0_RCA7_TXRX_G4PRESET ((233 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET ((234 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA3_TXRX_G4PRESET ((235 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA4_TXRX_G4PRESET ((236 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA5_TXRX_G4PRESET ((237 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA6_TXRX_G4PRESET ((238 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_SI_RO_BOARD_MQ_S1_RCA7_TXRX_G4PRESET ((239 * 8) + NV_= BOARD_PARAM_START) /* Default: 0x57575757 */ +#define NV_PMPRO_REGION4_LOAD_END (NV_SI_RO_BOARD_= MQ_S1_RCA7_TXRX_G4PRESET) // // NOTE: Add before NV_BOARD_PARAM_MAX and increase its value // --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102093): https://edk2.groups.io/g/devel/message/102093 Mute This Topic: https://groups.io/mt/97922253/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102094+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102094+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 168006458909450.588571296045075; Tue, 28 Mar 2023 21:36:29 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id tQmBYY1788612x0D4HtDkKrV; Tue, 28 Mar 2023 21:36:28 -0700 X-Received: from NAM04-BN8-obe.outbound.protection.outlook.com (NAM04-BN8-obe.outbound.protection.outlook.com [40.107.100.92]) by mx.groups.io with SMTP id smtpd.web11.16989.1680064588041302459 for ; Tue, 28 Mar 2023 21:36:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bIp7kSayJFWT9sffy/6Bp8HiKxBCri3zu00vERrB0Tbm5g8ebm9VdlU+vmpiid5dg9N5C2fosiHymml09FSZb+RYLeXIoEGpehQrm4EExJ6s6JWmhNaIzyBTqwtsvV97REiZHWlVFzDADoWo7Lq2uTFiWq7P2EgHy/5D3XEmISmcCIPW4mnKpumqD8Psmiuzoa9wpTWpw+wUxQS3z90TzX0EGQrXCGgyvC0RAMgs6rUOx4J/TFY4YJOA7QgsVqWny4KHYYN2sSywi0Q9fRMWpgbmUB+lw7/Dq/7TsO4JnG7PyC4iaM9kJUBPavt+GoIRWGAOL28DDQ6ZBubquiJ+lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=M+tyhVBh5w4a40dNrahG/1tJLgEis2UlziiY00wqe9c=; b=G/phaO9PhxZjiG6YoRIo1qoZWbHvHFQabV118M8ebL12Ri84syfbs4GencMY+OV8lfmyOr9vxtHZxgtre9L0yRHe+qWetPnf+XL4xjBdREMZaR7NpKHJDlqdjck7brkj1Q4dN5iV3GVGqm0JUxA11GDhd8L0QcfVseI4qv4T/M1tpMgkzZn/TAjr9uEI8qfr6GjzhVw/EImqro7BDcbnp42ev5zQRcZdknCBvELwrwBifVIHVM5T23ySN3lJvpXUjcB4zwEFrGwldddiIWCRHMwI0ZgQ1N6ph1yEa4jvrVgFCx+OkszCjmtu6lsfVbbH6Zxobhm7Kyeswyhffmn3sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:25 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:24 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 7/9] Ampere: PCIe: Add support for Ampere Altra Max Date: Wed, 29 Mar 2023 11:32:44 +0700 Message-ID: <20230329043246.495600-8-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 464d9c2b-237b-497d-aa9b-08db300f2757 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: FdfJ4A+YScsRxBYcB6Nm3kvpYxKq80Ain7zLbrDqKF6HUgHxVUzO0oyF5CNfeHcxJrofEr725IX+iHZ3fnDSzztI4ZfjUESDAZcduTE+NeOhgeEJT0zpixLWsMoJcJw+1P3kLly7bAkWiTcMTCtlvetnmjj2FxlfMPwek4pKah+MrIa+64A/Aukl8/lKh24hdeFauNlIfi+HdSWXm0sZ8fxu8viBS1m4+6OVgaH8zWfq0j64IafYX4JeOj7Gbde6DlFdGzrXtIdi5yPV2aapnf9dUYnCfp20NVjobgWt4iJYtpevnPY8ld+/niYzYr7bZ7VJnwjZ6bBX4GWkC1FimFd7nLGTMPO89YEiBn/uC8dD3fDD4WiZo9GPr9//nXkUtigTqGTHx2j3szBqFaRO3Qak6WIEoDxQAXO54sDSNpvC6RDxQYuJrCGRg9fBq6MGBVHC8sEgl9s4LVtD2aT+DwY/JtoqD798P4v3fsRkgrBKhWyudJb2KAT61HxV4nZ9e7rSUIxt0tPmfG3uWxGs+wZwuqnK+g1vbibmVs+Xz697Pxig7JZu2DNBIJmqk9UJg6cuToTcLhxxbVCZdMCJTeI582NuLKuqzI5qgcA6kfk0MUwHDqE0RcWuGgADr1Q6 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7vXFY3AIlKmJiJ4bTiPAhdm4TeaSInRBOzWZ/WFcGmUdaWwfhzJbUYc6qIih?= =?us-ascii?Q?rP2zDWOa5ZF4L3g0Z016yssrdhYmPmVSbMo7Xmpb4oROxdgEVqh1b4HWJWfa?= =?us-ascii?Q?clm5kHpbWKKUAveMaSkyduWwjSyZr58xXeOaNDcJXOmjdGxPJOhZdKfWWaZq?= =?us-ascii?Q?H2VZjI6hOyHHikLwi1vqVDO5s2JCW6YsDVfKDbiFpZblxzCLMC55hXpximSD?= =?us-ascii?Q?k/Pw/TiFBMN0KMZB/z/timv7jNqQCTb0sxFkhd5eLQ6vJQ7KJVPRB8L2lTOi?= =?us-ascii?Q?ZQdjdk6RaDMHPqBwAOAQj/p2g0A0qgiW/u8tusOCYn9Ti7kJmmi/FldGxSjq?= =?us-ascii?Q?WCEJwy3/4hnrOQ4c0QOktk2tJXKzz4pFjIxzwoqkUUV7AiI6GT6i3+mfQ/Tu?= =?us-ascii?Q?rA6oT6oUektqRAejoN1fuyxVUOyMfNVeuN2eyYfbslBJ7ZhHwF9pOJh0sJv2?= =?us-ascii?Q?Cr+ZfcmuLzGU1IC1r/w8Bjy1Oe7PDyveqn+j7rNcv4/gxgO3EnE3FxUM3YZz?= =?us-ascii?Q?sdTYn5vsJHXxFMrhu1dJJJvxx8/4QX9tNWScIWy7ktB9vDTIo3ejuSGYXWp7?= =?us-ascii?Q?ulwssInhwUo/ko6SxXEieOy1O2GWXq0MqHgNe4IFq0Sry1rVFIr7EQEO7lt2?= =?us-ascii?Q?8Z9GZR0n3ZfqzwIpiD40LxbB1rtvN1tpPc3Bzsk7DyyQqrTyiRfjP5rwHToo?= =?us-ascii?Q?W+dZEZaOjqNSDyLXbJlrInwpmvUgIY8cX5ZMrca2dVrcs6ho9kLYubTdNQB9?= =?us-ascii?Q?BEV9H6AJ1J48eGmfo0J1Lwt16mvDJQG7ikCHTMGQ3va0sxQrf/Ag3WkTDyOq?= =?us-ascii?Q?vkotjktsr1BJ+e+4eXahxXUXV0rrSJ8SAHRoBscbRfDL7VgcV2SdmttpicXm?= =?us-ascii?Q?bB7l1K9FRLo7KeUdDzsBnH3vaBUPm/lYd2TIqPdEZ8jBTFXyNwN+oqJyHuMX?= =?us-ascii?Q?nEcPea7KmYuxsszZOXagnYGUU1hoG2jh61bAMzaBeGIuNrScgAUQNzcZT+Rb?= =?us-ascii?Q?EbS/dQvvkQmOF5MlAF6YhHiQ4XF8XQnC3RZKub9r1InfVk+lvTqXZvleNXA8?= =?us-ascii?Q?yvoMjQ3u8szg6/OYg6xK3k7cvaSSB0ZIBuqWBCMcY6VrQY8MZXAKlAk+ySL0?= =?us-ascii?Q?O9x2Qy5Cm2zGIoEpvXMZwvMP/Gtm28OaqO494c0QYMjckTackLby5ThnfW+i?= =?us-ascii?Q?U3vmBQbnaUJTDMvz3mBQR58kKM9VreoWdEsr+UvUtsv4IXNMeDX/duuFXn+/?= =?us-ascii?Q?qSjkCImt5Vx2tC3eKXrjvGd1F36GqDdTOoTXez2Ghjg1TcszlZcEnzxLvjqY?= =?us-ascii?Q?EoTsUDsjIUXrs9VkrSLKyormpIkTWTjPS+fFXoyFKxytbbr1c8zJHdZiJkiC?= =?us-ascii?Q?ZfSggaCFkBVpZ7K5xRBJv7sCMcPfJec4JpZgAN94RjQYsGFG8H0OMQpe1bcV?= =?us-ascii?Q?HZk641gcY5tIMmrGyT4Q6oAyaHwaw2aZJiteksuP+ozxL4jLl2W1vHVnVSZ8?= =?us-ascii?Q?wpG+79XmwmQ4DDMthd9Hdk7CBpWRIfq+Csilik+o1QVyR1/0XNrK6c+5i/qI?= =?us-ascii?Q?JhRtd7YSdk/tXfGjNDtJIqLtium5C98TVqQIwhaDzEI4SU3W2EveC+HGVZrs?= =?us-ascii?Q?h7j+ib86se+L6x+gkP/sEMM=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 464d9c2b-237b-497d-aa9b-08db300f2757 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:24.8878 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6NGdb+6xV1QYdmqI7xd+fthvhkLO/Pj3Cu9I9+vxR9gAJ8Mg9jZCFQcYu/RX8EdsBjXwwTkySpj8i8LmwD+7IgOI3sS/Vu+4aqHydzWWSko= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: ktwWkYeIu2ncRAO6qfciQbSYx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064588; bh=eKT8ZnKgravPq9M3nB30yWyOs563N4+ZmDKZ74Zoino=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=Ks8AQrqpsnJPPm9OpJr1RErYM33xMssc+euYhglwZAHLCrlwz+VAFTnX/JbHf5MJqkb QgbJTdploD5MQbOcikioptIQV37ksPSGwU4dcfQBT2my06GogITM7b1SyOL5IdiuXE46g wepcLvNY3i1oru8hal7AZBjWkQWNIMFD8VQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064590690100002 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This updates the platform specific PCIe modules to add support for Ampere Altra Max processor which features 128 PCIe Gen4 lanes (distributed across eight x16 RCAs) using 32 controllers. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../Library/BoardPcieLib/BoardPcieLib.c | 75 +++- .../Drivers/PcieInitPei/PcieInitPei.c | 131 ++++--- .../Drivers/PcieInitPei/RootComplexNVParam.c | 344 +++++++++++------- 3 files changed, 364 insertions(+), 186 deletions(-) diff --git a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c b/= Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c index 5041eb726288..bb69587db54f 100644 --- a/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c +++ b/Platform/Ampere/JadePkg/Library/BoardPcieLib/BoardPcieLib.c @@ -38,6 +38,54 @@ BoardPcieReleaseAllPerst ( MicroSecondDelay (PCIE_PERST_DELAY); } =20 +EFI_STATUS +GetGpioGroup ( + IN UINT8 RootComplexId, + IN UINT8 PcieIndex, + OUT UINT32 *GpioGroupVal + ) +{ + /* Ampere Altra Max RootComplex->ID: 4:7 */ + if (PcieIndex < 2) { + switch (RootComplexId) { + case 4: + *GpioGroupVal =3D 34 - (PcieIndex * 2); + break; + case 5: + *GpioGroupVal =3D 38 - (PcieIndex * 2); + break; + case 6: + *GpioGroupVal =3D 30 - (PcieIndex * 2); + break; + case 7: + *GpioGroupVal =3D 26 - (PcieIndex * 2); + break; + default: + return EFI_INVALID_PARAMETER; + } + } else { + /* Ampere Altra Max RootComplex->ID: 4:7 */ + switch (RootComplexId) { + case 4: + *GpioGroupVal =3D 46 - ((PcieIndex - 2) * 2); + break; + case 5: + *GpioGroupVal =3D 42 - ((PcieIndex - 2) * 2); + break; + case 6: + *GpioGroupVal =3D 18 - ((PcieIndex - 2) * 2); + break; + case 7: + *GpioGroupVal =3D 22 - ((PcieIndex - 2) * 2); + break; + default: + return EFI_INVALID_PARAMETER; + } + } + + return EFI_SUCCESS; +} + /** Assert PERST of PCIe controller =20 @@ -56,15 +104,28 @@ BoardPcieAssertPerst ( IN BOOLEAN IsPullToHigh ) { - UINT32 GpioGroupVal, Val, GpioIndex, GpioPin; + UINT32 GpioGroupVal; + UINT32 Val; + UINT32 GpioIndex; + UINT32 GpioPin; + EFI_STATUS Status; =20 if (!IsPullToHigh) { if (RootComplex->Type =3D=3D RootComplexTypeA) { - // - // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3 - // - GpioGroupVal =3D RCA_MAX_PERST_GROUPVAL - PcieIndex - - RootComplex->ID * MaxPcieControllerOfRootComplexA; + if (RootComplex->ID < MaxPcieControllerOfRootComplexA) { + /* Ampere Altra: 4 */ + // + // RootComplexTypeA: RootComplex->ID: 0->3 ; PcieIndex: 0->3 + // + GpioGroupVal =3D RCA_MAX_PERST_GROUPVAL - PcieIndex + - RootComplex->ID * MaxPcieControllerOfRootComplexA; + } else { + Status =3D GetGpioGroup (RootComplex->ID, PcieIndex, &GpioGroupVal= ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Invalid Root Complex ID %d\n", RootComplex= ->ID)); + return Status; + } + } } else { // // RootComplexTypeB: RootComplex->ID: 4->7 ; PcieIndex: 0->7 @@ -117,5 +178,5 @@ BoardPcieGetSegmentNumber ( return Ac01BoardSegment[RootComplex->Socket][RootComplex->ID]; } =20 - return DEFAULT_SEGMENT_NUMBER; + return (RootComplex->ID - 2); } diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.= c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c index 76d3f90aa833..598a2e64d02f 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.c @@ -40,61 +40,33 @@ STATIC UINT64 mMmio32Size1P[AC01_PCIE= _MAX_ROOT_COMPLEX] =3D { STATIC UINT64 mMmioBase[AC01_PCIE_MAX_ROOT_COMPLEX] = =3D { AC01_PCIE_MMIO_BASE_LIST }; STATIC UINT64 mMmioSize[AC01_PCIE_MAX_ROOT_COMPLEX] = =3D { AC01_PCIE_MMIO_SIZE_LIST }; =20 +AC01_ROOT_COMPLEX_TYPE +GetRootComplexType ( + UINT8 RootComplexId + ) +{ + if (IsAc01Processor ()) { + return (RootComplexId < MaxRootComplexA) ? RootComplexTypeA : RootComp= lexTypeB; + } + + return RootComplexTypeA; +} + VOID -BuildRootComplexData ( - VOID +ConfigureRootComplex ( + BOOLEAN IsConfigFound, + ROOT_COMPLEX_CONFIG_VARSTORE_DATA RootComplexConfig ) { - AC01_ROOT_COMPLEX *RootComplex; - BOOLEAN ConfigFound; - EFI_PEI_READ_ONLY_VARIABLE2_PPI *VariablePpi; - EFI_STATUS Status; - ROOT_COMPLEX_CONFIG_VARSTORE_DATA RootComplexConfig; - UINT8 RCIndex; - UINT8 PcieIndex; - UINTN DataSize; - - ConfigFound =3D FALSE; - - // - // Get the Root Complex config from NVRAM - // - Status =3D PeiServicesLocatePpi ( - &gEfiPeiReadOnlyVariable2PpiGuid, - 0, - NULL, - (VOID **)&VariablePpi - ); - if (!EFI_ERROR (Status)) { - DataSize =3D sizeof (RootComplexConfig); - Status =3D VariablePpi->GetVariable ( - VariablePpi, - ROOT_COMPLEX_CONFIG_VARSTORE_NAME, - &gRootComplexConfigFormSetGuid, - NULL, - &DataSize, - &RootComplexConfig - ); - if (!EFI_ERROR (Status)) { - ConfigFound =3D TRUE; - } - } - - ZeroMem (&mRootComplexList, sizeof (AC01_ROOT_COMPLEX) * AC01_PCIE_MAX_R= OOT_COMPLEX); - - // - // Adjust Root Complex MMIO32 base address in 1P or 2P configuration - // - if (!IsSlaveSocketAvailable ()) { - CopyMem ((VOID *)&mMmio32Base, (VOID *)&mMmio32Base1P, sizeof (mMmio32= Base1P)); - CopyMem ((VOID *)&mMmio32Size, (VOID *)&mMmio32Size1P, sizeof (mMmio32= Size1P)); - } + UINT8 RCIndex; + UINT8 PcieIndex; + AC01_ROOT_COMPLEX *RootComplex; =20 for (RCIndex =3D 0; RCIndex < AC01_PCIE_MAX_ROOT_COMPLEX; RCIndex++) { RootComplex =3D &mRootComplexList[RCIndex]; - RootComplex->Active =3D ConfigFound ? RootComplexConfig.RCStatus[RCInd= ex] : TRUE; - RootComplex->DevMapLow =3D ConfigFound ? RootComplexConfig.RCBifurcati= onLow[RCIndex] : 0; - RootComplex->DevMapHigh =3D ConfigFound ? RootComplexConfig.RCBifurcat= ionHigh[RCIndex] : 0; + RootComplex->Active =3D IsConfigFound ? RootComplexConfig.RCStatus[RCI= ndex] : TRUE; + RootComplex->DevMapLow =3D IsConfigFound ? RootComplexConfig.RCBifurca= tionLow[RCIndex] : 0; + RootComplex->DevMapHigh =3D IsConfigFound ? RootComplexConfig.RCBifurc= ationHigh[RCIndex] : 0; RootComplex->Socket =3D RCIndex / AC01_PCIE_MAX_RCS_PER_SOCKET; RootComplex->ID =3D RCIndex % AC01_PCIE_MAX_RCS_PER_SOCKET; RootComplex->CsrBase =3D mCsrBase[RCIndex]; @@ -106,7 +78,7 @@ BuildRootComplexData ( RootComplex->MmioSize =3D mMmioSize[RCIndex]; RootComplex->Mmio32Base =3D mMmio32Base[RCIndex]; RootComplex->Mmio32Size =3D mMmio32Size[RCIndex]; - RootComplex->Type =3D (RootComplex->ID < MaxRootComplexA) ? RootComple= xTypeA : RootComplexTypeB; + RootComplex->Type =3D GetRootComplexType (RootComplex->ID); RootComplex->MaxPcieController =3D (RootComplex->Type =3D=3D RootCompl= exTypeB) ? MaxPcieControllerOfRootComplexB : M= axPcieControllerOfRootComplexA; RootComplex->Logical =3D BoardPcieGetSegmentNumber (RootComplex); @@ -146,6 +118,60 @@ BuildRootComplexData ( } } =20 +VOID +BuildRootComplexData ( + VOID + ) +{ + BOOLEAN IsConfigFound; + EFI_PEI_READ_ONLY_VARIABLE2_PPI *VariablePpi; + EFI_STATUS Status; + ROOT_COMPLEX_CONFIG_VARSTORE_DATA RootComplexConfig; + UINTN DataSize; + + IsConfigFound =3D FALSE; + ZeroMem ((VOID *)&RootComplexConfig, sizeof (ROOT_COMPLEX_CONFIG_VARSTOR= E_DATA)); + + // + // Get the Root Complex config from NVRAM + // + Status =3D PeiServicesLocatePpi ( + &gEfiPeiReadOnlyVariable2PpiGuid, + 0, + NULL, + (VOID **)&VariablePpi + ); + if (!EFI_ERROR (Status)) { + DataSize =3D sizeof (RootComplexConfig); + Status =3D VariablePpi->GetVariable ( + VariablePpi, + ROOT_COMPLEX_CONFIG_VARSTORE_NAME, + &gRootComplexConfigFormSetGuid, + NULL, + &DataSize, + &RootComplexConfig + ); + if (!EFI_ERROR (Status)) { + IsConfigFound =3D TRUE; + } + } + + ZeroMem (&mRootComplexList, sizeof (AC01_ROOT_COMPLEX) * AC01_PCIE_MAX_R= OOT_COMPLEX); + + // + // Adjust Root Complex MMIO32 base address in 1P or 2P configuration + // + if (!IsSlaveSocketAvailable ()) { + CopyMem ((VOID *)&mMmio32Base, (VOID *)&mMmio32Base1P, sizeof (mMmio32= Base1P)); + CopyMem ((VOID *)&mMmio32Size, (VOID *)&mMmio32Size1P, sizeof (mMmio32= Size1P)); + } + + // + // All necessary information is available, config Root complex according= ly + // + ConfigureRootComplex (IsConfigFound, RootComplexConfig); +} + EFI_STATUS EFIAPI PcieInitEntry ( @@ -168,11 +194,14 @@ PcieInitEntry ( continue; } =20 + DEBUG ((DEBUG_INIT, "Initializing S%d-RC%d...", RootComplex->Socket, R= ootComplex->ID)); Status =3D Ac01PcieCoreSetupRC (RootComplex, FALSE, 0); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "RootComplex[%d]: Init Failed\n", Index)); + DEBUG ((DEBUG_ERROR, "Failed\n")); RootComplex->Active =3D FALSE; continue; + } else { + DEBUG ((DEBUG_INIT, "Done + DevMapLow/High: %d/%d\n", RootComplex->D= evMapLow, RootComplex->DevMapHigh)); } } =20 diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexN= VParam.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVP= aram.c index aa34a90b44c6..da730c4bd219 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/RootComplexNVParam.c @@ -37,7 +37,7 @@ | Y | Y | Y | Y | 3 | ---------------------------------------- =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -55,6 +55,12 @@ =20 #include "RootComplexNVParam.h" =20 +typedef enum { + Gen3Preset =3D 0, + Gen4Preset, + GenPresetMax +} NVPARAM_PCIE_PRESET_TYPE; + STATIC BOOLEAN IsEmptyRC ( @@ -144,85 +150,233 @@ SetRootComplexBifurcation ( } } =20 -VOID +DEV_MAP_MODE GetDefaultDevMap ( - AC01_ROOT_COMPLEX *RootComplex + IN AC01_ROOT_COMPLEX *RootComplex, + IN BOOLEAN IsGetDevMapLow ) { - if (RootComplex->Pcie[PcieController0].Active - && RootComplex->Pcie[PcieController1].Active - && RootComplex->Pcie[PcieController2].Active - && RootComplex->Pcie[PcieController3].Active) { - RootComplex->DefaultDevMapLow =3D DevMapMode4; - } else if (RootComplex->Pcie[PcieController0].Active - && RootComplex->Pcie[PcieController2].Active - && RootComplex->Pcie[PcieController3].Active) { - RootComplex->DefaultDevMapLow =3D DevMapMode3; - } else if (RootComplex->Pcie[PcieController0].Active - && RootComplex->Pcie[PcieController2].Active) { - RootComplex->DefaultDevMapLow =3D DevMapMode2; - } else { - RootComplex->DefaultDevMapLow =3D DevMapMode1; - } + UINT8 StartIndex; + DEV_MAP_MODE DevMapMode; + + DevMapMode =3D MaxDevMapMode; + StartIndex =3D IsGetDevMapLow ? PcieController0 : PcieController4; + + while (DevMapMode >=3D DevMapMode1) + { + switch (DevMapMode) { + case DevMapMode4: + if (RootComplex->Pcie[StartIndex].Active + && RootComplex->Pcie[StartIndex + 1].Active + && RootComplex->Pcie[StartIndex + 2].Active + && RootComplex->Pcie[StartIndex + 3].Active) { + return DevMapMode4; + } + break; + case DevMapMode3: + if (RootComplex->Pcie[StartIndex].Active + && RootComplex->Pcie[StartIndex + 2].Active + && RootComplex->Pcie[StartIndex + 3].Active) { + return DevMapMode3; + } + break; + case DevMapMode2: + if (RootComplex->Pcie[StartIndex].Active + && RootComplex->Pcie[StartIndex + 2].Active) { + return DevMapMode2; + } + break; + default: + return DevMapMode1; + } =20 - if (RootComplex->Pcie[PcieController4].Active - && RootComplex->Pcie[PcieController5].Active - && RootComplex->Pcie[PcieController6].Active - && RootComplex->Pcie[PcieController7].Active) { - RootComplex->DefaultDevMapHigh =3D DevMapMode4; - } else if (RootComplex->Pcie[PcieController4].Active - && RootComplex->Pcie[PcieController6].Active - && RootComplex->Pcie[PcieController7].Active) { - RootComplex->DefaultDevMapHigh =3D DevMapMode3; - } else if (RootComplex->Pcie[PcieController4].Active - && RootComplex->Pcie[PcieController6].Active) { - RootComplex->DefaultDevMapHigh =3D DevMapMode2; - } else { - RootComplex->DefaultDevMapHigh =3D DevMapMode1; + DevMapMode--; } =20 + return DevMapMode1; +} + +VOID +GetDevMap ( + IN OUT AC01_ROOT_COMPLEX *RootComplex + ) +{ + // + // Get default Devmap low and configure Devmap low accordingly. + // + RootComplex->DefaultDevMapLow =3D GetDefaultDevMap (RootComplex, TRUE); if (RootComplex->DevMapLow =3D=3D 0) { RootComplex->DevMapLow =3D RootComplex->DefaultDevMapLow; } =20 + // + // Get default Devmap high and configure Devmap high accordingly. + // + RootComplex->DefaultDevMapHigh =3D IsAc01Processor () ? GetDefaultDevMap= (RootComplex, FALSE) : DevMapMode1; if (RootComplex->Type =3D=3D RootComplexTypeB && RootComplex->DevMapHigh= =3D=3D 0) { RootComplex->DevMapHigh =3D RootComplex->DefaultDevMapHigh; } =20 + // + // Set bifurcation bases on Devmap high and Devmap low. + // SetRootComplexBifurcation (RootComplex, PcieController0, RootComplex->De= vMapLow); if (RootComplex->Type =3D=3D RootComplexTypeB) { SetRootComplexBifurcation (RootComplex, PcieController4, RootComplex->= DevMapHigh); } } =20 +UINT8 +GetMaxController ( + IN AC01_ROOT_COMPLEX *RootComplex + ) +{ + if (IsAc01Processor ()) { + return MaxPcieControllerOfRootComplexA; + } + + return RootComplex->MaxPcieController; +} + +NVPARAM +CalculateNvParamOffset ( + IN AC01_ROOT_COMPLEX *RootComplex, + IN UINT8 PaddingOrder, + IN UINT8 StartIndex, + IN UINT64 StartOffset + ) +{ + UINT8 NeededPadding; + INT8 PositionFromStartIndex; + NVPARAM NvParamOffset; + + + NeededPadding =3D RootComplex->ID - PaddingOrder; + PositionFromStartIndex =3D (RootComplex->ID - StartIndex) + NeededPaddin= g; + NvParamOffset =3D StartOffset + PositionFromStartIndex * NV_PARAM_ENTRYS= IZE; + + return NvParamOffset; +} + +EFI_STATUS_CODE_TYPE +GetNvParamOffsetLane ( + IN AC01_ROOT_COMPLEX *RootComplex, + OUT NVPARAM *NvParamOffset + ) +{ + BOOLEAN IsAc01; + BOOLEAN IsRootComplexTypeA; + BOOLEAN IsSocket0; + UINT8 StartIndex; + UINT64 StartOffset; + UINT8 PaddingOrder; + + IsSocket0 =3D RootComplex->Socket =3D=3D 0 ? TRUE : FALSE; + IsAc01 =3D IsAc01Processor (); + IsRootComplexTypeA =3D RootComplex->Type =3D=3D RootComplexTypeA ? TRUE = : FALSE; + + if (!IsAc01 && (RootComplex->ID >=3D MaxPcieControllerOfRootComplexA)) { + // Because from NV_SI_RO_BOARD_S0_RCA4_CFG to NV_SI_RO_BOARD_S0_RCA7_C= FG for supporting + // Altra Max are not sequential arrangement with NV_SI_RO_BOARD_S0_RCA= 0_CFG + // so the start index will be the first Root Complex ID which using th= ese NVParams + // (NV_SI_RO_BOARD_S0_RCA4_CFG to NV_SI_RO_BOARD_S0_RCA7_CFG) to suppo= rt Altra Max processor. + StartIndex =3D 4; + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_S0_RCA4_CFG : NV_SI_RO_BOAR= D_S1_RCA4_CFG; + PaddingOrder =3D RootComplex->ID; + } else { + StartIndex =3D 0; + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_CFG : NV_SI_RO_BOAR= D_S1_RCA0_CFG; + PaddingOrder =3D IsRootComplexTypeA ? RootComplex->ID : MaxRootComplex= A; + } + + *NvParamOffset =3D CalculateNvParamOffset (RootComplex, PaddingOrder, St= artIndex, StartOffset); + return EFI_SUCCESS; +} + +EFI_STATUS +GetNvParamOffsetPreset ( + IN AC01_ROOT_COMPLEX *RootComplex, + IN NVPARAM_PCIE_PRESET_TYPE PresetType, + OUT NVPARAM *NvParamOffset + ) +{ + BOOLEAN IsAc01; + BOOLEAN IsRootComplexTypeA; + BOOLEAN IsSocket0; + UINT8 StartIndex; + UINT64 StartOffset; + UINT8 PaddingOrder; + + IsSocket0 =3D RootComplex->Socket =3D=3D 0 ? TRUE : FALSE; + IsAc01 =3D IsAc01Processor (); + IsRootComplexTypeA =3D RootComplex->Type =3D=3D RootComplexTypeA ? TRUE = : FALSE; + + switch (PresetType) { + case Gen3Preset: + if (IsAc01) { + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET : + NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET; + } else { + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G3PRESET : + NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G3PRESET; + } + break; + + case Gen4Preset: + if (IsAc01) { + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET : + NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET; + } else { + StartOffset =3D IsSocket0 ? NV_SI_RO_BOARD_MQ_S0_RCA0_TXRX_G4PRESET : + NV_SI_RO_BOARD_MQ_S1_RCA2_TXRX_G4PRESET; + } + break; + + default: + return EFI_INVALID_PARAMETER; + } + + // + // For Socket 0, NVParams for all Root Complexes are supported so starti= ng from RCA0. + // For Socket 1, NVParams for RCA0 and RCA1 are not supported so startin= g from RCA2. + // + StartIndex =3D IsSocket0 ? 0 : 2; + // + // There're two NVParam entries per RootComplexTypeB + // so padding need to be start from MaxRootComplexA to + // get the first NVParam entry of RootComplexTypeB + // + PaddingOrder =3D IsRootComplexTypeA ? RootComplex->ID : MaxRootComplexA; + + *NvParamOffset =3D CalculateNvParamOffset (RootComplex, PaddingOrder, St= artIndex, StartOffset); + + return EFI_SUCCESS; +} + VOID GetLaneAllocation ( - AC01_ROOT_COMPLEX *RootComplex + IN OUT AC01_ROOT_COMPLEX *RootComplex ) { EFI_STATUS Status; INTN RPIndex; NVPARAM NvParamOffset; - UINT32 Value, Width; + UINT32 Value; + UINT32 Width; + UINT32 MaxController; =20 - // Retrieve lane allocation and capabilities for each controller - if (RootComplex->Type =3D=3D RootComplexTypeA) { - NvParamOffset =3D (RootComplex->Socket =3D=3D 0) ? NV_SI_RO_BOARD_S0_R= CA0_CFG : NV_SI_RO_BOARD_S1_RCA0_CFG; - NvParamOffset +=3D RootComplex->ID * NV_PARAM_ENTRYSIZE; + Status =3D GetNvParamOffsetLane (RootComplex, &NvParamOffset); + if (!EFI_ERROR (Status)) { + Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); + if (EFI_ERROR (Status)) { + Value =3D 0; + } } else { - // - // There're two NVParam entries per RootComplexTypeB - // - NvParamOffset =3D (RootComplex->Socket =3D=3D 0) ? NV_SI_RO_BOARD_S0_R= CB0_LO_CFG : NV_SI_RO_BOARD_S1_RCB0_LO_CFG; - NvParamOffset +=3D (RootComplex->ID - MaxRootComplexA) * (NV_PARAM_ENT= RYSIZE * 2); - } - - Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); - if (EFI_ERROR (Status)) { Value =3D 0; } =20 - for (RPIndex =3D 0; RPIndex < MaxPcieControllerOfRootComplexA; RPIndex++= ) { + MaxController =3D GetMaxController (RootComplex); + for (RPIndex =3D PcieController0; RPIndex < MaxController; RPIndex++) { Width =3D (Value >> (RPIndex * BITS_PER_BYTE)) & BYTE_MASK; switch (Width) { case 1: @@ -278,78 +432,6 @@ GetLaneAllocation ( } } =20 -NVPARAM -GetGen3PresetNvParamOffset ( - AC01_ROOT_COMPLEX *RootComplex - ) -{ - NVPARAM NvParamOffset; - - if (RootComplex->Socket =3D=3D 0) { - if (RootComplex->Type =3D=3D RootComplexTypeA) { - if (RootComplex->ID < MaxRootComplexA) { - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCA0_TXRX_G3PRESET + RootCompl= ex->ID * NV_PARAM_ENTRYSIZE; - } else { - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCA4_TXRX_G3PRESET + (RootComp= lex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE; - } - } else { - // - // There're two NVParam entries per RootComplexTypeB - // - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCB0A_TXRX_G3PRESET + (RootCompl= ex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2); - } - } else if (RootComplex->Type =3D=3D RootComplexTypeA) { - if (RootComplex->ID < MaxRootComplexA) { - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCA2_TXRX_G3PRESET + (RootComple= x->ID - 2) * NV_PARAM_ENTRYSIZE; - } else { - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCA4_TXRX_G3PRESET + (RootComple= x->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE; - } - } else { - // - // There're two NVParam entries per RootComplexTypeB - // - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCB0A_TXRX_G3PRESET + (RootComplex= ->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2); - } - - return NvParamOffset; -} - -NVPARAM -GetGen4PresetNvParamOffset ( - AC01_ROOT_COMPLEX *RootComplex - ) -{ - NVPARAM NvParamOffset; - - if (RootComplex->Socket =3D=3D 0) { - if (RootComplex->Type =3D=3D RootComplexTypeA) { - if (RootComplex->ID < MaxRootComplexA) { - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCA0_TXRX_G4PRESET + RootCompl= ex->ID * NV_PARAM_ENTRYSIZE; - } else { - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCA4_TXRX_G4PRESET + (RootComp= lex->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE; - } - } else { - // - // There're two NVParam entries per RootComplexTypeB - // - NvParamOffset =3D NV_SI_RO_BOARD_S0_RCB0A_TXRX_G4PRESET + (RootCompl= ex->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2); - } - } else if (RootComplex->Type =3D=3D RootComplexTypeA) { - if (RootComplex->ID < MaxRootComplexA) { - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCA2_TXRX_G4PRESET + (RootComple= x->ID - 2) * NV_PARAM_ENTRYSIZE; - } else { - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCA4_TXRX_G4PRESET + (RootComple= x->ID - MaxRootComplexA) * NV_PARAM_ENTRYSIZE; - } - } else { - // - // There're two NVParam entries per RootComplexTypeB - // - NvParamOffset =3D NV_SI_RO_BOARD_S1_RCB0A_TXRX_G4PRESET + (RootComplex= ->ID - MaxRootComplexA) * (NV_PARAM_ENTRYSIZE * 2); - } - - return NvParamOffset; -} - VOID GetPresetSetting ( AC01_ROOT_COMPLEX *RootComplex @@ -366,9 +448,11 @@ GetPresetSetting ( RootComplex->PresetGen4[Index] =3D PRESET_INVALID; } =20 - NvParamOffset =3D GetGen3PresetNvParamOffset (RootComplex); - - Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); + // Get NVParam offset of Gen3 preset + Status =3D GetNvParamOffsetPreset (RootComplex, Gen3Preset, &NvParamOffs= et); + if (!EFI_ERROR (Status)) { + Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); + } if (!EFI_ERROR (Status)) { for (Index =3D 0; Index < MaxPcieControllerOfRootComplexA; Index++) { RootComplex->PresetGen3[Index] =3D (Value >> (Index * BITS_PER_BYTE)= ) & BYTE_MASK; @@ -385,9 +469,11 @@ GetPresetSetting ( } } =20 - NvParamOffset =3D GetGen4PresetNvParamOffset (RootComplex); - - Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); + // Get NVParam offset of Gen4 preset. + Status =3D GetNvParamOffsetPreset (RootComplex, Gen4Preset, &NvParamOffs= et); + if (!EFI_ERROR (Status)) { + Status =3D NVParamGet (NvParamOffset, NV_PERM_ALL, &Value); + } if (!EFI_ERROR (Status)) { for (Index =3D 0; Index < MaxPcieControllerOfRootComplexA; Index++) { RootComplex->PresetGen4[Index] =3D (Value >> (Index * BITS_PER_BYTE)= ) & BYTE_MASK; @@ -415,6 +501,7 @@ GetMaxSpeedGen ( UINT8 ErrataSpeedDevMap4[MaxPcieControllerOfRootComplexA] =3D { LINK_SPE= ED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // Bifurcati= on 3: x4 x4 x4 x4 (PCIE_ERRATA_SPEED1) UINT8 ErrataSpeedRcb[MaxPcieControllerOfRootComplexA] =3D { LINK_SPEED_G= EN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1, LINK_SPEED_GEN1 }; // RootCompl= exTypeB PCIE_ERRATA_SPEED1 UINT8 Idx; + UINT8 MaxController; UINT8 *MaxGen; =20 ASSERT (MaxPcieControllerOfRootComplexA =3D=3D 4); @@ -452,7 +539,8 @@ GetMaxSpeedGen ( } } =20 - for (Idx =3D 0; Idx < MaxPcieControllerOfRootComplexA; Idx++) { + MaxController =3D GetMaxController (RootComplex); + for (Idx =3D 0; Idx < MaxController; Idx++) { RootComplex->Pcie[Idx].MaxGen =3D RootComplex->Pcie[Idx].Active ? MaxG= en[Idx] : LINK_SPEED_NONE; } =20 @@ -509,6 +597,6 @@ ParseRootComplexNVParamData ( =20 GetPresetSetting (RootComplex); GetLaneAllocation (RootComplex); - GetDefaultDevMap (RootComplex); + GetDevMap (RootComplex); GetMaxSpeedGen (RootComplex); } --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102094): https://edk2.groups.io/g/devel/message/102094 Mute This Topic: https://groups.io/mt/97922254/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102095+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102095+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064590905864.3936596265041; Tue, 28 Mar 2023 21:36:30 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id R67WYY1788612x81z5CdDxiB; Tue, 28 Mar 2023 21:36:30 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.124]) by mx.groups.io with SMTP id smtpd.web10.16866.1680064589705947398 for ; Tue, 28 Mar 2023 21:36:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RLjBVl61gmAutG1u0zK9TYDkqD5oA3rYVnlM5XI9cwKQ9jvKvl2V5u8tHO6/2z/F7Qb5vVs7wL5ZHQYOfuwTFWZqH7vIfHnGifZj0ZjII4JuR89sQ9pRvdp2Ct/B8fmLCFz/W2MhaMPZEl0+SzbVCYMDp4m1xmz/5msr+aHm0FbFZDNljW9/eRwqqD589GuIMTr7ujutJZzbW4q7zrw6pZ26J/ZEIy/tkD3SSVZLbwiQexF0QVwXWIpS7VHUoZOCvrKi/Aa1REMouvpaPLh/O8yLmjZIaJrGtJhErTqStXvygF1XU90FIoZBfXb6NlFRgDRQ2cLOgq1zGd3kRH4vnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=l1Bc/tJ0fVGaQGkg3+ucOgwjnIa1Hyzj4hAX53H9VaI=; b=U9QaqlI3Rif8VFkqokFrbRL9UgJffmmPSZqcSwZ2VA9Pp1ZRYMI2DkoFFIpiuaYZ37W+CqRvetS2Pb3vCRi/ABGVfhqc2a6gnkXmo0TTsIb/OZWfxl1mSPrsVYYTdioCXsMnCWF6Qbjw/pMiCn51UfDPzEYi5NaC3yXsF1AHESWADoyxV/zHR4S6B8q27zlZQhtzTPcEkSO1dQsAQKVy3UOEXdVvksHxTTmhtUZ8SZBFIsvaptqcJb9gavrJyhGl4rnL91DAuIpUjpBVPEVsxBOXTujnVj/migqhpM6tVxsqoEfmkF9zsCvP7712OIh6WJvMtmbbe/ueXt2h1i8IQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:27 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:27 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Vu Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 8/9] AmpereAltraPkg: Support get SubNUMA node region for Ampere silicons Date: Wed, 29 Mar 2023 11:32:45 +0700 Message-ID: <20230329043246.495600-9-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 510e5eeb-a9eb-4c74-6c79-08db300f289e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 8mkEPUebOw2N+at4AnH691/urz9GGhbV27/G+27sS19sQHIusRdm7o6qPbTQn6Ytv8FUz8iE44NIQ2lur+x38spO+Q4Ui7cX6phUbF8ZwgfaxIjB0wmh5Z9IOuxEBpSzlR8UsY40atD3hmELMVV3D4EmSCRO334fzXaoIWbEwdzVs/WnZEmzRuT25+5B7IehP13digX1fk4g5zN5ZASub6yltO2axDv4/YKyXHHhhwARCf8l27mTr6aY3iRC9nJt8bF8aMA0eFZeRjRKAhVvgg82dGDmc3CdLqRnUOMDqk3wIu5luiZG+Yb/8rJwNXLKAjAD5GG8YvTyAC49dGfR+pHq6HqoYZB4FynVlmxPS4v8wryqZTSsYHIL290nlPt/1YNI0S54Y+x1N1LDFOiZx/TYfcITJs5G9iZ5VXMk9x0hx3akugxLG34uJr72NJUydlaNE+A+YwWWErPq3jeXai4zNNfjqu8N3j7bqxrzYLd+aU9rzrTw5nbhCKRjyuq/2KQiLZhteNjM2NzDXXYsMqWcbS+qWwF9GAANlpDnjnrnLdv/0WkDTTFaXf8dBmMn7YbNXIdsdZBmkXoq2jReWxL19xf3k3aS1lwBRxr/hiLBXKXfI9P/6fmT1x30jZ36 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PJ/eeRInfLFD2RCJv2PB1s17yuN1Q5/G40QuFgTO4TfTNe90Of3EKpth2Ht/?= =?us-ascii?Q?cDmW62e1v4gT0MLQB4EHhkE1xRVt+Elx57HGh75VxkMXq5d/wgFQtoOdPnlL?= =?us-ascii?Q?AHsI3RiuHyCz49QJ1xUKhbVFnxgi7XlRPVcpu7FjrzPL+FnJ0RXiO0qumkSg?= =?us-ascii?Q?8sY2h82ge/+CvJKdyUuRwS520Cxoul2RTRbgMK90eMRZKdNh9/mZ3SuyEg3l?= =?us-ascii?Q?HDf+s6YTTQABX98RSzAG4EhvrZzHfBuBPt5OS7Lo4sZCogAjlnKNYBPxmGrE?= =?us-ascii?Q?STWN8FqhG+RJQXZBzsBkENbTLs99ML+li92htwWvnXLeFrj9yMRLYLo2Tdct?= =?us-ascii?Q?3r5LgJzuhnUHWUddc71r9COznK2TVkhqLgTVdrBQ3Z3XIj/N9d6iLkudZO2N?= =?us-ascii?Q?F9AulaOWIy/fE5y0AvsFGHyElKdOneOdFxHoBwdXIh7Lp1uD+a3WDq5bMiCY?= =?us-ascii?Q?QEQVVlQc9r0tJVPhfdixnoWldv9AIQdh68LPdjqjMv4l72Pc2j3lvgliyXjG?= =?us-ascii?Q?yR46Fabn9Ect28SXMo8i4BM7qJD15dQi/Nr0gHlQPsdS7nZneDRCnkOc6hZF?= =?us-ascii?Q?uZdbJSBWx8YCXuNJt8gzKd9blp/FtIbMIh0sVRCbaedC+UFDozV/qbohNmZR?= =?us-ascii?Q?V/a0R2xe02CrUK7yhoPSthojHgNA4elL9fkH1xsbsu9ArJck7uubhJABt8ne?= =?us-ascii?Q?MvkWSJ9/R+1hjrpRls2Agkex9c9kZDFEG7sShUvN7VVSVJiIgHQwqe8nUXtK?= =?us-ascii?Q?XC1SF7dy1EmfFPyFAzlYeaAz1j3sJSXLzJRd5D4CdeN1ODB6ZhhVLolRQ/3B?= =?us-ascii?Q?kwy373rUAXcnYZs+hRFEBWlY1cE84aklqR4+wWSiIdkT61I4a7R8Y9hzQUtF?= =?us-ascii?Q?0jfxxhKcfjDGL3ghvwwI5MjEaiTllTpRxymnBHyQi3V0YFFsAIvH40oZuxjI?= =?us-ascii?Q?11weQmXTC19nY9gbTnbvyAljeNUhfRjkWjCef+o2wUgkUpoCP1tGbjU1LDyA?= =?us-ascii?Q?4HcwjUopkBaFfvMwzCxglKhuZ6qlcoxAYqOsDCN2sua99NDcctjnmYHvWzz0?= =?us-ascii?Q?Q3Trf+Ae2KYY0+erltiCeLMj1veCnJrwy7AVytzQmL+6goxyVRmVfLObTQI7?= =?us-ascii?Q?bWx9OvZELD9T0UM2YaTWF+E48iBzHDNXdmAldP+bD0P21QWxl2/8QXxvQg1Y?= =?us-ascii?Q?vI3n+k1ovmozQnicSKnIiCMK9DBVJJwpHoNiqDpY12Ha+eHPdGAD2WWGUtV0?= =?us-ascii?Q?z69g2MR2EzviLdvnK1u4RVndYhRD5CK7k7r11iArIXqD7/A5sVzAiz9lCEn/?= =?us-ascii?Q?ci0T6Skm3EKeVf8YKsHqtJeYuOkissZly4wYudNhqureYHeZh78fFuQtf4zp?= =?us-ascii?Q?Ri1kqGpncFMj8rwDL68uVUtM5R9XwLC7c3OPEYGRXQNZmCJcUTt3fVJD78Ot?= =?us-ascii?Q?UbfjFjV7RGUQ5AdjZRUqOmX0zPgXh2OCKnOC2wlKxs+aoIPIZ1/jPHK/H5NJ?= =?us-ascii?Q?mg5LTM7y9QPGCWdwhUF+KCNB/nvdQ6Xz9iarA/pSeWf5Q3mby7hreI1oscw2?= =?us-ascii?Q?X+pxG1JPxpXJjaNQ9AKlC+hVtfDz/sidza0LmDAp7ZSIdOzubey72ry24cgF?= =?us-ascii?Q?U0UQFlUHSCpgjssAhISSjOw=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 510e5eeb-a9eb-4c74-6c79-08db300f289e X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:27.1685 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: e8qp/wx4w/zIUBNhYNEOwfURUT6mGRRICFqJ4Y1WgeNTgSbhWKh3xScqBtc0uKX/tWQFKgTkwPwuqBssFP4YumQQ3HZAWViKtsgmfl7TNo8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: knCj4Lr4uNPFvp55PyPUTe3cx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064590; bh=HOEo0Y49QsA4xOohXVi1xxGi7z1h0TmtrMEgxia/o/A=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=p7sZmD/+fjuUeDGSdRPirjUUzaORKbr+J7g/94+xDa7hoESQMTzCmHQE1rjcGWkRe6A ycuHmplm1634e+oE2U8SEZhzV0Hx1+ACLUkezjqSij9oss9NmKET01AdcPk9G3LFlgiLO Ibp/gX32gaWXhrgPqEEQNaxulAmuCCEJe+I= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064592714100005 Content-Type: text/plain; charset="utf-8" From: Vu Nguyen This change helps to update the following: - Add logic to get SubNUMA node region for Ampere silicons (Altra and Altra Max processor) as a common API in AmpereCpuLibCommon. - Leverage the added API of AmpereCpuLibCommon accordingly. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../Include/Library/AmpereCpuLib.h | 31 +-- .../Drivers/AcpiPlatformDxe/AcpiMadt.c | 105 ++------ .../Library/AmpereCpuLib/AmpereCpuLibCommon.c | 243 ++++++++++++------ 3 files changed, 205 insertions(+), 174 deletions(-) diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h b= /Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h index 9355e6cc7c62..94944cbe3abe 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h +++ b/Silicon/Ampere/AmpereAltraPkg/Include/Library/AmpereCpuLib.h @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -16,11 +16,6 @@ #define MONOLITIC_NUM_OF_REGION 1 #define HEMISPHERE_NUM_OF_REGION 2 #define QUADRANT_NUM_OF_REGION 4 -#define SUBNUMA_CPM_REGION_SIZE 4 -#define NUM_OF_CPM_PER_MESH_ROW 8 - -#define CPM_PER_ROW_OFFSET(CpmId) ((CpmId) % NUM_OF_CPM_PER_MESH_ROW) -#define CPM_ROW_NUMBER(CpmId) ((CpmId) / NUM_OF_CPM_PER_MESH_ROW) =20 #define SOCKET_ID(CpuId) ((CpuId) / (PLATFORM_CPU_MAX_CPM * = PLATFORM_CPU_NUM_CORES_PER_CPM)) #define CLUSTER_ID(CpuId) (((CpuId) / PLATFORM_CPU_NUM_CORES_= PER_CPM) % PLATFORM_CPU_MAX_CPM) @@ -65,6 +60,17 @@ CpuGetVoltage ( UINT8 Socket ); =20 +/** + Get CPU Core order number. + + @return UINT8 The order number. + +**/ +UINT32 * +CpuGetCoreOrder ( + VOID + ); + /** Get the SubNUMA mode. =20 @@ -183,19 +189,6 @@ GetMaximumNumberOfCores ( VOID ); =20 -/** - Get the maximum number of CPM per socket. This number - should be the same for all sockets. - - @return UINT32 Maximum number of CPM. - -**/ -UINT16 -EFIAPI -GetMaximumNumberOfCPMs ( - VOID - ); - /** Get the number of active cores of a sockets. =20 diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c b/P= latform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c index 419ce578e452..db1f96029f46 100644 --- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c +++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiMadt.c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -65,74 +65,8 @@ EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER MADT= TableHeaderTemplate =3D { ), }; =20 -UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { - 36, 52, 40, 56, 32, 48, 44, 60, - 20, 68, 24, 72, 16, 64, 28, 76, - 4, 8, 0, 12, 38, 54, 42, 58, - 34, 50, 46, 62, 22, 70, 26, 74, - 18, 66, 30, 78, 6, 10, 2, 14, - 37, 53, 41, 57, 33, 49, 45, 61, - 21, 69, 25, 73, 17, 65, 29, 77, - 5, 9, 1, 13, 39, 55, 43, 59, - 35, 51, 47, 63, 23, 71, 27, 75, - 19, 67, 31, 79, 7, 11, 3, 15, -}; - -UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { - 32, 48, 16, 64, 36, 52, 0, 20, - 68, 4, 34, 50, 18, 66, 38, 54, - 2, 22, 70, 6, 33, 49, 17, 65, - 37, 53, 1, 21, 69, 5, 35, 51, - 19, 67, 39, 55, 3, 23, 71, 7, - 44, 60, 28, 76, 40, 56, 12, 24, - 72, 8, 46, 62, 30, 78, 42, 58, - 14, 26, 74, 10, 45, 61, 29, 77, - 41, 57, 13, 25, 73, 9, 47, 63, - 31, 79, 43, 59, 15, 27, 75, 11, -}; - -UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES= _PER_CPM] =3D { - 16, 32, 0, 20, 4, 18, 34, 2, - 22, 6, 17, 33, 1, 21, 5, 19, - 35, 3, 23, 7, 48, 64, 52, 68, - 36, 50, 66, 54, 70, 38, 49, 65, - 53, 69, 37, 51, 67, 55, 71, 39, - 28, 44, 12, 24, 8, 30, 46, 14, - 26, 10, 29, 45, 13, 25, 9, 31, - 47, 15, 27, 11, 60, 76, 56, 72, - 40, 62, 78, 58, 74, 42, 61, 77, - 57, 73, 41, 63, 79, 59, 75, 43, -}; - EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *MadtTablePointer; =20 -UINT32 * -CpuGetCoreOrder ( - VOID - ) -{ - UINT8 SubNumaMode; - - SubNumaMode =3D CpuGetSubNumaMode (); - switch (SubNumaMode) { - case SUBNUMA_MODE_MONOLITHIC: - return (UINT32 *)&Ac01CoreOrderMonolithic; - - case SUBNUMA_MODE_HEMISPHERE: - return (UINT32 *)&Ac01CoreOrderHemisphere; - - case SUBNUMA_MODE_QUADRANT: - return (UINT32 *)&Ac01CoreOrderQuadrant; - - default: - // Should never reach here - ASSERT (FALSE); - return NULL; - } - - return NULL; -} - UINT32 AcpiInstallMadtProcessorNode ( VOID *EntryPointer, @@ -245,6 +179,7 @@ AcpiInstallMadtTable ( INTN Index; EFI_STATUS Status; UINTN Size; + UINTN Length; UINT32 *CoreOrder; UINT32 SktMaxCoreNum; =20 @@ -258,14 +193,14 @@ AcpiInstallMadtTable ( } =20 Size =3D sizeof (MADTTableHeaderTemplate) + - (PLATFORM_CPU_MAX_NUM_CORES * sizeof (GiccTemplate)) + - sizeof (GicDTemplate) + - (PLATFORM_CPU_MAX_SOCKET * sizeof (GicRTemplate)) + - ((SOCKET0_LAST_RC - SOCKET0_FIRST_RC + 1) * sizeof (GicItsTempl= ate)); + sizeof (GiccTemplate) * GetNumberOfActiveCores () + + sizeof (GicDTemplate) + + sizeof (GicRTemplate) * GetNumberOfActiveSockets () + + sizeof (GicItsTemplate) * (SOCKET0_LAST_RC - SOCKET0_FIRST_RC + = 1); if (IsSlaveSocketActive ()) { - Size +=3D ((SOCKET1_LAST_RC - SOCKET1_FIRST_RC + 1) * sizeof (GicItsT= emplate)); + Size +=3D (sizeof (GicItsTemplate) * (SOCKET1_LAST_RC - SOCKET1_FIRST_= RC + 1)); } else if (!IsSlaveSocketAvailable ()) { - Size +=3D 2 * sizeof (GicItsTemplate); /* RCA0/1 */ + Size +=3D sizeof (GicItsTemplate) * 2; /* RCA0/1 */ } =20 MadtTablePointer =3D @@ -279,52 +214,56 @@ AcpiInstallMadtTable ( sizeof (MADTTableHeaderTemplate)); =20 /* Install Gic interface for each processor */ - Size =3D 0; + Length =3D 0; CoreOrder =3D CpuGetCoreOrder (); ASSERT (CoreOrder !=3D NULL); SktMaxCoreNum =3D PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM; for (Index =3D 0; Index < SktMaxCoreNum; Index++) { if (IsCpuEnabled (CoreOrder[Index])) { - Size +=3D AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPo= inter + Size), CoreOrder[Index]); + Length +=3D AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntry= Pointer + Length), CoreOrder[Index]); } } =20 for (Index =3D 0; Index < SktMaxCoreNum; Index++) { if (IsCpuEnabled (CoreOrder[Index] + SktMaxCoreNum)) { - Size +=3D AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntryPo= inter + Size), CoreOrder[Index] + SktMaxCoreNum); + Length +=3D AcpiInstallMadtProcessorNode ((VOID *)((UINT64)GiccEntry= Pointer + Length), CoreOrder[Index] + SktMaxCoreNum); } } =20 /* Install Gic Distributor */ - Size +=3D AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Size)= ); + Length +=3D AcpiInstallMadtGicD ((VOID *)((UINT64)GiccEntryPointer + Len= gth)); =20 /* Install Gic Redistributor */ for (Index =3D 0; Index < PLATFORM_CPU_MAX_SOCKET; Index++) { - Size +=3D AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + Siz= e), Index); + Length +=3D AcpiInstallMadtGicR ((VOID *)((UINT64)GiccEntryPointer + L= ength), Index); } =20 /* Install Gic ITS */ if (!IsSlaveSocketAvailable ()) { for (Index =3D 0; Index <=3D 1; Index++) { /* RCA0/1 */ - Size +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer += Size), Index); + Length +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer= + Length), Index); } } for (Index =3D SOCKET0_FIRST_RC; Index <=3D SOCKET0_LAST_RC; Index++) { - Size +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer + S= ize), Index); + Length +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer += Length), Index); } if (IsSlaveSocketActive ()) { for (Index =3D SOCKET1_FIRST_RC; Index <=3D SOCKET1_LAST_RC; Index++) { - Size +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer += Size), Index); + Length +=3D AcpiInstallMadtGicIts ((VOID *)((UINT64)GiccEntryPointer= + Length), Index); } } + CopyMem ( MadtTablePointer, &MADTTableHeaderTemplate, sizeof (MADTTableHeaderTemplate) ); =20 - Size +=3D sizeof (MADTTableHeaderTemplate); - MadtTablePointer->Header.Length =3D Size; + Length +=3D sizeof (MADTTableHeaderTemplate); + MadtTablePointer->Header.Length =3D Length; + + ASSERT (Size =3D=3D Length); + CopyMem ( MadtTablePointer->Header.OemId, PcdGetPtr (PcdAcpiDefaultOemId), diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLi= bCommon.c b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLib= Common.c index 9eebea3de1b5..919d9d77b25c 100644 --- a/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon= .c +++ b/Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLibCommon= .c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2021 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -19,6 +19,108 @@ #include #include =20 +UINT32 Ac01CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { + 36, 37, 40, 41, 52, 53, 56, 57, 32, 33, + 44, 45, 48, 49, 60, 61, 20, 21, 24, 25, + 68, 69, 72, 73, 16, 17, 28, 29, 64, 65, + 76, 77, 4, 5, 8, 9, 0, 1, 12, 13, + 38, 39, 42, 43, 54, 55, 58, 59, 34, 35, + 46, 47, 50, 51, 62, 63, 22, 23, 26, 27, + 70, 71, 74, 75, 18, 19, 30, 31, 66, 67, + 78, 79, 6, 7, 10, 11, 2, 3, 14, 15, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, +}; + +UINT32 Ac01CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { + 32, 33, 48, 49, 16, 17, 64, 65, 36, 37, + 52, 53, 0, 1, 20, 21, 68, 69, 4, 5, + 34, 35, 50, 51, 18, 19, 66, 67, 38, 39, + 54, 55, 2, 3, 22, 23, 70, 71, 6, 7, + 44, 45, 60, 61, 28, 29, 76, 77, 40, 41, + 56, 57, 12, 13, 24, 25, 72, 73, 8, 9, + 46, 47, 62, 63, 30, 31, 78, 79, 42, 43, + 58, 59, 14, 15, 26, 27, 74, 75, 10, 11, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, +}; + +UINT32 Ac01CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES= _PER_CPM] =3D { + 16, 17, 32, 33, 0, 1, 20, 21, 4, 5, + 18, 19, 34, 35, 2, 3, 22, 23, 6, 7, + 48, 49, 64, 65, 52, 53, 68, 69, 36, 37, + 50, 51, 66, 67, 54, 55, 70, 71, 38, 39, + 28, 29, 44, 45, 12, 13, 24, 25, 8, 9, + 30, 31, 46, 47, 14, 15, 26, 27, 10, 11, + 60, 61, 76, 77, 56, 57, 72, 73, 40, 41, + 62, 63, 78, 79, 58, 59, 74, 75, 42, 43, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, +}; + +UINT32 Ac02CoreOrderMonolithic[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { + 36, 37, 40, 41, 52, 53, 56, 57, 32, 33, + 44, 45, 48, 49, 60, 61, 20, 21, 24, 25, + 68, 69, 72, 73, 16, 17, 28, 29, 64, 65, + 76, 77, 4, 5, 8, 9, 84, 85, 88, 89, + 0, 1, 12, 13, 80, 81, 92, 93, 100, 101, + 104, 105, 96, 97, 108, 109, 116, 117, 120, 121, + 112, 113, 124, 125, 38, 39, 42, 43, 54, 55, + 58, 59, 34, 35, 46, 47, 50, 51, 62, 63, + 22, 23, 26, 27, 70, 71, 74, 75, 18, 19, + 30, 31, 66, 67, 78, 79, 6, 7, 10, 11, + 86, 87, 90, 91, 2, 3, 14, 15, 82, 83, + 94, 95, 102, 103, 106, 107, 98, 99, 110, 111, + 118, 119, 122, 123, 114, 115, 126, 127, +}; + +UINT32 Ac02CoreOrderHemisphere[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_COR= ES_PER_CPM] =3D { + 32, 33, 48, 49, 16, 17, 64, 65, 36, 37, + 52, 53, 0, 1, 20, 21, 68, 69, 80, 81, + 4, 5, 84, 85, 96, 97, 100, 101, 112, 113, + 116, 117, 34, 35, 50, 51, 18, 19, 66, 67, + 38, 39, 54, 55, 2, 3, 22, 23, 70, 71, + 82, 83, 6, 7, 86, 87, 98, 99, 102, 103, + 114, 115, 118, 119, 44, 45, 60, 61, 28, 29, + 76, 77, 40, 41, 56, 57, 12, 13, 24, 25, + 72, 73, 92, 93, 8, 9, 88, 89, 108, 109, + 104, 105, 124, 125, 120, 121, 46, 47, 62, 63, + 30, 31, 78, 79, 42, 43, 58, 59, 14, 15, + 26, 27, 74, 75, 94, 95, 10, 11, 90, 91, + 110, 111, 106, 107, 126, 127, 122, 123, +}; + +UINT32 Ac02CoreOrderQuadrant[PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES= _PER_CPM] =3D { + 16, 17, 32, 33, 0, 1, 20, 21, + 36, 37, 4, 5, 84, 85, 96, 97, + 18, 19, 34, 35, 2, 3, 22, 23, + 38, 39, 6, 7, 86, 87, 98, 99, + 48, 49, 64, 65, 52, 53, 68, 69, + 80, 81, 100, 101, 112, 113, 116, 117, + 50, 51, 66, 67, 54, 55, 70, 71, + 82, 83, 102, 103, 114, 115, 118, 119, + 28, 29, 44, 45, 12, 13, 24, 25, + 40, 41, 8, 9, 88, 89, 108, 109, + 30, 31, 46, 47, 14, 15, 26, 27, + 42, 43, 10, 11, 90, 91, 110, 111, + 60, 61, 76, 77, 56, 57, 72, 73, + 92, 93, 104, 105, 124, 125, 120, 121, + 62, 63, 78, 79, 58, 59, 74, 75, + 94, 95, 106, 107, 126, 127, 122, 123, +}; + PLATFORM_INFO_HOB * GetPlatformHob ( VOID @@ -94,6 +196,42 @@ CpuGetVoltage ( return Voltage; } =20 +/** + Get CPU Core order number. + + @return UINT32* The order number. + +**/ +UINT32 * +CpuGetCoreOrder ( + VOID + ) +{ + UINT32 *CoreOrder; + UINT8 SubNumaMode; + BOOLEAN IsAc01; + + SubNumaMode =3D CpuGetSubNumaMode (); + IsAc01 =3D IsAc01Processor (); + + switch (SubNumaMode) { + case SUBNUMA_MODE_MONOLITHIC: + default: + CoreOrder =3D IsAc01 ? Ac01CoreOrderMonolithic : Ac02CoreOrderMonolith= ic; + break; + + case SUBNUMA_MODE_HEMISPHERE: + CoreOrder =3D IsAc01 ? Ac01CoreOrderHemisphere : Ac02CoreOrderHemisphe= re; + break; + + case SUBNUMA_MODE_QUADRANT: + CoreOrder =3D IsAc01 ? Ac01CoreOrderQuadrant : Ac02CoreOrderQuadrant; + break; + } + + return CoreOrder; +} + /** Get the SubNUMA mode. =20 @@ -157,14 +295,28 @@ CpuGetNumberOfSubNumaRegion ( return NumberOfSubNumaRegion; } =20 -/** - Get the SubNUMA node of a CPM. +STATIC +UINT8 +CpuGetLogicCoreId ( + UINT32 PhyCoreId + ) +{ + UINT32 *CoreOrder; + UINT8 LogicCoreId; + UINT8 SktMaxCoreNum ; =20 - @param SocketId Socket index. - @param Cpm CPM index. - @return UINT8 The SubNUMA node of a CPM. + CoreOrder =3D CpuGetCoreOrder(); + SktMaxCoreNum =3D PLATFORM_CPU_MAX_CPM * PLATFORM_CPU_NUM_CORES_PER_CPM; + + for (LogicCoreId =3D 0; LogicCoreId < SktMaxCoreNum; LogicCoreId++) { + if (CoreOrder[LogicCoreId] =3D=3D PhyCoreId) { + return LogicCoreId; + } + } + + return 0; +} =20 -**/ UINT8 EFIAPI CpuGetSubNumNode ( @@ -172,67 +324,30 @@ CpuGetSubNumNode ( UINT16 Cpm ) { - BOOLEAN IsAsymMesh; - UINT8 SubNumaNode; - UINT16 MaxNumberOfCPM; - UINT8 MiddleRow; - UINT8 QuadrantHigherRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] =3D {1, 1, = 1, 1, 3, 3, 3, 3}; - UINT8 QuadrantLowerRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] =3D {0, 0, = 0, 0, 2, 2, 2, 2}; - UINT8 QuadrantMiddleRowNodeNumber[NUM_OF_CPM_PER_MESH_ROW] =3D {0, 0, = 1, 1, 3, 3, 2, 2}; - UINT8 SubNumaMode; + UINT8 LogicCoreId; + UINT8 MaxFamliyCore; + UINT8 MaxNumCorePerNode; + UINT8 SubNumaNode; =20 - MaxNumberOfCPM =3D GetMaximumNumberOfCPMs (); - SubNumaMode =3D CpuGetSubNumaMode (); - ASSERT (SubNumaMode <=3D SUBNUMA_MODE_QUADRANT); + LogicCoreId =3D CpuGetLogicCoreId (Cpm * PLATFORM_CPU_NUM_CORES_PER_CPM); + MaxFamliyCore =3D IsAc01Processor () ? MAX_AMPERE_ALTRA_CORES : MAX_AMPE= RE_ALTRA_MAX_CORES; =20 - switch (SubNumaMode) { + switch (CpuGetSubNumaMode ()) { case SUBNUMA_MODE_MONOLITHIC: SubNumaNode =3D (SocketId =3D=3D 0) ? 0 : 1; break; =20 case SUBNUMA_MODE_HEMISPHERE: - if (CPM_PER_ROW_OFFSET (Cpm) >=3D SUBNUMA_CPM_REGION_SIZE) { - SubNumaNode =3D 1; - } else { - SubNumaNode =3D 0; - } - + MaxNumCorePerNode =3D MaxFamliyCore / HEMISPHERE_NUM_OF_REGION; + SubNumaNode =3D LogicCoreId / MaxNumCorePerNode; if (SocketId =3D=3D 1) { SubNumaNode +=3D HEMISPHERE_NUM_OF_REGION; } break; =20 case SUBNUMA_MODE_QUADRANT: - // - // CPM Mesh Rows - // - // |---------------------------------------| - // | 00 ----------- 03 | 04 ----------- 07 | Row 0 - // |-------------------|-------------------| - // | 08 ----------- 11 | 12 ----------- 15 | Row 1 - // |-------------------|-------------------| - // | 16 - 17 | 18 - 19 | 20 - 21 | 22 - 23 | Middle Row - // |-------------------|-------------------| - // | 24 ----------- 27 | 28 ----------- 31 | Row 3 - // |-------------------|-------------------| - // | 32 ----------- 35 | 36 ----------- 39 | Row 4 - // |---------------------------------------| - // - - IsAsymMesh =3D (BOOLEAN)(CPM_ROW_NUMBER (MaxNumberOfCPM) % 2 !=3D 0); - MiddleRow =3D CPM_ROW_NUMBER (MaxNumberOfCPM) / 2; - if (IsAsymMesh - && CPM_ROW_NUMBER (Cpm) =3D=3D MiddleRow) - { - SubNumaNode =3D QuadrantMiddleRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)= ]; - - } else if (CPM_ROW_NUMBER (Cpm) >=3D MiddleRow) { - SubNumaNode =3D QuadrantHigherRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)= ]; - - } else { - SubNumaNode =3D QuadrantLowerRowNodeNumber[CPM_PER_ROW_OFFSET (Cpm)]; - } - + MaxNumCorePerNode =3D MaxFamliyCore / QUADRANT_NUM_OF_REGION; + SubNumaNode =3D LogicCoreId / MaxNumCorePerNode; if (SocketId =3D=3D 1) { SubNumaNode +=3D QUADRANT_NUM_OF_REGION; } @@ -240,7 +355,7 @@ CpuGetSubNumNode ( =20 default: // Should never reach there. - SubNumaNode =3D 0; + SubNumaNode =3D (SocketId =3D=3D 0) ? 0 : 1; ASSERT (FALSE); break; } @@ -479,22 +594,6 @@ GetMaximumNumberOfCores ( return PlatformHob->MaxNumOfCore[0]; } =20 -/** - Get the maximum number of CPM per socket. This number - should be the same for all sockets. - - @return UINT16 Maximum number of CPM. - -**/ -UINT16 -EFIAPI -GetMaximumNumberOfCPMs ( - VOID - ) -{ - return GetMaximumNumberOfCores () / PLATFORM_CPU_NUM_CORES_PER_CPM; -} - /** Get the number of active cores of a sockets. =20 --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102095): https://edk2.groups.io/g/devel/message/102095 Mute This Topic: https://groups.io/mt/97922255/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 18:41:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102096+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102096+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680064616866203.10942717779983; Tue, 28 Mar 2023 21:36:56 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 6xp0YY1788612xWMWz7lhZh8; Tue, 28 Mar 2023 21:36:56 -0700 X-Received: from NAM04-BN8-obe.outbound.protection.outlook.com (NAM04-BN8-obe.outbound.protection.outlook.com [40.107.100.139]) by mx.groups.io with SMTP id smtpd.web11.16993.1680064614011586242 for ; Tue, 28 Mar 2023 21:36:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WTXfxnhdynt0OiY0AeaY2XOXVuVwVDmccrrtW6318QOcW9PY4S0PlAwNwyvPiHSGVhljcuRyKrPW76669J8WYxkGqviU8fFhQ2l8x7fKKfj1k8XvmDIw0hOpK7hrdeNyXSv3xcsr6QkPWogb7tFJGvSD4BGH/3frH2/c8g2fwHPAn81tFXXsgY5MpbF1MokCsGsRfB+mQmldXu3fXa7NpSTRMKcLEK+unQvPS4tVQ/5HuTpFyhqHbUyj4j3slh7AkhTIeQTtqrPmKaXkHxXmAlYwpPHlsHPEtkuH19C64ib3XGUkKHYHy1SaKt0wf+9m8V7jpbBl5ppoW+eH4JKfuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Kdlppi5z2c2WpZo6M9CAQkxcm3aH/FU/Wgxe+N/BupI=; b=QJF50uJR99eKgt0OSi7oapuQcRRlE30GL0NxygInyF+e6RlF4HD448bVye+oJ2gC/aJFyzqd6xFDRqgtMTZ/I5oiPLT2jAEvcmb1rHI0EYF1PJQFAE9zegKmpwZKInyGxb7KYQwsU/9vUPxXoBthx7PTjzNo2u77a9O29psJt7hEGEds+loR6x/8xX6a3IYDswXXLgP5shgDS75TQBSQ7TlKlfDwu7ERabduIyQIyXgTMWm/+eQJPBtIYLq4QMRxRJFao1YnSwrRlL+a0w3uEevnOLyiKD8YitA9MwXmIgkZRuMXgWI9i631P7THJHq+GWiUUS0/2GGAscSHSM76Sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by SN6PR01MB4446.prod.exchangelabs.com (2603:10b6:805:ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.18; Wed, 29 Mar 2023 04:36:30 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::4904:fc7d:35e6:f99%5]) with mapi id 15.20.6254.015; Wed, 29 Mar 2023 04:36:30 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, Tinh Nguyen , Nhi Pham Subject: [edk2-devel] [edk2-platforms][PATCH v2 9/9] JadePkg: ACPI: Support ACPI tables for Ampere Altra Max Date: Wed, 29 Mar 2023 11:32:46 +0700 Message-ID: <20230329043246.495600-10-nhi@os.amperecomputing.com> In-Reply-To: <20230329043246.495600-1-nhi@os.amperecomputing.com> References: <20230329043246.495600-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: TY2PR0101CA0042.apcprd01.prod.exchangelabs.com (2603:1096:404:8000::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|SN6PR01MB4446:EE_ X-MS-Office365-Filtering-Correlation-Id: 64aba289-01c7-497d-8164-08db300f29f8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: +tGk/1+E0HdeVlbseulPamHRumzUnyYwXrHuLRe6i0bFxVSoVrZgnJyne2TDwlvYcIWjI0PFSSijllu0i/LMY35dC5yyI1C0Vhwgq119BFLjOvZJNWZJ2uqrEizz1a25gK+FXKElyWwS/KXBZO60iIpUL9bMP5muVb1aicKipZmWEg/lVLw6Oao7kqcKuJz+9mwGnXPPEcuIGahBh45vqXSWEe2PiH6g9v6fyN7TJvCyYfzzoN9ZsrKGFQvzVW66bZnJSGqdP5CYCDr5JjImpNuzNJvrS/Lgo96iyg2rkaFJhBnoukOzyc8Yb2IAM0XoHtWPVMgXoW6fIDqILDdfgNA6t7hoRCJpNsd92xP/c6Vo0aPUGSRBbUjLKGEJUpV7T6BNP/zidohQHkUS6POVDronlcd/SoWGFt2uxSdSG22v+W0Jsl8CPA/7dKcW1w+ADbcBGGA2VirbG2yxQiw+n5dkKCknKic+qlcop8HYr6Gpcah1h+Z3EB63eW6PXmRN7/wx7x3QqHe/jtCQ6JqSlb1rWcHjhmTu/WdeC8kGClvxrq28ZJzukgE+gJ/v5akvmNFc6wTunbbtuyhhkuGbC6m+Ae5+1z1uY3n4Ladlj0AQgTVcmzIrxcoyvB7kt01/ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uYi3dX+un3ByuSTmN69M3H8VEOOBavzlqjELXwPz8ge5IVYCCI10dAw5eMYF?= =?us-ascii?Q?M6eGC5vSft8Cu2dRY/UDZ4SkMqpbjuAHsSIC7TeLW3qhpHCLPcuC17puliFR?= =?us-ascii?Q?isHZtZyjxIUb8QALxEUYdFO5knt8Sy+LRWrlZxNPNwB6GKZRzb9B4DyHpA1f?= =?us-ascii?Q?LjvIlLp9/Q4YdwW7diiGWkG0Y7I4xFhLuS8R+4fLX1RvekEQMEajA2uKZyps?= =?us-ascii?Q?+h7sqRzREEhRHluSNDGySXbqZ278+I3CCiCeTtk8GPxksR/3F62GoFMu7E9g?= =?us-ascii?Q?1OtgXowsLuV6xapExO8N0pyJTyr/wJdYUDmgvwk8pH+Z7MSWW7mgbirP2UFe?= =?us-ascii?Q?/YmfRbT0sUwj8aolM3dtMpTfp998+fniVZOu8CJ04tAATIzigwwtlcGamcfO?= =?us-ascii?Q?6k+YP5otlT9ItxxOnaUijgb4tYc/YfaewtAtVZDlaFs6n0QWLSxejJF5Bx2+?= =?us-ascii?Q?ilQSQ11AoH9e+mrgrpskA0yQnqR7PYvSAAtw54QudKQSod7AbtdFl5pOQ1cu?= =?us-ascii?Q?7I6Yv4wJikuBR8wMteTSBlXsIK5nY8lHH6MFlxCwJwvbkxiKTDgUEBFb5zYF?= =?us-ascii?Q?tlPmccORyqt3XNJlA4KeHx2rqYVaEyRP9oxIk/3lYtBJ+ZE26hAO3TOthZqF?= =?us-ascii?Q?kUGZ4SEVFmROG1yCS/JwHhovRwZ0tVH+J4l5Y+xWAtzBTMf1XpWyVgAVAuOi?= =?us-ascii?Q?sAbDT+4Cv7uh6r7NPy+gr9lUWNClhaF/oJtu2RIb7jHuVaL6PPZabCxRxcId?= =?us-ascii?Q?Fupj57vGW0CXIM66lhxqNiLJXY4Ny2X9srb8CyaRgFf3hvvJtoh2ktWNlGz3?= =?us-ascii?Q?5RQnPQpHFEE9NhV3+dXmGfL8jsDAZhlhyHroYfFVSYirTw1f2sDlvSjloMfG?= =?us-ascii?Q?OERY4FC7NV0p+jFjJCQ7l0yDKXvreQKTWQO+42UqTOTzntuCIApoqWXjPm3p?= =?us-ascii?Q?XSRlFNmeDOq3g8mqtWmyEbC53pqKsnUxAEvmTBc6NgfgCOzn6hSgqxjq0l12?= =?us-ascii?Q?EZND8F4+9d1tYiQt/6HPXEE0N35HUnnWjC4rEswUVT1AuUqIY0OfGIzS9BWq?= =?us-ascii?Q?His5+XXWslMv9wjQRShXhgrocwkgylrS9FwJ1S9XZxSBZi9ULNxwew8J9erV?= =?us-ascii?Q?1PBnPcV8yWcdy+Nm2K1NJdoqm47hEtb1p7WvL9zbQIEEtdq21VFFwmNUiwn7?= =?us-ascii?Q?VkODgtHl95w/u8zeTUpcGsz8ZGLeUFHWUQZ0QhOPJuD1oSQfl9KEkYq61B6q?= =?us-ascii?Q?m7nHuW9MI2WWQSM9RKrxH6FtSiGqg0MvEmctAtt9/cFDZYqcaBNtZ/ErSvFr?= =?us-ascii?Q?njUqDrXlv95njlELdySVFoGdmg1JHjn3HLjERLd1NJVRHGcAqHIbwjbT21M6?= =?us-ascii?Q?lN3Q9s5ATq4rkBvFVDhMHn2oRY514S8Q5wcJxAt6gmw7p43zr5FPrRLfYcdG?= =?us-ascii?Q?RG8yP6eBnl+Wh7jVTeN68wlslxpOTMPxDcnqBsasP6jrjei2Nul3IJz1QICT?= =?us-ascii?Q?z5rJEPf+QwTtL507zsxOUor/LEmGSmad6xhrHXSSlvw9Kerh2fxxEOefutp5?= =?us-ascii?Q?FBWiG8tRHhw0qpLWUmbyy45scyTpYspSEQw0mIkFdoCGKwLaSyrUotzeHooe?= =?us-ascii?Q?/67e/4w3rMsd419JiJ1/T30=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64aba289-01c7-497d-8164-08db300f29f8 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2023 04:36:29.9478 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XycMzXmKvNAzF6MjPdwenfGixYibTwwYpdVXgU5yjZeLFFfxnftpNB6P5Ru0UAjQY/16epOeKsIZgG5K8/97yZCRTmm1F6oWxksPNCtNk8E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4446 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: tyA0hXfZmMJDsibvaq6NypDXx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680064616; bh=NkSOQRGmqvbWlfEZZMbSmnWJ/2u9dI+RoGPsZuQS2hk=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=slsEaq2+GCfEoUIpbkX+58QCHR6aNs5FcGNsQ+DBqLQYSdedk8Oh+7iXIWB/borMYI7 LBKtiBxbBKe9wnQo0TH28KoNtWK3W0vJrMLulvQZRuXX+aHMQuXTTw8SXnD4cy6ocKm4m N11GrwcTZDXO8iJ/Pop70SwPbLotD8B5VkI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680064619432100001 Content-Type: text/plain; charset="utf-8" From: Tinh Nguyen This adds ACPI DSDT tables and updates ACPI MADT table to support Ampere Altra Max processor. Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- Platform/Ampere/JadePkg/Jade.dsc | 3 +- Platform/Ampere/JadePkg/Jade.fdf | 3 +- .../JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf | 20 + .../Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c | 10 +- .../Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi | 6345 +++++++++++++++++ .../Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi | 6345 +++++++++++++++++ .../Ampere/JadePkg/Ac02AcpiTables/CPU.asi | 152 + .../JadePkg/Ac02AcpiTables/CommonDevices.asi | 513 ++ .../Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl | 26 + .../JadePkg/Ac02AcpiTables/PCI-PDRC.asi | 217 + .../JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi | 669 ++ .../Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi | 2041 ++++++ .../Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi | 2051 ++++++ .../Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi | 1292 ++++ .../Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi | 1292 ++++ .../Ampere/JadePkg/Ac02AcpiTables/PMU.asi | 10 + 16 files changed, 20985 insertions(+), 4 deletions(-) create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.i= nf create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi create mode 100644 Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi diff --git a/Platform/Ampere/JadePkg/Jade.dsc b/Platform/Ampere/JadePkg/Jad= e.dsc index 980f431fc4de..f14d286cdfb8 100644 --- a/Platform/Ampere/JadePkg/Jade.dsc +++ b/Platform/Ampere/JadePkg/Jade.dsc @@ -1,6 +1,6 @@ ## @file # -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -163,6 +163,7 @@ [Components.common] Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf + Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf =20 # # PCIe diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jad= e.fdf index e88c95c57abe..a578d05330ec 100644 --- a/Platform/Ampere/JadePkg/Jade.fdf +++ b/Platform/Ampere/JadePkg/Jade.fdf @@ -1,6 +1,6 @@ ## @file # -# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+# Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -339,6 +339,7 @@ [FV.FvMain] INF Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf INF RuleOverride=3DACPITABLE Silicon/Ampere/AmpereAltraPkg/AcpiCommonTab= les/AcpiCommonTables.inf INF RuleOverride=3DACPITABLE Platform/Ampere/JadePkg/AcpiTables/AcpiTabl= es.inf + INF RuleOverride=3DACPITABLE Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02= AcpiTables.inf =20 # # SMBIOS diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf b/Pl= atform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf new file mode 100644 index 000000000000..2c96eaa00168 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Ac02AcpiTables.inf @@ -0,0 +1,20 @@ +## @file +# +# Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 0x0001001B + BASE_NAME =3D Ac02AcpiTables + FILE_GUID =3D 5CA064B6-5AA4-4E29-ABDC-8BF3B34DBF9E + MODULE_TYPE =3D USER_DEFINED + VERSION_STRING =3D 1.0 + +[Sources] + Dsdt.asl + +[Packages] + MdePkg/MdePkg.dec diff --git a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDx= e.c b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c index 117f3872a84a..28c422dff166 100644 --- a/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c +++ b/Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2020 - 2023, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -16,6 +16,8 @@ STATIC EFI_EVENT mAcpiRegistration =3D NULL; */ STATIC CONST EFI_GUID mAcpiCommonTableFile =3D { 0xCEFA2AEB, 0x357E, 0x4F4= 8, { 0x80, 0x66, 0xEA, 0x95, 0x08, 0x53, 0x05, 0x6E } } ; STATIC CONST EFI_GUID mJadeAcpiTableFile =3D { 0x5addbc13, 0x8634, 0x480c,= { 0x9b, 0x94, 0x67, 0x1b, 0x78, 0x55, 0xcd, 0xb8 } }; +STATIC CONST EFI_GUID mJadeAcpiTableAc02File =3D { 0x5CA064B6 , 0x5AA4, 0x= 4E29, { 0xAB, 0xDC, 0x8B, 0xF3, 0xB3, 0x4D, 0xBF, 0x9E } }; + /** * Callback called when ACPI Protocol is installed */ @@ -31,7 +33,11 @@ AcpiNotificationEvent ( Status =3D LocateAndInstallAcpiFromFv (&mAcpiCommonTableFile); ASSERT_EFI_ERROR (Status); =20 - Status =3D LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile); + if (IsAc01Processor ()) { + Status =3D LocateAndInstallAcpiFromFv (&mJadeAcpiTableFile); + } else { + Status =3D LocateAndInstallAcpiFromFv (&mJadeAcpiTableAc02File); + } ASSERT_EFI_ERROR (Status); =20 // diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/CPU-S0.asi new file mode 100644 index 000000000000..80b8ad86e86b --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S0.asi @@ -0,0 +1,6345 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Scope (\_SB.SYST) { + Device (CL00) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL01) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL02) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL03) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL04) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL05) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL06) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL07) { + Name(_HID, "ACPI0010") + Name(_UID, 0x8) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL08) { + Name(_HID, "ACPI0010") + Name(_UID, 0x9) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL09) { + Name(_HID, "ACPI0010") + Name(_UID, 0xA) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0A) { + Name(_HID, "ACPI0010") + Name(_UID, 0xB) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0B) { + Name(_HID, "ACPI0010") + Name(_UID, 0xC) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0C) { + Name(_HID, "ACPI0010") + Name(_UID, 0xD) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0D) { + Name(_HID, "ACPI0010") + Name(_UID, 0xE) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0E) { + Name(_HID, "ACPI0010") + Name(_UID, 0xF) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL0F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x10) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL10) { + Name(_HID, "ACPI0010") + Name(_UID, 0x11) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL11) { + Name(_HID, "ACPI0010") + Name(_UID, 0x12) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL12) { + Name(_HID, "ACPI0010") + Name(_UID, 0x13) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL13) { + Name(_HID, "ACPI0010") + Name(_UID, 0x14) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL14) { + Name(_HID, "ACPI0010") + Name(_UID, 0x15) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL15) { + Name(_HID, "ACPI0010") + Name(_UID, 0x16) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL16) { + Name(_HID, "ACPI0010") + Name(_UID, 0x17) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL17) { + Name(_HID, "ACPI0010") + Name(_UID, 0x18) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL18) { + Name(_HID, "ACPI0010") + Name(_UID, 0x19) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL19) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x1F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL1F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x20) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL20) { + Name(_HID, "ACPI0010") + Name(_UID, 0x21) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL21) { + Name(_HID, "ACPI0010") + Name(_UID, 0x22) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL22) { + Name(_HID, "ACPI0010") + Name(_UID, 0x23) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL23) { + Name(_HID, "ACPI0010") + Name(_UID, 0x24) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL24) { + Name(_HID, "ACPI0010") + Name(_UID, 0x25) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL25) { + Name(_HID, "ACPI0010") + Name(_UID, 0x26) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL26) { + Name(_HID, "ACPI0010") + Name(_UID, 0x27) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL27) { + Name(_HID, "ACPI0010") + Name(_UID, 0x28) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL28) { + Name(_HID, "ACPI0010") + Name(_UID, 0x29) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL29) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x2F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL2F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x30) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL30) { + Name(_HID, "ACPI0010") + Name(_UID, 0x31) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL31) { + Name(_HID, "ACPI0010") + Name(_UID, 0x32) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL32) { + Name(_HID, "ACPI0010") + Name(_UID, 0x33) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL33) { + Name(_HID, "ACPI0010") + Name(_UID, 0x34) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL34) { + Name(_HID, "ACPI0010") + Name(_UID, 0x35) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL35) { + Name(_HID, "ACPI0010") + Name(_UID, 0x36) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL36) { + Name(_HID, "ACPI0010") + Name(_UID, 0x37) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL37) { + Name(_HID, "ACPI0010") + Name(_UID, 0x38) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL38) { + Name(_HID, "ACPI0010") + Name(_UID, 0x39) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL39) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x3F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL3F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x40) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } +} + +Scope (\_SB.SYST.CL00) { + Device(C000) { + Name(_HID, "ACPI0007") + Name(_UID, 0x0) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x000, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x004, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x008, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x010, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x014, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 2)}, // Refere= nce Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x34, 2)}, // Delive= red Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 2)}, // Perfor= mance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x050, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x054, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x058, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x080, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x084, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x088, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x090, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x094, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xac, 2)}, // Refere= nce Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 2)}, // Delive= red Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 2)}, // Perfor= mance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 1, 0xFD, 2} + }) // Domain 1 + } +} + +Scope (\_SB.SYST.CL01) { + Device(C002) { + Name(_HID, "ACPI0007") + Name(_UID, 0x100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x100, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x104, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x108, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x110, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x114, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x134, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x150, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x154, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x158, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x180, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x184, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x188, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x190, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x194, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 3, 0xFD, 2} + }) // Domain 3 + } +} + +Scope (\_SB.SYST.CL02) { + Device(C004) { + Name(_HID, "ACPI0007") + Name(_UID, 0x200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x200, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x204, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x208, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x210, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x214, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x234, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x250, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x254, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x258, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x280, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x284, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x288, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x290, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x294, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 5, 0xFD, 2} + }) // Domain 5 + } +} + +Scope (\_SB.SYST.CL03) { + Device(C006) { + Name(_HID, "ACPI0007") + Name(_UID, 0x300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x300, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x304, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x308, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x310, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x314, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x334, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x350, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x354, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x358, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x380, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x384, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x388, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x390, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x394, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 7, 0xFD, 2} + }) // Domain 7 + } +} + +Scope (\_SB.SYST.CL04) { + Device(C008) { + Name(_HID, "ACPI0007") + Name(_UID, 0x400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x400, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x404, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x408, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x410, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x414, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x434, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x450, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x454, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x458, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x480, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x484, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x488, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x490, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x494, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 9, 0xFD, 2} + }) // Domain 9 + } +} + +Scope (\_SB.SYST.CL05) { + Device(C010) { + Name(_HID, "ACPI0007") + Name(_UID, 0x500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x500, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x504, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x508, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x510, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x514, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x534, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x550, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x554, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x558, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x580, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x584, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x588, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x590, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x594, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 11, 0xFD, 2} + }) // Domain 11 + } +} + +Scope (\_SB.SYST.CL06) { + Device(C012) { + Name(_HID, "ACPI0007") + Name(_UID, 0x600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x600, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x604, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x608, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x610, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x614, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x634, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x650, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x654, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x658, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x680, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x684, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x688, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x690, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x694, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 13, 0xFD, 2} + }) // Domain 13 + } +} + +Scope (\_SB.SYST.CL07) { + Device(C014) { + Name(_HID, "ACPI0007") + Name(_UID, 0x700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x700, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x704, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x708, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x710, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x714, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x734, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x750, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x754, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x758, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x780, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x784, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x788, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x790, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x794, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 15, 0xFD, 2} + }) // Domain 15 + } +} + +Scope (\_SB.SYST.CL08) { + Device(C016) { + Name(_HID, "ACPI0007") + Name(_UID, 0x800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x800, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x804, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x808, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x810, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x814, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x834, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x850, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x854, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x858, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x880, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x884, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x888, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x890, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x894, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 17, 0xFD, 2} + }) // Domain 17 + } +} + +Scope (\_SB.SYST.CL09) { + Device(C018) { + Name(_HID, "ACPI0007") + Name(_UID, 0x900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x900, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x904, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x908, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x910, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x914, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x934, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x950, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x954, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x958, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x980, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x984, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x988, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x990, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x994, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 19, 0xFD, 2} + }) // Domain 19 + } +} + +Scope (\_SB.SYST.CL0A) { + Device(C020) { + Name(_HID, "ACPI0007") + Name(_UID, 0xa00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 21, 0xFD, 2} + }) // Domain 21 + } +} + +Scope (\_SB.SYST.CL0B) { + Device(C022) { + Name(_HID, "ACPI0007") + Name(_UID, 0xb00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 23, 0xFD, 2} + }) // Domain 23 + } +} + +Scope (\_SB.SYST.CL0C) { + Device(C024) { + Name(_HID, "ACPI0007") + Name(_UID, 0xc00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 25, 0xFD, 2} + }) // Domain 25 + } +} + +Scope (\_SB.SYST.CL0D) { + Device(C026) { + Name(_HID, "ACPI0007") + Name(_UID, 0xd00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 27, 0xFD, 2} + }) // Domain 27 + } +} + +Scope (\_SB.SYST.CL0E) { + Device(C028) { + Name(_HID, "ACPI0007") + Name(_UID, 0xe00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 29, 0xFD, 2} + }) // Domain 29 + } +} + +Scope (\_SB.SYST.CL0F) { + Device(C030) { + Name(_HID, "ACPI0007") + Name(_UID, 0xf00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 2)}, // Nomin= al 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 2)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 2)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 2)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 2)}, // Lowes= t Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 2)}, // Nomin= al Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 31, 0xFD, 2} + }) // Domain 31 + } +} + +Scope (\_SB.SYST.CL10) { + Device(C032) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 33, 0xFD, 2} + }) // Domain 33 + } +} + +Scope (\_SB.SYST.CL11) { + Device(C034) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 35, 0xFD, 2} + }) // Domain 35 + } +} + +Scope (\_SB.SYST.CL12) { + Device(C036) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 37, 0xFD, 2} + }) // Domain 37 + } +} + +Scope (\_SB.SYST.CL13) { + Device(C038) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 39, 0xFD, 2} + }) // Domain 39 + } +} + +Scope (\_SB.SYST.CL14) { + Device(C040) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 41, 0xFD, 2} + }) // Domain 41 + } +} + +Scope (\_SB.SYST.CL15) { + Device(C042) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 2)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 2)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 2)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 2)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 2)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 2)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 43, 0xFD, 2} + }) // Domain 43 + } +} + +Scope (\_SB.SYST.CL16) { + Device(C044) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 45, 0xFD, 2} + }) // Domain 45 + } +} + +Scope (\_SB.SYST.CL17) { + Device(C046) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 47, 0xFD, 2} + }) // Domain 47 + } +} + +Scope (\_SB.SYST.CL18) { + Device(C048) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 49, 0xFD, 2} + }) // Domain 49 + } +} + +Scope (\_SB.SYST.CL19) { + Device(C050) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 2)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 51, 0xFD, 2} + }) // Domain 51 + } +} + +Scope (\_SB.SYST.CL1A) { + Device(C052) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 53, 0xFD, 2} + }) // Domain 53 + } +} + +Scope (\_SB.SYST.CL1B) { + Device(C054) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 55, 0xFD, 2} + }) // Domain 5 + } +} + +Scope (\_SB.SYST.CL1C) { + Device(C056) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 57, 0xFD, 2} + }) // Domain 57 + } +} + +Scope (\_SB.SYST.CL1D) { + Device(C058) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 59, 0xFD, 2} + }) // Domain 59 + } +} + +Scope (\_SB.SYST.CL1E) { + Device(C060) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 61, 0xFD, 2} + }) // Domain 61 + } +} + +Scope (\_SB.SYST.CL1F) { + Device(C062) { + Name(_HID, "ACPI0007") + Name(_UID, 0x1f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 63, 0xFD, 2} + }) // Domain 63 + } +} + +Scope (\_SB.SYST.CL20) { + Device(C064) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 65, 0xFD, 2} + }) // Domain 65 + } +} + +Scope (\_SB.SYST.CL21) { + Device(C066) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 67, 0xFD, 2} + }) // Domain 67 + } +} + +Scope (\_SB.SYST.CL22) { + Device(C068) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 69, 0xFD, 2} + }) // Domain 69 + } +} + +Scope (\_SB.SYST.CL23) { + Device(C070) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 71, 0xFD, 2} + }) // Domain 71 + } +} + +Scope (\_SB.SYST.CL24) { + Device(C072) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 73, 0xFD, 2} + }) // Domain 73 + } +} + +Scope (\_SB.SYST.CL25) { + Device(C074) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 75, 0xFD, 2} + }) // Domain 75 + } +} + +Scope (\_SB.SYST.CL26) { + Device(C076) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 77, 0xFD, 2} + }) // Domain 77 + } +} + +Scope (\_SB.SYST.CL27) { + Device(C078) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 79, 0xFD, 2} + }) // Domain 79 + } +} + +Scope (\_SB.SYST.CL28) { + Device(C080) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 81, 0xFD, 2} + }) // Domain 81 + } +} + +Scope (\_SB.SYST.CL29) { + Device(C082) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 83, 0xFD, 2} + }) // Domain 83 + } +} + +Scope (\_SB.SYST.CL2A) { + Device(C084) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 85, 0xFD, 2} + }) // Domain 85 + } +} + +Scope (\_SB.SYST.CL2B) { + Device(C086) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 87, 0xFD, 2} + }) // Domain 87 + } +} + +Scope (\_SB.SYST.CL2C) { + Device(C088) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 89, 0xFD, 2} + }) // Domain 89 + } +} + +Scope (\_SB.SYST.CL2D) { + Device(C090) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 91, 0xFD, 2} + }) // Domain 91 + } +} + +Scope (\_SB.SYST.CL2E) { + Device(C092) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 93, 0xFD, 2} + }) // Domain 93 + } +} + +Scope (\_SB.SYST.CL2F) { + Device(C094) { + Name(_HID, "ACPI0007") + Name(_UID, 0x2f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 95, 0xFD, 2} + }) // Domain 95 + } +} + +Scope (\_SB.SYST.CL30) { + Device(C096) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 97, 0xFD, 2} + }) // Domain 97 + } +} + +Scope (\_SB.SYST.CL31) { + Device(C098) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 99, 0xFD, 2} + }) // Domain 99 + } +} + +Scope (\_SB.SYST.CL32) { + Device(C100) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 101, 0xFD, 2} + }) // Domain 101 + } +} + +Scope (\_SB.SYST.CL33) { + Device(C102) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 103, 0xFD, 2} + }) // Domain 103 + } +} + +Scope (\_SB.SYST.CL34) { + Device(C104) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 105, 0xFD, 2} + }) // Domain 105 + } +} + +Scope (\_SB.SYST.CL35) { + Device(C106) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 107, 0xFD, 2} + }) // Domain 107 + } +} + +Scope (\_SB.SYST.CL36) { + Device(C108) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 109, 0xFD, 2} + }) // Domain 109 + } +} + +Scope (\_SB.SYST.CL37) { + Device(C110) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 111, 0xFD, 2} + }) // Domain 111 + } +} + +Scope (\_SB.SYST.CL38) { + Device(C112) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 113, 0xFD, 2} + }) // Domain 113 + } +} + +Scope (\_SB.SYST.CL39) { + Device(C114) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 115, 0xFD, 2} + }) // Domain 115 + } +} + +Scope (\_SB.SYST.CL3A) { + Device(C116) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 117, 0xFD, 2} + }) // Domain 117 + } +} + +Scope (\_SB.SYST.CL3B) { + Device(C118) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 119, 0xFD, 2} + }) // Domain 119 + } +} + +Scope (\_SB.SYST.CL3C) { + Device(C120) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 121, 0xFD, 2} + }) // Domain 121 + } +} + +Scope (\_SB.SYST.CL3D) { + Device(C122) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 123, 0xFD, 2} + }) // Domain 123 + } +} + +Scope (\_SB.SYST.CL3E) { + Device(C124) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 125, 0xFD, 2} + }) // Domain 125 + } +} + +Scope (\_SB.SYST.CL3F) { + Device(C126) { + Name(_HID, "ACPI0007") + Name(_UID, 0x3f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 2)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 2)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 2)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 2)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 2)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 2)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 2)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 2)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 2)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 2)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 2)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 2)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 2)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 127, 0xFD, 2} + }) // Domain 127 + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/CPU-S1.asi new file mode 100644 index 000000000000..09a93e9b8199 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU-S1.asi @@ -0,0 +1,6345 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Scope (\_SB.SYST) { + Device (CL40) { + Name(_HID, "ACPI0010") + Name(_UID, 0x41) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL41) { + Name(_HID, "ACPI0010") + Name(_UID, 0x42) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL42) { + Name(_HID, "ACPI0010") + Name(_UID, 0x43) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL43) { + Name(_HID, "ACPI0010") + Name(_UID, 0x44) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL44) { + Name(_HID, "ACPI0010") + Name(_UID, 0x45) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL45) { + Name(_HID, "ACPI0010") + Name(_UID, 0x46) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL46) { + Name(_HID, "ACPI0010") + Name(_UID, 0x47) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL47) { + Name(_HID, "ACPI0010") + Name(_UID, 0x48) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL48) { + Name(_HID, "ACPI0010") + Name(_UID, 0x49) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL49) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x4F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL4F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x50) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL50) { + Name(_HID, "ACPI0010") + Name(_UID, 0x51) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL51) { + Name(_HID, "ACPI0010") + Name(_UID, 0x52) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL52) { + Name(_HID, "ACPI0010") + Name(_UID, 0x53) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL53) { + Name(_HID, "ACPI0010") + Name(_UID, 0x54) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL54) { + Name(_HID, "ACPI0010") + Name(_UID, 0x55) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL55) { + Name(_HID, "ACPI0010") + Name(_UID, 0x56) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL56) { + Name(_HID, "ACPI0010") + Name(_UID, 0x57) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL57) { + Name(_HID, "ACPI0010") + Name(_UID, 0x58) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL58) { + Name(_HID, "ACPI0010") + Name(_UID, 0x59) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL59) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x5F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL5F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x60) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL60) { + Name(_HID, "ACPI0010") + Name(_UID, 0x61) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL61) { + Name(_HID, "ACPI0010") + Name(_UID, 0x62) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL62) { + Name(_HID, "ACPI0010") + Name(_UID, 0x63) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL63) { + Name(_HID, "ACPI0010") + Name(_UID, 0x64) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL64) { + Name(_HID, "ACPI0010") + Name(_UID, 0x65) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL65) { + Name(_HID, "ACPI0010") + Name(_UID, 0x66) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL66) { + Name(_HID, "ACPI0010") + Name(_UID, 0x67) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL67) { + Name(_HID, "ACPI0010") + Name(_UID, 0x68) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL68) { + Name(_HID, "ACPI0010") + Name(_UID, 0x69) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL69) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x6F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL6F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x70) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL70) { + Name(_HID, "ACPI0010") + Name(_UID, 0x71) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL71) { + Name(_HID, "ACPI0010") + Name(_UID, 0x72) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL72) { + Name(_HID, "ACPI0010") + Name(_UID, 0x73) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL73) { + Name(_HID, "ACPI0010") + Name(_UID, 0x74) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL74) { + Name(_HID, "ACPI0010") + Name(_UID, 0x75) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL75) { + Name(_HID, "ACPI0010") + Name(_UID, 0x76) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL76) { + Name(_HID, "ACPI0010") + Name(_UID, 0x77) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL77) { + Name(_HID, "ACPI0010") + Name(_UID, 0x78) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL78) { + Name(_HID, "ACPI0010") + Name(_UID, 0x79) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL79) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7A) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7A) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7B) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7B) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7C) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7C) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7D) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7D) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7E) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7E) { + Name(_HID, "ACPI0010") + Name(_UID, 0x7F) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } + + Device (CL7F) { + Name(_HID, "ACPI0010") + Name(_UID, 0x80) + + Method (_LPI, 0, NotSerialized) { + return(CLPI) + } + } +} + +Scope (\_SB.SYST.CL40) { + Device(C128) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x000, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x004, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x008, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x00c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x010, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x014, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2c, 17)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x34, 17)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c, 17)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x050, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x054, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x058, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x080, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x084, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x088, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x08c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x090, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x094, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xac, 17)}, // Refer= ence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xb4, 17)}, // Deliv= ered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbc, 17)}, // Perfo= rmance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x0d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 1219, 0xFD, 2} + }) // Domain 129 + } +} + +Scope (\_SB.SYST.CL41) { + Device(C130) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x100, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x104, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x108, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x10c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x110, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x114, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x12c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x134, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x150, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x154, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x158, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x180, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x184, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x188, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x18c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x190, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x194, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 131, 0xFD, 2} + }) // Domain 131 + } +} + +Scope (\_SB.SYST.CL42) { + Device(C132) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x200, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x204, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x208, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x20c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x210, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x214, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x22c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x234, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x250, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x254, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x258, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x280, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x284, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x288, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x28c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x290, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x294, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 133, 0xFD, 2} + }) // Domain 133 + } +} + +Scope (\_SB.SYST.CL43) { + Device(C134) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x300, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x304, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x308, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x30c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x310, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x314, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x32c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x334, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x350, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x354, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x358, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x380, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x384, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x388, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x38c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x390, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x394, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 135, 0xFD, 2} + }) // Domain 135 + } +} + +Scope (\_SB.SYST.CL44) { + Device(C136) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x400, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x404, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x408, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x40c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x410, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x414, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x42c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x434, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x43c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x450, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x454, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x458, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x480, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x484, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x488, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x48c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x490, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x494, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x4ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x4b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x4d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 137, 0xFD, 2} + }) // Domain 137 + } +} + +Scope (\_SB.SYST.CL45) { + Device(C138) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x500, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x504, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x508, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x50c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x510, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x514, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x52c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x534, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x53c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x550, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x554, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x558, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x580, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x584, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x588, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x58c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x590, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x594, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x5ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x5b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x5d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 139, 0xFD, 2} + }) // Domain 139 + } +} + +Scope (\_SB.SYST.CL46) { + Device(C140) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x600, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x604, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x608, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x60c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x610, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x614, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x62c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x634, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x63c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x650, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x654, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x658, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x680, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x684, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x688, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x68c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x690, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x694, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x6ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x6b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x6d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 141, 0xFD, 2} + }) // Domain 141 + } +} + +Scope (\_SB.SYST.CL47) { + Device(C142) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x700, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x704, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x708, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x70c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x710, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x714, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x72c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x734, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x73c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x750, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x754, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x758, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x780, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x784, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x788, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x78c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x790, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x794, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x7ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x7b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x7d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 143, 0xFD, 2} + }) // Domain 143 + } +} + +Scope (\_SB.SYST.CL48) { + Device(C144) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x800, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x804, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x808, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x80c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x810, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x814, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x82c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x834, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x83c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x850, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x854, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x858, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x880, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x884, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x888, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x88c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x890, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x894, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x8ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x8b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x8d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 145, 0xFD, 2} + }) // Domain 145 + } +} + +Scope (\_SB.SYST.CL49) { + Device(C146) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x900, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x904, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x908, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x90c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x910, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x914, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x92c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x934, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x93c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x950, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x954, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x958, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x980, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x984, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x988, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x98c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x990, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x994, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x9ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x9b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9bc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x9d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 147, 0xFD, 2} + }) // Domain 147 + } +} + +Scope (\_SB.SYST.CL4A) { + Device(C148) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xa00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xa2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xa34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xa80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xa90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xa94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xaac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xab4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xabc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xad8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 149, 0xFD, 2} + }) // Domain 149 + } +} + +Scope (\_SB.SYST.CL4B) { + Device(C150) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xb00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xb2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xb34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xb80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xb90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xb94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xbac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xbb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbbc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xbd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 151, 0xFD, 2} + }) // Domain 151 + } +} + +Scope (\_SB.SYST.CL4C) { + Device(C152) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xc00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xc2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xc34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xc80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xc90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xc94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xcac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xcb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcbc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xcd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 153, 0xFD, 2} + }) // Domain 153 + } +} + +Scope (\_SB.SYST.CL4D) { + Device(C154) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xd00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xd2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xd34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xd80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xd90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xd94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xdac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xdb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdbc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xdd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 155, 0xFD, 2} + }) // Domain 155 + } +} + +Scope (\_SB.SYST.CL4E) { + Device(C156) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xe00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xe2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xe34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xe80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xe90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xe94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xeac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xeb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xebc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xed8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 157, 0xFD, 2} + }) // Domain 157 + } +} + +Scope (\_SB.SYST.CL4F) { + Device(C158) { + Name(_HID, "ACPI0007") + Name(_UID, 0x10f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xf00, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf04, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf08, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf0c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf10, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf14, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xf2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xf34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf3c, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf50, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0xf80, 17)}, // High= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf84, 17)}, // Nomi= nal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf88, 17)}, // Lowe= st Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf8c, 17)}, // Lowe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0xf90, 17)}, // Guar= anteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xf94, 17)}, // Desi= red Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0xfac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0xfb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfbc, 17)}, // Perf= ormance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd0, 17)}, // Refe= rence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0xfd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 159, 0xFD, 2} + }) // Domain 159 + } +} + +Scope (\_SB.SYST.CL50) { + Device(C160) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1000, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1004, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1008, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x100c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1010, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1014, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x102c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1034, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x103c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1050, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1054, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1058, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1080, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1084, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1088, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x108c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1090, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1094, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x10ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x10b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x10d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 161, 0xFD, 2} + }) // Domain 161 + } +} + +Scope (\_SB.SYST.CL51) { + Device(C162) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1100, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1104, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1108, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x110c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1110, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1114, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x112c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1134, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x113c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1150, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1154, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1158, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1180, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1184, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1188, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x118c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1190, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1194, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x11ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x11b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x11d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 163, 0xFD, 2} + }) // Domain 163 + } +} + +Scope (\_SB.SYST.CL52) { + Device(C164) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1200, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1204, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1208, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x120c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1210, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1214, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x122c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1234, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x123c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1250, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1254, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1258, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1280, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1284, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1288, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x128c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1290, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1294, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x12ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x12b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x12d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 165, 0xFD, 2} + }) // Domain 165 + } +} + +Scope (\_SB.SYST.CL53) { + Device(C166) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1300, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1304, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1308, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x130c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1310, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1314, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x132c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1334, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x133c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1350, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1354, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1358, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1380, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1384, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1388, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x138c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1390, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1394, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x13ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x13b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x13d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 167, 0xFD, 2} + }) // Domain 167 + } +} + +Scope (\_SB.SYST.CL54) { + Device(C168) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1400, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1404, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1408, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x140c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1410, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1414, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x142c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1434, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x143c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1450, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1454, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1458, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1480, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1484, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1488, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x148c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1490, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1494, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x14ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x14b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x14d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 169, 0xFD, 2} + }) // Domain 169 + } +} + +Scope (\_SB.SYST.CL55) { + Device(C170) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1500, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1504, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1508, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x150c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1510, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1514, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x152c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1534, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x153c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1550, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1554, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1558, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1580, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1584, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1588, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x158c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1590, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1594, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x15ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x15b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x15d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 171, 0xFD, 2} + }) // Domain 171 + } +} + +Scope (\_SB.SYST.CL56) { + Device(C172) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1600, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1604, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1608, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x160c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1610, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1614, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x162c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1634, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x163c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1650, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1654, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1658, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1680, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1684, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1688, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x168c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1690, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1694, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x16ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x16b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x16d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 173, 0xFD, 2} + }) // Domain 173 + } +} + +Scope (\_SB.SYST.CL57) { + Device(C174) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1700, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1704, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1708, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x170c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1710, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1714, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x172c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1734, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x173c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1750, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1754, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1758, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1780, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1784, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1788, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x178c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1790, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1794, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x17ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x17b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x17d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 175, 0xFD, 2} + }) // Domain 175 + } +} + +Scope (\_SB.SYST.CL58) { + Device(C176) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1800, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1804, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1808, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x180c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1810, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1814, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x182c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1834, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x183c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1850, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1854, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1858, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1880, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1884, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1888, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x188c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1890, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1894, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x18ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x18b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x18d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 177, 0xFD, 2} + }) // Domain 177 + } +} + +Scope (\_SB.SYST.CL59) { + Device(C178) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1900, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1904, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1908, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x190c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1910, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1914, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x192c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1934, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x193c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1950, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1954, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1958, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1980, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1984, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1988, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x198c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1990, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1994, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x19ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x19b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x19d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 179, 0xFD, 2} + }) // Domain 179 + } +} + +Scope (\_SB.SYST.CL5A) { + Device(C180) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1a00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1a2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1a34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1a80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1a90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1a94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1aac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1ab4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1abc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ad8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 181, 0xFD, 2} + }) // Domain 181 + } +} + +Scope (\_SB.SYST.CL5B) { + Device(C182) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1b00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1b2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1b34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1b80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1b90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1b94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1bac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1bb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1bd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 183, 0xFD, 2} + }) // Domain 183 + } +} + +Scope (\_SB.SYST.CL5C) { + Device(C184) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1c00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1c2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1c34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1c80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1c90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1c94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1cac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1cb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1cd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 185, 0xFD, 2} + }) // Domain 185 + } +} + +Scope (\_SB.SYST.CL5D) { + Device(C186) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1d00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1d2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1d34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1d80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1d90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1d94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1dac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1db4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1dd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 187, 0xFD, 2} + }) // Domain 187 + } +} + +Scope (\_SB.SYST.CL5E) { + Device(C188) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1e00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1e2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1e34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1e80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1e90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1e94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1eac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1eb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ebc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1ed8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 189, 0xFD, 2} + }) // Domain 189 + } +} + +Scope (\_SB.SYST.CL5F) { + Device(C190) { + Name(_HID, "ACPI0007") + Name(_UID, 0x11f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1f00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1f2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1f34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x1f80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x1f90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1f94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x1fac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x1fb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x1fd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 191, 0xFD, 2} + }) // Domain 191 + } +} + +Scope (\_SB.SYST.CL60) { + Device(C192) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2000, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2004, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2008, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x200c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2010, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2014, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x202c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2034, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x203c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2050, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2054, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2058, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2080, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2084, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2088, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x208c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2090, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2094, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x20ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x20b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x20d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 193, 0xFD, 2} + }) // Domain 193 + } +} + +Scope (\_SB.SYST.CL61) { + Device(C194) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2100, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2104, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2108, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x210c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2110, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2114, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x212c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2134, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x213c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2150, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2154, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2158, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2180, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2184, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2188, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x218c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2190, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2194, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x21ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x21b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x21d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 195, 0xFD, 2} + }) // Domain 195 + } +} + +Scope (\_SB.SYST.CL62) { + Device(C196) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2200, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2204, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2208, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x220c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2210, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2214, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x222c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2234, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x223c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2250, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2254, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2258, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2280, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2284, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2288, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x228c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2290, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2294, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x22ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x22b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x22d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 197, 0xFD, 2} + }) // Domain 197 + } +} + +Scope (\_SB.SYST.CL63) { + Device(C198) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2300, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2304, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2308, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x230c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2310, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2314, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x232c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2334, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x233c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2350, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2354, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2358, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2380, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2384, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2388, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x238c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2390, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2394, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x23ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x23b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x23d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 199, 0xFD, 2} + }) // Domain 199 + } +} + +Scope (\_SB.SYST.CL64) { + Device(C200) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2400, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2404, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2408, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x240c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2410, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2414, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x242c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2434, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x243c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2450, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2454, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2458, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2480, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2484, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2488, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x248c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2490, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2494, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x24ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x24b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x24d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 201, 0xFD, 2} + }) // Domain 201 + } +} + +Scope (\_SB.SYST.CL65) { + Device(C202) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2500, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2504, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2508, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x250c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2510, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2514, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x252c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2534, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x253c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2550, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2554, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2558, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2580, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2584, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2588, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x258c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2590, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2594, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x25ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x25b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x25d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 203, 0xFD, 2} + }) // Domain 203 + } +} + +Scope (\_SB.SYST.CL66) { + Device(C204) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2600, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2604, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2608, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x260c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2610, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2614, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x262c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2634, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x263c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2650, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2654, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2658, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2680, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2684, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2688, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x268c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2690, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2694, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x26ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x26b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x26d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 205, 0xFD, 2} + }) // Domain 205 + } +} + +Scope (\_SB.SYST.CL67) { + Device(C206) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2700, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2704, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2708, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x270c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2710, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2714, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x272c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2734, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x273c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2750, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2754, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2758, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2780, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2784, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2788, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x278c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2790, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2794, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x27ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x27b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x27d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 207, 0xFD, 2} + }) // Domain 207 + } +} + +Scope (\_SB.SYST.CL68) { + Device(C208) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2800, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2804, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2808, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x280c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2810, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2814, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x282c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2834, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x283c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2850, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2854, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2858, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2880, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2884, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2888, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x288c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2890, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2894, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x28ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x28b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x28d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 209, 0xFD, 2} + }) // Domain 209 + } +} + +Scope (\_SB.SYST.CL69) { + Device(C210) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2900, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2904, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2908, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x290c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2910, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2914, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x292c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2934, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x293c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2950, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2954, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2958, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2980, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2984, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2988, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x298c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2990, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2994, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x29ac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x29b4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x29d8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 211, 0xFD, 2} + }) // Domain 211 + } +} + +Scope (\_SB.SYST.CL6A) { + Device(C212) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2a00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2a2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2a34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2a80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2a90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2a94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2aac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2ab4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2abc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ad8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 213, 0xFD, 2} + }) // Domain 213 + } +} + +Scope (\_SB.SYST.CL6B) { + Device(C214) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2b00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2b2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2b34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2b80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2b90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2b94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2bac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2bb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2bd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 215, 0xFD, 2} + }) // Domain 215 + } +} + +Scope (\_SB.SYST.CL6C) { + Device(C216) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2c00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2c2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2c34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2c80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2c90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2c94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2cac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2cb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2cd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 217, 0xFD, 2} + }) // Domain 217 + } +} + +Scope (\_SB.SYST.CL6D) { + Device(C218) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2d00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2d2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2d34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2d80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2d90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2d94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2dac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2db4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2dd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 219, 0xFD, 2} + }) // Domain 219 + } +} + +Scope (\_SB.SYST.CL6E) { + Device(C220) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2e00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2e2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2e34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2e80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2e90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2e94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2eac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2eb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ebc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2ed8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 221, 0xFD, 2} + }) // Domain 221 + } +} + +Scope (\_SB.SYST.CL6F) { + Device(C222) { + Name(_HID, "ACPI0007") + Name(_UID, 0x12f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2f00, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f04, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f08, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f0c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f10, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f14, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2f2c, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2f34, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f50, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f54, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f58, 17)}, // Nom= inal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x2f80, 17)}, // Hig= hest Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f84, 17)}, // Nom= inal Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f88, 17)}, // Low= est Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f8c, 17)}, // Low= est Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x2f90, 17)}, // Gua= ranteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2f94, 17)}, // Des= ired Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x2fac, 17)}, // Ref= erence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x2fb4, 17)}, // Del= ivered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd0, 17)}, // Ref= erence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd4, 17)}, // Low= est Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x2fd8, 17)}, // Nom= inal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package() { + Package() {5, 0, 223, 0xFD, 2} + }) // Domain 223 + } +} + +Scope (\_SB.SYST.CL70) { + Device(C224) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13000) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3000, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3004, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3008, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x300c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3010, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3014, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x302c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3034, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x303c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3050, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3054, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3058, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3080, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3084, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3088, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x308c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3090, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3094, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x30ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x30b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x30d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 225, 0xFD, 2} + }) // Domain 225 + } +} + +Scope (\_SB.SYST.CL71) { + Device(C226) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13100) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3100, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3104, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3108, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x310c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3110, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3114, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x312c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3134, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x313c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3150, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3154, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3158, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3180, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3184, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3188, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x318c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3190, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3194, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x31ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x31b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x31d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 227, 0xFD, 2} + }) // Domain 227 + } +} + +Scope (\_SB.SYST.CL72) { + Device(C228) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13200) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3200, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3204, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3208, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x320c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3210, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3214, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x322c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3234, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x323c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3250, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3254, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3258, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3280, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3284, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3288, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x328c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3290, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3294, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x32ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x32b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x32d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 229, 0xFD, 2} + }) // Domain 229 + } +} + +Scope (\_SB.SYST.CL73) { + Device(C230) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13300) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3300, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3304, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3308, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x330c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3310, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3314, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x332c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3334, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x333c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3350, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3354, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3358, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3380, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3384, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3388, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x338c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3390, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3394, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x33ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x33b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x33d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 231, 0xFD, 2} + }) // Domain 231 + } +} + +Scope (\_SB.SYST.CL74) { + Device(C232) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13400) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3400, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3404, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3408, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x340c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3410, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3414, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x342c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3434, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x343c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3450, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3454, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3458, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3480, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3484, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3488, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x348c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3490, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3494, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x34ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x34b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x34d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 233, 0xFD, 2} + }) // Domain 233 + } +} + +Scope (\_SB.SYST.CL75) { + Device(C234) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13500) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3500, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3504, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3508, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x350c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3510, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3514, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x352c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3534, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x353c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3550, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3554, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3558, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3580, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3584, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3588, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x358c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3590, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3594, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x35ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x35b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x35d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 235, 0xFD, 2} + }) // Domain 235 + } +} + +Scope (\_SB.SYST.CL76) { + Device(C236) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13600) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3600, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3604, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3608, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x360c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3610, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3614, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x362c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3634, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x363c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3650, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3654, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3658, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3680, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3684, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3688, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x368c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3690, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3694, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x36ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x36b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x36d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 237, 0xFD, 2} + }) // Domain 237 + } +} + +Scope (\_SB.SYST.CL77) { + Device(C238) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13700) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3700, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3704, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3708, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x370c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3710, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3714, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x372c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3734, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x373c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3750, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3754, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3758, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3780, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3784, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3788, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x378c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3790, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3794, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x37ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x37b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x37d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 239, 0xFD, 2} + }) // Domain 239 + } +} + +Scope (\_SB.SYST.CL78) { + Device(C240) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13800) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3800, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3804, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3808, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x380c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3810, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3814, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x382c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3834, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x383c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3850, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3854, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3858, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3880, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3884, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3888, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x388c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3890, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3894, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x38ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x38b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x38d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 241, 0xFD, 2} + }) // Domain 241 + } +} + +Scope (\_SB.SYST.CL79) { + Device(C242) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13900) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3900, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3904, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3908, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x390c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3910, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3914, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x392c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3934, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x393c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3950, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3954, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3958, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3980, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3984, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3988, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x398c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3990, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3994, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x39ac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x39b4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39bc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x39d8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 243, 0xFD, 2} + }) // Domain 243 + } +} + +Scope (\_SB.SYST.CL7A) { + Device(C244) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13a00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3a00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3a2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3a34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3a80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3a90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3a94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3aac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3ab4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3abc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ad8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 245, 0xFD, 2} + }) // Domain 245 + } +} + +Scope (\_SB.SYST.CL7B) { + Device(C246) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13b00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3b00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3b2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3b34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3b80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3b90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3b94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3bac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3bb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3bd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 247, 0xFD, 2} + }) // Domain 247 + } +} + +Scope (\_SB.SYST.CL7C) { + Device(C248) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13c00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3c00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3c2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3c34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3c80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3c90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3c94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3cac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3cb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3cd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 249, 0xFD, 2} + }) // Domain 249 + } +} + +Scope (\_SB.SYST.CL7D) { + Device(C250) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13d00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3d00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3d2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3d34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3d80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3d90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3d94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3dac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3db4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3dd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 251, 0xFD, 2} + }) // Domain 251 + } +} + +Scope (\_SB.SYST.CL7E) { + Device(C252) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13e00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3e00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3e2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3e34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3e80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3e90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3e94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3eac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3eb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ebc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3ed8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 253, 0xFD, 2} + }) // Domain 253 + } +} + +Scope (\_SB.SYST.CL7F) { + Device(C254) { + Name(_HID, "ACPI0007") + Name(_UID, 0x13f00) + + Method (_LPI, 0, NotSerialized) { + return(PLPI) + } + + Name(PCPC, Package() { + 23, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3f00, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f04, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f08, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f0c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f10, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f14, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3f2c, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3f34, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f3c, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f50, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f54, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f58, 17)}, // Nomi= nal 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, // NumEn= tries + 3, // Revis= ion + ResourceTemplate(){Register(PCC, 32, 0, 0x3f80, 17)}, // Highe= st Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f84, 17)}, // Nomin= al Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f88, 17)}, // Lowes= t Nonlinear Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f8c, 17)}, // Lowes= t Performance + ResourceTemplate(){Register(PCC, 32, 0, 0x3f90, 17)}, // Guara= nteed Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3f94, 17)}, // Desir= ed Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Minim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Maxim= um Performance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Perfo= rmance Reduction Tolerance Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Time = Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Count= er Wraparound Time + ResourceTemplate(){Register(PCC, 64, 0, 0x3fac, 17)}, // Refe= rence Counter Register + ResourceTemplate(){Register(PCC, 64, 0, 0x3fb4, 17)}, // Deli= vered Counter Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fbc, 17)}, // Per= formance Limited Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Enabl= e Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Selection Enable + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Auton= omous Activity Window Register + ResourceTemplate(){Register(SystemMemory, 0, 0, 0, 0)}, // Energ= y Performance Preference Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd0, 17)}, // Refer= ence Performance Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd4, 17)}, // Lowe= st Frequency Register + ResourceTemplate(){Register(PCC, 32, 0, 0x3fd8, 17)}, // Nomi= nal Frequency Register + }) + If (LEqual(CPCE, 0x1)) { + Method (_CPC, 0, NotSerialized) { + return(PCPC) + } + } + //Performance State dependency + Name(_PSD, Package(){ + Package() {5, 0, 255, 0xFD, 2} + }) // Domain 255 + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi b/Platform/Ampe= re/JadePkg/Ac02AcpiTables/CPU.asi new file mode 100644 index 000000000000..338b1aa03cfb --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CPU.asi @@ -0,0 +1,152 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Scope(\_SB) { + Name (CPCE, 1) // CPPC Enable + Name (LPIE, 0) // LPI Enable + + Method (_OSC, 4, Serialized) { // _OSC: Operating System Capabil= ities + CreateDWordField (Arg3, 0x00, STS0) + CreateDWordField (Arg3, 0x04, CAP0) + If (LEqual(Arg0, ToUUID ("0811b06e-4a27-44f9-8d60-3cbbc22e7b48")) /* P= latform-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, Unrecogniz= ed UUID + } + Return (Arg3) + } + + Name(CLPI, Package() { + 0, // Version + 1, // Level Index + 1, // Count + Package() { + 1, // Min residency (uS) + 1, // Wake latency (uS) + 1, // Flags + 0, // Arch Context Flags + 0, // Residency Counter Frequency + 1, // No parent state + 0x01000000, // Integer Entry method + ResourceTemplate() { // Null Residency Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + ResourceTemplate() { // Null Usage Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + "Standby", + }, + }) + + Name(PLPI, Package() { + 0, // Version + 2, // Level Index + 2, // Count + // WFI for CPU (NS-WFI) + Package() { + 1, // Min residency (uS) + 1, // Wake latency (uS) + 1, // Flags + 0, // Arch Context Flags + 0, // Residency Counter Frequency + 0, // No parent state + ResourceTemplate () { + // Register Entry method + Register (FFixedHW, + 0x20, // Bit Width + 0x00, // Bit Offset + 0xFFFFFFFF, // Address + 0x03, // Access Size + ) + }, + ResourceTemplate() { // Null Residency Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + ResourceTemplate() { // Null Usage Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + "WFI", + }, + + // WFI for CPU (S-WFI) + Package() { + 1, // Min residency (uS) + 2900, // Wake latency (uS) + 1, // Flags + 0, // Arch Context Flags + 0, // Residency Counter Frequency + 1, // No parent state + ResourceTemplate () { + // Register Entry method + Register (FFixedHW, + 0x20, // Bit Width + 0x00, // Bit Offset + 0x01, // Address + 0x03, // Access Size + ) + }, + ResourceTemplate() { // Null Residency Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + ResourceTemplate() { // Null Usage Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + "Standby", + }, + }) + + Device (SYST) { // System state + Name(_HID, "ACPI0010") + Name(_UID, 0) + Name (_LPI, Package() { + 0, // Version + 0, // Level Index + 1, // Count + // Retention state for Cluster + Package() { + 100, // Min residency (uS) + 99, // Wake latency (uS) + 1, // Flags + 0, // Arch Context Flags + 100, // Residency Counter Frequency + 0, // No Parent State + 0x01000100, // Integer Entry method + ResourceTemplate() { // Null Residency Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + ResourceTemplate() { // Null Usage Counter + Register (SystemMemory, 0, 0, 0, 0) + }, + "System Standby" + }, + }) + } +} + +Include ("CPU-S0.asi") +Include ("CPU-S1.asi") diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi b/Pla= tform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi new file mode 100644 index 000000000000..17ecd52a553f --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/CommonDevices.asi @@ -0,0 +1,513 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +// +// Hardware Monitor +Device(HM00) { + Name(_HID, "APMC0D29") + Name(_UID, "HWM0") + Name(_DDN, "HWM0") + Name(_CCA, ONE) + Name(_STR, Unicode("Hardware Monitor Device")) + Method(_STA, 0, NotSerialized) { + return (0xF) + } + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package() { + Package() {"pcc-channel", 14} + } + }) +} + +// +// Hardware Monitor +Device(HM01) { + Name(_HID, "APMC0D29") + Name(_UID, "HWM1") + Name(_DDN, "HWM1") + Name(_CCA, ONE) + Name(_STR, Unicode("Hardware Monitor Device")) + Method(_STA, 0, NotSerialized) { + return (0xF) + } + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package() { + Package() {"pcc-channel", 29} + } + }) +} + +// +// Hardware Monitor +Device(HM02) { + Name(_HID, "AMPC0005") + Name(_UID, "HWM2") + Name(_DDN, "HWM2") + Name(_CCA, ONE) + Name(_STR, Unicode("Altra SoC Hardware Monitor Device")) + Method(_STA, 0, NotSerialized) { + return (0xF) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000088900000, // AddressMinimum - MIN + 0x000000008891FFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000020000 // RangeLength - LEN + ) + }) +} + +// +// Hardware Monitor +Device(HM03) { + Name(_HID, "AMPC0005") + Name(_UID, "HWM3") + Name(_DDN, "HWM3") + Name(_CCA, ONE) + Name(_STR, Unicode("Altra SoC Hardware Monitor Device")) + Method(_STA, 0, NotSerialized) { + return (0xF) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00000000C0000000, // AddressMinimum - MIN + 0x00000000C001FFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000020000 // RangeLength - LEN + ) + }) +} + +// +// DesignWare I2C on AHBC bus +Device(I2C4) { + Name(_HID, "APMC0D0F") + Name(_UID, 4) + Name(_STR, Unicode("Altra Max I2C Device")) + Method(_STA, 0, NotSerialized) { + return (0x0f) + } + Name(_CCA, ONE) + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00001000026B0000, // AddressMinimum - MIN + 0x00001000026BFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000010000 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 105 } + }) + Device (IPI) { + Name(_HID, "AMPC0004") + Name(_CID, "IPI0001") + Name(_STR, Unicode("IPMI_SSIF")) + Name(_UID, 0) + Name(_CCA, ONE) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Method(_IFT) { + Return(0x04) // IPMI SSIF + } + Method(_ADR) { + Return(0x10) // SSIF slave address + } + Method(_SRV) { + Return(0x0200) // IPMI Specification Revision + } + Name(_CRS, ResourceTemplate () + { + I2cSerialBusV2 (0x0010, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C4", + 0x00, ResourceConsumer,, Exclusive, + // Vendor specific data: + // "BMC0", + // Flags (2 bytes): SMBUS variable length (Bit 0), Read Checksum (= Bit 1), Verify Checksum (Bit 2) + RawDataBuffer () { 0x42, 0x4D, 0x43, 0x30, 0x7, 0x0 } + ) + }) + } + Name(SSCN, Package() { 427, 499, 0 }) + Name(FMCN, Package() { 164, 319, 0 }) +} + +// +// Report APEI Errors to GHES via SCI notification. +// SCI notification requires one GED and one HED Device +// GED =3D Generic Event Device (ACPI0013) +// HED =3D Hardware Error Device (PNP0C33) +// +Device(GED0) { + Name(_HID, "ACPI0013") + Name(_UID, Zero) + Method(_STA) { + Return (0xF) + } + Name(_CRS, ResourceTemplate () { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 84 } /= / GHES + }) +} + +// Shutdown button using GED. +Device(GED1) { + Name(_HID, "ACPI0013") + Name(_CID, "ACPI0013") + Name(_UID, One) + Method(_STA) { + Return (0xF) + } + Name(_CRS, ResourceTemplate () { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 327 } + }) + OperationRegion(PDDR, SystemMemory, 0x1000027B0004, 4) + Field(PDDR, DWordAcc, NoLock, Preserve) { + STDI, 8 + } + + OperationRegion(INTE, SystemMemory, 0x1000027B0030, 4) + Field(INTE, DWordAcc, NoLock, Preserve) { + STDE, 8 + } + + OperationRegion(INTT, SystemMemory, 0x1000027B0034, 4) + Field(INTT, DWordAcc, NoLock, Preserve) { + TYPE, 8 + } + + OperationRegion(INTP, SystemMemory, 0x1000027B0038, 4) + Field(INTP, DWordAcc, NoLock, Preserve) { + POLA, 8 + } + + OperationRegion(INTS, SystemMemory, 0x1000027B003c, 4) + Field(INTS, DWordAcc, NoLock, Preserve) { + STDS, 8 + } + + OperationRegion(INTC, SystemMemory, 0x1000027B0040, 4) + Field(INTC, DWordAcc, NoLock, Preserve) { + SINT, 8 + } + + OperationRegion(INTM, SystemMemory, 0x1000027B0044, 4) + Field(INTM, DWordAcc, NoLock, Preserve) { + MASK, 8 + } + + Method(_INI, 0, NotSerialized) { + // Set level type, low active (shutdown) + Store (0x00, TYPE) + Store (0x00, POLA) + // Set Input type (shutdown) + Store (0x00, STDI) + // Enable interrupt (shutdown) + Store (0x80, STDE) + // Unmask the interrupt. + Store (0x00, MASK) + } + Method(_EVT, 1) { + Switch (ToInteger(Arg0)) { + Case (327) { + if (And (STDS, 0x80)) { + //Clear the interrupt. + Store (0x80, SINT) + // Notify OSPM the power button is pressed + Notify (\_SB.PWRB, 0x80) + } + } + } + } +} + +// Power button device description +Device(PWRB) { + Name(_HID, EISAID("PNP0C0C")) + Name(_ADR, 0) + Name(_UID, 0) + Name(_CCA, ONE) + Method(_STA, 0, Notserialized) { + Return (0x0b) + } +} + +// +// UART0 PL011 +Device(URT0) { + Name(_HID, "ARMH0011") + Name(_UID, 0) + Name(_CCA, ONE) + Method(_STA, 0, NotSerialized) { + return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100002600000, // AddressMinimum - MIN + 0x0000100002600FFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000001000 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 98 } + }) +} // UART0 + +// +// UART2 PL011 +Device(URT2) { + Name(_HID, "ARMH0011") + Name(_UID, 1) + Name(_CCA, ONE) + Method(_STA, 0, NotSerialized) { + return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100002620000, // AddressMinimum - MIN + 0x0000100002620FFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000001000 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 100 } + }) +} // UART1 + +Device(HED0) +{ + Name(_HID, EISAID("PNP0C33")) + Name(_UID, Zero) +} + +Device(NVDR) { + Name(_HID, "ACPI0012") + Method(_STA, 0, NotSerialized) { + return (0xf) + } + Method (_DSM, 0x4, Serialized) { + // Not support any functions for now + Return (Buffer() {0}) + } + Device (NVD1) { + Name(_ADR, 0x0330) //NFIT Device Handle (SK0, MCU3, Channel 3, Slot 0) + Name(SMRT, Buffer(13) {0}) + CreateDWordField(SMRT, 0, BSTA) + CreateWordField(SMRT, 4, BHTH) + CreateWordField(SMRT, 6, BTMP) + CreateByteField(SMRT, 8, BETH) + CreateByteField(SMRT, 9, BWTH) + CreateByteField(SMRT, 10, BNLF) + OperationRegion(BUF1, SystemMemory, 0x88980000, 16) + Field (BUF1, DWordAcc, NoLock, Preserve) { + STAT, 32, //Status + HLTH, 16, //Module Health + CTMP, 16, //Module Current Status + ETHS, 8, //Error Threshold Status + WTHS, 8, //Warning Threshold Status + NVLF, 8, //NVM Lifetime + , 40 //Reserve + } + Method (_DSM, 0x4, Serialized) { + //Accept only MSF Family type NVDIMM DSM functions + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) { + //Handle Func 0 query implemented commands + If(LEqual(Arg2, 0)) { + //Check revision and returned proper implemented commands + //Support only health check for now + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1 + } + //Handle MSF DSM Func 11 Get Smart and Health Info + If(LEqual(Arg2, 11)) { + Store(\_SB.NVDR.NVD1.STAT, BSTA) + Store(\_SB.NVDR.NVD1.HLTH, BHTH) + Store(\_SB.NVDR.NVD1.CTMP, BTMP) + Store(\_SB.NVDR.NVD1.ETHS, BETH) + Store(\_SB.NVDR.NVD1.WTHS, BWTH) + Store(\_SB.NVDR.NVD1.NVLF, BNLF) + Return (SMRT) + } + } + + Return (Buffer() {0}) + } + Method(_STA, 0, NotSerialized) { + return (0xf) + } + } + Device (NVD2) { + Name(_ADR, 0x0770) //NFIT Device Handle (SK0, MCU7, Channel 7, Slot 0) + Name(SMRT, Buffer(13) {0}) + CreateDWordField(SMRT, 0, BSTA) + CreateWordField(SMRT, 4, BHTH) + CreateWordField(SMRT, 6, BTMP) + CreateByteField(SMRT, 8, BETH) + CreateByteField(SMRT, 9, BWTH) + CreateByteField(SMRT, 10, BNLF) + OperationRegion(BUF1, SystemMemory, 0x88988000, 16) + Field (BUF1, DWordAcc, NoLock, Preserve) { + STAT, 32, //Status + HLTH, 16, //Module Health + CTMP, 16, //Module Current Status + ETHS, 8, //Error Threshold Status + WTHS, 8, //Warning Threshold Status + NVLF, 8, //NVM Lifetime + , 40 //Reserve + } + Method (_DSM, 0x4, Serialized) { + //Accept only MSF Family type NVDIMM DSM functions + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) { + //Handle Func 0 query implemented commands + If(LEqual(Arg2, 0)) { + //Check revision and returned proper implemented commands + //Support only health check for now + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1 + } + //Handle MSF DSM Func 11 Get Smart and Health Info + If(LEqual(Arg2, 11)) { + Store(\_SB.NVDR.NVD2.STAT, BSTA) + Store(\_SB.NVDR.NVD2.HLTH, BHTH) + Store(\_SB.NVDR.NVD2.CTMP, BTMP) + Store(\_SB.NVDR.NVD2.ETHS, BETH) + Store(\_SB.NVDR.NVD2.WTHS, BWTH) + Store(\_SB.NVDR.NVD2.NVLF, BNLF) + Return (SMRT) + } + } + + Return (Buffer() {0}) + } + Method(_STA, 0, NotSerialized) { + return (0xf) + } + } + Device (NVD3) { + Name(_ADR, 0x1330) //NFIT Device Handle (SK1, MCU3, Channel 3, Slot 0) + Name(SMRT, Buffer(13) {0}) + CreateDWordField(SMRT, 0, BSTA) + CreateWordField(SMRT, 4, BHTH) + CreateWordField(SMRT, 6, BTMP) + CreateByteField(SMRT, 8, BETH) + CreateByteField(SMRT, 9, BWTH) + CreateByteField(SMRT, 10, BNLF) + OperationRegion(BUF1, SystemMemory, 0xC0080000, 16) + Field (BUF1, DWordAcc, NoLock, Preserve) { + STAT, 32, //Status + HLTH, 16, //Module Health + CTMP, 16, //Module Current Status + ETHS, 8, //Error Threshold Status + WTHS, 8, //Warning Threshold Status + NVLF, 8, //NVM Lifetime + , 40 //Reserve + } + Method (_DSM, 0x4, Serialized) { + //Accept only MSF Family type NVDIMM DSM functions + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) { + //Handle Func 0 query implemented commands + If(LEqual(Arg2, 0)) { + //Check revision and returned proper implemented commands + //Support only health check for now + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1 + } + //Handle MSF DSM Func 11 Get Smart and Health Info + If(LEqual(Arg2, 11)) { + Store(\_SB.NVDR.NVD3.STAT, BSTA) + Store(\_SB.NVDR.NVD3.HLTH, BHTH) + Store(\_SB.NVDR.NVD3.CTMP, BTMP) + Store(\_SB.NVDR.NVD3.ETHS, BETH) + Store(\_SB.NVDR.NVD3.WTHS, BWTH) + Store(\_SB.NVDR.NVD3.NVLF, BNLF) + Return (SMRT) + } + } + Return (Buffer() {0}) + } + Method(_STA, 0, NotSerialized) { + return (0xf) + } + } + Device (NVD4) { + Name(_ADR, 0x1770) //NFIT Device Handle (SK1, MCU7, Channel 7, Slot 0) + Name(SMRT, Buffer(13) {0}) + CreateDWordField(SMRT, 0, BSTA) + CreateWordField(SMRT, 4, BHTH) + CreateWordField(SMRT, 6, BTMP) + CreateByteField(SMRT, 8, BETH) + CreateByteField(SMRT, 9, BWTH) + CreateByteField(SMRT, 10, BNLF) + OperationRegion(BUF1, SystemMemory, 0xC0088000, 16) + Field (BUF1, DWordAcc, NoLock, Preserve) { + STAT, 32, //Status + HLTH, 16, //Module Health + CTMP, 16, //Module Current Status + ETHS, 8, //Error Threshold Status + WTHS, 8, //Warning Threshold Status + NVLF, 8, //NVM Lifetime + , 40 //Reserve + } + Method (_DSM, 0x4, Serialized) { + //Accept only MSF Family type NVDIMM DSM functions + If(LEqual(Arg0, ToUUID ("1ee68b36-d4bd-4a1a-9a16-4f8e53d46e05"))) { + //Handle Func 0 query implemented commands + If(LEqual(Arg2, 0)) { + //Check revision and returned proper implemented commands + //Support only health check for now + Return (Buffer() {0x01, 0x08}) //Byte 0: 0x1 + } + //Handle MSF DSM Func 11 Get Smart and Health Info + If(LEqual(Arg2, 11)) { + Store(\_SB.NVDR.NVD4.STAT, BSTA) + Store(\_SB.NVDR.NVD4.HLTH, BHTH) + Store(\_SB.NVDR.NVD4.CTMP, BTMP) + Store(\_SB.NVDR.NVD4.ETHS, BETH) + Store(\_SB.NVDR.NVD4.WTHS, BWTH) + Store(\_SB.NVDR.NVD4.NVLF, BNLF) + Return (SMRT) + } + } + Return (Buffer() {0}) + } + Method(_STA, 0, NotSerialized) { + return (0xf) + } + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl b/Platform/Amp= ere/JadePkg/Ac02AcpiTables/Dsdt.asl new file mode 100644 index 000000000000..ce12272f961d --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/Dsdt.asl @@ -0,0 +1,26 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +DefinitionBlock("Dsdt.aml", "DSDT", 0x02, "Ampere", "Jade", 1) { + // + // Board Model + Name(\BDMD, "Altra Max Jade Board") + Name(AERF, 0) // PCIe AER Firmware-First + + Scope(\_SB) { + Include ("CommonDevices.asi") + Include ("PCI-S0.Rca01.asi") + Include ("PCI-S0.asi") + Include ("PCI-S1.asi") + Include ("PCI-PDRC.asi") + } + + Include ("CPU.asi") + Include ("PMU.asi") + +} // DSDT diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi b/Platform= /Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi new file mode 100644 index 000000000000..51730d391522 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-PDRC.asi @@ -0,0 +1,217 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +// Motherboard resource consumption for PCIE resource reservation +// as upstream discussion "ACPI namespace details for ARM64" +Device (PDRC) { + Name (_HID, EISAID("PNP0C02")) + Name (_UID, 1) + // S0 Start here + Name (PDRS, ResourceTemplate() { + QWordMemory ( // PCIE0 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00003BFFF0000000, // AddressMinimum - MIN + 0x00003BFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE1 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00003FFFF0000000, // AddressMinimum - MIN + 0x00003FFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE2 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000023FFF0000000, // AddressMinimum - MIN + 0x000023FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE3 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000027FFF0000000, // AddressMinimum - MIN + 0x000027FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE4 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00002BFFF0000000, // AddressMinimum - MIN + 0x00002BFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE5 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00002FFFF0000000, // AddressMinimum - MIN + 0x00002FFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + // S1 Start here + QWordMemory ( // PCIE6 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00007BFFF0000000, // AddressMinimum - MIN + 0x00007BFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE7 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00007FFFF0000000, // AddressMinimum - MIN + 0x00007FFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE8 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000063FFF0000000, // AddressMinimum - MIN + 0x000063FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIE9 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000067FFF0000000, // AddressMinimum - MIN + 0x000067FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + QWordMemory ( // PCIEA 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00006BFFF0000000, // AddressMinimum - MIN + 0x00006BFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIEB 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00006FFFF0000000, // AddressMinimum - MIN + 0x00006FFFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIEC 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000033FFF0000000, // AddressMinimum - MIN + 0x000033FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( // PCIED 256M CFG region for ECAM + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x000037FFF0000000, // AddressMinimum - MIN + 0x000037FFFFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + }) + + // Current Resource Settings + Method (_CRS, 0, Serialized) { + Return (PDRS) + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi b/Plat= form/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi new file mode 100644 index 000000000000..1870ad5b3329 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.Rca01.asi @@ -0,0 +1,669 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + 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. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 12) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI0") + Name (_STR, Unicode("PCIe 0 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 128/129/130/131 respectively. PCI0 RCA0 + // + Package() {0x0001FFFF, 0, 0, 128}, + Package() {0x0001FFFF, 1, 0, 129}, + Package() {0x0001FFFF, 2, 0, 130}, + Package() {0x0001FFFF, 3, 0, 131}, + Package() {0x0002FFFF, 0, 0, 128}, + Package() {0x0002FFFF, 1, 0, 129}, + Package() {0x0002FFFF, 2, 0, 130}, + Package() {0x0002FFFF, 3, 0, 131}, + Package() {0x0003FFFF, 0, 0, 128}, + Package() {0x0003FFFF, 1, 0, 129}, + Package() {0x0003FFFF, 2, 0, 130}, + Package() {0x0003FFFF, 3, 0, 131}, + Package() {0x0004FFFF, 0, 0, 128}, + Package() {0x0004FFFF, 1, 0, 129}, + Package() {0x0004FFFF, 2, 0, 130}, + Package() {0x0004FFFF, 3, 0, 131}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x33FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000040000000, // AddressMinimum - MIN + 0x000000004FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000300000000000, // AddressMinimum - MIN + 0x000033FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI0 RCA0 + +// PCI1 RCA1 +Device (PCI1) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 13) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI1") + Name (_STR, Unicode("PCIe 1 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 132/133/134/135 respectively. PCI1 RCA1 + // + Package() {0x0001FFFF, 0, 0, 132}, + Package() {0x0001FFFF, 1, 0, 133}, + Package() {0x0001FFFF, 2, 0, 134}, + Package() {0x0001FFFF, 3, 0, 135}, + Package() {0x0002FFFF, 0, 0, 132}, + Package() {0x0002FFFF, 1, 0, 133}, + Package() {0x0002FFFF, 2, 0, 134}, + Package() {0x0002FFFF, 3, 0, 135}, + Package() {0x0003FFFF, 0, 0, 132}, + Package() {0x0003FFFF, 1, 0, 133}, + Package() {0x0003FFFF, 2, 0, 134}, + Package() {0x0003FFFF, 3, 0, 135}, + Package() {0x0004FFFF, 0, 0, 132}, + Package() {0x0004FFFF, 1, 0, 133}, + Package() {0x0004FFFF, 2, 0, 134}, + Package() {0x0004FFFF, 3, 0, 135}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x37FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000050000000, // AddressMinimum - MIN + 0x000000005FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000010000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + Cacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000340000000000, // AddressMinimum - MIN + 0x000037FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI1 RCA1 diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/PCI-S0.asi new file mode 100644 index 000000000000..b6cf18fb2218 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S0.asi @@ -0,0 +1,2041 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +// PCI2 RCA2 +Device (PCI2) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 1) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI2") + Name (_STR, Unicode("PCIe 2 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 136/137/138/139 respectively. PCI2 RCA2 + // + Package() {0x0001FFFF, 0, 0, 136}, + Package() {0x0001FFFF, 1, 0, 137}, + Package() {0x0001FFFF, 2, 0, 138}, + Package() {0x0001FFFF, 3, 0, 139}, + Package() {0x0002FFFF, 0, 0, 136}, + Package() {0x0002FFFF, 1, 0, 137}, + Package() {0x0002FFFF, 2, 0, 138}, + Package() {0x0002FFFF, 3, 0, 139}, + Package() {0x0003FFFF, 0, 0, 136}, + Package() {0x0003FFFF, 1, 0, 137}, + Package() {0x0003FFFF, 2, 0, 138}, + Package() {0x0003FFFF, 3, 0, 139}, + Package() {0x0004FFFF, 0, 0, 136}, + Package() {0x0004FFFF, 1, 0, 137}, + Package() {0x0004FFFF, 2, 0, 138}, + Package() {0x0004FFFF, 3, 0, 139}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x3BFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE80000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000030000000, // AddressMinimum - MIN + 0x0000000037FFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000380000000000, // AddressMinimum - MIN + 0x00003BFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP, 0) // PCI _OSC Support Field value + Name (CTRL, 0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3,0,CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI2 RCA2 + +// PCI3 RCA3 +Device (PCI3) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 0) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI3") + Name (_STR, Unicode("PCIe 3 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 140/141/142/143 respectively. PCI3 RCA3 + // + Package() {0x0001FFFF, 0, 0, 140}, + Package() {0x0001FFFF, 1, 0, 141}, + Package() {0x0001FFFF, 2, 0, 142}, + Package() {0x0001FFFF, 3, 0, 143}, + Package() {0x0002FFFF, 0, 0, 140}, + Package() {0x0002FFFF, 1, 0, 141}, + Package() {0x0002FFFF, 2, 0, 142}, + Package() {0x0002FFFF, 3, 0, 143}, + Package() {0x0003FFFF, 0, 0, 140}, + Package() {0x0003FFFF, 1, 0, 141}, + Package() {0x0003FFFF, 2, 0, 142}, + Package() {0x0003FFFF, 3, 0, 143}, + Package() {0x0004FFFF, 0, 0, 140}, + Package() {0x0004FFFF, 1, 0, 141}, + Package() {0x0004FFFF, 2, 0, 142}, + Package() {0x0004FFFF, 3, 0, 143}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x3FFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE00000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000038000000, // AddressMinimum - MIN + 0x000000003FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00003C0000000000, // AddressMinimum - MIN + 0x00003FFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP, 0) // PCI _OSC Support Field value + Name (CTRL, 0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI3 RCA3 + +// PCI4 RCA4 +Device (PCI4) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 2) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI4") + Name (_STR, Unicode("PCIe 4 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 144/145/146/147 respectively. PCI4 RCA4 + // + Package() {0x0001FFFF, 0, 0, 144}, + Package() {0x0001FFFF, 1, 0, 145}, + Package() {0x0001FFFF, 2, 0, 146}, + Package() {0x0001FFFF, 3, 0, 147}, + Package() {0x0002FFFF, 0, 0, 144}, + Package() {0x0002FFFF, 1, 0, 145}, + Package() {0x0002FFFF, 2, 0, 146}, + Package() {0x0002FFFF, 3, 0, 147}, + Package() {0x0003FFFF, 0, 0, 144}, + Package() {0x0003FFFF, 1, 0, 145}, + Package() {0x0003FFFF, 2, 0, 146}, + Package() {0x0003FFFF, 3, 0, 147}, + Package() {0x0004FFFF, 0, 0, 144}, + Package() {0x0004FFFF, 1, 0, 145}, + Package() {0x0004FFFF, 2, 0, 146}, + Package() {0x0004FFFF, 3, 0, 147}, + Package() {0x0005FFFF, 0, 0, 144}, + Package() {0x0005FFFF, 1, 0, 145}, + Package() {0x0005FFFF, 2, 0, 146}, + Package() {0x0005FFFF, 3, 0, 147}, + Package() {0x0006FFFF, 0, 0, 144}, + Package() {0x0006FFFF, 1, 0, 145}, + Package() {0x0006FFFF, 2, 0, 146}, + Package() {0x0006FFFF, 3, 0, 147}, + Package() {0x0007FFFF, 0, 0, 144}, + Package() {0x0007FFFF, 1, 0, 145}, + Package() {0x0007FFFF, 2, 0, 146}, + Package() {0x0007FFFF, 3, 0, 147}, + Package() {0x0008FFFF, 0, 0, 144}, + Package() {0x0008FFFF, 1, 0, 145}, + Package() {0x0008FFFF, 2, 0, 146}, + Package() {0x0008FFFF, 3, 0, 147}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x23FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FEC0000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000004000000, // AddressMinimum - MIN + 0x0000000007FFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000004000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000200000000000, // AddressMinimum - MIN + 0x000023FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) + { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI4 RCA4 + +// PCI5 RCA5 +Device (PCI5) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID,"PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 3) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI5") + Name (_STR, Unicode("PCIe 5 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 148/149/150/151 respectively. PCI5 RCA5 + // + Package() {0x0001FFFF, 0, 0, 148}, + Package() {0x0001FFFF, 1, 0, 149}, + Package() {0x0001FFFF, 2, 0, 150}, + Package() {0x0001FFFF, 3, 0, 151}, + Package() {0x0002FFFF, 0, 0, 148}, + Package() {0x0002FFFF, 1, 0, 149}, + Package() {0x0002FFFF, 2, 0, 150}, + Package() {0x0002FFFF, 3, 0, 151}, + Package() {0x0003FFFF, 0, 0, 148}, + Package() {0x0003FFFF, 1, 0, 149}, + Package() {0x0003FFFF, 2, 0, 150}, + Package() {0x0003FFFF, 3, 0, 151}, + Package() {0x0004FFFF, 0, 0, 148}, + Package() {0x0004FFFF, 1, 0, 149}, + Package() {0x0004FFFF, 2, 0, 150}, + Package() {0x0004FFFF, 3, 0, 151}, + Package() {0x0005FFFF, 0, 0, 148}, + Package() {0x0005FFFF, 1, 0, 149}, + Package() {0x0005FFFF, 2, 0, 150}, + Package() {0x0005FFFF, 3, 0, 151}, + Package() {0x0006FFFF, 0, 0, 148}, + Package() {0x0006FFFF, 1, 0, 149}, + Package() {0x0006FFFF, 2, 0, 150}, + Package() {0x0006FFFF, 3, 0, 151}, + Package() {0x0007FFFF, 0, 0, 148}, + Package() {0x0007FFFF, 1, 0, 149}, + Package() {0x0007FFFF, 2, 0, 150}, + Package() {0x0007FFFF, 3, 0, 151}, + Package() {0x0008FFFF, 0, 0, 148}, + Package() {0x0008FFFF, 1, 0, 149}, + Package() {0x0008FFFF, 2, 0, 150}, + Package() {0x0008FFFF, 3, 0, 151}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x27FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FF00000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000008000000, // AddressMinimum - MIN + 0x000000000FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000240000000000, // AddressMinimum - MIN + 0x000027FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP, 0) // PCI _OSC Support Field value + Name (CTRL, 0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) + { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI5 RCA5 + + +// PCI6 RCA6 +Device (PCI6) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID,"PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID,"PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 4) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI6") + Name (_STR, Unicode("PCIe 6 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 152/153/154/155 respectively. PCI6 RCA6 + // + Package() {0x0001FFFF, 0, 0, 152}, + Package() {0x0001FFFF, 1, 0, 153}, + Package() {0x0001FFFF, 2, 0, 154}, + Package() {0x0001FFFF, 3, 0, 155}, + Package() {0x0002FFFF, 0, 0, 152}, + Package() {0x0002FFFF, 1, 0, 153}, + Package() {0x0002FFFF, 2, 0, 154}, + Package() {0x0002FFFF, 3, 0, 155}, + Package() {0x0003FFFF, 0, 0, 152}, + Package() {0x0003FFFF, 1, 0, 153}, + Package() {0x0003FFFF, 2, 0, 154}, + Package() {0x0003FFFF, 3, 0, 155}, + Package() {0x0004FFFF, 0, 0, 152}, + Package() {0x0004FFFF, 1, 0, 153}, + Package() {0x0004FFFF, 2, 0, 154}, + Package() {0x0004FFFF, 3, 0, 155}, + Package() {0x0005FFFF, 0, 0, 152}, + Package() {0x0005FFFF, 1, 0, 153}, + Package() {0x0005FFFF, 2, 0, 154}, + Package() {0x0005FFFF, 3, 0, 155}, + Package() {0x0006FFFF, 0, 0, 152}, + Package() {0x0006FFFF, 1, 0, 153}, + Package() {0x0006FFFF, 2, 0, 154}, + Package() {0x0006FFFF, 3, 0, 155}, + Package() {0x0007FFFF, 0, 0, 152}, + Package() {0x0007FFFF, 1, 0, 153}, + Package() {0x0007FFFF, 2, 0, 154}, + Package() {0x0007FFFF, 3, 0, 155}, + Package() {0x0008FFFF, 0, 0, 152}, + Package() {0x0008FFFF, 1, 0, 153}, + Package() {0x0008FFFF, 2, 0, 154}, + Package() {0x0008FFFF, 3, 0, 155}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x2BFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000010000000, // AddressMinimum - MIN + 0x0000000017FFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000280000000000, // AddressMinimum - MIN + 0x00002BFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3,0,CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3,4,CDW2) + CreateDWordField (Arg3,8,CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2,SUPP) + Store (CDW3,CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL,0x1E,CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1,One)) { + Or (CDW1,0x08,CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3,CTRL)) { + Or (CDW1,0x10,CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL,CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1,4,CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI6 RCA6 + +// PCI7 RCA7 +Device (PCI7) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID,"PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID,"PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 5) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCI7") + Name (_STR, Unicode("PCIe 7 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 156/157/158/159 respectively. PCI7 RCA7 + // + Package() {0x0001FFFF, 0, 0, 156}, + Package() {0x0001FFFF, 1, 0, 157}, + Package() {0x0001FFFF, 2, 0, 158}, + Package() {0x0001FFFF, 3, 0, 159}, + Package() {0x0002FFFF, 0, 0, 156}, + Package() {0x0002FFFF, 1, 0, 157}, + Package() {0x0002FFFF, 2, 0, 158}, + Package() {0x0002FFFF, 3, 0, 159}, + Package() {0x0003FFFF, 0, 0, 156}, + Package() {0x0003FFFF, 1, 0, 157}, + Package() {0x0003FFFF, 2, 0, 158}, + Package() {0x0003FFFF, 3, 0, 159}, + Package() {0x0004FFFF, 0, 0, 156}, + Package() {0x0004FFFF, 1, 0, 157}, + Package() {0x0004FFFF, 2, 0, 158}, + Package() {0x0004FFFF, 3, 0, 159}, + Package() {0x0005FFFF, 0, 0, 156}, + Package() {0x0005FFFF, 1, 0, 157}, + Package() {0x0005FFFF, 2, 0, 158}, + Package() {0x0005FFFF, 3, 0, 159}, + Package() {0x0006FFFF, 0, 0, 156}, + Package() {0x0006FFFF, 1, 0, 157}, + Package() {0x0006FFFF, 2, 0, 158}, + Package() {0x0006FFFF, 3, 0, 159}, + Package() {0x0007FFFF, 0, 0, 156}, + Package() {0x0007FFFF, 1, 0, 157}, + Package() {0x0007FFFF, 2, 0, 158}, + Package() {0x0007FFFF, 3, 0, 159}, + Package() {0x0008FFFF, 0, 0, 156}, + Package() {0x0008FFFF, 1, 0, 157}, + Package() {0x0008FFFF, 2, 0, 158}, + Package() {0x0008FFFF, 3, 0, 159}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x2FFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FF40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000018000000, // AddressMinimum - MIN + 0x000000001FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00002C0000000000, // AddressMinimum - MIN + 0x00002FFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3,0,CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3,4,CDW2) + CreateDWordField (Arg3,8,CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2,SUPP) + Store (CDW3,CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL,0x1E,CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1,One)) { + Or (CDW1,0x08,CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3,CTRL)) { + Or (CDW1,0x10,CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL,CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1,4,CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCI7 RCA7 diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/PCI-S1.asi new file mode 100644 index 000000000000..cb03247895a6 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PCI-S1.asi @@ -0,0 +1,2051 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +// +// S1 Start here +// + +// PCIE6 S1 RCA2 +Device (PCIA) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID,"PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID,"PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 6) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCIA") + Name (_STR, Unicode("PCIe 10 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 136/137/138/139 + 320 respectively. PCIA RCA2 + // + Package() {0x0001FFFF, 0, 0, 456}, + Package() {0x0001FFFF, 1, 0, 457}, + Package() {0x0001FFFF, 2, 0, 458}, + Package() {0x0001FFFF, 3, 0, 459}, + Package() {0x0002FFFF, 0, 0, 456}, + Package() {0x0002FFFF, 1, 0, 457}, + Package() {0x0002FFFF, 2, 0, 458}, + Package() {0x0002FFFF, 3, 0, 459}, + Package() {0x0003FFFF, 0, 0, 456}, + Package() {0x0003FFFF, 1, 0, 457}, + Package() {0x0003FFFF, 2, 0, 458}, + Package() {0x0003FFFF, 3, 0, 459}, + Package() {0x0004FFFF, 0, 0, 456}, + Package() {0x0004FFFF, 1, 0, 457}, + Package() {0x0004FFFF, 2, 0, 458}, + Package() {0x0004FFFF, 3, 0, 459}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x7BFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FF80000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000070000000, // AddressMinimum - MIN + 0x0000000077FFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000780000000000, // AddressMinimum - MIN + 0x00007BFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3,0,CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3,4,CDW2) + CreateDWordField (Arg3,8,CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2,SUPP) + Store (CDW3,CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL,0x1E,CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1,One)) { + Or (CDW1,0x08,CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3,CTRL)) { + Or (CDW1,0x10,CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL,CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1,4,CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCIA RCA2 + +// PCIEB RCA3 +Device (PCIB) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID,"PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID,"PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 7) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCIB") + Name (_STR, Unicode("PCIe 11 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 140/141/142/143 + 320 respectively. PCIB RCA3 + // + Package() {0x0001FFFF, 0, 0, 460}, + Package() {0x0001FFFF, 1, 0, 461}, + Package() {0x0001FFFF, 2, 0, 462}, + Package() {0x0001FFFF, 3, 0, 463}, + Package() {0x0002FFFF, 0, 0, 460}, + Package() {0x0002FFFF, 1, 0, 461}, + Package() {0x0002FFFF, 2, 0, 462}, + Package() {0x0002FFFF, 3, 0, 463}, + Package() {0x0003FFFF, 0, 0, 460}, + Package() {0x0003FFFF, 1, 0, 461}, + Package() {0x0003FFFF, 2, 0, 462}, + Package() {0x0003FFFF, 3, 0, 463}, + Package() {0x0004FFFF, 0, 0, 460}, + Package() {0x0004FFFF, 1, 0, 461}, + Package() {0x0004FFFF, 2, 0, 462}, + Package() {0x0004FFFF, 3, 0, 463}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x7FFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FFC0000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000078000000, // AddressMinimum - MIN + 0x000000007FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00007C0000000000, // AddressMinimum - MIN + 0x00007FFFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3,0,CDW1) + If (LEqual (Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3,4,CDW2) + CreateDWordField (Arg3,8,CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2,SUPP) + Store (CDW3,CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL,0x1E,CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1,One)) { + Or (CDW1,0x08,CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3,CTRL)) { + Or (CDW1,0x10,CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL,CDW3) + Return (Arg3) + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1,4,CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0,ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCIB RCA3 + +// PCIC RCA4 +Device (PCIC) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 8) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCIC") + Name (_STR, Unicode("PCIe 12 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 144/145/146/147 + 320 respectively. PCIC RCA4 + // + Package() {0x0001FFFF, 0, 0, 464}, + Package() {0x0001FFFF, 1, 0, 465}, + Package() {0x0001FFFF, 2, 0, 466}, + Package() {0x0001FFFF, 3, 0, 467}, + Package() {0x0002FFFF, 0, 0, 464}, + Package() {0x0002FFFF, 1, 0, 465}, + Package() {0x0002FFFF, 2, 0, 466}, + Package() {0x0002FFFF, 3, 0, 467}, + Package() {0x0003FFFF, 0, 0, 464}, + Package() {0x0003FFFF, 1, 0, 465}, + Package() {0x0003FFFF, 2, 0, 466}, + Package() {0x0003FFFF, 3, 0, 467}, + Package() {0x0004FFFF, 0, 0, 464}, + Package() {0x0004FFFF, 1, 0, 465}, + Package() {0x0004FFFF, 2, 0, 466}, + Package() {0x0004FFFF, 3, 0, 467}, + Package() {0x0005FFFF, 0, 0, 464}, + Package() {0x0005FFFF, 1, 0, 465}, + Package() {0x0005FFFF, 2, 0, 466}, + Package() {0x0005FFFF, 3, 0, 467}, + Package() {0x0006FFFF, 0, 0, 464}, + Package() {0x0006FFFF, 1, 0, 465}, + Package() {0x0006FFFF, 2, 0, 466}, + Package() {0x0006FFFF, 3, 0, 467}, + Package() {0x0007FFFF, 0, 0, 464}, + Package() {0x0007FFFF, 1, 0, 465}, + Package() {0x0007FFFF, 2, 0, 466}, + Package() {0x0007FFFF, 3, 0, 467}, + Package() {0x0008FFFF, 0, 0, 464}, + Package() {0x0008FFFF, 1, 0, 465}, + Package() {0x0008FFFF, 2, 0, 466}, + Package() {0x0008FFFF, 3, 0, 467}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x63FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000040000000, // AddressMinimum - MIN + 0x0000000047FFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000600000000000, // AddressMinimum - MIN + 0x000063FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCIC RCA4 + +// PCID RCA5 +Device (PCID) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 9) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCID") + Name (_STR, Unicode("PCIe 13 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 148/149/150/151 + 320 respectively. PCID RCA5 + // + Package() {0x0001FFFF, 0, 0, 468}, + Package() {0x0001FFFF, 1, 0, 469}, + Package() {0x0001FFFF, 2, 0, 470}, + Package() {0x0001FFFF, 3, 0, 471}, + Package() {0x0002FFFF, 0, 0, 468}, + Package() {0x0002FFFF, 1, 0, 469}, + Package() {0x0002FFFF, 2, 0, 470}, + Package() {0x0002FFFF, 3, 0, 471}, + Package() {0x0003FFFF, 0, 0, 468}, + Package() {0x0003FFFF, 1, 0, 469}, + Package() {0x0003FFFF, 2, 0, 470}, + Package() {0x0003FFFF, 3, 0, 471}, + Package() {0x0004FFFF, 0, 0, 468}, + Package() {0x0004FFFF, 1, 0, 469}, + Package() {0x0004FFFF, 2, 0, 470}, + Package() {0x0004FFFF, 3, 0, 471}, + Package() {0x0005FFFF, 0, 0, 468}, + Package() {0x0005FFFF, 1, 0, 469}, + Package() {0x0005FFFF, 2, 0, 470}, + Package() {0x0005FFFF, 3, 0, 471}, + Package() {0x0006FFFF, 0, 0, 468}, + Package() {0x0006FFFF, 1, 0, 469}, + Package() {0x0006FFFF, 2, 0, 470}, + Package() {0x0006FFFF, 3, 0, 471}, + Package() {0x0007FFFF, 0, 0, 468}, + Package() {0x0007FFFF, 1, 0, 469}, + Package() {0x0007FFFF, 2, 0, 470}, + Package() {0x0007FFFF, 3, 0, 471}, + Package() {0x0008FFFF, 0, 0, 468}, + Package() {0x0008FFFF, 1, 0, 469}, + Package() {0x0008FFFF, 2, 0, 470}, + Package() {0x0008FFFF, 3, 0, 471}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x67FFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000048000000, // AddressMinimum - MIN + 0x000000004FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000640000000000, // AddressMinimum - MIN + 0x000067FFDFFFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCID RCA5 + +// PCIE RCA6 +Device (PCIE) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 10) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCIE") + Name (_STR, Unicode("PCIe 14 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 152/153/154/155 + 320 respectively. PCIE RCA6 + // + Package() {0x0001FFFF, 0, 0, 472}, + Package() {0x0001FFFF, 1, 0, 473}, + Package() {0x0001FFFF, 2, 0, 474}, + Package() {0x0001FFFF, 3, 0, 475}, + Package() {0x0002FFFF, 0, 0, 472}, + Package() {0x0002FFFF, 1, 0, 473}, + Package() {0x0002FFFF, 2, 0, 474}, + Package() {0x0002FFFF, 3, 0, 475}, + Package() {0x0003FFFF, 0, 0, 472}, + Package() {0x0003FFFF, 1, 0, 473}, + Package() {0x0003FFFF, 2, 0, 474}, + Package() {0x0003FFFF, 3, 0, 475}, + Package() {0x0004FFFF, 0, 0, 472}, + Package() {0x0004FFFF, 1, 0, 473}, + Package() {0x0004FFFF, 2, 0, 474}, + Package() {0x0004FFFF, 3, 0, 475}, + Package() {0x0005FFFF, 0, 0, 472}, + Package() {0x0005FFFF, 1, 0, 473}, + Package() {0x0005FFFF, 2, 0, 474}, + Package() {0x0005FFFF, 3, 0, 475}, + Package() {0x0006FFFF, 0, 0, 472}, + Package() {0x0006FFFF, 1, 0, 473}, + Package() {0x0006FFFF, 2, 0, 474}, + Package() {0x0006FFFF, 3, 0, 475}, + Package() {0x0007FFFF, 0, 0, 472}, + Package() {0x0007FFFF, 1, 0, 473}, + Package() {0x0007FFFF, 2, 0, 474}, + Package() {0x0007FFFF, 3, 0, 475}, + Package() {0x0008FFFF, 0, 0, 472}, + Package() {0x0008FFFF, 1, 0, 473}, + Package() {0x0008FFFF, 2, 0, 474}, + Package() {0x0008FFFF, 3, 0, 475}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x6BFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000050000000, // AddressMinimum - MIN + 0x0000000057FFFFFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000680000000000, // AddressMinimum - MIN + 0x00006BFFDFFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCIE RCA6 + +// PCIF RCA7 +Device (PCIF) { + // + // Hardware ID must be PNP0A08, which maps to a PCIe root complex. + // Section 6.1.5 + // + + Name (_HID, "PNP0A08") + Name (_CCA, ONE) + + Method (_STA, 0, NotSerialized) { + Return (0xF) // The default value is 0x0. Unfortu= nately, it breaks + // run-time patching as the represen= tation of 0 is special + // encoding and cannot be patched to= expand with extra bytes + // easily. As such, we default to 0x= F and patch this based + // on whether the port was enabled o= r not by the BIOS. + } + + // + // Optionally, include a compatible ID of PNP0A03, which maps to a PCI + // root complex for use with pre-PCIe operating systems. + // Section 6.1.2 + // + + Name (_CID, "PNP0A03") + + // + // Declare the segment number of this root complex. Most systems only + // have one segment, which is numbered 0. + // Section 6.5.6 + // + + Name (_SEG, 11) + + // + // Declare the base bus number, which is the bus number of the root + // bus in this root complex. This is usually 0, but need not be. + // For root complexes supporting multiple root busses, this should + // be the lowest numbered root bus. + // Section 6.5.5 + // + + Name (_BBN, 0) + + // + // The _UID value provides a way of uniquely identifying a device + // in the case where more than one instance of a specific device + // is implemented with the same _HID/_CID. For systems with a + // single root complex, this is usually just 0. For systems with + // multiple root complexes, this should be different for each + // root complex. + // Section 6.1.12 + // + + Name (_UID, "PCIF") + Name (_STR, Unicode("PCIe 15 Device")) + + // + // Declare the PCI Routing Table. + // This defines SPI mappings of the four line-based interrupts + // associated with the root complex and hierarchy below it. + // Section 6.2.12 + // + + Name (_PRT, Package() { + + // + // Routing for device 0, all functions. + // Note: ARM doesn't support LNK nodes, so the third param + // is 0 and the fourth param is the SPI number of the interrupt + // line. In this example, the A/B/C/D interrupts are wired to + // SPI lines 156/157/158/159 + 320 respectively. PCIF RCA7 + // + Package() {0x0001FFFF, 0, 0, 476}, + Package() {0x0001FFFF, 1, 0, 477}, + Package() {0x0001FFFF, 2, 0, 478}, + Package() {0x0001FFFF, 3, 0, 479}, + Package() {0x0002FFFF, 0, 0, 476}, + Package() {0x0002FFFF, 1, 0, 477}, + Package() {0x0002FFFF, 2, 0, 478}, + Package() {0x0002FFFF, 3, 0, 479}, + Package() {0x0003FFFF, 0, 0, 476}, + Package() {0x0003FFFF, 1, 0, 477}, + Package() {0x0003FFFF, 2, 0, 478}, + Package() {0x0003FFFF, 3, 0, 479}, + Package() {0x0004FFFF, 0, 0, 476}, + Package() {0x0004FFFF, 1, 0, 477}, + Package() {0x0004FFFF, 2, 0, 478}, + Package() {0x0004FFFF, 3, 0, 479}, + Package() {0x0005FFFF, 0, 0, 476}, + Package() {0x0005FFFF, 1, 0, 477}, + Package() {0x0005FFFF, 2, 0, 478}, + Package() {0x0005FFFF, 3, 0, 479}, + Package() {0x0006FFFF, 0, 0, 476}, + Package() {0x0006FFFF, 1, 0, 477}, + Package() {0x0006FFFF, 2, 0, 478}, + Package() {0x0006FFFF, 3, 0, 479}, + Package() {0x0007FFFF, 0, 0, 476}, + Package() {0x0007FFFF, 1, 0, 477}, + Package() {0x0007FFFF, 2, 0, 478}, + Package() {0x0007FFFF, 3, 0, 479}, + Package() {0x0008FFFF, 0, 0, 476}, + Package() {0x0008FFFF, 1, 0, 477}, + Package() {0x0008FFFF, 2, 0, 478}, + Package() {0x0008FFFF, 3, 0, 479}, + }) + + // + // Declare the resources assigned to this root complex. + // Section 6.2.2 + // + Method (_CBA, 0, Serialized) { + Return (0x6FFFF0000000) + } + + Name (RBUF, ResourceTemplate () { + + // + // Declare the range of bus numbers assigned to this root + // complex. In this example, the minimum bus number will be + // 0, the maximum bus number will be 0xFF, supporting + // 256 busses total. + // Section 19.5.141 + // + + WordBusNumber ( + ResourceProducer, + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + PosDecode, // Decode + 0, // AddressGranularity + 0, // AddressMinimum - Minimum Bus Number + 255, // AddressMaximum - Maximum Bus Number + 0, // AddressTranslation - Set to 0 + 256) // RangeLength - Number of Busses + + // + // Declare the memory range to be used for BAR memory + // windows. This declares a 4GB region starting at + // 0x4000000000. + // Section 19.5.80 + // + // Memory32Fixed (ReadWrite, 0x1FE40000, 0x10000, ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000000058000000, // AddressMinimum - MIN + 0x000000005FFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000008000000 // RangeLength - LEN + ) + + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // NonCacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x00006C0000000000, // AddressMinimum - MIN + 0x00006FFFDFFFFFFF, // AddressMinimum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x000003FFE0000000 // RangeLength - LEN + ) + }) + + Method (_CRS, 0, Serialized) { + Return (RBUF) + } + + // + // Declare an _OSC (OS Control Handoff) method which takes 4 arguments. + // + // Argments: + // Arg0 A Buffer containing a UUID + // Arg1 An Integer containing a Revision ID of the buffer format + // Arg2 An Integer containing a count of entries in Arg3 + // Arg3 A Buffer containing a list of DWORD capabilities + // Return Value: + // A Buffer containing a list of capabilities + // See the APCI spec, Section 6.2.10, + // and the PCI FW spec, Section 4.5. + // + // The following is an example, and may need modification for + // specific implementations. + // + + Name (SUPP,0) // PCI _OSC Support Field value + Name (CTRL,0) // PCI _OSC Control Field value + + Method (_OSC, 4) { + + // + // Look for the PCI Host Bridge Interface UUID. + // Section 6.2.10.3 + // + + // + // Create DWord-adressable fields from the Capabilities Buffer + // Create CDW1 outside the test as it's used in the else clause. + // + + CreateDWordField (Arg3, 0, CDW1) + If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { + + CreateDWordField (Arg3, 4, CDW2) + CreateDWordField (Arg3, 8, CDW3) + + // + // Save Capabilities DWord 2 & 3 + // + + Store (CDW2, SUPP) + Store (CDW3, CTRL) + + // + // Only allow native hot plug control if OS supports: + // ASPM + // Clock PM + // MSI/MSI-X + // + + If (LNotEqual (And (SUPP, 0x16), 0x16)) { + + // + // Mask bit 0 (and undefined bits) + // + + And (CTRL, 0x1E, CTRL) + } + + // + // Never allow native Hot plug, PME. + // Never allow SHPC (no SHPC controller in this system). + // Only allow PCIe AER control if PCIe AER Firmware-First is disabled + // Allows PCI Express Capability Structure control + // + + if (AERF) { + And (CTRL, 0x10, CTRL) + } Else { + And (CTRL, 0x18, CTRL) + } + + // + // Check for unknown revision. + // + + If (LNotEqual (Arg1, One)) { + Or (CDW1, 0x08, CDW1) + } + + // + // Check if capabilities bits were masked. + // + + If (LNotEqual (CDW3, CTRL)) { + Or (CDW1, 0x10, CDW1) + } + + // + // Update DWORD3 in the buffer. + // + + Store (CTRL, CDW3) + Return (Arg3) + + } Else { + + // + // Unrecognized UUID + // + + Or (CDW1, 4, CDW1) + Return (Arg3) + } + } // End _OSC + + // + // Declare a _DSM method for various functions called by the OS. + // See the APCI spec, Section 9.14.1, + // and the PCI FW spec, Section 4.6. + // See also: + // http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-= d599bac8184a/PCI-rsc.doc + // + + Method (_DSM, 0x4, Serialized) { + + // + // Match against the _DSM PCI GUID. + // + + If (LEqual (Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) { + + Switch (ToInteger(Arg2)) { + // + // Function 0: Return supported functions as a bitfield + // with one bit for each supported function. + // Bit 0 must always be set, as that represents + // function 0 (which is what is being called here). + // Support for different functions may depend on + // the revision ID of the interface, passed as Arg1. + // + + Case (0) { + + // + // Functions 0-7 are supported. + // + + Return (Buffer() {0x01}) + } + } + } + + // + // If not one of the function identifiers we recognize, then return a = buffer + // with bit 0 set to 0 indicating no functions supported. + // + + Return (Buffer() {0}) + } + + // + // Root Port 0 Device within the Root Complex. + // + Device (RP0) { + // + // Device 0, Function 0. + // + + Name (_ADR, 0x00000000) + } + + Method (_PXM, 0, NotSerialized) { + // Patch by code + Return(0xFF) + } +} // PCIF RCA7 diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/PMU-S0.asi new file mode 100644 index 000000000000..9a3444e468e8 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S0.asi @@ -0,0 +1,1292 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Scope(\_SB) { + Device(CMN0) { + Name(_HID, "ARMHC600") // Device Identification Objects + Name(_CID, "ARMHC600") + Name(_UID, 0) + Name(_CCA, ONE) + Name(_STR, Unicode("CMN0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceConsumer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100010000000, // AddressMinimum - MIN + 0x0000100013ffffff, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000004000000 // RangeLength - LEN + ) + QWordMemory ( + ResourceConsumer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100012f00000, // AddressMinimum - MIN + 0x0000100013ffffff, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000001100000 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 314 } + }) + } + + Device(MC00) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100090000A00, // AddressMinimum - MIN + 0x0000100090000BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 248 } + }) + } + + Device(MC01) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 1) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100090400A00, // AddressMinimum - MIN + 0x0000100090400BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 249 } + }) + } + + Device(MC02) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 2) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU2")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100090800A00, // AddressMinimum - MIN + 0x0000100090800BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 250 } + }) + } + + Device(MC03) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 3) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU3")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100090C00A00, // AddressMinimum - MIN + 0x0000100090C00BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 251 } + }) + } + + Device(MC04) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 4) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU4")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100091000A00, // AddressMinimum - MIN + 0x0000100091000BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 252 } + }) + } + + Device(MC05) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 5) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU5")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100091400A00, // AddressMinimum - MIN + 0x0000100091400BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 253 } + }) + } + + Device(MC06) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 6) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU6")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100091800A00, // AddressMinimum - MIN + 0x0000100091800BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 254 } + }) + } + + Device(MC07) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 7) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 0: MCU7")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000100091C00A00, // AddressMinimum - MIN + 0x0000100091C00BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 255 } + }) + } +} + +Scope (\_SB.SYST.CL00) { + Device(DU00) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 64 } + }) + } +} + +Scope (\_SB.SYST.CL01) { + Device(DU01) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 65 } + }) + } +} + +Scope (\_SB.SYST.CL02) { + Device(DU02) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 66 } + }) + } +} + +Scope (\_SB.SYST.CL03) { + Device(DU03) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 67 } + }) + } +} + +Scope (\_SB.SYST.CL04) { + Device(DU04) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 68 } + }) + } +} + +Scope (\_SB.SYST.CL05) { + Device(DU05) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 69 } + }) + } +} + +Scope (\_SB.SYST.CL06) { + Device(DU06) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 71 } + }) + } +} + +Scope (\_SB.SYST.CL07) { + Device(DU07) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 80 } + }) + } +} + +Scope (\_SB.SYST.CL08) { + Device(DU08) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x8) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x8 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 81 } + }) + } +} + +Scope (\_SB.SYST.CL09) { + Device(DU09) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x9) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x9 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 82 } + }) + } +} + +Scope (\_SB.SYST.CL0A) { + Device(DU0A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xA) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xA Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 83 } + }) + } +} + +Scope (\_SB.SYST.CL0B) { + Device(DU0B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xB) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xB Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 115 } + }) + } +} + +Scope (\_SB.SYST.CL0C) { + Device(DU0C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xC) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xC Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 116 } + }) + } +} + +Scope (\_SB.SYST.CL0D) { + Device(DU0D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xD) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xD Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 120 } + }) + } +} + +Scope (\_SB.SYST.CL0E) { + Device(DU0E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xE) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xE Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 121 } + }) + } +} + +Scope (\_SB.SYST.CL0F) { + Device(DU0F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0xF) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0xF Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 122 } + }) + } +} + +Scope (\_SB.SYST.CL10) { + Device(DU10) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x10) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x10 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 123 } + }) + } +} + +Scope (\_SB.SYST.CL11) { + Device(DU11) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x11) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x11 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 124 } + }) + } +} + +Scope (\_SB.SYST.CL12) { + Device(DU12) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x12) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x12 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 125 } + }) + } +} + +Scope (\_SB.SYST.CL13) { + Device(DU13) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x13) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x13 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 126 } + }) + } +} + +Scope (\_SB.SYST.CL14) { + Device(DU14) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x14) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x14 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 127 } + }) + } +} + +Scope (\_SB.SYST.CL15) { + Device(DU15) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x15) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x15 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 166 } + }) + } +} + +Scope (\_SB.SYST.CL16) { + Device(DU16) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x16) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x16 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 167 } + }) + } +} + +Scope (\_SB.SYST.CL17) { + Device(DU17) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x17) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x17 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 168 } + }) + } +} + +Scope (\_SB.SYST.CL18) { + Device(DU18) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x18) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x18 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 169 } + }) + } +} + +Scope (\_SB.SYST.CL19) { + Device(DU19) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x19) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x19 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 176 } + }) + } +} + +Scope (\_SB.SYST.CL1A) { + Device(DU1A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1A Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 177 } + }) + } +} + +Scope (\_SB.SYST.CL1B) { + Device(DU1B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1B Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 178 } + }) + } +} + +Scope (\_SB.SYST.CL1C) { + Device(DU1C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1C Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 179 } + }) + } +} + +Scope (\_SB.SYST.CL1D) { + Device(DU1D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1D Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 186 } + }) + } +} + +Scope (\_SB.SYST.CL1E) { + Device(DU1E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1E Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 187 } + }) + } +} + +Scope (\_SB.SYST.CL1F) { + Device(DU1F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x1F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x1F Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 188 } + }) + } +} + +Scope (\_SB.SYST.CL20) { + Device(DU20) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x20) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x20 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 189 } + }) + } +} + +Scope (\_SB.SYST.CL21) { + Device(DU21) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x21) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x21 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 196 } + }) + } +} + +Scope (\_SB.SYST.CL22) { + Device(DU22) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x22) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x22 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 197 } + }) + } +} + +Scope (\_SB.SYST.CL23) { + Device(DU23) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x23) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x23 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 198 } + }) + } +} + +Scope (\_SB.SYST.CL24) { + Device(DU24) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x24) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x24 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 199 } + }) + } +} + +Scope (\_SB.SYST.CL25) { + Device(DU25) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x25) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x25 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 200 } + }) + } +} + +Scope (\_SB.SYST.CL26) { + Device(DU26) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x26) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x26 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 201 } + }) + } +} + +Scope (\_SB.SYST.CL27) { + Device(DU27) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x27) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x27 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 202 } + }) + } +} + +Scope (\_SB.SYST.CL28) { + Device(DU28) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x28) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x28 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 203 } + }) + } +} + +Scope (\_SB.SYST.CL29) { + Device(DU29) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x29) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x29 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 204 } + }) + } +} + +Scope (\_SB.SYST.CL2A) { + Device(DU2A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2A Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 205 } + }) + } +} + +Scope (\_SB.SYST.CL2B) { + Device(DU2B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2B Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 206 } + }) + } +} + +Scope (\_SB.SYST.CL2C) { + Device(DU2C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2C Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 207 } + }) + } +} + +Scope (\_SB.SYST.CL2D) { + Device(DU2D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2D Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 221 } + }) + } +} + +Scope (\_SB.SYST.CL2E) { + Device(DU2E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2E Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 222 } + }) + } +} + +Scope (\_SB.SYST.CL2F) { + Device(DU2F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x2F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x2F Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 223 } + }) + } +} + +Scope (\_SB.SYST.CL30) { + Device(DU30) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x30) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x30 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 264 } + }) + } +} + +Scope (\_SB.SYST.CL31) { + Device(DU31) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x31) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x31 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 265 } + }) + } +} + +Scope (\_SB.SYST.CL32) { + Device(DU32) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x32) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x32 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 266 } + }) + } +} + +Scope (\_SB.SYST.CL33) { + Device(DU33) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x33) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x33 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 267 } + }) + } +} + +Scope (\_SB.SYST.CL34) { + Device(DU34) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x34) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x34 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 268 } + }) + } +} + +Scope (\_SB.SYST.CL35) { + Device(DU35) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x35) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x35 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 269 } + }) + } +} + +Scope (\_SB.SYST.CL36) { + Device(DU36) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x36) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x36 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 270 } + }) + } +} + +Scope (\_SB.SYST.CL37) { + Device(DU37) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x37) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x37 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 271 } + }) + } +} + +Scope (\_SB.SYST.CL38) { + Device(DU38) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x38) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x38 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 297 } + }) + } +} + +Scope (\_SB.SYST.CL39) { + Device(DU39) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x39) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x39 Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 298 } + }) + } +} + +Scope (\_SB.SYST.CL3A) { + Device(DU3A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3A Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 299 } + }) + } +} + +Scope (\_SB.SYST.CL3B) { + Device(DU3B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3B Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 300 } + }) + } +} + +Scope (\_SB.SYST.CL3C) { + Device(DU3C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3C Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 301 } + }) + } +} + +Scope (\_SB.SYST.CL3D) { + Device(DU3D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3D Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 312 } + }) + } +} + +Scope (\_SB.SYST.CL3E) { + Device(DU3E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3E Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 313 } + }) + } +} + +Scope (\_SB.SYST.CL3F) { + Device(DU3F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x3F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x3F Socket 0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 316 } + }) + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi b/Platform/A= mpere/JadePkg/Ac02AcpiTables/PMU-S1.asi new file mode 100644 index 000000000000..9806278dc86e --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU-S1.asi @@ -0,0 +1,1292 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Scope(\_SB) { + Device(CMN1) { + Name(_HID, "ARMHC600") // Device Identification Objects + Name(_CID, "ARMHC600") + Name(_UID, 1) + Name(_CCA, ONE) + Name(_STR, Unicode("CMN1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceConsumer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500010000000, // AddressMinimum - MIN + 0x0000500013ffffff, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000004000000 // RangeLength - LEN + ) + QWordMemory ( + ResourceConsumer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500012f00000, // AddressMinimum - MIN + 0x0000500013ffffff, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000001100000 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 } + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 634 } + }) + } + + Device(MC10) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 8) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU0")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500090000A00, // AddressMinimum - MIN + 0x0000500090000BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 568 } + }) + } + + Device(MC11) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 9) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500090400A00, // AddressMinimum - MIN + 0x0000500090400BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 569 } + }) + } + + Device(MC12) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xa) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU2")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500090800A00, // AddressMinimum - MIN + 0x0000500090800BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 570 } + }) + } + + Device(MC13) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xb) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU3")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500090C00A00, // AddressMinimum - MIN + 0x0000500090C00BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 571 } + }) + } + + Device(MC14) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xc) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU4")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500091000A00, // AddressMinimum - MIN + 0x0000500091000BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 572 } + }) + } + + Device(MC15) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xd) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU5")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500091400A00, // AddressMinimum - MIN + 0x0000500091400BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 573 } + }) + } + + Device(MC16) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xe) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU6")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500091800A00, // AddressMinimum - MIN + 0x0000500091800BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 574 } + }) + } + + Device(MC17) { + Name(_HID, "ARMHD620") + Name(_CID, "ARMHD620") + Name(_UID, 0xf) + Name(_CCA, ONE) + Name(_STR, Unicode("Socket 1: MCU7")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + QWordMemory ( + ResourceProducer, // ResourceUsage + PosDecode, // Decode + MinFixed, // IsMinFixed + MaxFixed, // IsMaxFixed + NonCacheable, // Cacheable + ReadWrite, // ReadAndWrite + 0x0000000000000000, // AddressGranularity - GRA + 0x0000500091C00A00, // AddressMinimum - MIN + 0x0000500091C00BFF, // AddressMaximum - MAX + 0x0000000000000000, // AddressTranslation - TRA + 0x0000000000000200 // RangeLength - LEN + ) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 575 } + }) + } +} + +Scope (\_SB.SYST.CL40) { + Device(DU40) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x40) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x40 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 384 } + }) + } +} + +Scope (\_SB.SYST.CL41) { + Device(DU41) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x41) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x41 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 385 } + }) + } +} + +Scope (\_SB.SYST.CL42) { + Device(DU42) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x42) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x42 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 386 } + }) + } +} + +Scope (\_SB.SYST.CL43) { + Device(DU43) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x43) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x43 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 387 } + }) + } +} + +Scope (\_SB.SYST.CL44) { + Device(DU44) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x44) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x44 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 388 } + }) + } +} + +Scope (\_SB.SYST.CL45) { + Device(DU45) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x45) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x45 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 389 } + }) + } +} + +Scope (\_SB.SYST.CL46) { + Device(DU46) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x46) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x46 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 391 } + }) + } +} + +Scope (\_SB.SYST.CL47) { + Device(DU47) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x47) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x47 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 400 } + }) + } +} + +Scope (\_SB.SYST.CL48) { + Device(DU48) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x48) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x48 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 401 } + }) + } +} + +Scope (\_SB.SYST.CL49) { + Device(DU49) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x49) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x49 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 402 } + }) + } +} + +Scope (\_SB.SYST.CL4A) { + Device(DU4A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4A Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 403 } + }) + } +} + +Scope (\_SB.SYST.CL4B) { + Device(DU4B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4B Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 435 } + }) + } +} + +Scope (\_SB.SYST.CL4C) { + Device(DU4C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4C Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 436 } + }) + } +} + +Scope (\_SB.SYST.CL4D) { + Device(DU4D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4D Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 440 } + }) + } +} + +Scope (\_SB.SYST.CL4E) { + Device(DU4E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4E Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 441 } + }) + } +} + +Scope (\_SB.SYST.CL4F) { + Device(DU4F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x4F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x4F Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 442 } + }) + } +} + +Scope (\_SB.SYST.CL50) { + Device(DU50) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x50) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x50 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 443 } + }) + } +} + +Scope (\_SB.SYST.CL51) { + Device(DU51) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x51) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x51 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 444 } + }) + } +} + +Scope (\_SB.SYST.CL52) { + Device(DU52) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x52) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x52 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 445 } + }) + } +} + +Scope (\_SB.SYST.CL53) { + Device(DU53) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x53) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x53 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 446 } + }) + } +} + +Scope (\_SB.SYST.CL54) { + Device(DU54) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x54) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x54 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 447 } + }) + } +} + +Scope (\_SB.SYST.CL55) { + Device(DU55) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x55) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x55 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 486 } + }) + } +} + +Scope (\_SB.SYST.CL56) { + Device(DU56) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x56) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x56 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 487 } + }) + } +} + +Scope (\_SB.SYST.CL57) { + Device(DU57) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x57) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x57 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 488 } + }) + } +} + +Scope (\_SB.SYST.CL58) { + Device(DU58) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x58) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x58 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 489 } + }) + } +} + +Scope (\_SB.SYST.CL59) { + Device(DU59) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x59) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x59 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 496 } + }) + } +} + +Scope (\_SB.SYST.CL5A) { + Device(DU5A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5A Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 497 } + }) + } +} + +Scope (\_SB.SYST.CL5B) { + Device(DU5B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5B Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 498 } + }) + } +} + +Scope (\_SB.SYST.CL5C) { + Device(DU5C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5C Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 499 } + }) + } +} + +Scope (\_SB.SYST.CL5D) { + Device(DU5D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5D Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 506 } + }) + } +} + +Scope (\_SB.SYST.CL5E) { + Device(DU5E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5E Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 507 } + }) + } +} + +Scope (\_SB.SYST.CL5F) { + Device(DU5F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x5F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x5F Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 508 } + }) + } +} + +Scope (\_SB.SYST.CL60) { + Device(DU60) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x60) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x60 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 509 } + }) + } +} + +Scope (\_SB.SYST.CL61) { + Device(DU61) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x61) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x61 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 516 } + }) + } +} + +Scope (\_SB.SYST.CL62) { + Device(DU62) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x62) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x62 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 517 } + }) + } +} + +Scope (\_SB.SYST.CL63) { + Device(DU63) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x63) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x63 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 518 } + }) + } +} + +Scope (\_SB.SYST.CL64) { + Device(DU64) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x64) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x64 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 519 } + }) + } +} + +Scope (\_SB.SYST.CL65) { + Device(DU65) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x65) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x65 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 520 } + }) + } +} + +Scope (\_SB.SYST.CL66) { + Device(DU66) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x66) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x66 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 521 } + }) + } +} + +Scope (\_SB.SYST.CL67) { + Device(DU67) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x67) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x67 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 522 } + }) + } +} + +Scope (\_SB.SYST.CL69) { + Device(DU68) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x68) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x68 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 523 } + }) + } +} + +Scope (\_SB.SYST.CL69) { + Device(DU69) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x69) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x69 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 524 } + }) + } +} + +Scope (\_SB.SYST.CL6A) { + Device(DU6A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6A Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 525 } + }) + } +} + +Scope (\_SB.SYST.CL6B) { + Device(DU6B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6B Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 526 } + }) + } +} + +Scope (\_SB.SYST.CL6C) { + Device(DU6C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6C Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 527 } + }) + } +} + +Scope (\_SB.SYST.CL6D) { + Device(DU6D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6D Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 541 } + }) + } +} + +Scope (\_SB.SYST.CL6E) { + Device(DU6E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6E Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 542 } + }) + } +} + +Scope (\_SB.SYST.CL6F) { + Device(DU6F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x6F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x6F Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 543 } + }) + } +} + +Scope (\_SB.SYST.CL70) { + Device(DU70) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x70) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x70 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 584 } + }) + } +} + +Scope (\_SB.SYST.CL71) { + Device(DU71) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x71) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x71 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 585 } + }) + } +} + +Scope (\_SB.SYST.CL72) { + Device(DU72) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x72) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x72 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 586 } + }) + } +} + +Scope (\_SB.SYST.CL73) { + Device(DU73) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x73) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x73 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 587 } + }) + } +} + +Scope (\_SB.SYST.CL74) { + Device(DU74) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x74) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x74 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 588 } + }) + } +} + +Scope (\_SB.SYST.CL75) { + Device(DU75) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x75) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x75 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 589 } + }) + } +} + +Scope (\_SB.SYST.CL76) { + Device(DU76) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x76) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x76 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 590 } + }) + } +} + +Scope (\_SB.SYST.CL77) { + Device(DU77) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x77) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x77 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 591 } + }) + } +} + +Scope (\_SB.SYST.CL78) { + Device(DU78) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x78) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x78 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 617 } + }) + } +} + +Scope (\_SB.SYST.CL79) { + Device(DU79) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x79) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x79 Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 618 } + }) + } +} + +Scope (\_SB.SYST.CL7A) { + Device(DU7A) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7A) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7A Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 619 } + }) + } +} + +Scope (\_SB.SYST.CL7B) { + Device(DU7B) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7B) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7B Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 620 } + }) + } +} + +Scope (\_SB.SYST.CL7C) { + Device(DU7C) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7C) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7C Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 621 } + }) + } +} + +Scope (\_SB.SYST.CL7D) { + Device(DU7D) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7D) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7D Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 632 } + }) + } +} + +Scope (\_SB.SYST.CL7E) { + Device(DU7E) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7E) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7E Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 633 } + }) + } +} + +Scope (\_SB.SYST.CL7F) { + Device(DU7F) { + Name(_HID, "ARMHD500") + Name(_CID, "ARMHD500") + Name(_UID, 0x7F) + Name(_CCA, ONE) + Name(_STR, Unicode("DSU CPM 0x7F Socket 1")) + Method(_STA, 0, NotSerialized) { + Return (0x0f) + } + Name(_CRS, ResourceTemplate() { + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 636 } + }) + } +} diff --git a/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi b/Platform/Ampe= re/JadePkg/Ac02AcpiTables/PMU.asi new file mode 100644 index 000000000000..21eb42dca243 --- /dev/null +++ b/Platform/Ampere/JadePkg/Ac02AcpiTables/PMU.asi @@ -0,0 +1,10 @@ +/** @file + + Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +Include ("PMU-S0.asi") +Include ("PMU-S1.asi") --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102096): https://edk2.groups.io/g/devel/message/102096 Mute This Topic: https://groups.io/mt/97922261/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-