[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 3/6] xen/arm: create dom0less virtio-pci DT node
On Wed, Sep 25, 2024 at 05:38:13PM +0100, Julien Grall wrote:
> Hi Edgar,
>
> On 25/09/2024 17:34, Edgar E. Iglesias wrote:
> > On Wed, Sep 25, 2024 at 08:44:41AM +0100, Julien Grall wrote:
> > > Hi,
> > > On 24/09/2024 17:23, Edgar E. Iglesias wrote:
> > > > From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
> > > >
> > > > When virtio-pci is specified in the dom0less domU properties, create a
> > > > virtio-pci node in the guest's device tree. Set up an mmio handler with
> > > > a register for the guest to poll when the backend has connected and
> > > > virtio-pci bus is ready to be probed. Grant tables may be used by
> > > > specifying virtio-pci = "grants";.
> > > >
> > > > [Edgar: Use GPEX PCI INTX interrupt swizzling (from PCI specs).
> > > > Make grants iommu-map cover the entire PCI bus.
> > > > Add virtio-pci-ranges to specify memory-map for direct-mapped guests.
> > > > Document virtio-pci dom0less fdt bindings.]
> > > > Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
> > > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxx>
> > > > ---
> > > > docs/misc/arm/device-tree/booting.txt | 21 +++
> > > > xen/arch/arm/dom0less-build.c | 238 ++++++++++++++++++++++++++
> > > > xen/arch/arm/include/asm/kernel.h | 15 ++
> > > > 3 files changed, 274 insertions(+)
> > > >
> > > > diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> > > > index 3a04f5c57f..82f3bd7026 100644
> > > > --- a/docs/misc/arm/device-tree/booting.txt
> > > > +++ b/docs/misc/arm/device-tree/booting.txt
> > > > @@ -276,6 +276,27 @@ with the following properties:
> > > > passed through. This option is the default if this property is missing
> > > > and the user does not provide the device partial device tree for the domain.
> > > > +- virtio-pci
> > >
> > > Similar question to the other patches, why is this specific to virtio PCI?
> > > QEMU (or another device module) is free to emulate whatever it wants behind
> > > the PCI hosbtridge.
> >
> > There's no hard limitatino to only virtio-pci devices it's more of a
> > recommendation that PVH guests should not use "emulated" devices but
> > there's nothing stopping it.
>
> Could you provide a bit more details where this requirement is coming from?
> For instance, I would expect we would need to do some emulation to boot
> Windows on Arm.
>
I see. I guess it just came from my mental model, I thought part of the
philosophy behind PVH was to avoid emulated devices and use
paravirualized (virtio or something else) or passthrough whereever
possible (except for the basic set of devices needed like vGIC, vuart,
MMU).
For example, we would recommend users to use virtio-net in favor of an emulated eepro1000 or whatever other NIC models available in QEMU. But there is no hard requirement nor limitation, a user can connect any available PCI device from the QEMU set.
Another thing we're looking to do is to minimize the QEMU build (Kconfig + configure flags) to create a small build with only the stuff needed for virtio-pci.
Best regards, Edgar
|