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