toradex: configblock: add an -y parameter to 'cfgblock create’

Add an optional -y parameter to 'cfgblock create’ to simplify
automation.

Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
This commit is contained in:
Dominik Sliwa 2019-03-25 17:18:27 +01:00 committed by Stefano Babic
parent 671b6a3d78
commit 587b13c69c

View File

@ -418,6 +418,7 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
int offset = 0; int offset = 0;
int ret = CMD_RET_SUCCESS; int ret = CMD_RET_SUCCESS;
int err; int err;
int force_overwrite = 0;
/* Allocate RAM area for config block */ /* Allocate RAM area for config block */
config_block = memalign(ARCH_DMA_MINALIGN, size); config_block = memalign(ARCH_DMA_MINALIGN, size);
@ -428,6 +429,11 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
memset(config_block, 0xff, size); memset(config_block, 0xff, size);
if (argc >= 3) {
if (argv[2][0] == '-' && argv[2][1] == 'y')
force_overwrite = 1;
}
read_tdx_cfg_block(); read_tdx_cfg_block();
if (valid_cfgblock) { if (valid_cfgblock) {
#if defined(CONFIG_TDX_CFG_BLOCK_IS_IN_NAND) #if defined(CONFIG_TDX_CFG_BLOCK_IS_IN_NAND)
@ -448,24 +454,31 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
CONFIG_TDX_CFG_BLOCK_OFFSET); CONFIG_TDX_CFG_BLOCK_OFFSET);
goto out; goto out;
#else #else
if (!force_overwrite) {
char message[CONFIG_SYS_CBSIZE]; char message[CONFIG_SYS_CBSIZE];
sprintf(message, sprintf(message,
"A valid Toradex config block is present, still recreate? [y/N] "); "A valid Toradex config block is present, still recreate? [y/N] ");
if (!cli_readline(message)) if (!cli_readline(message))
goto out; goto out;
if (console_buffer[0] != 'y' && console_buffer[0] != 'Y') if (console_buffer[0] != 'y' &&
console_buffer[0] != 'Y')
goto out; goto out;
}
#endif #endif
} }
/* Parse new Toradex config block data... */ /* Parse new Toradex config block data... */
if (argc < 3) if (argc < 3 || (force_overwrite && argc < 4)) {
err = get_cfgblock_interactive(); err = get_cfgblock_interactive();
} else {
if (force_overwrite)
err = get_cfgblock_barcode(argv[3]);
else else
err = get_cfgblock_barcode(argv[2]); err = get_cfgblock_barcode(argv[2]);
}
if (err) { if (err) {
ret = CMD_RET_FAILURE; ret = CMD_RET_FAILURE;
goto out; goto out;
@ -549,8 +562,8 @@ static int do_cfgblock(cmd_tbl_t *cmdtp, int flag, int argc,
} }
U_BOOT_CMD( U_BOOT_CMD(
cfgblock, 3, 0, do_cfgblock, cfgblock, 4, 0, do_cfgblock,
"Toradex config block handling commands", "Toradex config block handling commands",
"create [barcode] - (Re-)create Toradex config block\n" "create [-y] [barcode] - (Re-)create Toradex config block\n"
"cfgblock reload - Reload Toradex config block from flash" "cfgblock reload - Reload Toradex config block from flash"
); );