mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-17 02:08:38 +00:00
Merge branch 'master' of git://git.denx.de/u-boot-ubi
This commit is contained in:
commit
585887b87d
2 changed files with 37 additions and 10 deletions
|
@ -395,11 +395,13 @@ static int ubi_volume_read(char *volume, char *buf, size_t size)
|
|||
return err ? err : count_save - size;
|
||||
}
|
||||
|
||||
static int ubi_dev_scan(struct mtd_info *info, char *ubidev)
|
||||
static int ubi_dev_scan(struct mtd_info *info, char *ubidev,
|
||||
const char *vid_header_offset)
|
||||
{
|
||||
struct mtd_device *dev;
|
||||
struct part_info *part;
|
||||
struct mtd_partition mtd_part;
|
||||
char ubi_mtd_param_buffer[80];
|
||||
u8 pnum;
|
||||
int err;
|
||||
|
||||
|
@ -413,7 +415,11 @@ static int ubi_dev_scan(struct mtd_info *info, char *ubidev)
|
|||
mtd_part.offset = part->offset;
|
||||
add_mtd_partitions(info, &mtd_part, 1);
|
||||
|
||||
err = ubi_mtd_param_parse(buffer, NULL);
|
||||
strcpy(ubi_mtd_param_buffer, buffer);
|
||||
if (vid_header_offset)
|
||||
sprintf(ubi_mtd_param_buffer, "mtd=%d,%s", pnum,
|
||||
vid_header_offset);
|
||||
err = ubi_mtd_param_parse(ubi_mtd_param_buffer, NULL);
|
||||
if (err) {
|
||||
del_mtd_partitions(info);
|
||||
return err;
|
||||
|
@ -450,6 +456,7 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
char mtd_dev[16];
|
||||
struct mtd_device *dev;
|
||||
struct part_info *part;
|
||||
const char *vid_header_offset = NULL;
|
||||
u8 pnum;
|
||||
|
||||
/* Print current partition */
|
||||
|
@ -497,8 +504,11 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
|
||||
ubi_dev.selected = 1;
|
||||
|
||||
if (argc > 3)
|
||||
vid_header_offset = argv[3];
|
||||
strcpy(ubi_dev.part_name, argv[2]);
|
||||
err = ubi_dev_scan(ubi_dev.mtd_info, ubi_dev.part_name);
|
||||
err = ubi_dev_scan(ubi_dev.mtd_info, ubi_dev.part_name,
|
||||
vid_header_offset);
|
||||
if (err) {
|
||||
printf("UBI init error %d\n", err);
|
||||
ubi_dev.selected = 0;
|
||||
|
@ -594,8 +604,9 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
|
||||
U_BOOT_CMD(ubi, 6, 1, do_ubi,
|
||||
"ubi commands",
|
||||
"part [part]"
|
||||
" - Show or set current partition\n"
|
||||
"part [part] [offset]\n"
|
||||
" - Show or set current partition (with optional VID"
|
||||
" header offset)\n"
|
||||
"ubi info [l[ayout]]"
|
||||
" - Display volume and ubi layout information\n"
|
||||
"ubi create[vol] volume [size] [type]"
|
||||
|
|
|
@ -47,6 +47,10 @@ int do_ubifs_mount(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
char *vol_name;
|
||||
int ret;
|
||||
|
||||
if (argc != 2) {
|
||||
cmd_usage(cmdtp);
|
||||
return 1;
|
||||
}
|
||||
vol_name = argv[1];
|
||||
debug("Using volume %s\n", vol_name);
|
||||
|
||||
|
@ -88,6 +92,7 @@ int do_ubifs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
int do_ubifs_load(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
char *filename;
|
||||
char *endp;
|
||||
int ret;
|
||||
u32 addr;
|
||||
u32 size = 0;
|
||||
|
@ -98,15 +103,25 @@ int do_ubifs_load(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
}
|
||||
|
||||
if (argc < 3) {
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
cmd_usage(cmdtp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
addr = simple_strtoul(argv[1], NULL, 16);
|
||||
addr = simple_strtoul(argv[1], &endp, 16);
|
||||
if (endp == argv[1]) {
|
||||
cmd_usage(cmdtp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
filename = argv[2];
|
||||
|
||||
if (argc == 4)
|
||||
size = simple_strtoul(argv[3], NULL, 16);
|
||||
if (argc == 4) {
|
||||
size = simple_strtoul(argv[3], &endp, 16);
|
||||
if (endp == argv[3]) {
|
||||
cmd_usage(cmdtp);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
debug("Loading file '%s' to address 0x%08x (size %d)\n", filename, addr, size);
|
||||
|
||||
ret = ubifs_load(filename, addr, size);
|
||||
|
@ -119,7 +134,8 @@ int do_ubifs_load(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
U_BOOT_CMD(
|
||||
ubifsmount, 2, 0, do_ubifs_mount,
|
||||
"mount UBIFS volume",
|
||||
""
|
||||
"<volume-name>\n"
|
||||
" - mount 'volume-name' volume"
|
||||
);
|
||||
|
||||
U_BOOT_CMD(ubifsls, 2, 0, do_ubifs_ls,
|
||||
|
|
Loading…
Reference in a new issue