[PATCH] cmd: Make bootvx independent of bootelf

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@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 #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." ); +#endif

Hi Daniel,
On Sun, 29 Sept 2024 at 03:27, Daniel Palmer daniel@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@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

On Sun, 29 Sep 2024 18:27:39 +0900, Daniel Palmer 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.
[...]
Applied to u-boot/master, thanks!

Hi,
On Tue, 8 Oct 2024 at 07:45, Tom Rini trini@konsulko.com wrote:
On Sun, 29 Sep 2024 18:27:39 +0900, Daniel Palmer 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.
[...]
Applied to u-boot/master, thanks!
It looks like my review here was missed?
Regards, SImon

On Tue, Oct 08, 2024 at 07:57:25PM -0600, Simon Glass wrote:
Hi,
On Tue, 8 Oct 2024 at 07:45, Tom Rini trini@konsulko.com wrote:
On Sun, 29 Sep 2024 18:27:39 +0900, Daniel Palmer 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.
[...]
Applied to u-boot/master, thanks!
It looks like my review here was missed?
I guess you sent it in between when I b4'd it and then pushed it.

Hi Tom, Simon,
On Wed, 9 Oct 2024 at 11:10, Tom Rini trini@konsulko.com wrote:
Applied to u-boot/master, thanks!
It looks like my review here was missed?
I guess you sent it in between when I b4'd it and then pushed it.
-- Tom
I'll make the changes requested by Simon and send a follow up patch when I get a bit of time.
Thanks,
Daniel
participants (3)
-
Daniel Palmer
-
Simon Glass
-
Tom Rini