[PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE

Mattijs Korpershoek mkorpershoek at baylibre.com
Fri Dec 15 13:06:40 CET 2023


Hi Simon,

Thank you for the patch.

On jeu., déc. 14, 2023 at 21:19, Simon Glass <sjg at chromium.org> wrote:

> It is possible to boot a kernel without CMDLINE being enabled. Update
> the implementation to handle this, and drop the condition from the
> FASTBOOT config.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>

Reviewed-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>

> ---
>
> Changes in v2:
> - Avoid changing the logic when a command is not set
>
>  drivers/fastboot/Kconfig     |  1 -
>  drivers/fastboot/fb_common.c | 30 ++++++++++++++----------------
>  2 files changed, 14 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
> index 11fc0fe1c800..837c6f1180da 100644
> --- a/drivers/fastboot/Kconfig
> +++ b/drivers/fastboot/Kconfig
> @@ -1,5 +1,4 @@
>  menu "Fastboot support"
> -	depends on CMDLINE
>  
>  config FASTBOOT
>  	bool
> diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
> index 07f5946d9ed1..595954542a6e 100644
> --- a/drivers/fastboot/fb_common.c
> +++ b/drivers/fastboot/fb_common.c
> @@ -11,6 +11,7 @@
>   */
>  
>  #include <bcb.h>
> +#include <bootm.h>
>  #include <common.h>
>  #include <command.h>
>  #include <env.h>
> @@ -142,22 +143,19 @@ void (*fastboot_get_progress_callback(void))(const char *)
>   */
>  void fastboot_boot(void)
>  {
> -	char *s;
> -
> -	s = env_get("fastboot_bootcmd");
> -	if (s) {
> -		run_command(s, CMD_FLAG_ENV);
> -	} else if (IS_ENABLED(CONFIG_CMD_BOOTM)) {
> -		static char boot_addr_start[20];
> -		static char *const bootm_args[] = {
> -			"bootm", boot_addr_start, NULL
> -		};
> -
> -		snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
> -			 "%lx", fastboot_buf_addr);
> -		printf("Booting kernel at %s...\n\n\n", boot_addr_start);
> -
> -		do_bootm(NULL, 0, 2, bootm_args);
> +	char *s = NULL;
> +
> +	if (IS_ENABLED(CONFIG_CMDLINE)) {
> +		s = env_get("fastboot_bootcmd");
> +		if (s)
> +			run_command(s, CMD_FLAG_ENV);
> +	}
> +
> +	if (!s && IS_ENABLED(CONFIG_BOOTM)) {
> +		int ret;
> +
> +		printf("Booting kernel at %lx...\n\n\n", fastboot_buf_addr);
> +		ret = bootm_boot_start(fastboot_buf_addr, NULL);
>  
>  		/*
>  		 * This only happens if image is somehow faulty so we start
> -- 
> 2.43.0.472.g3155946c3a-goog


More information about the U-Boot mailing list