From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.77888.1629416137541997602 for ; Thu, 19 Aug 2021 16:35:38 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jeremy.linton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A46991042; Thu, 19 Aug 2021 16:35:36 -0700 (PDT) Received: from [192.168.122.166] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6117E3F40C; Thu, 19 Aug 2021 16:35:36 -0700 (PDT) Subject: Re: [PATCH v2 0/6] RPi4: Enable ACPI PCIe conduit To: Ard Biesheuvel Cc: edk2-devel-groups-io , Peter Batard , Ard Biesheuvel , Andrei Warkentin , Sunny Wang , Samer El-Haj-Mahmoud References: <20210810033618.5139-1-jeremy.linton@arm.com> From: "Jeremy Linton" Message-ID: <2466c7c3-6c28-a7a4-394a-541558df72c0@arm.com> Date: Thu, 19 Aug 2021 18:35:31 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Hi, On 8/17/21 10:09 AM, Ard Biesheuvel wrote: > On Tue, 10 Aug 2021 at 05:36, Jeremy Linton wrote: >> >> A new Arm standard DEN0115A specifies how >> platforms that don't have standard ECAM can >> use the firmware to handle config read/write >> operations. This is mostly implemented in TFA >> but UEFI needs to assure that there is a >> description of the root complex in the ACPI >> namespace. >> >> This set adds that description based on >> a new menu item which toggles between XHCI >> platform description and PCIe via a BDS >> menu selection on the RPi4. The CM4 is really >> the platform that needs this as it has a PCIe >> slot. On that platform PCIe is enabled by default. >> >> v1->v2: >> Use global shared interrupts in PCI PRT >> which is a pretty significant >> simplification. >> Modify bus max to use the secondary side >> of the root port for enforcing device >> limits >> Various other AML cleanups per Ard (drop >> redundant _DMA, bump UID to make it >> unique, etc) > > I still see a _DMA method on the PCIE node, and the UID you chose is > already used elsewhere. Yah, thanks for keeping me honest here, I'm not really sure what happened with the _UID, but I would have probably killed windows again. OTOH, picking off the pcie bridge specific _DMA causes, failures, which don't really make sense either, except that the ACPI spec explicitly notes the case of a PCIe bridge with a DMA constrain needs to have it defined on the device responsible for the translation/limitation. In the end really, the container is unnecessarily, so removing it solves both the problem of all these duplicate containers as well as the duplicate DMA producer. I will repost RSN. > >> Break link status move into its own patch >> MADT->MCFG typos in various comments >> Commit message tweaking >> >> Jeremy Linton (6): >> Platform/RaspberryPi: Add XHCI/PCI selection menu >> Platform/RaspberryPi: Break XHCI into its own SSDT >> Platform/RaspberryPi: Add PCIe SSDT >> Silicon/Broadcom/Bcm27xx: Relax PCIe device restriction >> Silicon/Broadcom/Bcm27xx: Move linkup check into the cfg accessor >> Platform/RaspberryPi: Enable NVMe boot on CM4 >> >> Platform/RaspberryPi/AcpiTables/AcpiTables.inf | 4 + >> Platform/RaspberryPi/AcpiTables/Dsdt.asl | 3 - >> Platform/RaspberryPi/AcpiTables/Pci.asl | 209 +++++++++++++++++++++ >> Platform/RaspberryPi/AcpiTables/Xhci.asl | 35 ++-- >> Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 56 ++++++ >> .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf | 1 + >> .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni | 5 + >> .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr | 17 ++ >> Platform/RaspberryPi/Include/ConfigVars.h | 4 + >> Platform/RaspberryPi/RPi3/RPi3.dsc | 6 + >> Platform/RaspberryPi/RPi4/RPi4.dsc | 13 ++ >> Platform/RaspberryPi/RPi4/RPi4.fdf | 5 + >> Platform/RaspberryPi/RaspberryPi.dec | 1 + >> .../Bcm2711PciHostBridgeLibConstructor.c | 5 - >> .../Library/Bcm2711PciSegmentLib/PciSegmentLib.c | 28 ++- >> 15 files changed, 364 insertions(+), 28 deletions(-) >> create mode 100644 Platform/RaspberryPi/AcpiTables/Pci.asl >> >> -- >> 2.13.7 >>