[SeaBIOS] Unremovable USB3 device can not be detected after reboot

Zheng Bao fishbaoz at hotmail.com
Thu Aug 27 09:23:25 CET 2015

I add a jmp $ here. After the code reach the loop, I press the reset button.
Then the set address command can not be success.

@@ -972,12 +974,13 @@ xhci_alloc_pipe(struct usbdevice_s *usbdev
         // Send set_address command.
         int cc = xhci_cmd_address_device(xhci, slotid, in);
         if (cc != CC_SUCCESS) {
             dprintf(1, "%s: address device: failed (cc %d)\n", __func__, cc);
             goto fail;
+    asm volatile ("1: jmp 1b");
     } else {
         pipe->slotid = usbdev->slotid;
         // Send configure command.
         int cc = xhci_cmd_configure_endpoint(xhci, pipe->slotid, in);
         if (cc != CC_SUCCESS) {
             dprintf(1, "%s: configure endpoint: failed (cc %d)\n", __func__, cc);

From: fishbaoz at hotmail.com
To: kevin at koconnor.net
Date: Thu, 27 Aug 2015 07:41:07 +0000
CC: seabios at seabios.org
Subject: Re: [SeaBIOS] Unremovable USB3 device can not be detected after reboot

New finding.If I unplug, plug the SeaGate USB3.0
Harddrive and reset board,the harddrive can be detected successfully.
The debug message are the same as the first time.
It seems that the device is in a unstable state, which can only be rescued by poweroff.


SeaBIOS mailing list
SeaBIOS at seabios.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.seabios.org/pipermail/seabios/attachments/20150827/2313f22c/attachment.html>

More information about the SeaBIOS mailing list