From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.45]) by mx.groups.io with SMTP id smtpd.web10.3029.1629490522748585019 for ; Fri, 20 Aug 2021 13:15:22 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@vmware.com header.s=selector2 header.b=yE2BJYfa; spf=pass (domain: vmware.com, ip: 40.107.244.45, mailfrom: awarkentin@vmware.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oazzUmpZsFplvPkIJtdDwm3myUcEkdoSEOk3z+i0D4ZCg2nynSErx7JfMUE7wGug+xmJbP42Z8ct3Lob8HdvqS/fLoAvlPAEepdolH9fzPvXpyfKwY0gv/aikaPtNIvKzZqp3Ne8P5qmDSRSp+CABv32SyILHAR2LQfdRRohyC+7fcS4rGyIPTvNTawNHnJ/h8iZsSTfMcGEwckSZx6AG9lpXQ4Gb/NIy7YkVsN9ekf8iAmkpYQiiOWK9fqiSl3re0qOIWNgsMefiORQMsjXSv/KcIC1Gz9gUtVrJ5c681DnT0obpPsXclZZzqVUB/SuyvFUudvH2KXWdtCyRbTvPw== 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-SenderADCheck; bh=jOLYMlkeWOSo3JUc2P7ZqXgVM6WzwJoyalHi3/vdP/U=; b=JYxaTJRYGJrFQT6kG7d2TkzaeR5eipY8+7MtCy4U3X4E9h3M8Ww+BH6bGvHlOeL+8Fniv7Wc2rR0aGXY5byseQpoxhq22HZEiSlN4TJaYv3D0a0VRlgLRgvoqoTWTzp8YV5XLFWa/xTSwbzZLyssTAqB44d1vf4Kh5sovNhBfszmPCvX5RdLpN2VrYS37/2nlUCHTNdoqIKjvLQFqhsi19GLpIFU5WSsod7kBnuwe5WHZftwucl3Ul+uUmAYgAJBygy2Sh2skblc8CUC7ZHAM6xbg1cdNHM9h28NgstkBEI3JTCzyiFnsLW1udUcHHfTFFBVpivcNZXaDBETTZ7LTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jOLYMlkeWOSo3JUc2P7ZqXgVM6WzwJoyalHi3/vdP/U=; b=yE2BJYfa8/WgJ6w+C6mkzM3KhpxV8yZ0bzzg2rzUEsVfIVGiEu+hGUDZD83p4LSkjIhdy878iG5yqAu8wFmRRKZXONaZmd6GgPbOaGl5i4kRyThsofsbfjJjv+cP67Oin3t509V6dKEpvWyZ+HqEszr6ADVEp+rvnJ4bsfujLfc= Received: from PH0PR05MB8702.namprd05.prod.outlook.com (2603:10b6:510:b2::21) by PH0PR05MB8637.namprd05.prod.outlook.com (2603:10b6:510:b5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.5; Fri, 20 Aug 2021 20:15:19 +0000 Received: from PH0PR05MB8702.namprd05.prod.outlook.com ([fe80::c88e:73c1:db37:5b94]) by PH0PR05MB8702.namprd05.prod.outlook.com ([fe80::c88e:73c1:db37:5b94%6]) with mapi id 15.20.4457.005; Fri, 20 Aug 2021 20:15:19 +0000 From: "Andrei Warkentin" To: Jeremy Linton , "devel@edk2.groups.io" CC: "pete@akeo.ie" , "ardb+tianocore@kernel.org" , "Sunny.Wang@arm.com" , "samer.el-haj-mahmoud@arm.com" Subject: Re: [PATCH v3 2/7] Platform/RaspberryPi: Break XHCI into its own SSDT Thread-Topic: [PATCH v3 2/7] Platform/RaspberryPi: Break XHCI into its own SSDT Thread-Index: AQHXlXokMFpD/+SJokavvGx8VM0qT6t81Trc Date: Fri, 20 Aug 2021 20:15:19 +0000 Message-ID: References: <20210820041619.87248-1-jeremy.linton@arm.com> <20210820041619.87248-3-jeremy.linton@arm.com> In-Reply-To: <20210820041619.87248-3-jeremy.linton@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b2461577-7678-4896-d874-08d964173b6e x-ms-traffictypediagnostic: PH0PR05MB8637: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: q6S3Xs9b0/RmL+8XxNIfx9ynG7OmeSjQb9tHtdpSx9MifZ9ueF5kgFx9B74/e6csrZ1ckuVvBlqzl3wp7yZWvs3Dd/6ljHXJh+DxobgUBSHD3+R82qm1esKVIPhIY/f0g62dWMetMoP0H5gfUvPLH0UzB/fAia6At5cP3UqQB48CEzUIKmgsNve0pfYbwsY+c1AYZeQpygxL+OwoFke0CyyFYz6iqvAcZrY4O5lPTeg9vuvON50Gw5HljtIf/29tyhVc/mUSiaE/36nct94sCqM0+O8WCfh39cJy95bVByI388/awne8rEx98iDEcek4Qp8VZbQF/IH8orfQ5qz1OhymjTfm1WRzbS5mZjWLz/PXqXoKqDZke8N/SgiP0nnyP9yQ7+l5rWPXOmLQkeEOhgmTAXI2Ut3kKzfTQGVwjrvMhdkg2LVJWeVb3DKExPM2uLMvkZI4gXzj9NW4udmHx/cUdXuHnpf7zF+mSM9tfWKR53aDcvaIywC+WN5rEIZB6CfEbCiBpfmjlxKigIkBrfpUQUWKdiprzfQoXMhaAeoDte6fNKuXWAdJbzubuZsC1vf4ZqoTN8FaBXdx9tLqprzo68smZVcQ5iC+SCnhy8HN09jUaczVZVS0Nf6UQX9wJNpMcgMOqaeXYdzcgiHabJn6zMtmbUf59105IM7FizamQ45IIgR31kF7LrD46uFZ6VXBhmY1gt/aXFjdOecIQQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR05MB8702.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(33656002)(71200400001)(26005)(8936002)(8676002)(38100700002)(54906003)(316002)(55016002)(4326008)(6506007)(64756008)(508600001)(5660300002)(38070700005)(186003)(122000001)(9686003)(53546011)(110136005)(66476007)(52536014)(66446008)(2906002)(7696005)(83380400001)(91956017)(76116006)(66946007)(86362001)(19627405001)(66556008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gJ82XTXUZOTnDeI1YJ3K478Q0reK18nRE2YIubUS91F0eOKVrV+q5o+ud2M1?= =?us-ascii?Q?YBU+l2tUmqO7xQosLg/YJMYO/kdc/tT6+MJPZaoisCAT4DiZw3F6TGg/IyKA?= =?us-ascii?Q?vAf/mGVfdI3jwAiIkBT5WMz2H8iUzcCriIw+UNMOUt4inNOjkk2LEbCmnAlJ?= =?us-ascii?Q?d5F2DQP4OilszqJrM+Ku7gQ/1EMOa+JcYKaKkpbJ1ennQPC1LCUOZcvTsnjB?= =?us-ascii?Q?/C4qCDOvJk31cgujuDhXPpKFJFI6lfiZngfoB47n3x/Omsst883rFrBN3+IY?= =?us-ascii?Q?jp7LRIQrfp2MfPMngo1Z4nMcikGc6p4U2cBXzjdeaDxhta399v22WQgpHWos?= =?us-ascii?Q?Tkj6hPFC3NKlIyvL3NtBOn8MQP5AAy9BTT+AtoVOcrNOnWvBlGaXwwSMK9z9?= =?us-ascii?Q?Z89+6nox3d5523hE5kkEqRQFXmA0OUtorFPf+7TK0PdDUeWiunju3YY6UXg5?= =?us-ascii?Q?ifdRg+SOOvSSCkIgwZ2/PnYhoegM/YfQlIS21buF/p7SG40RENcX5Dh+q0hu?= =?us-ascii?Q?tx50Lo77kfha/ZRmWKdYtoTeNqJIdoU7ZipM0yCmilTBQvTjV06CoC7XOsYc?= =?us-ascii?Q?yfx8jZgSxpwdd0P9pUaof75z9oLwEUy+25mic0GS8S/OQGz4pPtC2/XXi1s8?= =?us-ascii?Q?yYUI9jfla2dvHf4lrPWXpmUPNW6lUGgzry6lTOzAFdEkzdt0IxfFON0dRm3n?= =?us-ascii?Q?IJEQTXMYHJJIhm1pKoviMWBqYoqnKwq9B1drPauj0HTrapjOqaaQc0TAThjA?= =?us-ascii?Q?Li5u859ZZxK4z9+bnXEEsVrN0hP70a2EbJiSMjNbZkj6fsITEJOP5iWErC4O?= =?us-ascii?Q?IhltTIEWfGfB5XmisTI/VJhH1xlhnJdBM/pE9TAjWlvIpJdWh4HWjvFzTVDx?= =?us-ascii?Q?3AIM8l7fWjkxNNhn7YU6vK7oeUnHADlZ/w19fDECtYGOpDhbC9d9SUbdIySo?= =?us-ascii?Q?ZJ3DKmHz4RbqhC3K+PiSrsEYCAkIfN3yjyK+XDG4VfZkvXPZ/VcwjBumsuwc?= =?us-ascii?Q?2o8h6tQy9yvmLL23SAjVwkiO/KJ8MdebcKbkmgrqNgQLjPykpocsbBkfsun9?= =?us-ascii?Q?E1qUuPoFEXgRHlOr7T2TnfA+dZWNdwelkXZGsmDP8jF4bhkBvflwee134sSN?= =?us-ascii?Q?1r+M2AESnSPVrQgkDuLR4ufd89eefZjvtrobzmI2HFTKwEi7aNHNRaEfPuU6?= =?us-ascii?Q?RMbjf+y3l085ldYq+/rXvncGqbUc8TgiJFbkb3q2RBGL2J06HO6/kJbEPFB+?= =?us-ascii?Q?jPDalh/fPsVwvKGKWfYEJ0zF47Rw543aybvTz6LiLN+2Zc9ct6pJFHHYeX9e?= =?us-ascii?Q?vUAyYcSK2FCEAxB8Eh/gIy+G?= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR05MB8702.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2461577-7678-4896-d874-08d964173b6e X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2021 20:15:19.3064 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Nylu6bHEsT29fbY/t6J8oKxjcoL3lGMKEQJ1AdFf8hW07pqyktwG9eaJ+SZAE0w7QPi1CHMrV22dowzsY3uB6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR05MB8637 Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_PH0PR05MB8702F31DFEDA86989F4D69F0B9C19PH0PR05MB8702namp_" --_000_PH0PR05MB8702F31DFEDA86989F4D69F0B9C19PH0PR05MB8702namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Andrei Warkentin ________________________________ From: Jeremy Linton Sent: Thursday, August 19, 2021 11:16 PM To: devel@edk2.groups.io Cc: pete@akeo.ie ; ardb+tianocore@kernel.org ; Andrei Warkentin ; Sunny.Wang@arm.com <= Sunny.Wang@arm.com>; samer.el-haj-mahmoud@arm.com ; Jeremy Linton Subject: [PATCH v3 2/7] Platform/RaspberryPi: Break XHCI into its own SSDT Lets prepare to switch between XHCI and PCI by moving the XHCI definition into its own SSDT. That way we can select it based on the menu settings. The resource producer/consumer flag is also corrected. Reviewed-by: Andrei Warkentin Signed-off-by: Jeremy Linton --- Platform/RaspberryPi/AcpiTables/AcpiTables.inf | 1 + Platform/RaspberryPi/AcpiTables/Dsdt.asl | 3 -- Platform/RaspberryPi/AcpiTables/Xhci.asl | 35 ++++++++++++++----= ---- Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 8 +++++ 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/Platform/RaspberryPi/AcpiTables/AcpiTables.inf b/Platform/Rasp= berryPi/AcpiTables/AcpiTables.inf index 1ddc9ca5fe..f3e8d950c1 100644 --- a/Platform/RaspberryPi/AcpiTables/AcpiTables.inf +++ b/Platform/RaspberryPi/AcpiTables/AcpiTables.inf @@ -38,6 +38,7 @@ SpcrPl011.aslc Pptt.aslc SsdtThermal.asl + Xhci.asl [Packages] ArmPkg/ArmPkg.dec diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryP= i/AcpiTables/Dsdt.asl index 1ee6379f46..b594d50bdf 100644 --- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl +++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl @@ -64,9 +64,6 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 2, "RPIFDN", "RPI", = 2) Scope (\_SB_) { include ("Pep.asl") -#if (RPI_MODEL =3D=3D 4) - include ("Xhci.asl") -#endif Device (CPU0) { diff --git a/Platform/RaspberryPi/AcpiTables/Xhci.asl b/Platform/RaspberryP= i/AcpiTables/Xhci.asl index bc3fea60f9..9b37277956 100644 --- a/Platform/RaspberryPi/AcpiTables/Xhci.asl +++ b/Platform/RaspberryPi/AcpiTables/Xhci.asl @@ -9,6 +9,8 @@ #include +#include "AcpiTables.h" + /* * The following can be used to remove parenthesis from * defined macros that the compiler complains about. @@ -24,12 +26,17 @@ */ #define XHCI_REG_LENGTH 0x1000 -Device (SCB0) { - Name (_HID, "ACPI0004") - Name (_UID, 0x0) - Name (_CCA, 0x0) +DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPI4XHCI", 2) +{ + Scope (\_SB_) + { + + Device (SCB0) { + Name (_HID, "ACPI0004") + Name (_UID, 0x0) + Name (_CCA, 0x0) - Method (_CRS, 0, Serialized) { // _CRS: Current Resource Settings + Method (_CRS, 0, Serialized) { // _CRS: Current Resource Settings /* * Container devices with _DMA must have _CRS, meaning SCB0 * to provide all resources that XHC0 consumes (except @@ -57,15 +64,15 @@ Device (SCB0) { Add (MMBE, XHCI_REG_LENGTH - 1, MMBE) Add (MMLE, XHCI_REG_LENGTH - 1, MMLE) Return (RBUF) - } + } - Name (_DMA, ResourceTemplate() { + Name (_DMA, ResourceTemplate() { /* * XHC0 is limited to DMA to first 3GB. Note this * only applies to PCIe, not GENET or other devices * next to the A72. */ - QWordMemory (ResourceConsumer, + QWordMemory (ResourceProducer, , MinFixed, MaxFixed, @@ -79,10 +86,10 @@ Device (SCB0) { , , ) - }) + }) - Device (XHC0) - { + Device (XHC0) + { Name (_HID, "PNP0D10") // _HID: Hardware ID Name (_UID, 0x0) // _UID: Unique ID Name (_CCA, 0x0) // _CCA: Cache Coherency Attribute @@ -131,5 +138,7 @@ Device (SCB0) { Debug =3D "xHCI enable" Store (0x6, CMND) } - } -} + } // end XHC0 + } //end SCB0 + } //end scope sb +} //end definition block diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/= RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c index 87f6b4e7bb..7c5786303d 100644 --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c @@ -814,6 +814,14 @@ STATIC CONST NAMESPACE_TABLES SdtTables[] =3D { PcdToken(PcdSdIsArasan), SsdtEmmcNameOpReplace }, +#if (RPI_MODEL =3D=3D 4) + { + SIGNATURE_64 ('R', 'P', 'I', '4', 'X', 'H', 'C', 'I'), + 0, + PcdToken(PcdXhciPci), + NULL + }, +#endif { // DSDT SIGNATURE_64 ('R', 'P', 'I', 0, 0, 0, 0, 0), 0, -- 2.13.7 --_000_PH0PR05MB8702F31DFEDA86989F4D69F0B9C19PH0PR05MB8702namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Reviewed-by: Andrei Warkentin <awarkentin@vmware.com>

From: Jeremy Linton <jer= emy.linton@arm.com>
Sent: Thursday, August 19, 2021 11:16 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: pete@akeo.ie <pete@akeo.ie>; ardb+tianocore@kernel.org <= ;ardb+tianocore@kernel.org>; Andrei Warkentin <awarkentin@vmware.com&= gt;; Sunny.Wang@arm.com <Sunny.Wang@arm.com>; samer.el-haj-mahmoud@ar= m.com <samer.el-haj-mahmoud@arm.com>; Jeremy Linton <jeremy.linton= @arm.com>
Subject: [PATCH v3 2/7] Platform/RaspberryPi: Break XHCI into its ow= n SSDT
 
Lets prepare to switch between XHCI and PCI by mov= ing
the XHCI definition into its own SSDT. That way we can
select it based on the menu settings. The resource
producer/consumer flag is also corrected.

Reviewed-by: Andrei Warkentin <awarkentin@vmware.com>
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
---
 Platform/RaspberryPi/AcpiTables/AcpiTables.inf    = ; |  1 +
 Platform/RaspberryPi/AcpiTables/Dsdt.asl     = ;      |  3 --
 Platform/RaspberryPi/AcpiTables/Xhci.asl     = ;      | 35 ++++++++++++++--------
 Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c |  8 +++++  4 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/Platform/RaspberryPi/AcpiTables/AcpiTables.inf b/Platform/Rasp= berryPi/AcpiTables/AcpiTables.inf
index 1ddc9ca5fe..f3e8d950c1 100644
--- a/Platform/RaspberryPi/AcpiTables/AcpiTables.inf
+++ b/Platform/RaspberryPi/AcpiTables/AcpiTables.inf
@@ -38,6 +38,7 @@
   SpcrPl011.aslc
   Pptt.aslc
   SsdtThermal.asl
+  Xhci.asl
 
 [Packages]
   ArmPkg/ArmPkg.dec
diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryP= i/AcpiTables/Dsdt.asl
index 1ee6379f46..b594d50bdf 100644
--- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
@@ -64,9 +64,6 @@ DefinitionBlock ("Dsdt.aml", "DSDT", = 2, "RPIFDN", "RPI", 2)
   Scope (\_SB_)
   {
     include ("Pep.asl")
-#if (RPI_MODEL =3D=3D 4)
-    include ("Xhci.asl")
-#endif
 
     Device (CPU0)
     {
diff --git a/Platform/RaspberryPi/AcpiTables/Xhci.asl b/Platform/RaspberryP= i/AcpiTables/Xhci.asl
index bc3fea60f9..9b37277956 100644
--- a/Platform/RaspberryPi/AcpiTables/Xhci.asl
+++ b/Platform/RaspberryPi/AcpiTables/Xhci.asl
@@ -9,6 +9,8 @@
 
 #include <IndustryStandard/Bcm2711.h>
 
+#include "AcpiTables.h"
+
 /*
  * The following can be used to remove parenthesis from
  * defined macros that the compiler complains about.
@@ -24,12 +26,17 @@
  */
 #define XHCI_REG_LENGTH       &nbs= p;         0x1000
 
-Device (SCB0) {
-    Name (_HID, "ACPI0004")
-    Name (_UID, 0x0)
-    Name (_CCA, 0x0)
+DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "= RPI4XHCI", 2)
+{
+  Scope (\_SB_)
+  {
+
+    Device (SCB0) {
+      Name (_HID, "ACPI0004")
+      Name (_UID, 0x0)
+      Name (_CCA, 0x0)
 
-    Method (_CRS, 0, Serialized) { // _CRS: Current Resourc= e Settings
+      Method (_CRS, 0, Serialized) { // _CRS: Cur= rent Resource Settings
         /*
          * Container devices = with _DMA must have _CRS, meaning SCB0
          * to provide all res= ources that XHC0 consumes (except
@@ -57,15 +64,15 @@ Device (SCB0) {
         Add (MMBE, XHCI_REG_LENGTH= - 1, MMBE)
         Add (MMLE, XHCI_REG_LENGTH= - 1, MMLE)
         Return (RBUF)
-    }
+      }
 
-    Name (_DMA, ResourceTemplate() {
+      Name (_DMA, ResourceTemplate() {
         /*
          * XHC0 is limited to= DMA to first 3GB. Note this
          * only applies to PC= Ie, not GENET or other devices
          * next to the A72.           */
-        QWordMemory (ResourceConsumer,<= br> +        QWordMemory (ResourceProducer,<= br>              ,<= br>              Mi= nFixed,
             Ma= xFixed,
@@ -79,10 +86,10 @@ Device (SCB0) {
             ,<= br>              ,<= br>              )<= br> -    })
+      })
 
-    Device (XHC0)
-    {
+      Device (XHC0)
+      {
         Name (_HID, "PNP0D10&= quot;)      // _HID: Hardware ID
         Name (_UID, 0x0) &nbs= p;          // _UID: Unique ID=
         Name (_CCA, 0x0) &nbs= p;          // _CCA: Cache Coh= erency Attribute
@@ -131,5 +138,7 @@ Device (SCB0) {
             De= bug =3D "xHCI enable"
             St= ore (0x6, CMND)
         }
-    }
-}
+      } // end XHC0
+    } //end SCB0
+  } //end scope sb
+} //end definition block
diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/= RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
index 87f6b4e7bb..7c5786303d 100644
--- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
+++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
@@ -814,6 +814,14 @@ STATIC CONST NAMESPACE_TABLES SdtTables[] =3D {
     PcdToken(PcdSdIsArasan),
     SsdtEmmcNameOpReplace
   },
+#if (RPI_MODEL =3D=3D 4)
+  {
+    SIGNATURE_64 ('R', 'P', 'I', '4', 'X', 'H', 'C', 'I'),<= br> +    0,
+    PcdToken(PcdXhciPci),
+    NULL
+  },
+#endif
   { // DSDT
     SIGNATURE_64 ('R', 'P', 'I', 0, 0, 0, 0, 0),
     0,
--
2.13.7

--_000_PH0PR05MB8702F31DFEDA86989F4D69F0B9C19PH0PR05MB8702namp_--