public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [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