int do_jffs2_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { int tmp_part; char str_part_num[3]; struct part_info* jffs2_part_info(int); if (argc >= 2) { tmp_part = simple_strtoul(argv[1], NULL, 16); }else{ puts ("Need partition number in argument list\n"); return 0; } if (jffs2_part_info(tmp_part)){ printf("Partition changed to %d\n",tmp_part); part_num=tmp_part; sprintf(str_part_num, "%d", part_num); setenv("partition", str_part_num); return 0; } printf("Partition %d is not valid partiton\n",tmp_part); return 0; }
int do_jffs2_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { struct part_info* jffs2_part_info(int); int jffs2_1pass_ls(struct part_info *,char *); char *filename = "/"; int ret; struct part_info *part; if (argc == 2) filename = argv[1]; if (0 != (part=jffs2_part_info(part_num))){ /* check partition type for cramfs */ if (cramfs_check(part)) { ret = cramfs_ls (part, filename); } else { /* if this is not cramfs assume jffs2 */ ret = jffs2_1pass_ls(part, filename); } return (ret == 1); } puts ("Active partition not valid\n"); return 0; }
int do_jffs2_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { struct part_info* jffs2_part_info(int); int jffs2_1pass_info(struct part_info *); struct part_info *part; char *fsname; int ret; if ((part=jffs2_part_info(part_num))){ /* check partition type for cramfs */ fsname = (cramfs_check(part) ? "CRAMFS" : "JFFS2"); printf("### filesystem type is %s\n", fsname); if (cramfs_check(part)) { ret = cramfs_info (part); } else { /* if this is not cramfs assume jffs2 */ ret = jffs2_1pass_info(part); } return (ret == 1); } puts ("Active partition not valid\n"); return 0; }
int do_jffs2_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { struct part_info* jffs2_part_info(int); int jffs2_1pass_load(char *, struct part_info *,const char *); char *fsname; char *filename; int size; struct part_info *part; ulong offset = load_addr; /* pre-set Boot file name */ if ((filename = getenv("bootfile")) == NULL) { filename = "uImage"; } if (argc == 2) { filename = argv[1]; } if (argc == 3) { offset = simple_strtoul(argv[1], NULL, 16); load_addr = offset; filename = argv[2]; } if (0 != (part=jffs2_part_info(part_num))){ /* check partition type for cramfs */ fsname = (cramfs_check(part) ? "CRAMFS" : "JFFS2"); printf("### %s loading '%s' to 0x%lx\n", fsname, filename, offset); if (cramfs_check(part)) { size = cramfs_load ((char *) offset, part, filename); } else { /* if this is not cramfs assume jffs2 */ size = jffs2_1pass_load((char *)offset, part, filename); } if (size > 0) { char buf[10]; printf("### %s load complete: %d bytes loaded to 0x%lx\n", fsname, size, offset); sprintf(buf, "%x", size); setenv("filesize", buf); } else { printf("### %s LOAD ERROR<%x> for %s!\n", fsname, size, filename); } return !(size > 0); } puts ("Active partition not valid\n"); return 0; }
static void arg_off_size(int argc, char *argv[], ulong *off, size_t *size, size_t totsize) { *off = 0; *size = 0; #if defined(CONFIG_JFFS2_NAND) && defined(CFG_JFFS_CUSTOM_PART) if (argc >= 1 && strcmp(argv[0], "partition") == 0) { int part_num; struct part_info *part; const char *partstr; if (argc >= 2) partstr = argv[1]; else partstr = getenv("partition"); if (partstr) part_num = (int)simple_strtoul(partstr, NULL, 10); else part_num = 0; part = jffs2_part_info(part_num); if (part == NULL) { printf("\nInvalid partition %d\n", part_num); return; } *size = part->size; *off = (ulong)part->offset; } else #endif { if (argc >= 1) *off = (ulong)simple_strtoul(argv[0], NULL, 16); else *off = 0; if (argc >= 2) *size = (ulong)simple_strtoul(argv[1], NULL, 16); else *size = totsize - *off; } }