[U-Boot] [PATCH 2/3] cmd_partuuid: add command to retrieve a partition's UUID

2012-08-16 Thread Stephen Warren
From: Stephen Warren 

This implements the following:

partuuid mmc 0:1
  -> prints the partition's UUID.
partuuic mmc 0:1 uuid
  -> sets environment variable "uuid" to the partition's UUID.

This can be useful when writing a bootcmd which searches all known
devices for something bootable, and then wants the kernel to use the
same partition as the root device, e.g.:

partuuid ${devtype} ${devnum}:${rootpart} uuid
setenv bootargs root=PARTUUID=${uuid} ...

Signed-off-by: Stephen Warren 
---
 common/Makefile   |1 +
 common/cmd_partuuid.c |   87 +
 2 files changed, 88 insertions(+), 0 deletions(-)
 create mode 100644 common/cmd_partuuid.c

diff --git a/common/Makefile b/common/Makefile
index 483eb4d..bc39997 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -129,6 +129,7 @@ COBJS-$(CONFIG_CMD_NAND) += cmd_nand.o
 COBJS-$(CONFIG_CMD_NET) += cmd_net.o
 COBJS-$(CONFIG_CMD_ONENAND) += cmd_onenand.o
 COBJS-$(CONFIG_CMD_OTP) += cmd_otp.o
+COBJS-$(CONFIG_CMD_PARTUUID) += cmd_partuuid.o
 ifdef CONFIG_PCI
 COBJS-$(CONFIG_CMD_PCI) += cmd_pci.o
 endif
diff --git a/common/cmd_partuuid.c b/common/cmd_partuuid.c
new file mode 100644
index 000..c85606c
--- /dev/null
+++ b/common/cmd_partuuid.c
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
+ *
+ * made from cmd_ext2, which was:
+ *
+ * (C) Copyright 2004
+ * esd gmbh 
+ * Reinhard Arlt 
+ *
+ * made from cmd_reiserfs by
+ *
+ * (C) Copyright 2003 - 2004
+ * Sysgo Real-Time Solutions, AG 
+ * Pavel Bartusek 
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see .
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+int do_partuuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+   int dev;
+   int part;
+   char *ep;
+   block_dev_desc_t *dev_desc;
+   disk_partition_t info;
+
+   if (argc < 3)
+   return CMD_RET_USAGE;
+
+   dev = (int)simple_strtoul(argv[2], &ep, 16);
+   dev_desc = get_dev(argv[1], dev);
+   if (dev_desc == NULL) {
+   printf("Block device %s %d not supported\n", argv[1], dev);
+   return 1;
+   }
+
+   if (*ep) {
+   if (*ep != ':') {
+   puts("Invalid device; use dev[:part]\n");
+   return 1;
+   }
+   part = (int)simple_strtoul(++ep, NULL, 16);
+   } else {
+   part = 1;
+   }
+
+   if (get_partition_info(dev_desc, part, &info)) {
+   printf("Bad partition %d\n", part);
+   return 1;
+   }
+
+   if (argc > 3)
+   setenv(argv[3], info.uuid);
+   else
+   printf("%s\n", info.uuid);
+
+   return 0;
+}
+
+U_BOOT_CMD(
+   partuuid,   4,  1,  do_partuuid,
+   "partition UUID retrieval",
+   " \n"
+   "- show filesystem UUID of specified partition"
+   "  \n"
+   "- write filesystem UUID to environmane variable"
+);
-- 
1.7.0.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] cmd_partuuid: add command to retrieve a partition's UUID

2012-08-16 Thread Stephen Warren
On 08/16/2012 05:15 PM, Stephen Warren wrote:
> This implements the following:
> 
> partuuid mmc 0:1
>   -> prints the partition's UUID.
> partuuic mmc 0:1 uuid
>   -> sets environment variable "uuid" to the partition's UUID.
> 
> This can be useful when writing a bootcmd which searches all known
> devices for something bootable, and then wants the kernel to use the
> same partition as the root device, e.g.:
> 
> partuuid ${devtype} ${devnum}:${rootpart} uuid
> setenv bootargs root=PARTUUID=${uuid} ...

I guess one thing I might mention here:

I can imagine other partition-oriented commands existing, e.g. a command
to find the bootable partition on a particular storage device. I'm not
sure if we should create a single "part" command with various
sub-options for this, e.g.:

part uuid mmc 0:1
part get-bootable mmc 0

or create separate commands:

partuuid mmc 0:1
part-get-bootable mmc 0
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] cmd_partuuid: add command to retrieve a partition's UUID

