<html><head></head><body>Kevin,<br>
I'm currently out of the office. I'll try your patch when I return on July 22nd.<br>
<br>
Thanks,<br>
Dave<br><br><div class="gmail_quote">Kevin O'Connor <kevin@koconnor.net> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">On Fri, Jul 12, 2013 at 03:22:43PM -0500, Dave Frodin wrote:<br /><br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">I'm using the current seabios (master or stable) as a payload for<br />coreboot.  If I build the current seabios I've found that commit<br />b98a4b1 "Convert PCIDevices list to use standard list manipultion<br />code."  prevents the system from finding USB thumbdrives. The USB<br />keyboard and mouse still work.</blockquote><br />Thanks.  The PCI list changes broke the ordering of the PCIDevices<br />list.  Can you confirm the patch below fixes it for you?<br /><br />-Kevin<br /><br /><br />commit 2a9aeabdfb34374ecac25e7a8d21c9e368618cd4<br />Author: Kevin O'Connor <kevin@koconnor.net><br />Date:   Sun Jul 14 13:55:52 2013 -0400<br /><br />Fix USB EHCI detection that was broken in hlist conversion of PCIDevices.<br /><br />Make sure the PCI device list is ordered in bus
order.<br /><br />Don't iterate past the end of the list when detecting EHCI devices.<br /><br />Signed-off-by: Kevin O'Connor <kevin@koconnor.net><br /><br />diff --git a/src/pci.c b/src/pci.c<br />index 6163a29..dc62c5c 100644<br />--- a/src/pci.c<br />+++ b/src/pci.c<br />@@ -122,6 +122,7 @@ pci_probe_devices(void)<br />}<br />memset(dev, 0, sizeof(*dev));<br />hlist_add(&dev->node, pprev);<br />+            pprev = &dev->node.next;<br />count++;<br /><br />// Find parent device.<br />diff --git a/src/usb.c b/src/usb.c<br />index ecccd75..42541ff 100644<br />--- a/src/usb.c<br />+++ b/src/usb.c<br />@@ -444,7 +444,7 @@ usb_setup(void)<br />}<br />if (ehcipci->class == PCI_CLASS_SERIAL_USB)<br />found++;<br />-                ehcipci = container_of(<br />+                ehcipci = container_of_or_null(<br />ehcipci->node.next, struct pci_device, node);<br />if (!ehcipci || (pci_bdf_to_busdev(ehcipci->bdf)<br />!= pci_bdf_to_busdev(pci->bdf)))<br
/></pre></blockquote></div></body></html>