board: apalis/colibri imx6/imx6ull/imx7: Add fastboot bootcmd support

This commit adds support for Fastboot boot commands by checking both
CONFIG_CMD_USB_SDP and CONFIG_USB_FUNCTION_FASTBOOT. If either of these
configurations is set, it indicates that the board is in recovery mode
and can use either SDP or Fastboot.

The default option remains the SDP command, but if
CONFIG_CMD_FASTBOOT is set, it changes to 'fastboot usb 0' as
the boot command.

Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
This commit is contained in:
Hiago De Franco
2023-11-09 13:24:01 -03:00
committed by Fabio Estevam
parent 50c67ddbe4
commit 220bb4e150
4 changed files with 33 additions and 20 deletions

View File

@@ -701,13 +701,16 @@ int board_late_init(void)
env_set("board_rev", env_str);
#endif /* CONFIG_BOARD_LATE_INIT */
#ifdef CONFIG_CMD_USB_SDP
if (is_boot_from_usb()) {
printf("Serial Downloader recovery mode, using sdp command\n");
if (IS_ENABLED(CONFIG_USB) && is_boot_from_usb()) {
env_set("bootdelay", "0");
env_set("bootcmd", "sdp 0");
if (IS_ENABLED(CONFIG_CMD_USB_SDP)) {
printf("Serial Downloader recovery mode, using sdp command\n");
env_set("bootcmd", "sdp 0");
} else if (IS_ENABLED(CONFIG_CMD_FASTBOOT)) {
printf("Fastboot recovery mode, using fastboot command\n");
env_set("bootcmd", "fastboot usb 0");
}
}
#endif /* CONFIG_CMD_USB_SDP */
return 0;
}

View File

@@ -187,13 +187,16 @@ int board_late_init(void)
add_board_boot_modes(board_boot_modes);
#endif
#ifdef CONFIG_CMD_USB_SDP
if (is_boot_from_usb()) {
printf("Serial Downloader recovery mode, using sdp command\n");
if (IS_ENABLED(CONFIG_USB) && is_boot_from_usb()) {
env_set("bootdelay", "0");
env_set("bootcmd", "sdp 0");
if (IS_ENABLED(CONFIG_CMD_USB_SDP)) {
printf("Serial Downloader recovery mode, using sdp command\n");
env_set("bootcmd", "sdp 0");
} else if (IS_ENABLED(CONFIG_CMD_FASTBOOT)) {
printf("Fastboot recovery mode, using fastboot command\n");
env_set("bootcmd", "fastboot usb 0");
}
}
#endif /* CONFIG_CMD_USB_SDP */
#if defined(CONFIG_VIDEO)
setup_lcd();

View File

@@ -621,13 +621,16 @@ int board_late_init(void)
env_set("board_rev", env_str);
#endif
#ifdef CONFIG_CMD_USB_SDP
if (is_boot_from_usb()) {
printf("Serial Downloader recovery mode, using sdp command\n");
if (IS_ENABLED(CONFIG_USB) && is_boot_from_usb()) {
env_set("bootdelay", "0");
env_set("bootcmd", "sdp 0");
if (IS_ENABLED(CONFIG_CMD_USB_SDP)) {
printf("Serial Downloader recovery mode, using sdp command\n");
env_set("bootcmd", "sdp 0");
} else if (IS_ENABLED(CONFIG_CMD_FASTBOOT)) {
printf("Fastboot recovery mode, using fastboot command\n");
env_set("bootcmd", "fastboot usb 0");
}
}
#endif /* CONFIG_CMD_USB_SDP */
return 0;
}

View File

@@ -360,13 +360,17 @@ int board_late_init(void)
setup_lcd();
#endif
#if defined(CONFIG_CMD_USB_SDP)
if (is_boot_from_usb()) {
printf("Serial Downloader recovery mode, using sdp command\n");
if (IS_ENABLED(CONFIG_USB) && is_boot_from_usb()) {
env_set("bootdelay", "0");
env_set("bootcmd", "sdp 0");
if (IS_ENABLED(CONFIG_CMD_USB_SDP)) {
printf("Serial Downloader recovery mode, using sdp command\n");
env_set("bootcmd", "sdp 0");
} else if (IS_ENABLED(CONFIG_CMD_FASTBOOT)) {
printf("Fastboot recovery mode, using fastboot command\n");
env_set("bootcmd", "fastboot usb 0");
}
}
#endif
if (is_emmc)
env_set("variant", "-emmc");
else