
On 09/05/2012 05:51 PM, Rob Herring wrote:
On 09/05/2012 05:03 PM, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This implements the following:
part uuid mmc 0:1 -> print partition UUID part uuid mmc 0:1 uuid -> set environment variable to partition UUID
What's the reason to not always both print out and set the uuid env var?
Perhaps the env name should be partuuid or part_uuid as you could have uuid's for other purposes?
The idea is that if you're running the command interactively, you won't pass a variable name on the command-line, so the command will print out the UUID for you to read. In this case, it's pointless to set any environment variable.
However, if you're writing a script, you want to capture the UUID into an environment variable, and it's quite unlikely you want to litter stdout with that content too. Hence, either-or, not both.
Note that in the second command above, the final parameter "uuid" is the environment variable name, so you can save as many UUIDs for different partitions into whatever variables you want; IIRC in the scripts I wrote to use this, I did name the variable root_uuid or somesuch.
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.:
part uuid ${devtype} ${devnum}:${rootpart} uuid setenv bootargs root=PARTUUID=${uuid} ...
It is expected that further part sub-commands will be added later, e.g. to find which partition on a disk is marked bootable, to write new partition tables to disk, etc.
A list command would be useful and would be better located here than under scsi or other interface commands. Perhaps instead of printing a single part uuid, you should make a list command that prints all partitions and their UUIDs. That would address my first question.
Yes, I wondered about "part list mmc 0", which would do essentially the same thing as e.g. "mmc dev 0; mmc part", and also expanding the partition printing functions to dump extra information, such as GPT's partition type UUID, partition UUID, and attributes.