From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D165A1A1E3E for ; Tue, 6 Sep 2016 03:36:16 -0700 (PDT) Received: by mail-oi0-x230.google.com with SMTP id s131so25617223oie.2 for ; Tue, 06 Sep 2016 03:36:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Za07Sw6KMaPe85RZwIvtMeZta822tW296OscmoWo0Zs=; b=MAgbakCyy3+oZOG4QuUl4xKIGc1dzAlVcXpZiPK6Lk/eDw8Ae8VnrC/A/qi/C+vWFw 7PhVwJlat2KYY128fF6nJ6CsoNGShN0q7Dvt3e2A1tIt8fjeh4EllbfgOdeDYGWPWy1D nfQAo1A6ozFEkGK+vzd4e1WbKV0NsK0DW0kVs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Za07Sw6KMaPe85RZwIvtMeZta822tW296OscmoWo0Zs=; b=BHz307hBpLkCRm/ER8gVN8yH/peRMli2JSUfJIjL3SC7vPSaTM6pcZRao4wvpUXkpw rH8pqR0jESMWeaYlC1f/smrmBdGu2HDD3CSwCBDmXcZ77pUjsprI/MeKP1N6P+v09SiB FRDTgFlRYbPOoCPYmZiPBU0wle+teeMMiconDByKLFHOPI3IbbdFtDAR4liaYQzGlMyW Wp184tBA342yQ+FZ5KzqezxlkU+TVGtBX9YqwTQ37We+WcPf1EcR9N+xozu9HFwrxp+K vZPCpdSLz+NQzsj6ouznOT6i6vVknpUXcUGgXVCzrXmkWQZJTG3l/akXcADNkn2HBLQy GGqg== X-Gm-Message-State: AE9vXwP6m4efuH6auvZS0V8iIw4gwg+MH8+A+yua44XFvSlzD27zvBnQuiNmm8i39px1B50XFLO/BaD9IQ1dN/Zf X-Received: by 10.107.174.83 with SMTP id x80mr3812517ioe.130.1473158175723; Tue, 06 Sep 2016 03:36:15 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.204.195 with HTTP; Tue, 6 Sep 2016 03:36:15 -0700 (PDT) In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D58D4D199@SHSMSX103.ccr.corp.intel.com> References: <1473067049-16252-1-git-send-email-ard.biesheuvel@linaro.org> <734D49CCEBEEF84792F5B80ED585239D58D4D199@SHSMSX103.ccr.corp.intel.com> From: Ard Biesheuvel Date: Tue, 6 Sep 2016 11:36:15 +0100 Message-ID: To: "Ni, Ruiyu" Cc: edk2-devel-01 , "Tian, Feng" , "Zeng, Star" , "Gao, Liming" , Laszlo Ersek , Leif Lindholm Subject: Re: [PATCH 0/7] MdeModulePkg ArmVirtPkg: fixes for 64-bit PCI DMA X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Sep 2016 10:36:17 -0000 Content-Type: text/plain; charset=UTF-8 On 6 September 2016 at 09:54, Ni, Ruiyu wrote: > Ard, > The patch to MdeModulePkg/PciHostBridgeDxe is good. > > Reviewed-by: Ruiyu Ni > Thanks Ray! Who is responsible for the AtapPassThru, USB, NVME and SDHCI drivers? >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >> Ard Biesheuvel >> Sent: Tuesday, September 6, 2016 3:48 PM >> To: edk2-devel-01 ; Tian, Feng >> ; Zeng, Star ; Gao, Liming >> >> Cc: Laszlo Ersek ; Leif Lindholm >> ; Ard Biesheuvel >> 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 >> 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 >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel