Re: [SeaBIOS] Commit b98a4b1 prevents USB drives from being detected

2013-07-22 Thread Dave Frodin
Kevin,

Your patch does fix the problem with USB thumbdrives.
I tested on a Gizmo (Family14/SB800) board.

Thanks,
Dave

- Original Message -
 From: Kevin O'Connor ke...@koconnor.net
 To: Dave Frodin dave.fro...@se-eng.com
 Cc: seabios seabios@seabios.org
 Sent: Sunday, July 14, 2013 11:59:11 AM
 Subject: Re: [SeaBIOS] Commit b98a4b1 prevents USB drives from being detected
 
 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 ke...@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 ke...@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)))
 

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] Commit b98a4b1 prevents USB drives from being detected

2013-07-15 Thread Dave
Kevin,
I'm currently out of the office. I'll try your patch when I return on July 22nd.

Thanks,
Dave

Kevin O'Connor ke...@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 ke...@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 ke...@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)))
___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

Re: [SeaBIOS] Commit b98a4b1 prevents USB drives from being detected

2013-07-14 Thread Kevin O'Connor
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 ke...@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 ke...@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)))

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios