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;
On 27 August 2016 at 01:20, Daniil Egranov daniil.egranov@arm.com wrote:
The fix handles the PCI Dual Address Cycle Attribute case. It allows the Marvell Yukon driver with 64 bit DMA patches run on Juno.
Any chance we could switch to the generic PciHostBridgeDxe (with a suitable PciHostBridgeLib implementation) rather than having to patch things up?
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 ||
DmaOperation = MapOperationBusMasterRead;Operation == EfiPciOperationBusMasterRead64) {
- } else if (Operation == EfiPciOperationBusMasterWrite) {
- } else if (Operation == EfiPciOperationBusMasterWrite ||
DmaOperation = MapOperationBusMasterWrite;Operation == EfiPciOperationBusMasterWrite64) {
- } else if (Operation == EfiPciOperationBusMasterCommonBuffer) {
- } else if (Operation == EfiPciOperationBusMasterCommonBuffer ||
DmaOperation = MapOperationBusMasterCommonBuffer; } else { return EFI_INVALID_PARAMETER;Operation == EfiPciOperationBusMasterCommonBuffer64) {
-- 2.7.4
On 08/27/2016 09:32 AM, Ard Biesheuvel wrote:
On 27 August 2016 at 01:20, Daniil Egranov daniil.egranov@arm.com wrote:
The fix handles the PCI Dual Address Cycle Attribute case. It allows the Marvell Yukon driver with 64 bit DMA patches run on Juno.
Any chance we could switch to the generic PciHostBridgeDxe (with a suitable PciHostBridgeLib implementation) rather than having to patch things up?
It's hard to say at this moment. The implementations of Juno PciHostBridgeDxe and generic one look very different.
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 ||
} else { return EFI_INVALID_PARAMETER;Operation == EfiPciOperationBusMasterCommonBuffer64) { DmaOperation = MapOperationBusMasterCommonBuffer;
-- 2.7.4
Linaro-uefi mailing list Linaro-uefi@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-uefi