On 22 August 2016 at 08:35, Ard Biesheuvel <[email protected]> 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 <[email protected]>
> ---
>  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 {
>      <LibraryClasses>
>        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 {
>      <LibraryClasses>
>        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.
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to