u-boot/cmd
Mattijs Korpershoek 5f7e01e9d5 usb: gadget: fastboot: detach usb on reboot commands
When host issues "fastboot reboot fastboot", it's expected that the
board drops the USB connection before resetting.

On some boards, such as Khadas VIM3L and SEI610, this is not the case.

We observe the following error:
$ fastboot reboot fastboot
Rebooting into fastboot                            OKAY [  0.004s]
fastboot: error: Failed to boot into userspace fastboot; one or more components might be unbootable.

This does not happen when we use the RST button on the board.
It can be reproduced in linux with:
  # echo b > /proc/sysrq-trigger

In this case, we hit a undefined hardware behavior, where D+ and D-
are in an unknown state. Therefore the host can't detect usb
disconnection.

Make sure we always call usb_gadget_release() when a "fastboot reboot"
command is issued.

Note: usb_gadget_release() should be called before g_dnl_unregister()
because g_dnl_unregister() triggers a complete() call on each
endpoint (thus calling do_reset()).

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2022-10-10 18:08:18 +02:00
..
arm cmd: exception: arm64: fix undefined, add faults 2022-03-02 13:59:29 -05:00
broadcom global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mvebu Merge branch 'master' into next 2022-09-19 16:07:12 -04:00
riscv cmd/sbi: format KVM version 2022-09-06 13:00:58 +08:00
sandbox cmd: sandbox: implement exception command 2020-12-13 07:58:17 -07:00
ti cmd: ti: ddr3: correct minor spelling mistake in Ti DDR3 2022-07-25 13:01:48 -04:00
x86 Merge https://source.denx.de/u-boot/custodians/u-boot-x86 2021-08-02 21:35:50 -04:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
ab_select.c part: Support getting whole disk from part_get_info_by_dev_and_name_or_num 2021-02-26 15:30:55 +01:00
abootimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
acpi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
adc.c cmd: fix do_adc_single() 2022-08-04 13:59:59 -04:00
addrmap.c cmd: Add a command to display the address map 2021-03-05 10:25:43 +05:30
adtimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
aes.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
armflash.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
avb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
axi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
bcb.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
bdinfo.c cmd: bdinfo: introduce bdinfo_print_size() helper 2022-09-13 11:32:48 +02:00
bind.c cmd: bind: Fix driver binding on a device 2021-10-12 14:19:52 +02:00
binop.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
blk_common.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
blkcache.c cmd:Elaborate 'blkcache' cmd HELP statement 2021-08-04 15:58:31 -04:00
blob.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
bloblist.c cmd: Add missing check for CONFIG_SYS_LONGHELP 2021-03-27 15:04:30 +13:00
bmp.c video: Drop references to CONFIG_VIDEO et al 2022-03-28 20:17:07 +02:00
boot.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
bootcount.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootdev.c bootstd: Add a bootdev command 2022-04-25 10:00:04 -04:00
bootefi.c cmd: replace efi_create_handle/add_protocol with InstallMultipleProtocol 2022-10-06 22:54:58 +02:00
bootflow.c bootstd: Support bootflows with global bootmeths 2022-08-12 08:17:11 -04:00
booti.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
bootm.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
bootmenu.c bootmenu: add removable media entries 2022-09-14 08:43:32 +02:00
bootmeth.c bootstd: Allow bootmeths to be marked as global 2022-08-12 08:17:10 -04:00
bootstage.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
bootz.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
btrfs.c treewide: Fix Marek's name and change my e-mail address 2022-07-21 10:14:04 +02:00
button.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
cache.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cbfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
clk.c cmd: clk: fix long help message 2022-02-25 01:41:04 -05:00
clone.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
cls.c cmd: remove deprecated LCD support 2022-08-04 15:32:20 -04:00
config.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
conitrace.c cmd: conitrace: increase wait for next key 2021-01-13 02:38:01 +01:00
console.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cpu.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
cramfs.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cros_ec.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cyclic.c cyclic: Add 'cyclic list' and 'cyclic demo' commands 2022-09-13 16:01:44 -04:00
dataflash_mmc_mux.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
date.c Convert CONFIG_SYS_I2C_LEGACY to Kconfig and add CONFIG_[ST]PL_SYS_I2C_LEGACY 2021-08-30 14:10:07 -04:00
demo.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
dfu.c cmd/dfu: Enable 'dfu list' command without DFU_OVER_USB 2022-02-11 11:29:23 -05:00
diag.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
disk.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
dm.c dm: core: fix a typo in help text 2022-08-26 16:32:59 -06:00
echo.c cmd: change suppress newline in echo command 2021-01-25 01:15:33 +01:00
eeprom.c cmd: eeprom: Do not rewrite EEPROM I2C bus with DM I2C enabled 2022-03-23 07:27:37 +01:00
efi.c efi: Support the efi command in the app 2022-01-15 10:57:22 +01:00
eficonfig.c eficonfig: add "Change Boot Order" menu entry 2022-09-14 08:43:32 +02:00
efidebug.c cmd: simplify command efidebug 2022-10-06 22:54:57 +02:00
elf.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
erofs.c fs/erofs: add filesystem commands 2022-03-15 16:19:29 -04:00
ethsw.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
event.c event: Add a command 2022-03-10 08:28:36 -05:00
exit.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
ext2.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ext4.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
extension_board.c cmd: undefined return value of do_extension_apply() 2022-08-04 13:59:59 -04:00
fastboot.c usb: gadget: fastboot: detach usb on reboot commands 2022-10-10 18:08:18 +02:00
fat.c cmd: fat: Use do_save() for fatwrite 2020-10-23 13:33:07 -04:00
fdt.c cmd: fdt: Add support for reading stringlist property values 2022-09-21 10:37:46 +02:00
flash.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
fpga.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
fpgad.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
fs.c cmd: fs: Add command to list supported fs types 2020-07-07 15:36:59 -04:00
fs_uuid.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fuse.c cmd: fuse: Add a command to read fuses to memory 2022-02-18 18:12:23 +01:00
gettime.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
gpio.c cmd: gpio: Add gpio read subcommand 2022-04-20 11:14:39 -04:00
gpt.c cmd: gpt: add subcommand repair 2022-05-06 14:39:15 -04:00
hash.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
help.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
host.c sandbox: Drop CONFIG_HOST_MAX_DEVICES 2021-12-05 09:23:15 -07:00
i2c.c i2c: fix stack buffer overflow vulnerability in i2c md command 2022-08-31 12:21:47 -04:00
ide.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
ini.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
io.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
iotrace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
irq.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
itest.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
jffs2.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
kaslrseed.c cmd: kaslrseed: add command to generate value from hwrng 2021-12-24 10:54:56 +08:00
Kconfig Merge branch 'master' into next 2022-09-19 16:07:12 -04:00
led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
legacy-mtd-utils.c cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
legacy-mtd-utils.h cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
legacy_led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
license.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
load.c serial: Call flush() before changing baudrate 2022-09-24 11:34:38 -04:00
log.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
lsblk.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
lzmadec.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mac.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
Makefile cmd: Drop use of HAVE_BLOCK_DEVICE 2022-09-16 11:05:00 -04:00
mbr.c mbr: Correct verification check 2021-11-28 16:51:51 -07:00
md5sum.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mdio.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mem.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
mfsl.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mii.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
misc.c cmd/misc: Stop using a function pointer 2022-06-22 21:29:47 -04:00
mmc.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
mp.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
mtd.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mtdparts.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mux.c cmd: Add a mux command 2020-10-28 11:49:31 -04:00
nand.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
net.c cmd: correct short text for tftpboot 2022-09-09 16:07:54 +02:00
nvedit.c cmd: env: Add indirect to indirectly set values 2022-04-07 16:50:42 -04:00
nvedit_efi.c cmd: simplify do_env_set_efi() 2022-10-06 22:54:57 +02:00
nvme.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
onenand.c cmd: onenand: fix printf codes 2022-05-05 15:06:02 -04:00
optee_rpmb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
osd.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
panic.c cmd: add a panic command 2020-07-08 17:21:46 -04:00
part.c cmd: part: list all 128 GPT partitions 2022-01-15 10:57:22 +01:00
pause.c cmd: Add pause command 2022-09-02 13:40:42 -04:00
pcap.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
pci.c pci: Remove duplicate PCI_REGION_IO / "io" line 2022-09-29 10:10:39 -04:00
pinmux.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
pmc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pmic.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
printf.c cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
printf.h cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
pstore.c pstore: Support already existing reserved-memory node 2022-02-14 13:03:49 -05:00
pvblock.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
pwm.c cmd: pwm: fix typo 'eisable' -> 'disable' 2022-03-04 15:20:06 -05:00
pxe.c pxe: Allow calling the pxe_get logic directly 2021-11-11 19:02:43 -05:00
qfw.c qfw: Don't fail if setup data size is 0 2022-06-06 18:01:21 -04:00
read.c dm: core: Support sandbox with read interface 2022-08-12 08:14:24 -04:00
reginfo.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
regulator.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
reiser.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
remoteproc.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
rng.c cmd: rng: Use a statically allocated array for random bytes 2022-08-02 23:50:02 +03:00
rockusb.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
rtc.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
sata.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
sb.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
scp03.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
scsi.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
setexpr.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
sf.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
sha1sum.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sleep.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
smccc.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
sound.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
source.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
spi.c spi: spi-uclass: Add new spi_get_bus_and_cs() implementation 2022-05-23 09:33:10 -04:00
spl.c arm: use CONFIG_SUPPORT_PASSING_ATAGS 2021-09-24 14:30:46 -04:00
sqfs.c fs/squashfs: add filesystem commands 2020-08-07 22:31:32 -04:00
stackprot_test.c cmd: wrong printf() code in do_test_stackprot_fail() 2022-02-11 10:52:37 -05:00
strings.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
sysboot.c pxe: Refactor sysboot to have one helper 2021-11-11 19:02:39 -05:00
terminal.c terminal: only serial_reinit_all if available 2021-04-12 17:44:55 -04:00
test.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
thordown.c thor: add support for the dfu_alt_info reintialization from the flashed script 2021-01-31 14:08:56 +01:00
time.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
timer.c cmd: Split out timer command from the sleep command 2020-10-23 13:33:07 -04:00
tlv_eeprom.c cmd: tlv_eeprom 2021-10-21 07:39:05 +02:00
tpm-common.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-user-utils.h tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-v1.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
tpm-v2.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm_test.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
trace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
tsi148.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
ubi.c cmd: ubi.c: skip part command if right partition is already attached 2022-04-14 15:39:15 -04:00
ubifs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
ufs.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
universe.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
unlz4.c lz4: Use a private header for U-Boot 2021-10-09 13:09:56 -04:00
unzip.c sandbox: Enable support for the gzip command 2021-12-26 23:02:19 +01:00
usb.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
usb_gadget_sdp.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
usb_mass_storage.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
vbe.c vbe: Add a new vbe command 2022-08-12 08:17:11 -04:00
version.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
virtio.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
w1.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
wdt.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
wol.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ximg.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
yaffs2.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zip.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00