mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-18 10:54:37 +00:00
fastboot: add command to select the eMMC boot configuration
Add command oem bootbus which executes the command ``mmc bootbus <id> <arg>`` on the current fastboot mmc device (<i> = CONFIG_FASTBOOT_FLASH_MMC_DEV) to set the eMMC boot configuration on first update, with <arg> = boot_bus_width reset_boot_bus_width boot_mode $> fastboot oem bootbus:<boot_bus_width> <reset_boot_bus_width> <boot_mode> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
b2f6b97b78
commit
0c0394b502
4 changed files with 47 additions and 0 deletions
|
@ -25,6 +25,7 @@ The following OEM commands are supported (if enabled):
|
|||
- ``oem format`` - this executes ``gpt write mmc %x $partitions``
|
||||
- ``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
|
||||
|
||||
Support for both eMMC and NAND devices is included.
|
||||
|
||||
|
|
|
@ -196,6 +196,13 @@ config FASTBOOT_CMD_OEM_PARTCONF
|
|||
Add support for the "oem partconf" command from a client. This set
|
||||
the mmc boot-partition for the selecting eMMC device.
|
||||
|
||||
config FASTBOOT_CMD_OEM_BOOTBUS
|
||||
bool "Enable the 'oem bootbus' command"
|
||||
depends on FASTBOOT_FLASH_MMC && SUPPORT_EMMC_BOOT
|
||||
help
|
||||
Add support for the "oem bootbus" command from a client. This set
|
||||
the mmc boot configuration for the selecting eMMC device.
|
||||
|
||||
endif # FASTBOOT
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -45,6 +45,9 @@ static void oem_format(char *, char *);
|
|||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_PARTCONF)
|
||||
static void oem_partconf(char *, char *);
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_BOOTBUS)
|
||||
static void oem_bootbus(char *, char *);
|
||||
#endif
|
||||
|
||||
static const struct {
|
||||
const char *command;
|
||||
|
@ -108,6 +111,12 @@ static const struct {
|
|||
.dispatch = oem_partconf,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_BOOTBUS)
|
||||
[FASTBOOT_COMMAND_OEM_BOOTBUS] = {
|
||||
.command = "oem bootbus",
|
||||
.dispatch = oem_bootbus,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -410,3 +419,30 @@ static void oem_partconf(char *cmd_parameter, char *response)
|
|||
fastboot_okay(NULL, response);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_BOOTBUS)
|
||||
/**
|
||||
* oem_bootbus() - Execute the OEM bootbus command
|
||||
*
|
||||
* @cmd_parameter: Pointer to command parameter
|
||||
* @response: Pointer to fastboot response buffer
|
||||
*/
|
||||
static void oem_bootbus(char *cmd_parameter, char *response)
|
||||
{
|
||||
char cmdbuf[32];
|
||||
|
||||
if (!cmd_parameter) {
|
||||
fastboot_fail("Expected command parameter", response);
|
||||
return;
|
||||
}
|
||||
|
||||
/* execute 'mmc bootbus' command with cmd_parameter arguments*/
|
||||
snprintf(cmdbuf, sizeof(cmdbuf), "mmc bootbus %x %s",
|
||||
CONFIG_FASTBOOT_FLASH_MMC_DEV, cmd_parameter);
|
||||
printf("Execute: %s\n", cmdbuf);
|
||||
if (run_command(cmdbuf, 0))
|
||||
fastboot_fail("Cannot set oem bootbus", response);
|
||||
else
|
||||
fastboot_okay(NULL, response);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -41,6 +41,9 @@ enum {
|
|||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_PARTCONF)
|
||||
FASTBOOT_COMMAND_OEM_PARTCONF,
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(FASTBOOT_CMD_OEM_BOOTBUS)
|
||||
FASTBOOT_COMMAND_OEM_BOOTBUS,
|
||||
#endif
|
||||
|
||||
FASTBOOT_COMMAND_COUNT
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue