mbox series

[0/8] hw/pci-host/designware: QOM shuffling (Host bridge <-> Root function)

Message ID 20231012121857.31873-1-philmd@linaro.org
Headers show
Series hw/pci-host/designware: QOM shuffling (Host bridge <-> Root function) | expand

Message

Philippe Mathieu-Daudé Oct. 12, 2023, 12:18 p.m. UTC
Hi,

While trying this PCI host bridge in a hegerogeneous setup
I noticed few discrepancies due to the fact that host bridge
pieces were managed by the root function.

This series move these pieces (ViewPort and MSI regs) to the
host bridge side where they belong. Unfortunately this is
a migration breakage.

I recommend reviewing using 'git-diff --color-moved=dimmed-zebra'.

Regards,

Phil.

Philippe Mathieu-Daudé (8):
  hw/pci-host/designware: Declare CPU QOM types using DEFINE_TYPES()
    macro
  hw/pci-host/designware: Initialize root function in host bridge
    realize
  hw/pci-host/designware: Add 'host_mem' variable for clarity
  hw/pci-host/designware: Hoist host controller in root function #0
  hw/pci-host/designware: Keep host reference in DesignwarePCIEViewport
  hw/pci-host/designware: Move viewports from root func to host bridge
  hw/pci-host/designware: Move MSI registers from root func to host
    bridge
  hw/pci-host/designware: Create ViewPorts during host bridge
    realization

 include/hw/pci-host/designware.h |  20 +-
 hw/pci-host/designware.c         | 376 +++++++++++++++----------------
 2 files changed, 187 insertions(+), 209 deletions(-)

Comments

Peter Maydell Oct. 27, 2023, 12:18 p.m. UTC | #1
On Thu, 12 Oct 2023 at 13:19, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Hi,
>
> While trying this PCI host bridge in a hegerogeneous setup
> I noticed few discrepancies due to the fact that host bridge
> pieces were managed by the root function.
>
> This series move these pieces (ViewPort and MSI regs) to the
> host bridge side where they belong. Unfortunately this is
> a migration breakage.
>
> I recommend reviewing using 'git-diff --color-moved=dimmed-zebra'.
>
> Regards,
>

I had a go at reviewing this series, but I ran into the
problem that I don't know enough PCI to know whether
the various things being moved between root and bridge
here really do belong logically in one place rather
than the other.

Is there somebody with more PCI experience who could
look at this series?

thanks
-- PMM
Philippe Mathieu-Daudé Nov. 15, 2023, 2:47 p.m. UTC | #2
Cc'ing Sifive developers :)

On 12/10/23 14:18, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> While trying this PCI host bridge in a hegerogeneous setup
> I noticed few discrepancies due to the fact that host bridge
> pieces were managed by the root function.
> 
> This series move these pieces (ViewPort and MSI regs) to the
> host bridge side where they belong. Unfortunately this is
> a migration breakage.
> 
> I recommend reviewing using 'git-diff --color-moved=dimmed-zebra'.
> 
> Regards,
> 
> Phil.
> 
> Philippe Mathieu-Daudé (8):
>    hw/pci-host/designware: Declare CPU QOM types using DEFINE_TYPES()
>      macro
>    hw/pci-host/designware: Initialize root function in host bridge
>      realize
>    hw/pci-host/designware: Add 'host_mem' variable for clarity
>    hw/pci-host/designware: Hoist host controller in root function #0
>    hw/pci-host/designware: Keep host reference in DesignwarePCIEViewport
>    hw/pci-host/designware: Move viewports from root func to host bridge
>    hw/pci-host/designware: Move MSI registers from root func to host
>      bridge
>    hw/pci-host/designware: Create ViewPorts during host bridge
>      realization
> 
>   include/hw/pci-host/designware.h |  20 +-
>   hw/pci-host/designware.c         | 376 +++++++++++++++----------------
>   2 files changed, 187 insertions(+), 209 deletions(-)
>