* [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
* [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 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 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 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
* 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