ATA/USB/NVME/SD are ok to me Reviewed-by: Feng Tian <[email protected]>
-----Original Message----- From: Ard Biesheuvel [mailto:[email protected]] Sent: Tuesday, September 6, 2016 6:36 PM To: Ni, Ruiyu <[email protected]> Cc: edk2-devel-01 <[email protected]>; Tian, Feng <[email protected]>; Zeng, Star <[email protected]>; Gao, Liming <[email protected]>; Laszlo Ersek <[email protected]>; Leif Lindholm <[email protected]> Subject: Re: [edk2] [PATCH 0/7] MdeModulePkg ArmVirtPkg: fixes for 64-bit PCI DMA On 6 September 2016 at 09:54, Ni, Ruiyu <[email protected]> wrote: > Ard, > The patch to MdeModulePkg/PciHostBridgeDxe is good. > > Reviewed-by: Ruiyu Ni <[email protected]> > Thanks Ray! Who is responsible for the AtapPassThru, USB, NVME and SDHCI drivers? >> -----Original Message----- >> From: edk2-devel [mailto:[email protected]] On Behalf >> Of Ard Biesheuvel >> Sent: Tuesday, September 6, 2016 3:48 PM >> To: edk2-devel-01 <[email protected]>; Tian, Feng >> <[email protected]>; Zeng, Star <[email protected]>; Gao, Liming >> <[email protected]> >> Cc: Laszlo Ersek <[email protected]>; Leif Lindholm >> <[email protected]>; Ard Biesheuvel >> <[email protected]> >> Subject: Re: [edk2] [PATCH 0/7] MdeModulePkg ArmVirtPkg: fixes for >> 64-bit PCI DMA >> >> Feng, Star: do you have any feedback on these patches? Thanks. >> >> On 5 September 2016 at 10:17, Ard Biesheuvel >> <[email protected]> >> wrote: >> > After moving ArmVirtQemu to the generic PciHostBridgeDxe, we >> > noticed that setting DmaAbove4G resulted in problems with the >> > emulated EHCI USB host controller, which were caused by the fact >> > that the PCI layer was providing DMA buffers allocated above 4 GB >> > while the emulated EHCI controller in QEMU does not indicate support for >> > 64-bit addressing. >> > >> > As it turns out, the PCI drivers in MdeModulePkg *completely* >> > ignore the EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE attribute, and >> > simply >> assume >> > that no PCI root bridge driver will produce mappings above 4 GB. On >> > ARM, this is problematic, since not all platforms have memory below >> > 4 GB, and so having full support for DMA above 4 GB is indispensable. >> > >> > So first, make the various drivers under MdeModulePkg/Pci/Bus set >> > the EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE attributes for devices >> > that can support 64-bit DMA addressing (patches #1 - #5). Then, we >> > can update the host bridge driver to actually take these attributes >> > into account, and only create mappings above 4 GB for devices that >> > have >> indicated support for it. >> > >> > Finally, in patch #7 we can remove the 4 GB DMA limit from ArmVirtPkg. >> > >> > Branch can be found here: >> > https://git.linaro.org/people/ard.biesheuvel/uefi-next.git/shortlog >> > /re >> > fs/heads/pci-64bit-dma-fixes >> > >> > Ard Biesheuvel (7): >> > MdeModulePkg/AtaAtapiPassThru: enable 64-bit PCI DMA >> > MdeModulePkg/EhciDxe: enable 64-bit PCI DMA >> > MdeModulePkg/NvmExpressDxe: enable 64-bit PCI DMA >> > MdeModulePkg/SdMmcPciHcDxe: enable 64-bit PCI DMA >> > MdeModulePkg/XhciDxe: enable 64-bit PCI DMA >> > MdeModulePkg/PciHostBridgeDxe: restrict 64-bit DMA to devices that >> > support it >> > ArmVirtPkg/FdtPciHostBridgeLib: enable 64-bit PCI DMA >> > >> > ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c | 2 +- >> > MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c | 20 >> +++++++++++++++++- >> > MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c | 22 >> +++++++++++++++++++- >> > MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h | 2 ++ >> > MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c | 2 +- >> > MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c | 13 >> ++++++++++++ >> > MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c | 14 >> +++++++++---- >> > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 20 >> ++++++++++++++++++ >> > MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 22 >> +++++++++++++++++++- >> > MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h | 2 ++ >> > 10 files changed, 110 insertions(+), 9 deletions(-) >> > >> > -- >> > 2.7.4 >> > >> _______________________________________________ >> edk2-devel mailing list >> [email protected] >> https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

