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