[PATCH 0/7] Add support for R-Car Gen4 PCI host controller

Mykyta Poturai posted 7 patches 8 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1740382735.git.mykyta._5Fpoturai@epam.com
There is a newer version of this series
xen/arch/arm/include/asm/pci.h      |  16 +-
xen/arch/arm/pci/Makefile           |   1 +
xen/arch/arm/pci/ecam.c             |  17 +-
xen/arch/arm/pci/pci-access.c       |  37 +-
xen/arch/arm/pci/pci-host-common.c  | 106 +++++-
xen/arch/arm/pci/pci-host-generic.c |   2 +-
xen/arch/arm/pci/pci-host-rcar4.c   | 542 ++++++++++++++++++++++++++++
xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
xen/arch/arm/vpci.c                 |  91 ++++-
9 files changed, 764 insertions(+), 50 deletions(-)
create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
[PATCH 0/7] Add support for R-Car Gen4 PCI host controller
Posted by Mykyta Poturai 8 months, 1 week ago
This series adds support for R-Car Gen4 PCI host controller.

To fully support the controller, the following changes were made:
- Generic mechanism to support PCI child buses is added.
- Private data for PCI host bridge and means to access it are added.

The series also includes a workaround for proper ATU propramming and
optimizations to lessen the performance impact of that workaround.

The series was tested both as a part of the pci-passthrough patches[1] and
standalone on S4 and V4H boards.

[1] https://github.com/Deedone/xen/tree/pci_passthrough_wip

Oleksandr Andrushchenko (4):
  xen/arm: allow PCI host bridge to have private data
  xen/arm: make pci_host_common_probe return the bridge
  xen/arm: add support for PCI child bus
  xen/arm: add support for R-Car Gen4 PCI host controller

Volodymyr Babchuk (3):
  xen/arm: rcar4: add delay after programming ATU
  xen/arm: rcar4: add simple optimization to avoid ATU reprogramming
  xen/arm: rcar4: program ATU to accesses to all functions

 xen/arch/arm/include/asm/pci.h      |  16 +-
 xen/arch/arm/pci/Makefile           |   1 +
 xen/arch/arm/pci/ecam.c             |  17 +-
 xen/arch/arm/pci/pci-access.c       |  37 +-
 xen/arch/arm/pci/pci-host-common.c  | 106 +++++-
 xen/arch/arm/pci/pci-host-generic.c |   2 +-
 xen/arch/arm/pci/pci-host-rcar4.c   | 542 ++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
 xen/arch/arm/vpci.c                 |  91 ++++-
 9 files changed, 764 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c

-- 
2.34.1
Re: [PATCH 0/7] Add support for R-Car Gen4 PCI host controller
Posted by Stefano Stabellini 8 months ago
On Mon, 24 Feb 2025, Mykyta Poturai wrote:
> This series adds support for R-Car Gen4 PCI host controller.
> 
> To fully support the controller, the following changes were made:
> - Generic mechanism to support PCI child buses is added.
> - Private data for PCI host bridge and means to access it are added.
> 
> The series also includes a workaround for proper ATU propramming and
> optimizations to lessen the performance impact of that workaround.
> 
> The series was tested both as a part of the pci-passthrough patches[1] and
> standalone on S4 and V4H boards.
> 
> [1] https://github.com/Deedone/xen/tree/pci_passthrough_wip

Hi Mykyta,

I understand the need for this patch series in the context of vPCI and
PCI Passthrough.  

You also mentioned that you tested it as a standalone, meaning without
the PCI Passthrough patches. What is the purpose of this patch series
without PCI Passthrough?

Cheers,

Stefano




