On Thu, Dec 31, 2020 at 07:08:23PM -0800, Bin Gao wrote: > On real hardware especially server platforms, there might be multiple > root buses, thus pci bus number could run up to 255. This patch fixed > pci_probe_devices() by allowing to scan all 256 pci bus numbers(0-255). > > Signed-off-by: Bin Gao <gao...@amazon.com> > --- > src/hw/pcidevice.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/src/hw/pcidevice.c b/src/hw/pcidevice.c > index 8853cf7..8d9c401 100644 > --- a/src/hw/pcidevice.c > +++ b/src/hw/pcidevice.c > @@ -26,6 +26,14 @@ pci_probe_devices(void) > struct hlist_node **pprev = &PCIDevices.first; > int extraroots = romfile_loadint("etc/extra-pci-roots", 0); > int bus = -1, lastbus = 0, rootbuses = 0, count=0; > + > + // There might be multiple PCI root buses on physical hardware especially > + // server platforms, thus bus number could run up to the top value, > + // i.e. 0xff. Setting extraroots to 0xff to ensure we can enumerate all > + // PCI bus numbers. > + if (CONFIG_CSM) > + extraroots = 0xff;
This doesn't look correct to me. It would take a noticeable amount of time to scan every possible PCI root bus. It would introduce a regression for any current users of CONFIG_CSM. The "etc/extra-pci-roots" config is intended to allow users to make these choices at runtime. If more configurability is desired on CONFIG_CSM, then it will be needed to figure out a way to pass options to SeaBIOS when in that mode. -Kevin _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org