Re: [PATCH 2/3] cmd: gpt: add subcommand repair

2022-05-08 Thread Tom Rini
On Fri, Apr 22, 2022 at 05:46:49PM +0200, Philippe Reynes wrote:

> 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 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH 2/3] cmd: gpt: add subcommand repair

2022-04-22 Thread Philippe Reynes
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 
---
 cmd/gpt.c | 16 +++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/cmd/gpt.c b/cmd/gpt.c
index 1c0525fbf6..007a68eaa7 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -586,6 +586,15 @@ err:
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;
@@ -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)) {
@@ -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"
-- 
2.25.1