On Tue, Sep 09, 2014 at 04:08:25PM -0600, Dave Frodin wrote:
Kevin, With your patch I'm not seeing that timeout message get displayed. I also forgot to mention that the USB thumbdrive will always get identified by SeaBIOS and will be listed as a boot device but will hang as soon as it is selected in the F12 boot menu. The activity LED on the thumbdrive only flashes when Seabios is identifying it.
I was able to reproduce the problem on my c720. The patch below seems to fix it for me (but I'm still running tests). I'm not sure why this problem didn't show up on my other test machine (e350m1).
-Kevin
--- a/src/hw/usb.c +++ b/src/hw/usb.c @@ -195,7 +195,7 @@ usb_xfer_time(struct usb_pipe *pipe, int datalen) // set_address commands where we don't want to stall the boot if // the device doesn't actually exist. Add 100ms to account for // any controller delays. - if (!pipe->devaddr) + if (!GET_LOWFLAT(pipe->devaddr)) return USB_TIME_STATUS + 100; return USB_TIME_COMMAND + 100; }
Kevin, Your second patch worked for me. +2.
Thanks, Dave
On Tue, Sep 9, 2014 at 4:12 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Tue, Sep 09, 2014 at 04:08:25PM -0600, Dave Frodin wrote:
Kevin, With your patch I'm not seeing that timeout message get displayed. I also forgot to mention that the USB thumbdrive will always get
identified
by SeaBIOS and will be listed as a boot device but will hang as soon as
it
is selected in the F12 boot menu. The activity LED on the thumbdrive only flashes when Seabios is identifying it.
I was able to reproduce the problem on my c720. The patch below seems to fix it for me (but I'm still running tests). I'm not sure why this problem didn't show up on my other test machine (e350m1).
-Kevin
--- a/src/hw/usb.c +++ b/src/hw/usb.c @@ -195,7 +195,7 @@ usb_xfer_time(struct usb_pipe *pipe, int datalen) // set_address commands where we don't want to stall the boot if // the device doesn't actually exist. Add 100ms to account for // any controller delays.
- if (!pipe->devaddr)
- if (!GET_LOWFLAT(pipe->devaddr)) return USB_TIME_STATUS + 100; return USB_TIME_COMMAND + 100;
}