]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - common/cmd_jffs2.c
Patch by Thomas Viehweger, 14 May 2004:
[karo-tx-uboot.git] / common / cmd_jffs2.c
index 6ebd46fa476dc318246779ddb98e525a1a196fc0..085781f746739721d6c0e8cb2b17138fc63790b5 100644 (file)
@@ -49,6 +49,8 @@ static int part_num=0;
 
 static struct part_info part;
 
+#ifndef CONFIG_JFFS2_NAND
+
 struct part_info*
 jffs2_part_info(int part_num)
 {
@@ -88,6 +90,33 @@ jffs2_part_info(int part_num)
        }
        return 0;
 }
+
+#else /* CONFIG_JFFS2_NAND */
+
+struct part_info*
+jffs2_part_info(int part_num)
+{
+       if(part_num==0){
+
+               if(part.usr_priv==(void*)1)
+                       return ∂
+
+               memset(&part, 0, sizeof(part));
+
+               part.offset = CONFIG_JFFS2_NAND_OFF;
+               part.size = CONFIG_JFFS2_NAND_SIZE; /* the bigger size the slower jffs2 */
+
+#ifndef CONFIG_JFFS2_NAND_DEV
+#define CONFIG_JFFS2_NAND_DEV 0
+#endif
+               /* nand device with the JFFS2 parition plus 1 */
+               part.usr_priv = (void*)(CONFIG_JFFS2_NAND_DEV+1);
+               return ∂
+       }
+       return 0;
+}
+
+#endif /* CONFIG_JFFS2_NAND */
 #endif /* ifndef CFG_JFFS_CUSTOM_PART */
 
 int
@@ -98,7 +127,7 @@ do_jffs2_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
     char *fsname;
 
        char *filename = "uImage";
-       ulong offset = CFG_LOAD_ADDR;
+       ulong offset = load_addr;
        int size;
        struct part_info *part;
 
@@ -107,6 +136,7 @@ do_jffs2_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
        if (argc == 3) {
                offset = simple_strtoul(argv[1], NULL, 16);
+               load_addr = offset;
                filename = argv[2];
        }
 
@@ -135,7 +165,7 @@ do_jffs2_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
                return !(size > 0);
        }
-       printf("Active partition not valid\n");
+       puts ("Active partition not valid\n");
        return 0;
 }
 
@@ -164,7 +194,7 @@ do_jffs2_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
                return (ret == 1);
        }
-       printf("Active partition not valid\n");
+       puts ("Active partition not valid\n");
        return 0;
 }
 
@@ -192,7 +222,7 @@ do_jffs2_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
                return (ret == 1);
        }
-       printf("Active partition not valid\n");
+       puts ("Active partition not valid\n");
        return 0;
 }
 
@@ -206,7 +236,7 @@ do_jffs2_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
    if (argc >= 2) {
                tmp_part = simple_strtoul(argv[1], NULL, 16);
        }else{
-               printf("Need partition number in argument list\n");
+               puts ("Need partition number in argument list\n");
                return 0;
 
        }
@@ -228,7 +258,7 @@ do_jffs2_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 U_BOOT_CMD(
        fsload, 3,      0,      do_jffs2_fsload,
-       "fsload  - load binary file from a filesystem image\n",
+       "fsload\t- load binary file from a filesystem image\n",
        "[ off ] [ filename ]\n"
        "    - load binary file from flash bank\n"
        "      with offset 'off'\n"
@@ -236,20 +266,20 @@ U_BOOT_CMD(
 
 U_BOOT_CMD(
        fsinfo, 1,      1,      do_jffs2_fsinfo,
-       "fsinfo  - print information about filesystems\n",
+       "fsinfo\t- print information about filesystems\n",
        "    - print information about filesystems\n"
 );
 
 U_BOOT_CMD(
        ls,     2,      1,      do_jffs2_ls,
-       "ls      - list files in a directory (default /)\n",
+       "ls\t- list files in a directory (default /)\n",
        "[ directory ]\n"
        "    - list files in a directory.\n"
 );
 
 U_BOOT_CMD(
        chpart, 2,      0,      do_jffs2_chpart,
-       "chpart  - change active partition\n",
+       "chpart\t- change active partition\n",
        "    - change active partition\n"
 );