upstream u-boot with additional patches for our devices/boards:
https://lists.denx.de/pipermail/u-boot/2017-March/282789.html (AXP crashes) ;
Gbit ethernet patch for some LIME2 revisions ;
with SPI flash support
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
4.2 KiB
213 lines
4.2 KiB
#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 * const argv[])
|
|
{
|
|
char *mtpoint = argv[1];
|
|
cmd_yaffs_mount(mtpoint);
|
|
|
|
return(0);
|
|
}
|
|
|
|
int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
char *mtpoint = argv[1];
|
|
cmd_yaffs_umount(mtpoint);
|
|
|
|
return(0);
|
|
}
|
|
|
|
int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char * const 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 * const 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 * const argv[])
|
|
{
|
|
char *filename = argv[1];
|
|
ulong value = simple_strtoul(argv[2], NULL, 16);
|
|
ulong numValues = simple_strtoul(argv[3], NULL, 16);
|
|
|
|
printf ("Writing value (%lx) %lx 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 * const 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 * const 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 * const argv[])
|
|
{
|
|
char *dirname = argv[1];
|
|
|
|
cmd_yaffs_mkdir(dirname);
|
|
|
|
return(0);
|
|
}
|
|
|
|
int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
char *dirname = argv[1];
|
|
|
|
cmd_yaffs_rmdir(dirname);
|
|
|
|
return(0);
|
|
}
|
|
|
|
int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
char *path = argv[1];
|
|
|
|
cmd_yaffs_rm(path);
|
|
|
|
return(0);
|
|
}
|
|
|
|
int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char * const 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 * const 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,
|
|
"mount yaffs",
|
|
""
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yumount, 3, 0, do_yumount,
|
|
"unmount yaffs",
|
|
""
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yls, 4, 0, do_yls,
|
|
"yaffs ls",
|
|
"[-l] name"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yrd, 2, 0, do_yrd,
|
|
"read file from yaffs",
|
|
"filename"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
ywr, 4, 0, do_ywr,
|
|
"write file to yaffs",
|
|
"filename value num_vlues"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yrdm, 3, 0, do_yrdm,
|
|
"read file to memory from yaffs",
|
|
"filename offset"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
ywrm, 4, 0, do_ywrm,
|
|
"write file from memory to yaffs",
|
|
"filename offset size"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
ymkdir, 2, 0, do_ymkdir,
|
|
"YAFFS mkdir",
|
|
"dirname"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yrmdir, 2, 0, do_yrmdir,
|
|
"YAFFS rmdir",
|
|
"dirname"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
yrm, 2, 0, do_yrm,
|
|
"YAFFS rm",
|
|
"path"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
ymv, 4, 0, do_ymv,
|
|
"YAFFS mv",
|
|
"oldPath newPath"
|
|
);
|
|
|
|
U_BOOT_CMD(
|
|
ydump, 2, 0, do_ydump,
|
|
"YAFFS device struct",
|
|
"dirname"
|
|
);
|
|
|