[PATCH] cmd: Make bootvx independent of bootelf

Simon Glass sjg at chromium.org
Mon Sep 30 20:52:13 CEST 2024


Hi Daniel,

On Sun, 29 Sept 2024 at 03:27, Daniel Palmer <daniel at 0x0f.com> wrote:
>
> There are lots of usecases for running baremetal ELF
> binaries via bootelf but if you enable bootelf you
> get bootvx as well and you probably don't want or need
> it.
>
> Hide bootvx behind it's own configuration option.
>
> Signed-off-by: Daniel Palmer <daniel at 0x0f.com>
> ---
>  cmd/Kconfig | 11 +++++++++--
>  cmd/elf.c   |  6 ++++++
>  2 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 978f44eda426..262c4118f7f6 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -491,11 +491,18 @@ config CMD_CEDIT
>           loading and saving of configuration as well as showing an editor.
>
>  config CMD_ELF
> -       bool "bootelf, bootvx"
> +       bool "bootelf"
>         default y
>         select LIB_ELF
>         help
> -         Boot an ELF/vxWorks image from the memory.
> +         Boot an ELF image from memory.
> +
> +config CMD_ELF_BOOTVX
> +       bool "bootvx"
> +       default y
> +       depends on CMD_ELF
> +       help
> +         Boot a vxWorks image from memory
>
>  config CMD_ELF_FDT_SETUP
>         bool "Flattened Device Tree setup in bootelf cmd"
> diff --git a/cmd/elf.c b/cmd/elf.c
> index 673c6c30511c..fe7f06ef74eb 100644
> --- a/cmd/elf.c
> +++ b/cmd/elf.c
> @@ -10,8 +10,10 @@
>  #include <env.h>
>  #include <image.h>
>  #include <log.h>
> +#ifdef CONFIG_CMD_ELF_BOOTVX
>  #include <net.h>
>  #include <vxworks.h>
> +#endif

No need to #idef headers files. Just include them always.

>  #ifdef CONFIG_X86
>  #include <vesa.h>
>  #include <asm/cache.h>
> @@ -100,6 +102,7 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>         return rcode;
>  }
>
> +#ifdef CONFIG_CMD_ELF_BOOTVX
>  /*
>   * Interpreter command to boot VxWorks from a memory image.  The image can
>   * be either an ELF image or a raw binary.  Will attempt to setup the
> @@ -307,6 +310,7 @@ int do_bootvx(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>
>         return 1;
>  }
> +#endif
>
>  U_BOOT_CMD(
>         bootelf, CONFIG_SYS_MAXARGS, 0, do_bootelf,
> @@ -323,8 +327,10 @@ U_BOOT_CMD(
>  #endif
>  );
>
> +#ifdef CONFIG_CMD_ELF_BOOTVX
>  U_BOOT_CMD(
>         bootvx, 2, 0, do_bootvx,
>         "Boot vxWorks from an ELF image",
>         " [address] - load address of vxWorks ELF image."
>  );

This needs a doc/usage/cmd update

I'm not sure if it is possible to test it in CI?

> +#endif
> --
> 2.43.0
>

Regards,
Simon


More information about the U-Boot mailing list