From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ladislav Michl Date: Tue, 13 Sep 2016 07:14:01 +0200 Subject: [U-Boot] [PATCH] cmd: ubi: add option to specify volume id Message-ID: <20160913051401.GA857@localhost.localdomain> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Signed-off-by: Ladislav Michl --- diff --git a/cmd/ubi.c b/cmd/ubi.c index 4a92d84..b66bc62 100644 --- a/cmd/ubi.c +++ b/cmd/ubi.c @@ -162,7 +162,7 @@ bad: return err; } -static int ubi_create_vol(char *volume, int64_t size, int dynamic) +static int ubi_create_vol(char *volume, int64_t size, int dynamic, int vol_id) { struct ubi_mkvol_req req; int err; @@ -172,7 +172,7 @@ static int ubi_create_vol(char *volume, int64_t size, int dynamic) else req.vol_type = UBI_STATIC_VOLUME; - req.vol_id = UBI_VOL_NUM_AUTO; + req.vol_id = vol_id; req.alignment = 1; req.bytes = size; @@ -577,10 +577,17 @@ static int do_ubi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (strncmp(argv[1], "create", 6) == 0) { int dynamic = 1; /* default: dynamic volume */ + int id = UBI_VOL_NUM_AUTO; /* Use maximum available size */ size = 0; + /* E.g., create volume size type vol_id */ + if (argc == 6) { + id = simple_strtoull(argv[5], NULL, 16); + argc--; + } + /* E.g., create volume size type */ if (argc == 5) { if (strncmp(argv[4], "s", 1) == 0) @@ -603,7 +610,7 @@ static int do_ubi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) } /* E.g., create volume */ if (argc == 3) - return ubi_create_vol(argv[2], size, dynamic); + return ubi_create_vol(argv[2], size, dynamic, id); } if (strncmp(argv[1], "remove", 6) == 0) { @@ -684,7 +691,7 @@ U_BOOT_CMD( " - Display volume and ubi layout information\n" "ubi check volumename" " - check if volumename exists\n" - "ubi create[vol] volume [size] [type]" + "ubi create[vol] volume [size] [type] [id]" " - create volume name with size\n" "ubi write[vol] address volume size" " - Write volume from address with size\n" -- 2.1.4