[coreboot] New patch to review for coreboot: 0930c8a libpayload: Correct a constant used for scanning for USB controllers.

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Tue Feb 26 01:31:25 CET 2013

Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2521


commit 0930c8acc9df77916ce0bd651178dcc52e3e66c1
Author: Gabe Black <gabeblack at google.com>
Date:   Wed Nov 21 01:52:27 2012 -0800

    libpayload: Correct a constant used for scanning for USB controllers.
    When checking to see if a PCI device exists at a particular bus/dev/func,
    libpayload was checking the vendor and device id fields together against a 16
    bit 0xffff. The two fields together are 32 bits, however, so the check was
    never true, and all dev/func combinations on a particular bus would be
    checked. That was slightly wasteful, but had relatively small impact.
    Change-Id: Iad537295c33083243940b18e7a99af92857e1ef2
    Signed-off-by: Gabe Black <gabeblack at google.com>
 payloads/libpayload/drivers/usb/usbinit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/payloads/libpayload/drivers/usb/usbinit.c b/payloads/libpayload/drivers/usb/usbinit.c
index 2e466d3..74358bb 100644
--- a/payloads/libpayload/drivers/usb/usbinit.c
+++ b/payloads/libpayload/drivers/usb/usbinit.c
@@ -123,7 +123,7 @@ static void usb_scan_pci_bus(int bus)
 		u8 header_type;
 		pcidev_t addr = PCI_DEV(bus, dev, 0);
 		/* Check if there's a device here at all. */
-		if (pci_read_config32(addr, REG_VENDOR_ID) == 0xffff)
+		if (pci_read_config32(addr, REG_VENDOR_ID) == 0xffffffff)
 		header_type = pci_read_config8(addr, REG_HEADER_TYPE);
 		/* If this is a bridge, scan the bus on the other side. */

More information about the coreboot mailing list