audk/MdeModulePkg/Bus/Pci/PciHostBridgeDxe
Ard Biesheuvel e58a71d9c5 MdeModulePkg/PciHostBridgeDxe: restrict 64-bit DMA to devices that support it
Currently, the EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE attribute is completely
ignored by the PCI host bridge driver, which means that, on an implementation
that supports DMA above 4 GB, allocations above 4 GB may be provided to
devices that have not expressed support for it.

So in addition to checking 'RootBridge->DmaAbove4G' to establish whether the
root bridge itself supports DMA above 4 GB, we must also take into account
the operation type (EfiPciOperationBusMaster{Read|Write|CommonBuffer}64),
and the EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE attribute, when mapping and
allocating DMA memory, respectively.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ruiyu Ni <Ruiyu.ni@intel.com>
2016-09-06 15:46:38 +01:00
..
PciHostBridge.c MdeModulePkg/PciHostBridgeDxe: Honor ResourceAssigned 2016-05-11 08:53:36 +08:00
PciHostBridge.h MdeModulePkg/PciHostBridge: Refine function header comments. 2016-02-26 13:28:33 +01:00
PciHostBridgeDxe.inf MdeModulePkg/PciHostBridgeDxe: Add CpuArch protocol dependency 2016-05-24 13:42:01 +08:00
PciHostResource.h MdeModulePkg/PciHostBridgeDxe: fix Ia32 GCC44 build error 2016-07-18 19:22:41 +02:00
PciRootBridge.h MdeModulePkg/PciHostBridgeDxe: Honor ResourceAssigned 2016-05-11 08:53:36 +08:00
PciRootBridgeIo.c MdeModulePkg/PciHostBridgeDxe: restrict 64-bit DMA to devices that support it 2016-09-06 15:46:38 +01:00