[U-Boot] [PATCH] fs: make it possible to read the filesystem UUID

Simon Glass sjg at chromium.org
Tue Nov 4 07:31:32 CET 2014


Hi Christian,

On 31 October 2014 09:08, Christian Gmeiner <christian.gmeiner at gmail.com> wrote:
> Some filesystems have a UUID stored in its superblock. To
> allow using root=UUID=... for the kernel command line we
> need a way to read-out the filesystem UUID.
>
> Hit any key to stop autoboot:  0
> => fsuuid
> fsuuid - Look up a filesystem UUID
>
> Usage:
> fsuuid <interface> <dev>:<part>
>     - print filesystem UUID
> fsuuid <interface> <dev>:<part> <varname>
>     - set environment variable to filesystem UUID
>
> => fsuuid mmc 0:1
> d9f9fc05-45ae-4a36-a616-fccce0e4f887
> => fsuuid mmc 0:2
> eb3db83c-7b28-499f-95ce-9e0bb21cda81
> => fsuuid mmc 0:1 uuid1
> => fsuuid mmc 0:2 uuid2
> => printenv uuid1
> uuid1=d9f9fc05-45ae-4a36-a616-fccce0e4f887
> => printenv uuid2
> uuid2=eb3db83c-7b28-499f-95ce-9e0bb21cda81
> =>
>
> Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
>  README           |  1 +
>  common/Makefile  |  1 +
>  fs/ext4/ext4fs.c | 15 +++++++++++++++
>  fs/fs.c          | 39 +++++++++++++++++++++++++++++++++++++++
>  include/ext4fs.h |  1 +
>  include/fs.h     |  2 ++
>  6 files changed, 59 insertions(+)
>
> diff --git a/README b/README
> index 7b5538e..53b84a6 100644
> --- a/README
> +++ b/README
> @@ -989,6 +989,7 @@ The following options need to be configured:
>                 CONFIG_CMD_EXT4         * ext4 command support
>                 CONFIG_CMD_FS_GENERIC   * filesystem commands (e.g. load, ls)
>                                           that work for multiple fs types
> +               CONFIG_CMD_FS_UUID      * Look up a filesystem UUID
>                 CONFIG_CMD_SAVEENV        saveenv
>                 CONFIG_CMD_FDC          * Floppy Disk Support
>                 CONFIG_CMD_FAT          * FAT command support
> diff --git a/common/Makefile b/common/Makefile
> index 6cc4de8..508a0b2 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -188,6 +188,7 @@ obj-y += usb.o usb_hub.o
>  obj-$(CONFIG_USB_STORAGE) += usb_storage.o
>  endif
>  obj-$(CONFIG_CMD_FASTBOOT) += cmd_fastboot.o
> +obj-$(CONFIG_CMD_FS_UUID) += cmd_fs_uuid.o
>
>  obj-$(CONFIG_CMD_USB_MASS_STORAGE) += cmd_usb_mass_storage.o
>  obj-$(CONFIG_CMD_THOR_DOWNLOAD) += cmd_thordown.o
> diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
> index cbdc220..61b6dc2 100644
> --- a/fs/ext4/ext4fs.c
> +++ b/fs/ext4/ext4fs.c
> @@ -187,6 +187,21 @@ int ext4fs_size(const char *filename)
>         return ext4fs_open(filename);
>  }
>
> +int ext4fs_uuid(char *uuid_str)
> +{
> +       if (ext4fs_root == NULL)
> +               return -1;

One other tiny note - should that be -ENOENT or some other error perhaps?

Anyway otherwise (with my other comments) this looks good to me.

Regards,
Simon


More information about the U-Boot mailing list