[PATCH] fastboot: Add OEM run command
Marek Vasut
marex at denx.de
Fri Dec 2 21:50:41 CET 2022
On 12/2/22 18:11, Sean Anderson wrote:
> This adds the UUU UCmd functionality as an OEM command. While the
> fastboot tool allows sending arbitrary commands as long as they are
> prefixed with "oem". This allows running generic U-Boot commands over
> fastboot without UUU, which is especially useful when not using USB.
> This is really the route we should have gone in the first place when
> adding these commands.
Example how to make use of this, or even documentation entry, would be
really nice.
> While we're here, clean up the Kconfig a bit.
>
> Signed-off-by: Sean Anderson <sean.anderson at seco.com>
> ---
>
> doc/android/fastboot.rst | 1 +
> drivers/fastboot/Kconfig | 10 +++++-----
> drivers/fastboot/fb_command.c | 4 ++++
> include/fastboot.h | 1 +
> 4 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst
> index 7611f07038..b2d2e68cf5 100644
> --- a/doc/android/fastboot.rst
> +++ b/doc/android/fastboot.rst
> @@ -28,6 +28,7 @@ The following OEM commands are supported (if enabled):
> - ``oem partconf`` - this executes ``mmc partconf %x <arg> 0`` to configure eMMC
> with <arg> = boot_ack boot_partition
> - ``oem bootbus`` - this executes ``mmc bootbus %x %s`` to configure eMMC
> +- ``oem run`` - this executes an arbitrary U-Boot command
>
> Support for both eMMC and NAND devices is included.
>
> diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
> index b97c67bf60..8f2d52cb8a 100644
> --- a/drivers/fastboot/Kconfig
> +++ b/drivers/fastboot/Kconfig
> @@ -80,12 +80,12 @@ config FASTBOOT_FLASH
> this to enable the "fastboot flash" command.
>
> config FASTBOOT_UUU_SUPPORT
> - bool "Enable FASTBOOT i.MX UUU special command"
> + bool "Enable running arbitrary commands from FASTBOOT"
> help
> - The fastboot protocol includes "UCmd" and "ACmd" command.
> - Be aware that you provide full access to any U-Boot command,
> - including working with memory and may open a huge backdoor,
> - when enabling this option.
> + This extends the fastboot protocol with the "UCmd" and "ACmd"
> + commands, as well as the "oem run" command. These commands provide
> + full access to any U-Boot command, including working with memory.
> + This may open a huge backdoor if you are using verified boot.
>
> choice
> prompt "Flash provider for FASTBOOT"
> diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c
> index 98eccc3455..1732406c18 100644
> --- a/drivers/fastboot/fb_command.c
> +++ b/drivers/fastboot/fb_command.c
> @@ -123,6 +123,10 @@ static const struct {
> },
> #endif
> #if CONFIG_IS_ENABLED(FASTBOOT_UUU_SUPPORT)
> + [FASTBOOT_COMMAND_OEM_RUN] = {
> + .command = "oem run",
> + .dispatch = run_ucmd,
> + },
> [FASTBOOT_COMMAND_UCMD] = {
> .command = "UCmd",
> .dispatch = run_ucmd,
> diff --git a/include/fastboot.h b/include/fastboot.h
> index 57daaf1298..8b6b4b934a 100644
> --- a/include/fastboot.h
> +++ b/include/fastboot.h
> @@ -45,6 +45,7 @@ enum {
> FASTBOOT_COMMAND_OEM_BOOTBUS,
> #endif
> #if CONFIG_IS_ENABLED(FASTBOOT_UUU_SUPPORT)
> + FASTBOOT_COMMAND_OEM_RUN,
Keep the list sorted.
> FASTBOOT_COMMAND_ACMD,
> FASTBOOT_COMMAND_UCMD,
> #endif
[...]
More information about the U-Boot
mailing list