I think Linux's behavior needs to be reconciled with the ACPI spec, which uses _DMA with ResourceConsumer, not ResourceProducer. A ________________________________ From: Jeremy Linton Sent: Thursday, April 8, 2021 12:58 AM To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com ; leif@nuviainc.com ; pete@akeo.ie ; samer.el-haj-mahmoud@arm.com ; Andrei Warkentin ; Jeremy Linton Subject: [PATCH 0/3] SD+USB perf/DMA fixes A large part of why the emmc & dwc2 usb controllers haven't been working properly is because the "bus" _DMA was incorrectly tagged as a consumer, when it needs to be a producer. That is why linux has been dropping the translation value portions of _DMA(). Since the emmc2 dma (with the old B0 SoC), and the dwc2 is expected to work, lets add matching 30 bit IORT entries for them. Finally, in the shuffle the high speed cap bit override was dropped from the linux patches, and I failed to add it back to the firmware values, this caused the wifi perf to be lower than it should have been. Jeremy Linton (3): Platform/RaspberryPi/Acpitables: Enable Arasan hispeed mode Platform/RaspberryPi/AcpiTables: Add further named components Platform/RaspberryPi/AcpiTables: Correct _DMA consumer Platform/RaspberryPi/AcpiTables/Dsdt.asl | 2 +- Platform/RaspberryPi/AcpiTables/Emmc.asl | 2 +- Platform/RaspberryPi/AcpiTables/Iort.aslc | 44 ++++++++++++++++++++++++++++++- Platform/RaspberryPi/AcpiTables/Sdhc.asl | 2 +- 4 files changed, 46 insertions(+), 4 deletions(-) -- 2.13.7