On Wed, Apr 25, 2012 at 05:29:04PM +0200, Gerd Hoffmann wrote: > Issue #1: seabios can't boot from a virtio-scsi disk if the controller > is behind a pci bridge. I think the reason simply is that (according to > the seabios log) only root bus pci devices are initialized. Probably > even isn't related to this patch set, just trapped into this while > testing the bridge mapping code of the patch series.
Is this just a matter of removing the "if (pci_bdf_to_bus(pci->bdf) != 0) break" from pci_bios_init_devices()? The code should probably handle the irq swizzling that pci bridges do though. > Issue #2: root bus (non-pref) memory regions are mapped above 4G if they > are 64bit capable. That happened to include the xhci usb controller. I > don't think we want that. Some day seabios will get xhci support, and > having the bar above 4G makes it unreachable in 32bit mode. So this > needs some refinement. Options I can think of: > > (1) Don't bother mapping non-prefmem bars above 4G. > (2) Only map them above 4G if they are larger than a certain limit. > (3) Allow devices to be excluded on certain conditions, for example > when seabios has a driver, when they have an option rom, when > they have a specific pci id, ... I'd vote for 2. There's nearly 500MB of space for PCI devices under 4G - small regions (say under 1MB) are unlikely to be the cause of an allocation failure (1MB would be .2% of total space). -Kevin