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

