[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/bsp/lk/lib/ffs/cmd.c b/src/bsp/lk/lib/ffs/cmd.c
new file mode 100644
index 0000000..be73a34
--- /dev/null
+++ b/src/bsp/lk/lib/ffs/cmd.c
@@ -0,0 +1,114 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "ff.h"
+#include <ffs.h>
+
+#if defined(WITH_LIB_CONSOLE)
+#include <lib/console.h>
+
+static int ffs_cmd(int argc, const cmd_args *argv)
+{
+ FRESULT res;
+
+ if (argc < 2) {
+ printf("ffs commands:\n");
+usage:
+ // printf("%s mount <volume>\n", argv[0].str);
+ printf("%s mkfs <volume>\n", argv[0].str);
+ printf("%s mkdir <path>\n", argv[0].str);
+ printf("%s touch <path>\n", argv[0].str);
+
+ goto out;
+ }
+
+#if 0
+ if (!strcmp(argv[1].str, "mount")) {
+ if (argc < 3)
+ goto usage;
+
+ if (argv[2].u >= countof(ffs_work)) {
+ printf("Error: unsupported volume %u\n", argv[2].u);
+ goto out;
+ }
+
+ res = f_mount(argv[2].u, &ffs_work[argv[2].u]);
+ if (res != FR_OK)
+ printf("Error: %d\n", res);
+ } else
+#endif
+ if (!strcmp(argv[1].str, "mkfs")) {
+ if (argc < 3)
+ goto usage;
+
+ res = f_mkfs(argv[2].u, 1, 0);
+ if (res != FR_OK)
+ printf("Error: %d\n", res);
+ } else if (!strcmp(argv[1].str, "mkdir")) {
+ if (argc < 3)
+ goto usage;
+
+ res = f_mkdir(argv[2].str);
+ if (res != FR_OK)
+ printf("Error: %d\n", res);
+ } else if (!strcmp(argv[1].str, "touch")) {
+ FIL fil;
+
+ if (argc < 3)
+ goto usage;
+
+ res = f_open(&fil, argv[2].str, FA_OPEN_ALWAYS);
+ if (res != FR_OK)
+ printf("Error: %d\n", res);
+ else
+ f_close(&fil);
+ } else if (!strcmp(argv[1].str, "ls")) {
+ FILINFO fno;
+ DIR dir;
+ char lfn[_MAX_LFN + 1];
+ fno.lfname = lfn;
+ fno.lfsize = sizeof(lfn);
+ const char *path;
+ char *fn;
+ char wattr;
+
+ if (argc < 3)
+ path = "/";
+ else
+ path = argv[2].str;
+
+ res = f_opendir(&dir, path);
+ if (res != FR_OK) {
+ printf("Error: %d\n", res);
+ goto out;
+ }
+
+ while (1) {
+ res = f_readdir(&dir, &fno);
+ if (res != FR_OK || fno.fname[0] == 0)
+ break;
+
+ fn = *fno.lfname ? fno.lfname : fno.fname;
+ wattr = fno.fattrib & AM_RDO ? '-' : 'w';
+
+ if (fno.fattrib & AM_DIR)
+ printf("dr%cxr%cxr%cx %10lu %s\n", wattr, wattr, wattr, fno.fsize, fn);
+ else
+ printf(" r%c-r%c-r%c- %10lu %s\n", wattr, wattr, wattr, fno.fsize, fn);
+ }
+
+ if (res != FR_OK)
+ printf("Error: %d\n", res);
+ }
+
+out:
+ return 0;
+}
+
+STATIC_COMMAND_START
+STATIC_COMMAND("ffs", "ffs toolbox", &ffs_cmd)
+STATIC_COMMAND_END(ffscommands);
+
+
+#endif
+