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);
Zheng
From: fishbaoz@hotmail.com
To: kevin@koconnor.net
Date: Thu, 27 Aug 2015 07:41:07 +0000
CC: seabios@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.
Zheng
_______________________________________________
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios