#include <common.h> #include <config.h> #include <command.h> #ifdef YAFFS2_DEBUG #define PRINTF(fmt,args...) printf (fmt ,##args) #else #define PRINTF(fmt,args...) #endif extern void cmd_yaffs_mount(char *mp); extern void cmd_yaffs_umount(char *mp); extern void cmd_yaffs_read_file(char *fn); extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile); extern void cmd_yaffs_ls(const char *mountpt, int longlist); extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size); extern void cmd_yaffs_mread_file(char *fn, char *addr); extern void cmd_yaffs_mkdir(const char *dir); extern void cmd_yaffs_rmdir(const char *dir); extern void cmd_yaffs_rm(const char *path); extern void cmd_yaffs_mv(const char *oldPath, const char *newPath); extern int yaffs_DumpDevStruct(const char *path); int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *mtpoint = argv[1]; cmd_yaffs_mount(mtpoint); return(0); } int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *mtpoint = argv[1]; cmd_yaffs_umount(mtpoint); return(0); } int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *dirname = argv[argc-1]; cmd_yaffs_ls(dirname, (argc>2)?1:0); return(0); } int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *filename = argv[1]; printf ("Reading file %s ", filename); cmd_yaffs_read_file(filename); printf ("done\n"); return(0); } int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *filename = argv[1]; ulong value = simple_strtoul(argv[2], NULL, 16); ulong numValues = simple_strtoul(argv[3], NULL, 16); printf ("Writing value (%x) %x times to %s... ", value, numValues, filename); cmd_yaffs_write_file(filename,value,numValues); printf ("done\n"); return(0); } int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *filename = argv[1]; ulong addr = simple_strtoul(argv[2], NULL, 16); cmd_yaffs_mread_file(filename, (char *)addr); return(0); } int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *filename = argv[1]; ulong addr = simple_strtoul(argv[2], NULL, 16); ulong size = simple_strtoul(argv[3], NULL, 16); cmd_yaffs_mwrite_file(filename, (char *)addr, size); return(0); } int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *dirname = argv[1]; cmd_yaffs_mkdir(dirname); return(0); } int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *dirname = argv[1]; cmd_yaffs_rmdir(dirname); return(0); } int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *path = argv[1]; cmd_yaffs_rm(path); return(0); } int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *oldPath = argv[1]; char *newPath = argv[2]; cmd_yaffs_mv(newPath, oldPath); return(0); } int do_ydump (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { char *dirname = argv[1]; if (yaffs_DumpDevStruct(dirname) != 0) printf("yaffs_DumpDevStruct returning error when dumping path: , %s\n", dirname); return 0; } U_BOOT_CMD( ymount, 3, 0, do_ymount, "ymount\t- mount yaffs\n", "\n" ); U_BOOT_CMD( yumount, 3, 0, do_yumount, "yumount\t- unmount yaffs\n", "\n" ); U_BOOT_CMD( yls, 4, 0, do_yls, "yls\t- yaffs ls\n", "[-l] name\n" ); U_BOOT_CMD( yrd, 2, 0, do_yrd, "yrd\t- read file from yaffs\n", "filename\n" ); U_BOOT_CMD( ywr, 4, 0, do_ywr, "ywr\t- write file to yaffs\n", "filename value num_vlues\n" ); U_BOOT_CMD( yrdm, 3, 0, do_yrdm, "yrdm\t- read file to memory from yaffs\n", "filename offset\n" ); U_BOOT_CMD( ywrm, 4, 0, do_ywrm, "ywrm\t- write file from memory to yaffs\n", "filename offset size\n" ); U_BOOT_CMD( ymkdir, 2, 0, do_ymkdir, "ymkdir\t- YAFFS mkdir\n", "dirname\n" ); U_BOOT_CMD( yrmdir, 2, 0, do_yrmdir, "yrmdir\t- YAFFS rmdir\n", "dirname\n" ); U_BOOT_CMD( yrm, 2, 0, do_yrm, "yrm\t- YAFFS rm\n", "path\n" ); U_BOOT_CMD( ymv, 4, 0, do_ymv, "ymv\t- YAFFS mv\n", "oldPath newPath\n" ); U_BOOT_CMD( ydump, 2, 0, do_ydump, "ydump\t- YAFFS device struct\n", "dirname\n" );