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_devconfig(char *mp, int flash_dev, int start_block, int end_block);
28 extern void cmd_yaffs_mount(char *mp);
29 extern void cmd_yaffs_umount(char *mp);
30 extern void cmd_yaffs_read_file(char *fn);
31 extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile);
32 extern void cmd_yaffs_ls(const char *mountpt, int longlist);
33 extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size);
34 extern void cmd_yaffs_mread_file(char *fn, char *addr);
35 extern void cmd_yaffs_mkdir(const char *dir);
36 extern void cmd_yaffs_rmdir(const char *dir);
37 extern void cmd_yaffs_rm(const char *path);
38 extern void cmd_yaffs_mv(const char *oldPath, const char *newPath);
40 extern int yaffs_dump_dev(const char *path);
43 /* ydevconfig mount_pt mtd_dev_num start_block end_block */
44 int do_ydevconfig (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
52 printf("Bad arguments: ydevconfig mount_pt mtd_dev start_block end_block\n");
57 mtd_dev = simple_strtol(argv[2], NULL, 16);
58 start_block = simple_strtol(argv[3], NULL, 16);
59 end_block = simple_strtol(argv[4], NULL, 16);
61 printf("Configure yaffs2 mount point %s on nand device %d from block %x to block %x\n",
62 mtpoint, mtd_dev, start_block, end_block);
64 cmd_yaffs_devconfig(mtpoint, mtd_dev, start_block, end_block);
69 int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
74 printf("Bad arguments: ymount mount_pt\n");
79 printf("Mounting yaffs2 mount point %s\n",mtpoint);
81 cmd_yaffs_mount(mtpoint);
86 int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
91 printf("Bad arguments: yumount mount_pt\n");
96 printf("Unmounting yaffs2 mount point %s\n",mtpoint);
97 cmd_yaffs_umount(mtpoint);
102 int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
106 if(argc < 2 || argc > 3 ||
107 (argc == 3 && strcmp(argv[1],"-l"))) {
108 printf("Bad arguments: yls [-l] dir\n");
112 dirname = argv[argc-1];
114 cmd_yaffs_ls(dirname, (argc>2)?1:0);
119 int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
124 printf("Bad arguments: yrd file_name\n");
130 printf ("Reading file %s ", filename);
132 cmd_yaffs_read_file(filename);
138 int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
145 printf("Bad arguments: ywr file_name value n_values\n");
150 value = simple_strtoul(argv[2], NULL, 16);
151 numValues = simple_strtoul(argv[3], NULL, 16);
153 printf ("Writing value (%lx) %lx times to %s... ", value, numValues, filename);
155 cmd_yaffs_write_file(filename,value,numValues);
161 int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
167 printf("Bad arguments: yrdm file_name addr\n");
172 addr = simple_strtoul(argv[2], NULL, 16);
174 cmd_yaffs_mread_file(filename, (char *)addr);
179 int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
186 printf("Bad arguments: ywrm file_name addr size\n");
191 addr = simple_strtoul(argv[2], NULL, 16);
192 size = simple_strtoul(argv[3], NULL, 16);
194 cmd_yaffs_mwrite_file(filename, (char *)addr, size);
199 int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
204 printf("Bad arguments: ymkdir dir_name\n");
209 cmd_yaffs_mkdir(dirname);
214 int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
219 printf("Bad arguments: yrmdir dir_name\n");
224 cmd_yaffs_rmdir(dirname);
229 int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
234 printf("Bad arguments: yrm name\n");
245 int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
251 printf("Bad arguments: ymv old_path new_path\n");
258 cmd_yaffs_mv(newPath, oldPath);
264 ydevconfig, 5, 0, do_ydevconfig,
265 "configure yaffs mount point",
266 "ydevconfig mtpoint mtd_id start_block end_block configures a yaffs2 mount point"
270 ymount, 2, 0, do_ymount,
272 "ymount mtpoint mounts a yaffs2 mount point"
277 yumount, 2, 0, do_yumount,
279 "yunmount mtpoint unmounts a yaffs2 mount point"
290 "read file from yaffs",
291 "yrd path read file from yaffs"
296 "write file to yaffs",
297 "ywr filename value num_vlues write values to yaffs file"
302 "read file to memory from yaffs",
303 "yrdm filename offset reads yaffs file into memory"
308 "write file from memory to yaffs",
309 "ywrm filename offset size writes memory to yaffs file"
313 ymkdir, 2, 0, do_ymkdir,
315 "ymkdir dir create a yaffs directory"
319 yrmdir, 2, 0, do_yrmdir,
321 "yrmdir dirname removes a yaffs directory"
327 "yrm path removes a yaffs file"
333 "ymv old_path new_path moves/rename files within a yaffs mount point"