From: Jens Rottmann Date: Fri, 3 Sep 2010 14:54:50 +0000 (+0000) Subject: The AMD CS5536's USB controllers are located at device 0F, functions 4 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=commitdiff_plain;h=4e1ac83bb61707210500a4bbf59c9aa6095e36b6 The AMD CS5536's USB controllers are located at device 0F, functions 4 and 5. They're not found if only function 0 is checked. So if a device exists at all, try all its functions. usb_controller_initialize() will silently skip all device classes != 0C03. (changed to continue to use 32bit accesses -pg) Signed-off-by: Jens Rottmann Acked-by: Patrick Georgi git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5774 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- diff --git a/payloads/libpayload/drivers/usb/usbinit.c b/payloads/libpayload/drivers/usb/usbinit.c index 9c8063a3c..50dbf9747 100644 --- a/payloads/libpayload/drivers/usb/usbinit.c +++ b/payloads/libpayload/drivers/usb/usbinit.c @@ -126,7 +126,7 @@ usb_initialize (void) */ for (bus = 0; bus < 256; bus++) for (dev = 0; dev < 32; dev++) - if (pci_read_config32 (PCI_DEV(bus, dev, 0), 8) >> 16 == 0x0c03) + if (pci_read_config32 (PCI_DEV(bus, dev, 0), 8) >> 16 != 0xffff) for (func = 7; func >= 0 ; func--) usb_controller_initialize (bus, dev, func); usb_poll();