2012-08-16 Thread Lukasz Majewski
Hi Stephen,

> On 08/16/2012 05:15 PM, Stephen Warren wrote:
> > This implements the following:
> > 
> > partuuid mmc 0:1
> >   -> prints the partition's UUID.
> > partuuic mmc 0:1 uuid
> >   -> sets environment variable "uuid" to the partition's UUID.
> > 
> > This can be useful when writing a bootcmd which searches all known
> > devices for something bootable, and then wants the kernel to use the
> > same partition as the root device, e.g.:
> > 
> > partuuid ${devtype} ${devnum}:${rootpart} uuid
> > setenv bootargs root=PARTUUID=${uuid} ...
> 
> I guess one thing I might mention here:
> 
> I can imagine other partition-oriented commands existing, e.g. a
> command to find the bootable partition on a particular storage
> device. I'm not sure if we should create a single "part" command with
> various sub-options for this, e.g.:
> 
> part uuid mmc 0:1
> part get-bootable mmc 0
> 

I'm now working at restoring the GPT (GUID Partition Table) at MMC in
u-boot.

I plan to implement a separate command - gptrestore 
However, I think that one single command would be more suitable for
this purpose.

> or create separate commands:
> 
> partuuid mmc 0:1
> part-get-bootable mmc 0


-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center | Linux Platform Group
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] cmd_partuuid: add command to retrieve a partition's UUID

2012-08-17 Thread Stephen Warren
On 08/17/2012 12:46 AM, Lukasz Majewski wrote:
> Hi Stephen,
> 
>> On 08/16/2012 05:15 PM, Stephen Warren wrote:
>>> This implements the following:
>>>
>>> partuuid mmc 0:1
>>>   -> prints the partition's UUID.
>>> partuuic mmc 0:1 uuid
>>>   -> sets environment variable "uuid" to the partition's UUID.
>>>
>>> This can be useful when writing a bootcmd which searches all known
>>> devices for something bootable, and then wants the kernel to use the
>>> same partition as the root device, e.g.:
>>>
>>> partuuid ${devtype} ${devnum}:${rootpart} uuid
>>> setenv bootargs root=PARTUUID=${uuid} ...
>>
>> I guess one thing I might mention here:
>>
>> I can imagine other partition-oriented commands existing, e.g. a
>> command to find the bootable partition on a particular storage
>> device. I'm not sure if we should create a single "part" command with
>> various sub-options for this, e.g.:
>>
>> part uuid mmc 0:1
>> part get-bootable mmc 0
> 
> I'm now working at restoring the GPT (GUID Partition Table) at MMC in
> u-boot.
> 
> I plan to implement a separate command - gptrestore 
> However, I think that one single command would be more suitable for
> this purpose.

What will gptrestore do?

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] cmd_partuuid: add command to retrieve a partition's UUID

2012-08-17 Thread Lukasz Majewski
On Fri, 17 Aug 2012 09:08:16 -0600
Stephen Warren  wrote:

> On 08/17/2012 12:46 AM, Lukasz Majewski wrote:
> > Hi Stephen,
> > 
> >> On 08/16/2012 05:15 PM, Stephen Warren wrote:
> >>> This implements the following:
> >>>
> >>> partuuid mmc 0:1
> >>>   -> prints the partition's UUID.
> >>> partuuic mmc 0:1 uuid
> >>>   -> sets environment variable "uuid" to the partition's UUID.
> >>>
> >>> This can be useful when writing a bootcmd which searches all known
> >>> devices for something bootable, and then wants the kernel to use
> >>> the same partition as the root device, e.g.:
> >>>
> >>> partuuid ${devtype} ${devnum}:${rootpart} uuid
> >>> setenv bootargs root=PARTUUID=${uuid} ...
> >>
> >> I guess one thing I might mention here:
> >>
> >> I can imagine other partition-oriented commands existing, e.g. a
> >> command to find the bootable partition on a particular storage
> >> device. I'm not sure if we should create a single "part" command
> >> with various sub-options for this, e.g.:
> >>
> >> part uuid mmc 0:1
> >> part get-bootable mmc 0
> > 
> > I'm now working at restoring the GPT (GUID Partition Table) at MMC
> > in u-boot.
> > 
> > I plan to implement a separate command - gptrestore 
> > However, I think that one single command would be more suitable for
> > this purpose.
> 
> What will gptrestore do?
> 

It will write a GPT table on the eMMC memory.
Definitions for partitions are read from u-boot environment variable.

-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center | Linux Platform Group
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot