[coreboot] AMD Tilapia / simnow: endless looping in functionpci_scan_bus
scott at notabs.org
Wed Sep 1 22:00:14 CEST 2010
From: coreboot-bounces at coreboot.org [mailto:coreboot-bounces at coreboot.org] On Behalf Of Myles Watson
Sent: Wednesday, September 01, 2010 02:22 PM
Cc: coreboot at coreboot.org
Subject: Re: [coreboot] AMD Tilapia / simnow: endless looping in functionpci_scan_bus
On Wed, Sep 1, 2010 at 12:50 PM, Scott <scott at notabs.org> wrote:
> When booting the AMD Tilapia coreboot BIOS on simnow I encounter
> an endless loop in pci_scan_bus(). The reason is that pci_scan_bus
> expects a valid argument for max_devfn, yet receives 0xFFFFFFFF.
> The origin of the invalid max_devfn argument is line 596 of
> max = pci_scan_bus(bus, 0x00, ((next_unitid-1) << 3)|7, max);
> With my setup, next_unitid is zero, which causes a bad argument
> to be passed to pci_scan_bus. As a work-around, I change the code
> to recognize and handle this case by passing 0xFF (all devices).
> Does anyone else encounter this situation on AMD boards? I ask
> because I am using simnow in place of real hardware.
Juhana Helovuo reported this in the thread "Porting to Asus M4A785-M".
coreboot mailing list: coreboot at coreboot.org
Thanks Myles. That problem description and work-around matches my
situation exactly. Even if the bad value passed to pci_scan_bus is
only a side-effect of another problem, special handling for it should
be considered in order to simplify debugging.
The same thead covers another problem I encounter with Tilapia. When
I enable ACPI table generation, an overlap causes the seabios payload
to overwrite the ACPI tables. I temporarily worked around this problem
by deselecting GFXUMA. I am using PCI video so I can boot with no uma.
More information about the coreboot