2 * Modified by Charles Manning by adding ydevconfig command.
4 * Use ydevconfig to configure a mountpoint before use.
6 * # Configure mountpt xxx using nand device 0 using blocks 100-500
7 * ydevconfig xxx 0 100 500
12 * yrdm xxx/boot-image 82000000
22 #define PRINTF(fmt,args...) printf (fmt ,##args)
24 #define PRINTF(fmt,args...) do { } while(0)
27 extern void cmd_yaffs_dev_ls(void);
28 extern void cmd_yaffs_tracemask(unsigned set, unsigned mask);
29 extern void cmd_yaffs_devconfig(char *mp, int flash_dev, int start_block, int end_block);
30 extern void cmd_yaffs_mount(char *mp);
31 extern void cmd_yaffs_umount(char *mp);
32 extern void cmd_yaffs_read_file(char *fn);
33 extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile);
34 extern void cmd_yaffs_ls(const char *mountpt, int longlist);
35 extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size);
36 extern void cmd_yaffs_mread_file(char *fn, char *addr);
37 extern void cmd_yaffs_mkdir(const char *dir);
38 extern void cmd_yaffs_rmdir(const char *dir);
39 extern void cmd_yaffs_rm(const char *path);
40 extern void cmd_yaffs_mv(const char *oldPath, const char *newPath);
42 extern int yaffs_dump_dev(const char *path);
45 /* ytrace - show/set yaffs trace mask */
46 int do_ytrace (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
49 cmd_yaffs_tracemask(1, simple_strtol(argv[1], NULL, 16));
51 cmd_yaffs_tracemask(0, 0);
56 /* ydevls - lists yaffs mount points. */
57 int do_ydevls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
64 /* ydevconfig mount_pt mtd_dev_num start_block end_block */
65 int do_ydevconfig (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
73 printf("Bad arguments: ydevconfig mount_pt mtd_dev start_block end_block\n");
78 mtd_dev = simple_strtol(argv[2], NULL, 16);
79 start_block = simple_strtol(argv[3], NULL, 16);
80 end_block = simple_strtol(argv[4], NULL, 16);
82 cmd_yaffs_devconfig(mtpoint, mtd_dev, start_block, end_block);
87 int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
92 printf("Bad arguments: ymount mount_pt\n");
97 printf("Mounting yaffs2 mount point %s\n",mtpoint);
99 cmd_yaffs_mount(mtpoint);
104 int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
109 printf("Bad arguments: yumount mount_pt\n");
114 printf("Unmounting yaffs2 mount point %s\n",mtpoint);
115 cmd_yaffs_umount(mtpoint);
120 int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
124 if(argc < 2 || argc > 3 ||
125 (argc == 3 && strcmp(argv[1],"-l"))) {
126 printf("Bad arguments: yls [-l] dir\n");
130 dirname = argv[argc-1];
132 cmd_yaffs_ls(dirname, (argc>2)?1:0);
137 int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
142 printf("Bad arguments: yrd file_name\n");
148 printf ("Reading file %s ", filename);
150 cmd_yaffs_read_file(filename);
156 int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
163 printf("Bad arguments: ywr file_name value n_values\n");
168 value = simple_strtoul(argv[2], NULL, 16);
169 numValues = simple_strtoul(argv[3], NULL, 16);
171 printf ("Writing value (%lx) %lx times to %s... ", value, numValues, filename);
173 cmd_yaffs_write_file(filename,value,numValues);
179 int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
185 printf("Bad arguments: yrdm file_name addr\n");
190 addr = simple_strtoul(argv[2], NULL, 16);
192 cmd_yaffs_mread_file(filename, (char *)addr);
197 int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
204 printf("Bad arguments: ywrm file_name addr size\n");
209 addr = simple_strtoul(argv[2], NULL, 16);
210 size = simple_strtoul(argv[3], NULL, 16);
212 cmd_yaffs_mwrite_file(filename, (char *)addr, size);
217 int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
222 printf("Bad arguments: ymkdir dir_name\n");
227 cmd_yaffs_mkdir(dirname);
232 int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
237 printf("Bad arguments: yrmdir dir_name\n");
242 cmd_yaffs_rmdir(dirname);
247 int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
252 printf("Bad arguments: yrm name\n");
263 int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
269 printf("Bad arguments: ymv old_path new_path\n");
276 cmd_yaffs_mv(newPath, oldPath);
282 ytrace, 2, 0, do_ytrace,
283 "show/set yaffs trace mask",
284 "ytrace [new_mask] show/set yaffs trace mask"
288 ydevls, 1, 0, do_ydevls,
289 "list yaffs mount points",
290 "list yaffs mount points"
294 ydevconfig, 5, 0, do_ydevconfig,
295 "configure yaffs mount point",
296 "ydevconfig mtpoint mtd_id start_block end_block configures a yaffs2 mount point"
300 ymount, 2, 0, do_ymount,
302 "ymount mtpoint mounts a yaffs2 mount point"
307 yumount, 2, 0, do_yumount,
309 "yunmount mtpoint unmounts a yaffs2 mount point"
320 "read file from yaffs",
321 "yrd path read file from yaffs"
326 "write file to yaffs",
327 "ywr filename value num_vlues write values to yaffs file"
332 "read file to memory from yaffs",
333 "yrdm filename offset reads yaffs file into memory"
338 "write file from memory to yaffs",
339 "ywrm filename offset size writes memory to yaffs file"
343 ymkdir, 2, 0, do_ymkdir,
345 "ymkdir dir create a yaffs directory"
349 yrmdir, 2, 0, do_yrmdir,
351 "yrmdir dirname removes a yaffs directory"
357 "yrm path removes a yaffs file"
363 "ymv old_path new_path moves/rename files within a yaffs mount point"