diff options
Diffstat (limited to 'common/cmd_jffs2.c')
| -rw-r--r-- | common/cmd_jffs2.c | 36 | 
1 files changed, 27 insertions, 9 deletions
| diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c index 513a226c4..3e6061a52 100644 --- a/common/cmd_jffs2.c +++ b/common/cmd_jffs2.c @@ -85,7 +85,7 @@   */  /* - * JFFS2/CRAMFS support + * JFFS2/CRAMFS/ROMFS support   */  #include <common.h>  #include <command.h> @@ -175,6 +175,11 @@ extern int cramfs_load (char *loadoffset, struct part_info *info, char *filename  extern int cramfs_ls (struct part_info *info, char *filename);  extern int cramfs_info (struct part_info *info); +extern int romfs_check (struct part_info *info); +extern int romfs_load (char *loadoffset, struct part_info *info, char *filename); +extern int romfs_ls (struct part_info *info, char *filename); +extern int romfs_info (struct part_info *info); +  static struct part_info* jffs2_part_info(struct mtd_device *dev, unsigned int part_num);  /* command line only routines */ @@ -1874,14 +1879,22 @@ int do_jffs2_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	if ((part = jffs2_part_info(current_dev, current_partnum))){ -		/* check partition type for cramfs */ -		fsname = (cramfs_check(part) ? "CRAMFS" : "JFFS2"); +		/* check partition type for JFFS2, cramfs, romfs */ +		if (cramfs_check(part)) { +			fsname = "CRAMFS"; +		} else if (romfs_check(part)) { +			fsname = "ROMFS"; +		} else { +	 		fsname = "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 (romfs_check(part)){ +			size = romfs_load ((char *) offset, part, filename);  		} else { -			/* if this is not cramfs assume jffs2 */ +			/* if this is not cramfs or romfs assume jffs2 */  			size = jffs2_1pass_load((char *)offset, part, filename);  		} @@ -1928,8 +1941,10 @@ int do_jffs2_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		/* check partition type for cramfs */  		if (cramfs_check(part)) {  			ret = cramfs_ls (part, filename); +		} else if (romfs_check(part)) { +			ret = romfs_ls (part, filename);  		} else { -			/* if this is not cramfs assume jffs2 */ +			/* if this is not cramfs or romfs assume jffs2 */  			ret = jffs2_1pass_ls(part, filename);  		} @@ -1951,7 +1966,6 @@ int do_jffs2_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  int do_jffs2_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	struct part_info *part; -	char *fsname;  	int ret;  	/* make sure we are in sync with env variables */ @@ -1961,13 +1975,17 @@ int do_jffs2_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	if ((part = jffs2_part_info(current_dev, current_partnum))){  		/* check partition type for cramfs */ -		fsname = (cramfs_check(part) ? "CRAMFS" : "JFFS2"); -		printf("### filesystem type is %s\n", fsname); +		puts("### filesystem type is ");  		if (cramfs_check(part)) { +			puts("CRAMFS\n");  			ret = cramfs_info (part); +		} else if (romfs_check(part)) { +			puts("ROMFS\n"); +			ret = romfs_info (part);  		} else { -			/* if this is not cramfs assume jffs2 */ +			/* if this is not cramfs or romfs assume jffs2 */ +			puts("JFFS2\n");  			ret = jffs2_1pass_info(part);  		} |