summaryrefslogtreecommitdiffstats
path: root/ArmPlatformPkg
diff options
context:
space:
mode:
authorDaniil Egranov <daniil.egranov@arm.com>2016-09-22 17:33:01 -0500
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2016-10-12 09:41:08 +0100
commit50d4be4f4e3d5beb2c1aa58853b92e3cc1f4cb9a (patch)
tree29b600c72230e543f3369c16c592b6092ff12db6 /ArmPlatformPkg
parent272142289dbb5e8203f94cba1cc06c96b77a6938 (diff)
downloaddevice_linaro_bootloader_edk2-50d4be4f4e3d5beb2c1aa58853b92e3cc1f4cb9a.tar.gz
device_linaro_bootloader_edk2-50d4be4f4e3d5beb2c1aa58853b92e3cc1f4cb9a.tar.bz2
device_linaro_bootloader_edk2-50d4be4f4e3d5beb2c1aa58853b92e3cc1f4cb9a.zip
ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle
The fix handles the PCI Dual Address Cycle Attribute case. It allows drivers using PCI DAC run on Juno. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Diffstat (limited to 'ArmPlatformPkg')
-rw-r--r--ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c
index 10a4575c1..72d09156c 100644
--- a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c
+++ b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c
@@ -518,11 +518,14 @@ PciRbMap (
PCI_TRACE ("PciRbMap()");
- if (Operation == EfiPciOperationBusMasterRead) {
+ if (Operation == EfiPciOperationBusMasterRead ||
+ Operation == EfiPciOperationBusMasterRead64) {
DmaOperation = MapOperationBusMasterRead;
- } else if (Operation == EfiPciOperationBusMasterWrite) {
+ } else if (Operation == EfiPciOperationBusMasterWrite ||
+ Operation == EfiPciOperationBusMasterWrite64) {
DmaOperation = MapOperationBusMasterWrite;
- } else if (Operation == EfiPciOperationBusMasterCommonBuffer) {
+ } else if (Operation == EfiPciOperationBusMasterCommonBuffer ||
+ Operation == EfiPciOperationBusMasterCommonBuffer64) {
DmaOperation = MapOperationBusMasterCommonBuffer;
} else {
return EFI_INVALID_PARAMETER;