*/
/*
- * 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)
-#ifdef CFG_NAND_LEGACY
+#ifdef CONFIG_NAND_LEGACY
#include <linux/mtd/nand_legacy.h>
-#else /* !CFG_NAND_LEGACY */
+#else /* !CONFIG_NAND_LEGACY */
#include <linux/mtd/nand.h>
#include <nand.h>
-#endif /* !CFG_NAND_LEGACY */
+#endif /* !CONFIG_NAND_LEGACY */
#endif
/* enable/disable debugging messages */
#define DEBUG_JFFS
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;
}
}
}
-#ifdef CFG_NAND_LEGACY
+#ifdef CONFIG_NAND_LEGACY
jffs2_free_cache(part);
#endif
list_del(&part->link);
list_for_each_safe(entry, n, head) {
part_tmp = list_entry(entry, struct part_info, link);
-#ifdef CFG_NAND_LEGACY
+#ifdef CONFIG_NAND_LEGACY
jffs2_free_cache(part_tmp);
#endif
list_del(entry);
} else if (type == MTD_DEV_TYPE_NAND) {
#if defined(CONFIG_JFFS2_NAND) && defined(CONFIG_CMD_NAND)
if (num < CFG_MAX_NAND_DEVICE) {
-#ifndef CFG_NAND_LEGACY
+#ifndef CONFIG_NAND_LEGACY
*size = nand_info[num].size;
#else
extern struct nand_chip nand_dev_desc[CFG_MAX_NAND_DEVICE];
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