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
Hmmm. I guess that explains why it is crashing.
ATB,
Mark.
--
Mark Cave-Ayland
Sirius Corporation - The Open Source Experts
http://www.siriusit.co.uk
T: +44 870 608 0063
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot