The error message is misleading, even for a SPEW, because

the slot is empty, it's NOT a bad ID (and the message is
more confusing than helpful even in SPEW)

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Myles Watson <mylesgw@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5345 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2010-04-02 16:30:25 +00:00 committed by Stefan Reinauer
parent 0c781b2694
commit 7355c7590b
1 changed files with 7 additions and 3 deletions

View File

@ -910,10 +910,14 @@ device_t pci_probe_dev(device_t dev, struct bus * bus, unsigned devfn)
dummy.path.pci.devfn = devfn;
id = pci_read_config32(&dummy, PCI_VENDOR_ID);
/* Have we found something?
* Some broken boards return 0 if a slot is empty.
* Some broken boards return 0 if a slot is empty, but
* the expected answer is 0xffffffff
*/
if ((id == 0xffffffff) || (id == 0x00000000) ||
(id == 0x0000ffff) || (id == 0xffff0000)) {
if (id == 0xffffffff) {
return NULL;
}
if ((id == 0x00000000) || (id == 0x0000ffff) ||
(id == 0xffff0000)) {
printk(BIOS_SPEW, "%s, bad id 0x%x\n", dev_path(&dummy), id);
return NULL;
}