> Oleksandr Andrushchenko (4):
>   xen/arm: allow PCI host bridge to have private data
>   xen/arm: make pci_host_common_probe return the bridge
>   xen/arm: add support for PCI child bus
>   xen/arm: add support for R-Car Gen4 PCI host controller
> 
> Volodymyr Babchuk (3):
>   xen/arm: rcar4: add delay after programming ATU
>   xen/arm: rcar4: add simple optimization to avoid ATU reprogramming
>   xen/arm: rcar4: program ATU to accesses to all functions
> 
>  xen/arch/arm/include/asm/pci.h      |  16 +-
>  xen/arch/arm/pci/Makefile           |   1 +
>  xen/arch/arm/pci/ecam.c             |  17 +-
>  xen/arch/arm/pci/pci-access.c       |  37 +-
>  xen/arch/arm/pci/pci-host-common.c  | 106 +++++-
>  xen/arch/arm/pci/pci-host-generic.c |   2 +-
>  xen/arch/arm/pci/pci-host-rcar4.c   | 542 ++++++++++++++++++++++++++++
>  xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
>  xen/arch/arm/vpci.c                 |  91 ++++-
>  9 files changed, 764 insertions(+), 50 deletions(-)
>  create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
> 
> -- 
> 2.34.1
>
Re: [PATCH 0/7] Add support for R-Car Gen4 PCI host controller
Posted by Mykyta Poturai 8 months ago

On 05.03.25 23:48, Stefano Stabellini wrote:
> On Mon, 24 Feb 2025, Mykyta Poturai wrote:
>> This series adds support for R-Car Gen4 PCI host controller.
>>
>> To fully support the controller, the following changes were made:
>> - Generic mechanism to support PCI child buses is added.
>> - Private data for PCI host bridge and means to access it are added.
>>
>> The series also includes a workaround for proper ATU propramming and
>> optimizations to lessen the performance impact of that workaround.
>>
>> The series was tested both as a part of the pci-passthrough patches[1] and
>> standalone on S4 and V4H boards.
>>
> 
> Hi Mykyta,
> 
> I understand the need for this patch series in the context of vPCI and
> PCI Passthrough.
> 
> You also mentioned that you tested it as a standalone, meaning without
> the PCI Passthrough patches. What is the purpose of this patch series
> without PCI Passthrough?
> 
> Cheers,
> 
> Stefano

Hi Stefano

I just checked that it doesn't break anything if I force enable HAS_VPCI 
on the current master, without additional pci-passthrough patches.

However, while trying to confirm this, I have discovered that I somehow 
missed some fixups during patch preparations so this claim is sadly not 
true for this version of the series. And I have also found another issue 
with this while working on other series.

So please wait for V2 before looking further at this series, I will send 
it soon.

-- 
Mykyta
> 
> 
> 
>> Oleksandr Andrushchenko (4):
>>    xen/arm: allow PCI host bridge to have private data
>>    xen/arm: make pci_host_common_probe return the bridge
>>    xen/arm: add support for PCI child bus
>>    xen/arm: add support for R-Car Gen4 PCI host controller
>>
>> Volodymyr Babchuk (3):
>>    xen/arm: rcar4: add delay after programming ATU
>>    xen/arm: rcar4: add simple optimization to avoid ATU reprogramming
>>    xen/arm: rcar4: program ATU to accesses to all functions
>>
>>   xen/arch/arm/include/asm/pci.h      |  16 +-
>>   xen/arch/arm/pci/Makefile           |   1 +
>>   xen/arch/arm/pci/ecam.c             |  17 +-
>>   xen/arch/arm/pci/pci-access.c       |  37 +-
>>   xen/arch/arm/pci/pci-host-common.c  | 106 +++++-
>>   xen/arch/arm/pci/pci-host-generic.c |   2 +-
>>   xen/arch/arm/pci/pci-host-rcar4.c   | 542 ++++++++++++++++++++++++++++
>>   xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
>>   xen/arch/arm/vpci.c                 |  91 ++++-
>>   9 files changed, 764 insertions(+), 50 deletions(-)
>>   create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
>>
>> -- 
>> 2.34.1
>>