On Mon, 24 Apr 2023 at 22:56, Jonathan Cameron <jonathan.came...@huawei.com> wrote: > > On Mon, 24 Apr 2023 16:45:48 +0100 > Peter Maydell <peter.mayd...@linaro.org> wrote: > > On the other hand, having QEMU enumerate PCI devices is *also* a > > very different model from today, where we assume that the guest > > code is the one that is going to deal with enumerating PCI devices. > > To my mind one of the major advantages of PCI is exactly that it > > is entirely probeable and discoverable, so that there is no need > > for the dtb to include a lot of information that the kernel can > > find out for itself by directly asking the hardware... > > I absolutely agree that QEMU enumerating PCI seem silly level of complexity > to introduce. So easy route is to just use the bus numbers to partition > resources. We have those available without any complexity. It's not the > same as how it's done with ACPI, but then the alternatives are either > (though maybe they are closer). Note current proposed algorithm may be > too simplistic (perhaps some alignment forcing should adjust the division > of the resources to start on round number addresses)
I think we definitely need to talk about this later this week, but my initial view is that if: (1) the guest kernel can get the information it needs to do this by probing the hardware (2) doing it in QEMU gives you "this isn't a great allocation" "we don't really have the info we need to do it optimally" "this is more of a policy decision" effects (which is what it's sounding like to me) this is a really strong argument for "guest software should be doing this". DTB-booting kernels has always meant the kernel doing a lot of work that under ACPI/UEFI/x86-PC is typically done by firmware, and this seems similar to me. thanks -- PMM