1#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 27int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 28{ 29 char *mtpoint = argv[1]; 30 cmd_yaffs_mount(mtpoint); 31 32 return(0); 33} 34 35int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 36{ 37 char *mtpoint = argv[1]; 38 cmd_yaffs_umount(mtpoint); 39 40 return(0); 41} 42 43int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 44{ 45 char *dirname = argv[argc-1]; 46 47 cmd_yaffs_ls(dirname, (argc>2)?1:0); 48 49 return(0); 50} 51 52int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 53{ 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 63int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 64{ 65 char *filename = argv[1]; 66 ulong value = simple_strtoul(argv[2], NULL, 16); 67 ulong numValues = simple_strtoul(argv[3], NULL, 16); 68 69 printf ("Writing value (%x) %x times to %s... ", value, numValues, filename); 70 71 cmd_yaffs_write_file(filename,value,numValues); 72 73 printf ("done\n"); 74 return(0); 75} 76 77int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 78{ 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 87int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 88{ 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 98int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 99{ 100 char *dirname = argv[1]; 101 102 cmd_yaffs_mkdir(dirname); 103 104 return(0); 105} 106 107int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 108{ 109 char *dirname = argv[1]; 110 111 cmd_yaffs_rmdir(dirname); 112 113 return(0); 114} 115 116int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 117{ 118 char *path = argv[1]; 119 120 cmd_yaffs_rm(path); 121 122 return(0); 123} 124 125int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 126{ 127 char *oldPath = argv[1]; 128 char *newPath = argv[2]; 129 130 cmd_yaffs_mv(newPath, oldPath); 131 132 return(0); 133} 134 135int do_ydump (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) 136{ 137 char *dirname = argv[1]; 138 if (yaffs_DumpDevStruct(dirname) != 0) 139 printf("yaffs_DumpDevStruct returning error when dumping path: , %s\n", dirname); 140 return 0; 141} 142 143U_BOOT_CMD( 144 ymount, 3, 0, do_ymount, 145 "mount yaffs", 146 "" 147); 148 149U_BOOT_CMD( 150 yumount, 3, 0, do_yumount, 151 "unmount yaffs", 152 "" 153); 154 155U_BOOT_CMD( 156 yls, 4, 0, do_yls, 157 "yaffs ls", 158 "[-l] name" 159); 160 161U_BOOT_CMD( 162 yrd, 2, 0, do_yrd, 163 "read file from yaffs", 164 "filename" 165); 166 167U_BOOT_CMD( 168 ywr, 4, 0, do_ywr, 169 "write file to yaffs", 170 "filename value num_vlues" 171); 172 173U_BOOT_CMD( 174 yrdm, 3, 0, do_yrdm, 175 "read file to memory from yaffs", 176 "filename offset" 177); 178 179U_BOOT_CMD( 180 ywrm, 4, 0, do_ywrm, 181 "write file from memory to yaffs", 182 "filename offset size" 183); 184 185U_BOOT_CMD( 186 ymkdir, 2, 0, do_ymkdir, 187 "YAFFS mkdir", 188 "dirname" 189); 190 191U_BOOT_CMD( 192 yrmdir, 2, 0, do_yrmdir, 193 "YAFFS rmdir", 194 "dirname" 195); 196 197U_BOOT_CMD( 198 yrm, 2, 0, do_yrm, 199 "YAFFS rm", 200 "path" 201); 202 203U_BOOT_CMD( 204 ymv, 4, 0, do_ymv, 205 "YAFFS mv", 206 "oldPath newPath" 207); 208 209U_BOOT_CMD( 210 ydump, 2, 0, do_ydump, 211 "YAFFS device struct", 212 "dirname" 213); 214