[SeaBIOS] Issues on initialization of PCI devices below root.

lautriv lautriv at coldplug.net
Thu Nov 22 12:45:57 CET 2012

On 11/21/2012 07:11 PM, Stefan Reinauer wrote:
> * lautriv<lautriv at coldplug.net>  [121121 13:35]:
>> Hello,
>> i tried to get seabios up via payload from coreboot and failed on
>> the initialisation
>> of neccessary devices.
>> The board in Question is a Tyan S4882, consisting of K8 northbridge,
>> 8131 southbridge, 8111 southbridge and Winbond w83627hf SuperIO.
>> You will see on the following pastebin-url that coreboot does a
>> proper init and can see all relevant devices.
>> I was also able to get VGA up via coreboot ( to reflect an
>> accessible device below root ) but not from within seabios. It
>> probes only against PCI 00:18.0 ... 00:18.3 which are on the
>> northbridge itself.
>> I had a look on the sources and found it should see and init the
>> whole tree, also checked my sources against some patches i found on
>> the net and they are all applied or superseded.
> I think you need to change the board's HT configuration so that the
> southbridge ends up on bus 0 instead of 1 (with no pci bridge pointing
> to bus 1)
> Stefan
ok, i investigated a few hours on the coreboot part of hardware-init, 
device-tree and surrounding stuff.
where i found coreboot itself can always find and init devices while 
seabios fails right after the northbridge, mentioning "MaxPCIBus 00" 
which was always a miracle to me.

however, after the init was already working, and i could not see a 
problem on the fly, i took a crossbar and changed one line in pci.h from 
"extern int MaxPCIBus;" to "extern int MaxPCIBus = 5;". this is no 
solution or even gentlemen like but overrides the tree-building loops 
with success.

finally i got this --> http://pastebin.com/iqQJ1m7C

not perfect and needs more tuning but shows clearly something in the 
routines of PCI initialisation returns too early in the process.

regards , Helmut

More information about the SeaBIOS mailing list