[SeaBIOS] Commit b98a4b1 prevents USB drives from being detected

Dave dave.frodin at se-eng.com
Mon Jul 15 17:13:25 CEST 2013


Kevin,
I'm currently out of the office. I'll try your patch when I return on July 22nd.

Thanks,
Dave

Kevin O'Connor <kevin at koconnor.net> wrote:
>On Fri, Jul 12, 2013 at 03:22:43PM -0500, Dave Frodin wrote:
>
>> I'm using the current seabios (master or stable) as a payload for
>> coreboot.  If I build the current seabios I've found that commit
>> b98a4b1 "Convert PCIDevices list to use standard list manipultion
>> code."  prevents the system from finding USB thumbdrives. The USB
>> keyboard and mouse still work.
>
>Thanks.  The PCI list changes broke the ordering of the PCIDevices
>list.  Can you confirm the patch below fixes it for you?
>
>-Kevin
>
>
>commit 2a9aeabdfb34374ecac25e7a8d21c9e368618cd4
>Author: Kevin O'Connor <kevin at koconnor.net>
>Date:   Sun Jul 14 13:55:52 2013 -0400
>
>Fix USB EHCI detection that was broken in hlist conversion of
>PCIDevices.
>    
>    Make sure the PCI device list is ordered in bus order.
>    
>    Don't iterate past the end of the list when detecting EHCI devices.
>    
>    Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
>
>diff --git a/src/pci.c b/src/pci.c
>index 6163a29..dc62c5c 100644
>--- a/src/pci.c
>+++ b/src/pci.c
>@@ -122,6 +122,7 @@ pci_probe_devices(void)
>             }
>             memset(dev, 0, sizeof(*dev));
>             hlist_add(&dev->node, pprev);
>+            pprev = &dev->node.next;
>             count++;
> 
>             // Find parent device.
>diff --git a/src/usb.c b/src/usb.c
>index ecccd75..42541ff 100644
>--- a/src/usb.c
>+++ b/src/usb.c
>@@ -444,7 +444,7 @@ usb_setup(void)
>                 }
>                 if (ehcipci->class == PCI_CLASS_SERIAL_USB)
>                     found++;
>-                ehcipci = container_of(
>+                ehcipci = container_of_or_null(
>                     ehcipci->node.next, struct pci_device, node);
>                 if (!ehcipci || (pci_bdf_to_busdev(ehcipci->bdf)
>                                  != pci_bdf_to_busdev(pci->bdf)))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.seabios.org/pipermail/seabios/attachments/20130715/f49fdc45/attachment.html>


More information about the SeaBIOS mailing list