From: Przemyslaw Marczak
Date: Thu, 20 Feb 2014 11:17:05 +0000 (+0100)
Subject: MAINLINE cmd:gpt: randomly generate each partition uuid if undefined
X-Git-Tag: submit/tizen/20140328.090301~19
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a806f11329ff2e4c82a96b56951484c2031f452f;p=kernel%2Fu-boot.git
MAINLINE cmd:gpt: randomly generate each partition uuid if undefined
Changes:
- randomly generate each partition uuid if undefined
- print info about generated uuid
- save environment on gpt write success
- update doc/README.gpt
Change-Id: Ice15a59dbb84d0d8af5e1d511cf4c859e2c6a1e5
Signed-off-by: Przemyslaw Marczak
---
diff --git a/common/cmd_gpt.c b/common/cmd_gpt.c
index 1f12e6d..7be5fcf 100644
--- a/common/cmd_gpt.c
+++ b/common/cmd_gpt.c
@@ -31,6 +31,7 @@
*/
static char extract_env(const char *str, char **env)
{
+ int ret = -1;
char *e, *s;
if (!str || strlen(str) < 4)
@@ -43,16 +44,23 @@ static char extract_env(const char *str, char **env)
memset(s + strlen(s) - 1, '\0', 1);
memmove(s, s + 2, strlen(s) - 1);
e = getenv(s);
- free(s);
if (e == NULL) {
- printf("Environmental '%s' not set\n", str);
- return -1; /* env not set */
+ printf("%s unset. ", str);
+ e = get_uuid_str();
+ if (e) {
+ printf("Setting to: %s\n", e);
+ setenv(s, e);
+ ret = 0;
+ }
+ } else {
+ ret = 0;
}
+
*env = e;
- return 0;
+ free(s);
}
- return -1;
+ return ret;
}
/**
@@ -299,8 +307,17 @@ static int do_gpt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return CMD_RET_FAILURE;
}
- if (gpt_default(blk_dev_desc, argv[4]))
+ puts("Writing GPT: ");
+
+ ret = gpt_default(blk_dev_desc, argv[4]);
+ if (!ret) {
+ puts("success!\n");
+ saveenv();
+ return CMD_RET_SUCCESS;
+ } else {
+ puts("error!\n");
return CMD_RET_FAILURE;
+ }
} else {
return CMD_RET_USAGE;
}
diff --git a/doc/README.gpt b/doc/README.gpt
index 5c133f3..afe2538 100644
--- a/doc/README.gpt
+++ b/doc/README.gpt
@@ -176,3 +176,4 @@ Please, pay attention at -l switch for parted.
"uuid" program is recommended to generate UUID string. Moreover it can decode
(-d switch) passed in UUID string. It can be used to generate partitions UUID
passed to u-boot environment variables.
+If each partition "uuid" no exists then it will be randomly generated.