diff options
author | Stefan Agner <stefan.agner@toradex.com> | 2015-10-05 16:05:02 -0700 |
---|---|---|
committer | Stefan Agner <stefan.agner@toradex.com> | 2015-10-05 16:05:02 -0700 |
commit | b33f457f4240b0244533a2bb5bba7648a1e8c0cc (patch) | |
tree | ca6778c55258df5e945abb1b219c9617ef9d3d83 /board/toradex/common | |
parent | 2c572f62c17e314a35934cca08b7cdfc6a1dde95 (diff) |
toradex: configblock: fix command return codes
Return success/failure depending whether config block loading
succeeded or failed (e.g. if written in different ECC format or
not available at all).
Diffstat (limited to 'board/toradex/common')
-rw-r--r-- | board/toradex/common/configblock.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/board/toradex/common/configblock.c b/board/toradex/common/configblock.c index f007073e2ba..ba6aa49a694 100644 --- a/board/toradex/common/configblock.c +++ b/board/toradex/common/configblock.c @@ -334,13 +334,14 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, struct toradex_tag *tag; size_t size = TRDX_CFG_BLOCK_MAX_SIZE; int offset = 0; - int ret; + int ret = CMD_RET_SUCCESS; + int err; /* Allocate RAM area for config block */ config_block = memalign(ARCH_DMA_MINALIGN, size); if (!config_block) { printf("Not enough malloc space available!\n"); - return -ENOMEM; + return CMD_RET_FAILURE; } memset(config_block, 0xff, size); @@ -355,33 +356,30 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, printf("NAND erase block %d need to be erased before creating " "a Toradex config block\n", CONFIG_TRDX_CFG_BLOCK_OFFSET / nand_info[0].erasesize); - ret = 0; goto out; #else char message[CONFIG_SYS_CBSIZE]; sprintf(message, "A valid Toradex config block is present, " "still recreate? [y/N] "); - if (!cli_readline(message)) { - ret = 0; + if (!cli_readline(message)) goto out; - } - if (console_buffer[0] != 'y' && console_buffer[0] != 'Y') { - ret = 0; + if (console_buffer[0] != 'y' && console_buffer[0] != 'Y') goto out; - } #endif } /* Parse new Toradex config block data... */ if (argc < 3) - ret = get_cfgblock_interactive(); + err = get_cfgblock_interactive(); else - ret = get_cfgblock_barcode(argv[2]); + err = get_cfgblock_barcode(argv[2]); - if (ret) + if (err) { + ret = CMD_RET_FAILURE; goto out; + } /* Convert serial number to MAC address (the storage format) */ trdx_eth_addr.oui = htonl(0x00142dUL << 8); @@ -416,14 +414,15 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, memset(config_block + offset, 0, 32 - offset); #ifdef CONFIG_TRDX_CFG_BLOCK_IS_IN_MMC - ret = trdx_cfg_block_mmc_storage(config_block, 1); + err = trdx_cfg_block_mmc_storage(config_block, 1); #elif defined(CONFIG_TRDX_CFG_BLOCK_IS_IN_NAND) - ret = write_trdx_cfg_block_to_nand(config_block); + err = write_trdx_cfg_block_to_nand(config_block); #else - ret = -EINVAL; + err = -EINVAL; #endif - if (ret) { + if (err) { printf("Failed to write Toradex config block: %d\n", ret); + ret = CMD_RET_FAILURE; goto out; } @@ -446,10 +445,12 @@ static int do_cfgblock(cmd_tbl_t *cmdtp, int flag, int argc, return do_cfgblock_create(cmdtp, flag, argc, argv); } else if (!strcmp(argv[1], "reload")) { ret = read_trdx_cfg_block(); - if (ret) + if (ret) { printf("Failed to reload Toradex config block: %d\n", ret); - return 0; + return CMD_RET_FAILURE; + } + return CMD_RET_SUCCESS; } return CMD_RET_USAGE; |