On Sun, Jun 14, 2015 at 02:10:22PM +0200, Michael S. Tsirkin wrote:
> On Thu, Jun 11, 2015 at 12:48:22PM -0400, Kevin O'Connor wrote:
> > The SeaBIOS code is used on both virtual machines and real machines.
> > The bus number is something that is generated by software and it is
> > not assured to be stable between boots.  (For example, if someone adds
> > a PCI device to their machine between boots then every bus number in
> > the system might be different on the next boot.)  The open firmware
> > paths go to great length to avoid arbitrary bus numbers today - for
> > example:
> > 
> > /pci@i0cf8/pci-bridge@1/usb@1,2/hub@3/storage@1/channel@0/disk@0,0
> > 
> > Given the complexity to avoid arbitrary bus numbers I'm confused why
> > one would want to add them.
> 
> Could you give an example real-hardware path when there are multiple
> roots though?
> I'd like to make sure what qemu generates matches that.

I don't have the hardware, but I've asked a user that does to send in
a log.

Here's a real world example of a search path that is generated today
for bus 0:

01.249: Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0

Here's what SeaBIOS is coded to produce for a similar device on the
first extra pci root bus instead:

01.249: Searching bootorder for: /pci-root@1/pci@i0cf8/*@11/drive@0/disk@0

Placing "pci@i0cf8" after "pci-root@1" is admittedly hokey, and I
don't have any issue with changing it.

-Kevin

Reply via email to