On Mon, Nov 25, 2019 at 10:30:26AM +0000, Alexandru Elisei wrote: > From: Julien Thierry <julien.thierry@xxxxxxx> > > Linux has this convention that the lower 0x1000 bytes of the IO space > should not be used. (cf PCIBIOS_MIN_IO). > > Just allocate those bytes to prevent future allocation assigning it to > devices. I do not understand what this means; if the kernel reassigns IO BARs within the IO window kvmtool provides (through DT host controller bindings - ranges property) this patch should not be needed. Furthermore I don't think there should be any dependency in kvmtool to the Linux PCIBIOS_MIN_IO offset (which happens to be 0x1000 but kvmtool must not rely on that). To sum it up: kvmtool should assign sensible IO ports default values to BARs (even though that's *not* mandatory) and let the OS reassign values according to the IO port windows provided through DT bindings (ie ranges property). It is likely there is something I am missing in this patch logic, apologies for asking but I don't think this patch should be required. Thanks, Lorenzo > Cc: julien.thierry.kdev@xxxxxxxxx > Signed-off-by: Julien Thierry <julien.thierry@xxxxxxx> > Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> > --- > arm/pci.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arm/pci.c b/arm/pci.c > index 1c0949a22408..4e6467357ce8 100644 > --- a/arm/pci.c > +++ b/arm/pci.c > @@ -37,6 +37,9 @@ void pci__arm_init(struct kvm *kvm) > > /* Make PCI port allocation start at a properly aligned address */ > pci_get_io_port_block(align_pad); > + > + /* Convention, don't allocate first 0x1000 bytes of PCI IO */ > + pci_get_io_port_block(0x1000); > } > > void pci__generate_fdt_nodes(void *fdt) > -- > 2.20.1 >