Skip to content

Commit

Permalink
cmd: gpt: add subcommand repair
Browse files Browse the repository at this point in the history
Adds a sub-command repair to the command gpt
that allow to repair a corrupted gpt table. If
the both gpt table (primary and backup) are
valid, then the command does nothing.

Signed-off-by: Philippe Reynes <[email protected]>
  • Loading branch information
Philippe Reynes authored and trini committed May 6, 2022
1 parent 5c783b5 commit 26f404c
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion cmd/gpt.c
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,15 @@ static int set_gpt_info(struct blk_desc *dev_desc,
return errno;
}

static int gpt_repair(struct blk_desc *blk_dev_desc)
{
int ret = 0;

ret = gpt_repair_headers(blk_dev_desc);

return ret;
}

static int gpt_default(struct blk_desc *blk_dev_desc, const char *str_part)
{
int ret;
Expand Down Expand Up @@ -997,7 +1006,10 @@ static int do_gpt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return CMD_RET_FAILURE;
}

if ((strcmp(argv[1], "write") == 0) && (argc == 5)) {
if (strcmp(argv[1], "repair") == 0) {
printf("Repairing GPT: ");
ret = gpt_repair(blk_dev_desc);
} else if ((strcmp(argv[1], "write") == 0) && (argc == 5)) {
printf("Writing GPT: ");
ret = gpt_default(blk_dev_desc, argv[4]);
} else if ((strcmp(argv[1], "verify") == 0)) {
Expand Down Expand Up @@ -1036,6 +1048,8 @@ U_BOOT_CMD(gpt, CONFIG_SYS_MAXARGS, 1, do_gpt,
" Restore or verify GPT information on a device connected\n"
" to interface\n"
" Example usage:\n"
" gpt repair mmc 0\n"
" - repair the GPT on the device\n"
" gpt write mmc 0 $partitions\n"
" - write the GPT to device\n"
" gpt verify mmc 0 $partitions\n"
Expand Down

0 comments on commit 26f404c

Please sign in to comment.