common: cmd_part: Proper alignment
PATCH v3 1/2 common: cmd_part: Proper alignment
This fixes a misaligned declaration.
--- common/cmd_part.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
common/cmd_part.c +1 -1
@@ -88,7 +88,7 @@ static int do_part_list(int argc, char * const argv[])if (var !=NULL ) {int p;char str[512 ] = {'\0' , }; -disk_partition_t info; +disk_partition_t info;for (p =1 ; p <128 ; p++) {char t[5 ];
Signature · 1 line
1.9.1
PATCH v3 2/2 common: cmd_part: start and size sub-commands introduction
This introduces the part start and part size sub-commands. The purpose of these is to store the start block and size of a partition in a variable, given the device and partition number.
This allows reading raw data that fits a single partition more easily. For instance, this could be used to figure out the start block and size of a kernel partition when a partition table is present, given the partition number.
--- common/cmd_part.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-)
common/cmd_part.c +77 -1
@@ -112,6 +112,74 @@ static int do_part_list(int argc, char * const argv[])return 0 ; } +static int do_part_start (int argc,char *const argv[]) +{ +block_dev_desc_t *desc; +disk_partition_t info; +char buf[512 ] = {0 }; +int part; +int err; +int ret; + +if (argc <3 ) +return CMD_RET_USAGE ; +if (argc >4 ) +return CMD_RET_USAGE ; + + part =simple_strtoul (argv[2 ],NULL ,0 ); + + ret =get_device (argv[0 ], argv[1 ], &desc); +if (ret <0 ) +return 1 ; + + err =get_partition_info (desc, part, &info); +if (err) +return 1 ; + +snprintf (buf,sizeof (buf),"%lx" , info.start); + +if (argc >3 ) +setenv (argv[3 ], buf); +else +printf ("%s\n" , buf); + +return 0 ; +} + +static int do_part_size (int argc,char *const argv[]) +{ +block_dev_desc_t *desc; +disk_partition_t info; +char buf[512 ] = {0 }; +int part; +int err; +int ret; + +if (argc <3 ) +return CMD_RET_USAGE ; +if (argc >4 ) +return CMD_RET_USAGE ; + + part =simple_strtoul (argv[2 ],NULL ,0 ); + + ret =get_device (argv[0 ], argv[1 ], &desc); +if (ret <0 ) +return 1 ; + + err =get_partition_info (desc, part, &info); +if (err) +return 1 ; + +snprintf (buf,sizeof (buf),"%lx" , info.size); + +if (argc >3 ) +setenv (argv[3 ], buf); +else +printf ("%s\n" , buf); + +return 0 ; +} +static int do_part (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {if (argc <2 )
@@ -121,6 +189,10 @@ static int do_part(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])return do_part_uuid (argc -2 , argv +2 ); else if (!strcmp(argv[1], "list")) return do_part_list(argc - 2, argv + 2); + else if (!strcmp(argv[1], "start")) + return do_part_start(argc - 2, argv + 2); + else if (!strcmp(argv[1], "size")) + return do_part_size(argc - 2, argv + 2);return CMD_RET_USAGE ; }
@@ -136,5 +208,9 @@ U_BOOT_CMD(" - print a device's partition table\n" "part list <interface> <dev> [flags] <varname>\n" " - set environment variable to the list of partitions\n" -" flags can be -bootable (list only bootable partitions)" +" flags can be -bootable (list only bootable partitions)\n" +"part start <interface> <dev> <part> <varname>\n" +" - set environment variable to the start of the partition (in blocks)\n" +"part size <interface> <dev> <part> <varname>\n" +" - set environment variable to the size of the partition (in blocks)" );
Signature · 1 line
1.9.1
PATCH v3 2/2 common: cmd_part: start and size sub-commands introduction
Quoted 7 lines · Paul Kocialkowski
This introduces the part start and part size sub-commands. The purpose of these is to store the start block and size of a partition in a variable, given the device and partition number.
This allows reading raw data that fits a single partition more easily. For instance, this could be used to figure out the start block and size of a kernel partition when a partition table is present, given the partition number.
The series,
PATCH v3 2/2 common: cmd_part: start and size sub-commands introduction
In reply to Paul KocialkowskiQuoted 10 lines · Paul Kocialkowski
This introduces the part start and part size sub-commands. The purpose of these is to store the start block and size of a partition in a variable, given the device and partition number.
This allows reading raw data that fits a single partition more easily. For instance, this could be used to figure out the start block and size of a kernel partition when a partition table is present, given the partition number.
Signed-off-by Paul Kocialkowski <[email protected]>Acked-by Stephen Warren <[email protected]>
After changing it to use LBAF instead of "%lx" to fix some warnings, applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150619/8b2a5a0b/attachment.sig>
PATCH v3 1/2 common: cmd_part: Proper alignment
In reply to Paul KocialkowskiQuoted 3 lines · Paul Kocialkowski
This fixes a misaligned declaration.
Signed-off-by Paul Kocialkowski <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150619/671ef3d8/attachment.sig>