qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/arm/virt: Add linux, pci-domain property


From: Andrew Jones
Subject: Re: [Qemu-devel] [PATCH] hw/arm/virt: Add linux, pci-domain property
Date: Tue, 24 Apr 2018 16:17:46 +0200
User-agent: Mutt/1.6.0.1 (2016-04-01)

On Tue, Apr 24, 2018 at 04:12:58PM +0200, Andrew Jones wrote:
> On Mon, Apr 23, 2018 at 02:11:40PM +0100, Peter Maydell wrote:
> > On 23 April 2018 at 06:18, Jan Kiszka <address@hidden> wrote:
> > > From: Jan Kiszka <address@hidden>
> > >
> > > This allows to pin the host controller in the Linux PCI domain space.
> > > Linux requires that property to be available consistently or not at all,
> > > in which case the domain number becomes unstable on additions/removals.
> > > Adding it here won't make a difference in practice for most setups as we
> > > only expose one controller.
> > >
> > > However, enabling Jailhouse on top may introduce another controller, and
> > > that one would like to have stable address as well. So the property is
> > > needed for the first controller as well.
> > 
> > Am I right in thinking that for ACPI the PCI domain number is
> > communicated via the _SEG method? If so, looks like we already
> > set that, and we set it to 0, which matches what we're doing here
> > in the DT, so that's good.
> 
> _SEG and linux,pci-domain are similar in definition, but don't appear to
> be equivalent, as the same _SEG number is permitted across multiple host
> bridges, but linux,pci-domain must be unique for each host bridge. I
> think the (_SEG, _BBN) pair may form the equivalent. We also set _BBN
> to zero, so I think we're fine anyway.
> 
> > 
> > > Signed-off-by: Jan Kiszka <address@hidden>
> > > ---
> > >  hw/arm/virt.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> > > index 94dcb125d3..943371b75e 100644
> > > --- a/hw/arm/virt.c
> > > +++ b/hw/arm/virt.c
> > > @@ -1023,6 +1023,7 @@ static void create_pcie(const VirtMachineState 
> > > *vms, qemu_irq *pic)
> > >      qemu_fdt_setprop_string(vms->fdt, nodename, "device_type", "pci");
> > >      qemu_fdt_setprop_cell(vms->fdt, nodename, "#address-cells", 3);
> > >      qemu_fdt_setprop_cell(vms->fdt, nodename, "#size-cells", 2);
> > > +    qemu_fdt_setprop_cell(vms->fdt, nodename, "linux,pci-domain", 0);
> > >      qemu_fdt_setprop_cells(vms->fdt, nodename, "bus-range", 0,
> > >                             nr_pcie_buses - 1);
> > >      qemu_fdt_setprop(vms->fdt, nodename, "dma-coherent", NULL, 0);
> > > --
> > 
> > Drew -- is minor changes to the DTC something we can do without
> > having to condition it on machine version? I forget...
> 
> Yes, and even less minor changes than this one can be made to ACPI and DT
> generation, per the "if a firwmare update could change it, then don't
> worry about it" policy.
> 
> (I've CC'ed Igor in case he wants to chime in to correct anything I've
>  said.)

Eh, now I've CC'ed him...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]