From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (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 E26091A1E3E for ; Tue, 6 Sep 2016 07:48:48 -0700 (PDT) Received: by mail-yw0-x236.google.com with SMTP id j1so37323752ywb.2 for ; Tue, 06 Sep 2016 07:48:48 -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=Z1q8SehkaHeuJ1ChHVxVHkw5AnaPzyfSHZ4Eax7i4xA=; b=W8wg6sCCkif2ZTthIenVnOaARDdPnCGldowpSRtRFWTyCvBi8S/d7hKi76UOD3yyda kR/fTJKx/rOCvzNrevAPLLDcqHfZthFh/YsuG4+VxFHdbzg/jEhavuSw9QC30Cm/Wept AaxL/TBAhKkMaQLKqaPNHQZTPlM7jBfgdVN8E= 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=Z1q8SehkaHeuJ1ChHVxVHkw5AnaPzyfSHZ4Eax7i4xA=; b=XS4MFoyzzUd5ZIxq/J+RyXkwSec6pm6CG/f0eqW3dBsQKEYbqjHXCFFHjGiETgcqEK qKwuK8gtxRjpRtVpQl98fJz0yPAsCCQ59vLYxVpBV0GH90huLEUsclZMCXeXOay9EW2J rt0CBrgYJ0pQwhtXB5Y9tLuoFBx6o3KZcIgXSot+rIGyKy7Vn7BWFTXFSDt/eCPNuISe Qwj0C4Qx5q0b5w8u5L6gcChYLfRHQvDW+XeCPDVSYeXTkMvpsp+2wuzcQ4UkRPVLW2kd PQQXwpYou77GM44d+PHOI4DxCnjy5W1T+2x3I4Ldjc0MBeQo88AZ3/AKq8X7Vr6UNwGT GYmA== X-Gm-Message-State: AE9vXwNvNHYqZ4AQIFROZK3RoDM5Ss5xXgH6NqkNMK0j/L/37fh9NuZw9wRsvJu7hQ5lKNWtyc2/PJBptt7wW68y X-Received: by 10.36.34.204 with SMTP id o195mr28565569ito.29.1473173327764; Tue, 06 Sep 2016 07:48:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.204.195 with HTTP; Tue, 6 Sep 2016 07:48:47 -0700 (PDT) In-Reply-To: <7F1BAD85ADEA444D97065A60D2E97EE566D86EFD@SHSMSX101.ccr.corp.intel.com> References: <1473067049-16252-1-git-send-email-ard.biesheuvel@linaro.org> <734D49CCEBEEF84792F5B80ED585239D58D4D199@SHSMSX103.ccr.corp.intel.com> <7F1BAD85ADEA444D97065A60D2E97EE566D86EFD@SHSMSX101.ccr.corp.intel.com> From: Ard Biesheuvel Date: Tue, 6 Sep 2016 15:48:47 +0100 Message-ID: To: "Tian, Feng" Cc: "Ni, Ruiyu" , edk2-devel-01 , "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 14:48:49 -0000 Content-Type: text/plain; charset=UTF-8 On 6 September 2016 at 13:41, Tian, Feng wrote: > ATA/USB/NVME/SD are ok to me > > Reviewed-by: Feng Tian > Thanks everyone Committed as a2c9b0873a77 MdeModulePkg/AtaAtapiPassThru: enable 64-bit PCI DMA 167c3fb45674 MdeModulePkg/EhciDxe: enable 64-bit PCI DMA 4e28ea2c29e0 MdeModulePkg/NvmExpressDxe: enable 64-bit PCI DMA df0a0e4b6fae MdeModulePkg/SdMmcPciHcDxe: enable 64-bit PCI DMA 5c1b371a8839 MdeModulePkg/XhciDxe: enable 64-bit PCI DMA e58a71d9c50b MdeModulePkg/PciHostBridgeDxe: restrict 64-bit DMA to devices that support it 4c0b2d25c61c ArmVirtPkg/FdtPciHostBridgeLib: enable 64-bit PCI DMA > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Tuesday, September 6, 2016 6:36 PM > To: Ni, Ruiyu > Cc: edk2-devel-01 ; Tian, Feng ; Zeng, Star ; Gao, Liming ; Laszlo Ersek ; Leif Lindholm > Subject: Re: [edk2] [PATCH 0/7] MdeModulePkg ArmVirtPkg: fixes for 64-bit PCI DMA > > 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