[SeaBIOS] USB timeout on ALIX.2C2 (CS5536)

Kevin O'Connor kevin at koconnor.net
Fri Jan 6 15:46:47 CET 2017


On Fri, Jan 06, 2017 at 09:22:46AM +0200, Евгени Димитров wrote:
> On Thu, Jan 5, 2017 at 6:29 PM, Kevin O'Connor <kevin at koconnor.net> wrote:
> 
> > On Thu, Jan 05, 2017 at 09:44:14AM +0200, Евгени Димитров wrote:
> > > On Wed, Jan 4, 2017 at 4:52 PM, Kevin O'Connor <kevin at koconnor.net>
> > wrote:
> > >
> > > > On Wed, Jan 04, 2017 at 03:57:33PM +0200, Евгени Димитров wrote:
> > > > > Hi,
> > > > >
> > > > > I'm testing Coreboot with SeaBIOS as payload on my old Alix.2C2. When
> > > > > trying to boot from an USB device I get the following error:
> > > > >
> > > > > Searching bootorder for: /pci at i0cf8/usb at f,5/storage at 2/*@0/*@0,0
> > > > > Searching bootorder for: /pci at i0cf8/usb at f,5/usb-*@2
> > > > > ehci_send_pipe qh=0x000ecf00 dir=0 data=0x00006cf9 size=31
> > > > > ehci_send_pipe qh=0x000ecf80 dir=128 data=0x00006dc4 size=36
> > > > > ehci_send_pipe qh=0x000ecf80 dir=128 data=0x00006cec size=13
> > > > > WARNING - Timeout at ehci_wait_td:516!
> > > > > ehci pipe=0x000ecf80 cur=00000000 tok=00000000 next=6b40
> > td=0x00006b40
> > > > > status=d0d80
> > > > > USB transmission failed
> > > > > Unable to configure USB MSC drive.
> > > > > phys_free f6030 (detail=0x0f7688a0)
> > > > > Unable to configure USB MSC device.
> > > >
> > > > Did you disable threads in seabios (either via the kconfig option or
> > > > via the /etc/threads runtime option)?  It's not recommended to disable
> > > > threads, and the USB code is less capable of handling timeouts when
> > > > threads are disabled.  Can you retry (and send the log) with threads
> > > > enabled.
> > > >
> > > > If that fails, can you also try disabling CONFIG_USB_EHCI in Kconfig
> > > > and send that log as well.
> > > I get the same error with threads enabled. Disabling ehci did not help
> > > either. Logs are attached as requested.
> >
> > It looks like the USB device is successfully identified and
> > configured, but when sending the "inquiry" command to the drive behind
> > the USB interface the connection halts.  Not sure why that would be -
> > it could be something with the controller, but it's odd that it
> > happens with both the ohci and ehci controllers.
> >
> > If you boot to linux (using some other bootable device) what does
> > 'lsusb' and 'lsusb -t' report?  Have you tested with a different type
> > of usb drive?
> >
> > -Kevin
> >
> 
> USB works on Linux. And yes I have tried a bunch of USB drives. All of them
> failed with the same error.
> 
> root at OpenWrt:/# lsusb
> Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 001 Device 002: ID 0011:7788
> Bus 001 Device 003: ID 058f:6377 Alcor Micro Corp. Multimedia Card Reader
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> root at OpenWrt:/# lsusb -t
> /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/4p, 12M
> /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
>     |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=, 480M
>     |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=, 480M

Are you trying to boot from the "Multimedia Card Reader" or from a
regular USB flash drive?  If you're not booting from the card reader,
does the patch below help?

-Kevin


--- a/src/hw/usb-msc.c
+++ b/src/hw/usb-msc.c
@@ -203,6 +203,8 @@ usb_msc_setup(struct usbdevice_s *usbdev)
         goto fail;
 
     int maxlun = usb_msc_maxlun(usbdev->defpipe);
+    if (maxlun)
+        goto fail;
     int lun, pipesused = 0;
     for (lun = 0; lun < maxlun + 1; lun++) {
         int ret = usb_msc_lun_setup(inpipe, outpipe, usbdev, lun);



More information about the SeaBIOS mailing list