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:12:58 +0200
User-agent: Mutt/1.6.0.1 (2016-04-01)

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.)

Thanks,
drew



reply via email to

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