blob: 0e22d90e7a0b392d46f556e2c90aff639c730c6d [file] [log] [blame]
William Juule24ebad2007-11-15 12:23:57 +01001#include <common.h>
2
3#include <config.h>
4#include <command.h>
5
6#ifdef YAFFS2_DEBUG
7#define PRINTF(fmt,args...) printf (fmt ,##args)
8#else
9#define PRINTF(fmt,args...)
10#endif
11
12extern void cmd_yaffs_mount(char *mp);
13extern void cmd_yaffs_umount(char *mp);
14extern void cmd_yaffs_read_file(char *fn);
15extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile);
16extern void cmd_yaffs_ls(const char *mountpt, int longlist);
17extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size);
18extern void cmd_yaffs_mread_file(char *fn, char *addr);
19extern void cmd_yaffs_mkdir(const char *dir);
20extern void cmd_yaffs_rmdir(const char *dir);
21extern void cmd_yaffs_rm(const char *path);
22extern void cmd_yaffs_mv(const char *oldPath, const char *newPath);
23
24extern int yaffs_DumpDevStruct(const char *path);
25
26
Wolfgang Denk6262d0212010-06-28 22:00:46 +020027int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010028{
29 char *mtpoint = argv[1];
30 cmd_yaffs_mount(mtpoint);
Wolfgang Denk74e0dde2008-08-14 14:41:06 +020031
William Juule24ebad2007-11-15 12:23:57 +010032 return(0);
33}
34
Wolfgang Denk6262d0212010-06-28 22:00:46 +020035int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010036{
37 char *mtpoint = argv[1];
38 cmd_yaffs_umount(mtpoint);
Wolfgang Denk74e0dde2008-08-14 14:41:06 +020039
William Juule24ebad2007-11-15 12:23:57 +010040 return(0);
41}
42
Wolfgang Denk6262d0212010-06-28 22:00:46 +020043int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010044{
45 char *dirname = argv[argc-1];
Wolfgang Denk74e0dde2008-08-14 14:41:06 +020046
William Juule24ebad2007-11-15 12:23:57 +010047 cmd_yaffs_ls(dirname, (argc>2)?1:0);
48
49 return(0);
50}
51
Wolfgang Denk6262d0212010-06-28 22:00:46 +020052int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010053{
54 char *filename = argv[1];
55 printf ("Reading file %s ", filename);
56
57 cmd_yaffs_read_file(filename);
58
59 printf ("done\n");
60 return(0);
61}
62
Wolfgang Denk6262d0212010-06-28 22:00:46 +020063int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010064{
65 char *filename = argv[1];
66 ulong value = simple_strtoul(argv[2], NULL, 16);
67 ulong numValues = simple_strtoul(argv[3], NULL, 16);
68
Wolfgang Denkd199bd42011-09-08 02:10:17 +000069 printf ("Writing value (%lx) %lx times to %s... ", value, numValues, filename);
William Juule24ebad2007-11-15 12:23:57 +010070
71 cmd_yaffs_write_file(filename,value,numValues);
72
73 printf ("done\n");
74 return(0);
75}
76
Wolfgang Denk6262d0212010-06-28 22:00:46 +020077int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010078{
79 char *filename = argv[1];
80 ulong addr = simple_strtoul(argv[2], NULL, 16);
81
82 cmd_yaffs_mread_file(filename, (char *)addr);
83
84 return(0);
85}
86
Wolfgang Denk6262d0212010-06-28 22:00:46 +020087int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010088{
89 char *filename = argv[1];
90 ulong addr = simple_strtoul(argv[2], NULL, 16);
91 ulong size = simple_strtoul(argv[3], NULL, 16);
92
93 cmd_yaffs_mwrite_file(filename, (char *)addr, size);
94
95 return(0);
96}
97
Wolfgang Denk6262d0212010-06-28 22:00:46 +020098int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +010099{
100 char *dirname = argv[1];
101
102 cmd_yaffs_mkdir(dirname);
103
104 return(0);
105}
106
Wolfgang Denk6262d0212010-06-28 22:00:46 +0200107int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +0100108{
109 char *dirname = argv[1];
110
111 cmd_yaffs_rmdir(dirname);
112
113 return(0);
114}
115
Wolfgang Denk6262d0212010-06-28 22:00:46 +0200116int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +0100117{
118 char *path = argv[1];
119
120 cmd_yaffs_rm(path);
121
122 return(0);
123}
124
Wolfgang Denk6262d0212010-06-28 22:00:46 +0200125int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +0100126{
127 char *oldPath = argv[1];
128 char *newPath = argv[2];
129
130 cmd_yaffs_mv(newPath, oldPath);
131
132 return(0);
133}
134
Wolfgang Denk6262d0212010-06-28 22:00:46 +0200135int do_ydump (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
William Juule24ebad2007-11-15 12:23:57 +0100136{
137 char *dirname = argv[1];
138 if (yaffs_DumpDevStruct(dirname) != 0)
Wolfgang Denk74e0dde2008-08-14 14:41:06 +0200139 printf("yaffs_DumpDevStruct returning error when dumping path: , %s\n", dirname);
William Juule24ebad2007-11-15 12:23:57 +0100140 return 0;
141}
142
William Juule24ebad2007-11-15 12:23:57 +0100143U_BOOT_CMD(
144 ymount, 3, 0, do_ymount,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600145 "mount yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200146 ""
William Juule24ebad2007-11-15 12:23:57 +0100147);
148
149U_BOOT_CMD(
150 yumount, 3, 0, do_yumount,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600151 "unmount yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200152 ""
William Juule24ebad2007-11-15 12:23:57 +0100153);
154
155U_BOOT_CMD(
156 yls, 4, 0, do_yls,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600157 "yaffs ls",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200158 "[-l] name"
William Juule24ebad2007-11-15 12:23:57 +0100159);
160
161U_BOOT_CMD(
162 yrd, 2, 0, do_yrd,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600163 "read file from yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200164 "filename"
William Juule24ebad2007-11-15 12:23:57 +0100165);
166
167U_BOOT_CMD(
168 ywr, 4, 0, do_ywr,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600169 "write file to yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200170 "filename value num_vlues"
William Juule24ebad2007-11-15 12:23:57 +0100171);
172
173U_BOOT_CMD(
174 yrdm, 3, 0, do_yrdm,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600175 "read file to memory from yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200176 "filename offset"
William Juule24ebad2007-11-15 12:23:57 +0100177);
178
179U_BOOT_CMD(
180 ywrm, 4, 0, do_ywrm,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600181 "write file from memory to yaffs",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200182 "filename offset size"
William Juule24ebad2007-11-15 12:23:57 +0100183);
184
185U_BOOT_CMD(
186 ymkdir, 2, 0, do_ymkdir,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600187 "YAFFS mkdir",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200188 "dirname"
William Juule24ebad2007-11-15 12:23:57 +0100189);
190
191U_BOOT_CMD(
192 yrmdir, 2, 0, do_yrmdir,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600193 "YAFFS rmdir",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200194 "dirname"
William Juule24ebad2007-11-15 12:23:57 +0100195);
196
197U_BOOT_CMD(
198 yrm, 2, 0, do_yrm,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600199 "YAFFS rm",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200200 "path"
William Juule24ebad2007-11-15 12:23:57 +0100201);
202
203U_BOOT_CMD(
204 ymv, 4, 0, do_ymv,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600205 "YAFFS mv",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200206 "oldPath newPath"
William Juule24ebad2007-11-15 12:23:57 +0100207);
208
209U_BOOT_CMD(
210 ydump, 2, 0, do_ydump,
Peter Tyserdfb72b82009-01-27 18:03:12 -0600211 "YAFFS device struct",
Wolfgang Denkc54781c2009-05-24 17:06:54 +0200212 "dirname"
William Juule24ebad2007-11-15 12:23:57 +0100213);