pci driver does not detect pci controller?

47 views
Skip to first unread message

Max

unread,
Feb 18, 2015, 10:12:51 AM2/18/15
to min...@googlegroups.com
Hi,

a friend of mine tries to make minix run on Alix. He managed to create the compact flash card for booting minix basically and it starts the kernel. Obviously there are severe problems in conjunction with the PCI controller:

In pci_intel_init(), this block was the first obstacle:

if (vid == 0xffff && did == 0xffff)
return; /* Nothing here */

He removed it as ALIX has a PCI controller (AMD Geode CS5536) for sure and it runs wonderful with FreeBSD and NetBSD as well as Linux.

The next message is:

PCI: ignoring bad value 0x7000 in sts for QEMU                                                  
pci(65549): panic: I/O base too low: 0                                                          
syslib:panic.c: stacktrace: 0x805218f 0x804c9dd 0x8049923 0x8051832 0x8051b12 0x80483b5 0x8048273 0x8048198 
Request 0x700 to RS failed: specified endpoint is not alive (error 215)                         

does someone has an idea why it fails in complete_bars(void):1494? My rough understanding of PCI was that BIOS takes care of assigning the MMIO address ranges (BARs) to the device? So I do not know know exactly, what happens in this function?

The comment in pci.c tells me, only Intel PCI Controllers are supported, but I assume it should be the same way to detect PCI controllers in a generic way too?

brgds,
Max

Max

unread,
Feb 22, 2015, 5:08:08 AM2/22/15
to min...@googlegroups.com
OK, found out a couple of things:

the first check needs to be permanently deleted or enhanced. It points out, that tinybios (http://www.pcengines.ch/tinybios.htm) puts the Host PCI bridge at bus=0, device=1 and function=0. The code checks for bus=0, device=0 and function=0, where obviously nothing is there.

Maybe, the two lines can be deleted?

The second panic was caused by one device only. I expect there's also a kind of BIOS hickup? I changed the panic to a log statement and voila, everything's working now on ALIX. Has someone an idea, what exactly will break after doing these two changes?

Otherwise, it would be happy to send a patch addressing the changes mentioned above.

brgds,
Max
Reply all
Reply to author
Forward
0 new messages