From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::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 26B8E1A1E01 for ; Tue, 23 Aug 2016 11:04:04 -0700 (PDT) Received: by mail-it0-x236.google.com with SMTP id x131so163056179ite.0 for ; Tue, 23 Aug 2016 11:04:04 -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=vWYGfUV0oyUvnw4MZ3MMIc27QTX5SMwH5kOS0LUmzT4=; b=IGFhc4fA4/aEs5TAwMfHgi4ofnXJzBuUoLClZkU+232IfKlRrzLse4KFzJI0bxN+RB 67aG1p8q+O1TAe5hBIm0s8X8NCJyQj5QA33GxWfnyT+aEJrZpsI/x2gmNsEpU/NSvoS5 /M1ebLJTuyplOEZwewKl+9EIGlJQBCRFEcUjQ= 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=vWYGfUV0oyUvnw4MZ3MMIc27QTX5SMwH5kOS0LUmzT4=; b=SANWyh4tHj8r3bN36hs1CFYalwRm9kJW7MBgoaANc2KSeHgM5lWmOiIk8rEga8l0ol /u2FQGgJYWHLBSg0s7GAQlx3UIXCyTBr48mNjfmlz1hJAZS2HLmHlBEAyf1NKHo01Jvh v6+W3s8WwwH5CMKVCfXabpzEtdtYgYP/JTzw18uqp6oKSak50nEDaNulvmHOiXx7c2I0 TSM5k9WDtirXg1KCQhCF0r+FXUSI1dal5q5soClvaqsQftGmm+sK88jLDXVnmxP7+CFO X3/ZyNFO5pACkFwGy9xwSuLUX+vo1QaofCaXr4AXxqoanzebGQ4DMAdB91kKNMwoC/Ph U1KA== X-Gm-Message-State: AEkooutxfHYkg/I9v9NREUmG1sJTziwOPtPd3+AwAqN38vqcNbxwmWk/Npoh7vQ3Grjs7kuQeaz1C0A9+A5YqTb+ X-Received: by 10.36.7.209 with SMTP id f200mr28131930itf.29.1471975443153; Tue, 23 Aug 2016 11:04:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.204.195 with HTTP; Tue, 23 Aug 2016 11:04:02 -0700 (PDT) In-Reply-To: <1471847752-26574-4-git-send-email-ard.biesheuvel@linaro.org> References: <1471847752-26574-1-git-send-email-ard.biesheuvel@linaro.org> <1471847752-26574-4-git-send-email-ard.biesheuvel@linaro.org> From: Ard Biesheuvel Date: Tue, 23 Aug 2016 20:04:02 +0200 Message-ID: To: edk2-devel-01 , Laszlo Ersek Cc: Ard Biesheuvel Subject: Re: [PATCH 3/5] ArmVirtPkg/ArmVirtQemu: switch to generic PciHostBridgeDxe 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, 23 Aug 2016 18:04:04 -0000 Content-Type: text/plain; charset=UTF-8 On 22 August 2016 at 08:35, Ard Biesheuvel wrote: > Wire up the FdtPciHostBridgeLib introduced in the previous patch > to the generic PciHostBridgeDxe implementation, and drop the special > ArmVirtPkg version. The former's dependency on gEfiCpuIo2ProtocolGuid > is satisfied by adding ArmPciCpuIo2Dxe.inf as well, and adding the PCD > gArmTokenSpaceGuid.PcdPciIoTranslation as a dynamic PCD. > > In terms of functionality, the only effect this change should have is > that we will no longer use bounce buffers for DMA above 4 GB. Other > than that, no functional changes are intended. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel > --- > ArmVirtPkg/ArmVirtQemu.dsc | 7 ++++++- > ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 3 ++- > ArmVirtPkg/ArmVirtQemuKernel.dsc | 7 ++++++- > ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c | 4 ++-- > 4 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc > index 1d459756f61b..ddc72e7044f7 100644 > --- a/ArmVirtPkg/ArmVirtQemu.dsc > +++ b/ArmVirtPkg/ArmVirtQemu.dsc > @@ -69,6 +69,8 @@ [LibraryClasses.common] > QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf > + PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > > [LibraryClasses.common.UEFI_DRIVER] > UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > @@ -210,6 +212,8 @@ [PcdsDynamicDefault.common] > # PCD and PcdPciDisableBusEnumeration above have not been assigned yet > gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF > > + gArmTokenSpaceGuid.PcdPciIoTranslation|0x0 > + > # > # Set video resolution for boot options and for text setup. > # PlatformDxe can set the former at runtime. > @@ -363,7 +367,8 @@ [Components.common] > # > # PCI support > # > - ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf > + ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > > NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc > index 01e650d9e333..c56188f347ec 100644 > --- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc > +++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc > @@ -151,7 +151,8 @@ [FV.FvMain] > # > # PCI support > # > - INF ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf > + INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf > + INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > INF OvmfPkg/Virtio10Dxe/Virtio10.inf > diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc > index 99d2feba202b..305aa5bacb32 100644 > --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc > +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc > @@ -71,6 +71,8 @@ [LibraryClasses.common] > QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf > + PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > > [LibraryClasses.common.UEFI_DRIVER] > UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > @@ -203,6 +205,8 @@ [PcdsDynamicDefault.common] > # PCD and PcdPciDisableBusEnumeration above have not been assigned yet > gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF > > + gArmTokenSpaceGuid.PcdPciIoTranslation|0x0 > + > # > # Set video resolution for boot options and for text setup. > # PlatformDxe can set the former at runtime. > @@ -349,7 +353,8 @@ [Components.common] > # > # PCI support > # > - ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf > + ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > > NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > diff --git a/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c b/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c > index 887ddb01f586..0aff149e8029 100644 > --- a/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c > +++ b/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c > @@ -304,8 +304,8 @@ PciHostBridgeGetRootBridges ( > RootBridge->Io.Limit = IoBase + IoSize - 1; > RootBridge->Mem.Base = Mmio32Base; > RootBridge->Mem.Limit = Mmio32Base + Mmio32Size - 1; > - RootBridge->MemAbove4G.Base = 0x100000000ULL; > - RootBridge->MemAbove4G.Limit = 0xFFFFFFFF; > + RootBridge->MemAbove4G.Base = MAX_UINT64; > + RootBridge->MemAbove4G.Limit = 0; > This hunk was intended as a fixup for the previous patch, but I accidentally folded it here instead.