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