The fix handles the PCI Dual Address Cycle Attribute case. It allows the Marvell Yukon driver with 64 bit DMA patches run on Juno.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daniil Egranov daniil.egranov@arm.com --- .../ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c index 10a4575..18f90a6 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;