* [PATCH 0/2] Juno PCI fixes @ 2016-09-22 22:32 Daniil Egranov 2016-09-22 22:33 ` [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib Daniil Egranov 2016-09-22 22:33 ` [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle Daniil Egranov 0 siblings, 2 replies; 11+ messages in thread From: Daniil Egranov @ 2016-09-22 22:32 UTC (permalink / raw) To: edk2-devel; +Cc: leif.lindholm, Daniil Egranov The patches fixing the case where driver is using PCI DAC and replacing PCI DMA related calls to the ArmDmaLib with their Null implementations as the PCI on Juno is DMA coherent. Daniil Egranov (2): ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove dependency on ArmDmaLib ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle .../ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf | 2 +- .../ArmJunoPkg/Drivers/PciHostBridgeDxe/PciRootBridge.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-22 22:32 [PATCH 0/2] Juno PCI fixes Daniil Egranov @ 2016-09-22 22:33 ` Daniil Egranov 2016-09-23 7:57 ` Ard Biesheuvel 2016-09-22 22:33 ` [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle Daniil Egranov 1 sibling, 1 reply; 11+ messages in thread From: Daniil Egranov @ 2016-09-22 22:33 UTC (permalink / raw) To: edk2-devel; +Cc: leif.lindholm, Daniil Egranov The PCI on Juno is DMA coherent, which means it should not be using ArmDmaLib for PCI DMA. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> --- ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf index de28c80..597154c 100644 --- a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf +++ b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf @@ -36,7 +36,7 @@ MemoryAllocationLib DxeServicesTableLib CacheMaintenanceLib - DmaLib + NullDmaLib [Sources] PciHostBridge.c -- 2.7.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-22 22:33 ` [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib Daniil Egranov @ 2016-09-23 7:57 ` Ard Biesheuvel 2016-09-23 16:20 ` Daniil Egranov 0 siblings, 1 reply; 11+ messages in thread From: Ard Biesheuvel @ 2016-09-23 7:57 UTC (permalink / raw) To: Daniil Egranov; +Cc: edk2-devel@lists.01.org, Leif Lindholm Hi Daniil, On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> wrote: > The PCI on Juno is DMA coherent, which means it should not be > using ArmDmaLib for PCI DMA. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> > --- > ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf > index de28c80..597154c 100644 > --- a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf > +++ b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf > @@ -36,7 +36,7 @@ > MemoryAllocationLib > DxeServicesTableLib > CacheMaintenanceLib > - DmaLib > + NullDmaLib > This is wrong. The module .inf lists library *classes* and the platform .dsc decides how each class maps onto an implementation (aka library resolution) IOW, the other patch you sent that updates ARM Juno's .dsc is sufficient. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-23 7:57 ` Ard Biesheuvel @ 2016-09-23 16:20 ` Daniil Egranov 2016-09-23 16:21 ` Ard Biesheuvel 0 siblings, 1 reply; 11+ messages in thread From: Daniil Egranov @ 2016-09-23 16:20 UTC (permalink / raw) To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Leif Lindholm Hi Ard, On 09/23/2016 02:57 AM, Ard Biesheuvel wrote: > Hi Daniil, > > On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> wrote: >> The PCI on Juno is DMA coherent, which means it should not be >> using ArmDmaLib for PCI DMA. >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> >> --- >> ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >> index de28c80..597154c 100644 >> --- a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >> +++ b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >> @@ -36,7 +36,7 @@ >> MemoryAllocationLib >> DxeServicesTableLib >> CacheMaintenanceLib >> - DmaLib >> + NullDmaLib >> > This is wrong. The module .inf lists library *classes* and the > platform .dsc decides how each class maps onto an implementation (aka > library resolution) Agree. However, this is platform specific module and as i understand, the behavior of it will not change so, I think, having NullDmaLib here will be appropriate as well. We can move it to .dsc file, if it fits better to the platform description/module dependencies structure. > IOW, the other patch you sent that updates ARM Juno's .dsc is sufficient. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-23 16:20 ` Daniil Egranov @ 2016-09-23 16:21 ` Ard Biesheuvel 2016-09-23 21:47 ` Daniil Egranov 0 siblings, 1 reply; 11+ messages in thread From: Ard Biesheuvel @ 2016-09-23 16:21 UTC (permalink / raw) To: Daniil Egranov; +Cc: edk2-devel@lists.01.org, Leif Lindholm On 23 September 2016 at 17:20, Daniil Egranov <daniil.egranov@arm.com> wrote: > Hi Ard, > > > On 09/23/2016 02:57 AM, Ard Biesheuvel wrote: >> >> Hi Daniil, >> >> On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> >> wrote: >>> >>> The PCI on Juno is DMA coherent, which means it should not be >>> using ArmDmaLib for PCI DMA. >>> >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> >>> --- >>> ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git >>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> index de28c80..597154c 100644 >>> --- >>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> +++ >>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> @@ -36,7 +36,7 @@ >>> MemoryAllocationLib >>> DxeServicesTableLib >>> CacheMaintenanceLib >>> - DmaLib >>> + NullDmaLib >>> >> This is wrong. The module .inf lists library *classes* and the >> platform .dsc decides how each class maps onto an implementation (aka >> library resolution) > > Agree. However, this is platform specific module and as i understand, the > behavior of it will not change so, I think, having NullDmaLib here will be > appropriate as well. We can move it to .dsc file, if it fits better to the > platform description/module dependencies structure. > What you could do is remove the DmaLib dependency altogether, and just implement PciIo->Map and PciIo->Unmap directly, and always return the host address. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-23 16:21 ` Ard Biesheuvel @ 2016-09-23 21:47 ` Daniil Egranov 2016-09-24 12:05 ` Ard Biesheuvel 0 siblings, 1 reply; 11+ messages in thread From: Daniil Egranov @ 2016-09-23 21:47 UTC (permalink / raw) To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Leif Lindholm On 09/23/2016 11:21 AM, Ard Biesheuvel wrote: > On 23 September 2016 at 17:20, Daniil Egranov <daniil.egranov@arm.com> wrote: >> Hi Ard, >> >> >> On 09/23/2016 02:57 AM, Ard Biesheuvel wrote: >>> Hi Daniil, >>> >>> On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> >>> wrote: >>>> The PCI on Juno is DMA coherent, which means it should not be >>>> using ArmDmaLib for PCI DMA. >>>> >>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>> Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> >>>> --- >>>> ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>> | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git >>>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>> index de28c80..597154c 100644 >>>> --- >>>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>> +++ >>>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>> @@ -36,7 +36,7 @@ >>>> MemoryAllocationLib >>>> DxeServicesTableLib >>>> CacheMaintenanceLib >>>> - DmaLib >>>> + NullDmaLib >>>> >>> This is wrong. The module .inf lists library *classes* and the >>> platform .dsc decides how each class maps onto an implementation (aka >>> library resolution) >> Agree. However, this is platform specific module and as i understand, the >> behavior of it will not change so, I think, having NullDmaLib here will be >> appropriate as well. We can move it to .dsc file, if it fits better to the >> platform description/module dependencies structure. >> > What you could do is remove the DmaLib dependency altogether, and just > implement PciIo->Map and PciIo->Unmap directly, and always return the > host address. This implementation will be almost the same as NullDmaLib one :). If you think it will be better structure-wise to remap it in .dsc file, let's go this path and disregard this patch. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib 2016-09-23 21:47 ` Daniil Egranov @ 2016-09-24 12:05 ` Ard Biesheuvel 0 siblings, 0 replies; 11+ messages in thread From: Ard Biesheuvel @ 2016-09-24 12:05 UTC (permalink / raw) To: Daniil Egranov; +Cc: edk2-devel@lists.01.org, Leif Lindholm On 23 September 2016 at 22:47, Daniil Egranov <daniil.egranov@arm.com> wrote: > > > On 09/23/2016 11:21 AM, Ard Biesheuvel wrote: >> >> On 23 September 2016 at 17:20, Daniil Egranov <daniil.egranov@arm.com> >> wrote: >>> >>> Hi Ard, >>> >>> >>> On 09/23/2016 02:57 AM, Ard Biesheuvel wrote: >>>> >>>> Hi Daniil, >>>> >>>> On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> >>>> wrote: >>>>> >>>>> The PCI on Juno is DMA coherent, which means it should not be >>>>> using ArmDmaLib for PCI DMA. >>>>> >>>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>>> Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> >>>>> --- >>>>> >>>>> ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>>> | 2 +- >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>> >>>>> diff --git >>>>> >>>>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>>> >>>>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>>> index de28c80..597154c 100644 >>>>> --- >>>>> >>>>> a/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>>> +++ >>>>> >>>>> b/ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf >>>>> @@ -36,7 +36,7 @@ >>>>> MemoryAllocationLib >>>>> DxeServicesTableLib >>>>> CacheMaintenanceLib >>>>> - DmaLib >>>>> + NullDmaLib >>>>> >>>> This is wrong. The module .inf lists library *classes* and the >>>> platform .dsc decides how each class maps onto an implementation (aka >>>> library resolution) >>> >>> Agree. However, this is platform specific module and as i understand, the >>> behavior of it will not change so, I think, having NullDmaLib here will >>> be >>> appropriate as well. We can move it to .dsc file, if it fits better to >>> the >>> platform description/module dependencies structure. >>> >> What you could do is remove the DmaLib dependency altogether, and just >> implement PciIo->Map and PciIo->Unmap directly, and always return the >> host address. > > This implementation will be almost the same as NullDmaLib one :). If you > think it will be better structure-wise to remap it in .dsc file, let's go > this path and disregard this patch. > The [LibraryClasses] section expects library classes, and NullDmaLib is not a library class. So putting this here is simply wrong. This is not a matter of taste. Also, another platform could potentially use the same PCIe IP and integrate it in a non-coherent fashion, so it is not a property of the device if it is coherent or not. So forget about my suggestion to drop the DmaLib dependency. Just add NullDmaLib to the .dsc, but for this driver only. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle 2016-09-22 22:32 [PATCH 0/2] Juno PCI fixes Daniil Egranov 2016-09-22 22:33 ` [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib Daniil Egranov @ 2016-09-22 22:33 ` Daniil Egranov 2016-09-23 7:58 ` Ard Biesheuvel 1 sibling, 1 reply; 11+ messages in thread From: Daniil Egranov @ 2016-09-22 22:33 UTC (permalink / raw) To: edk2-devel; +Cc: leif.lindholm, Daniil Egranov 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> --- .../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..72d0915 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; -- 2.7.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle 2016-09-22 22:33 ` [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle Daniil Egranov @ 2016-09-23 7:58 ` Ard Biesheuvel 2016-10-12 8:37 ` Ryan Harkin 0 siblings, 1 reply; 11+ messages in thread From: Ard Biesheuvel @ 2016-09-23 7:58 UTC (permalink / raw) To: Daniil Egranov; +Cc: edk2-devel@lists.01.org, Leif Lindholm On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> wrote: > 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> > --- > .../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..72d0915 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; > -- > 2.7.4 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle 2016-09-23 7:58 ` Ard Biesheuvel @ 2016-10-12 8:37 ` Ryan Harkin 2016-10-12 8:41 ` Ard Biesheuvel 0 siblings, 1 reply; 11+ messages in thread From: Ryan Harkin @ 2016-10-12 8:37 UTC (permalink / raw) To: Ard Biesheuvel; +Cc: Daniil Egranov, edk2-devel@lists.01.org, Leif Lindholm On 23 September 2016 at 08:58, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> wrote: >> 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 on Juno R0/1/2, where R0 doesn't use the Marvell ethernet controller, but the SMC ethernet still works. Tested-by: Ryan Harkin <ryan.harkin@linaro.org> >> --- >> .../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..72d0915 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; >> -- >> 2.7.4 >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle 2016-10-12 8:37 ` Ryan Harkin @ 2016-10-12 8:41 ` Ard Biesheuvel 0 siblings, 0 replies; 11+ messages in thread From: Ard Biesheuvel @ 2016-10-12 8:41 UTC (permalink / raw) To: Ryan Harkin; +Cc: Daniil Egranov, edk2-devel@lists.01.org, Leif Lindholm On 12 October 2016 at 09:37, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On 23 September 2016 at 08:58, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: >> On 22 September 2016 at 23:33, Daniil Egranov <daniil.egranov@arm.com> wrote: >>> 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 on Juno R0/1/2, where R0 doesn't use the Marvell ethernet > controller, but the SMC ethernet still works. > > Tested-by: Ryan Harkin <ryan.harkin@linaro.org> > Pushed, thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-10-12 8:41 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-22 22:32 [PATCH 0/2] Juno PCI fixes Daniil Egranov 2016-09-22 22:33 ` [PATCH 1/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Remove calls to ArmDmaLib Daniil Egranov 2016-09-23 7:57 ` Ard Biesheuvel 2016-09-23 16:20 ` Daniil Egranov 2016-09-23 16:21 ` Ard Biesheuvel 2016-09-23 21:47 ` Daniil Egranov 2016-09-24 12:05 ` Ard Biesheuvel 2016-09-22 22:33 ` [PATCH 2/2] ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe: Fix for PCI Dual Address Cycle Daniil Egranov 2016-09-23 7:58 ` Ard Biesheuvel 2016-10-12 8:37 ` Ryan Harkin 2016-10-12 8:41 ` Ard Biesheuvel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox