*/
/*
- * JFFS2/CRAMFS/ROMFS support
+ * JFFS2/CRAMFS support
*/
#include <common.h>
#include <command.h>
#include <jffs2/jffs2.h>
#include <linux/list.h>
#include <linux/ctype.h>
-
-#if defined(CONFIG_CMD_JFFS2)
-
#include <cramfs/cramfs_fs.h>
#if defined(CONFIG_CMD_NAND)
static struct mtd_device *current_dev = NULL;
static u8 current_partnum = 0;
+#if defined(CONFIG_CMD_CRAMFS)
extern int cramfs_check (struct part_info *info);
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);
+#else
+/* defining empty macros for function names is ugly but avoids ifdef clutter
+ * all over the code */
+#define cramfs_check(x) (0)
+#define cramfs_load(x,y,z) (-1)
+#define cramfs_ls(x,y) (0)
+#define cramfs_info(x) (0)
+#endif
static struct part_info* jffs2_part_info(struct mtd_device *dev, unsigned int part_num);
#define SIZE_KB ((u32)1024)
if ((size % SIZE_GB) == 0)
- sprintf(buf, "%lug", size/SIZE_GB);
+ sprintf(buf, "%ug", size/SIZE_GB);
else if ((size % SIZE_MB) == 0)
- sprintf(buf, "%lum", size/SIZE_MB);
+ sprintf(buf, "%um", size/SIZE_MB);
else if (size % SIZE_KB == 0)
- sprintf(buf, "%luk", size/SIZE_KB);
+ sprintf(buf, "%uk", size/SIZE_KB);
else
- sprintf(buf, "%lu", size);
+ sprintf(buf, "%u", size);
}
/**
part->size = id->size - part->offset;
if (part->offset > id->size) {
- printf("%s: offset %08lx beyond flash size %08lx\n",
+ printf("%s: offset %08x beyond flash size %08x\n",
id->mtd_id, part->offset, id->size);
return 1;
}
if (current_dev) {
part = jffs2_part_info(current_dev, current_partnum);
if (part) {
- printf("\nactive partition: %s%d,%d - (%s) 0x%08lx @ 0x%08lx\n",
+ printf("\nactive partition: %s%d,%d - (%s) 0x%08x @ 0x%08x\n",
MTD_DEV_TYPE(current_dev->id->type),
current_dev->id->num, current_partnum,
part->name, part->size, part->offset);
if ((part = jffs2_part_info(current_dev, current_partnum))){
- /* check partition type for JFFS2, cramfs, romfs */
- if (cramfs_check(part)) {
- fsname = "CRAMFS";
- } else if (romfs_check(part)) {
- fsname = "ROMFS";
- } else {
- fsname = "JFFS2";
- }
+ /* 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 (romfs_check(part)){
- size = romfs_load ((char *) offset, part, filename);
} else {
- /* if this is not cramfs or romfs assume jffs2 */
+ /* if this is not cramfs assume jffs2 */
size = jffs2_1pass_load((char *)offset, part, filename);
}
/* 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 or romfs assume jffs2 */
+ /* if this is not cramfs assume jffs2 */
ret = jffs2_1pass_ls(part, filename);
}
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 */
if ((part = jffs2_part_info(current_dev, current_partnum))){
/* check partition type for cramfs */
- puts("### filesystem type is ");
+ fsname = (cramfs_check(part) ? "CRAMFS" : "JFFS2");
+ printf("### filesystem type is %s\n", fsname);
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 or romfs assume jffs2 */
- puts("JFFS2\n");
+ /* if this is not cramfs assume jffs2 */
ret = jffs2_1pass_info(part);
}
#endif /* #ifdef CONFIG_JFFS2_CMDLINE */
/***************************************************/
-
-#endif