On Wed, Jan 28, 2009 at 8:42 AM, Mark Cave-Ayland <[email protected]> wrote: > Aurelien Jarno wrote: > >> The rationale is available here: >> http://lists.openbios.org/pipermail/openbios/2009-January/003391.html > > Thanks for link - I must have missed that whilst scanning the archives :) > >> This commit fixes two different problems encountered on SPARC64 and >> PowerPC. First of all it makes sure that no PCI device get allocated >> port 0, which doesn't exists. >> >> Secondly it fixes problems with non-PCI devices that are using I/O ports >> at fixed location. This includes the video card, i8259, rtc, serial >> port, hard-disk controller, etc. Without this patch, the PCI cards are >> getting allocated the I/O ports of those devices, thus causing crashes. >> >> I wonder why it causes problem on x86. What is the initial value of >> arch->io_base? I am unable to find that looking at the code. > > Well, I just added the following diff to my OpenBIOS build (latest SVN): > > Index: drivers/pci.c > =================================================================== > --- drivers/pci.c (revision 428) > +++ drivers/pci.c (working copy) > @@ -762,6 +762,9 @@ > mem_base = arch->mem_base; > /* I/O ports under 0x400 are used by devices mapped at fixed > location. */ > + > + printk("### io_base: %x\n", arch->io_base); > + > io_base = arch->io_base + 0x400; > path = strdup(""); > for (bus = 0; bus<0x100; bus++) { > > ...and in my output I got this: > > ### io_base: 0
That's actually what I would have expected. The IO address range is only 16 bits from 0-64K. I guess we'll have to get more information from qemu so we know which port address is being accessed when it dies. Myles -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

