mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-24 07:18:54 +00:00
v1.0.3
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include <string.h>
|
||||
#include <console.h>
|
||||
#include <aic_common.h>
|
||||
#include <aic_core.h>
|
||||
#include <aic_time.h>
|
||||
#include <aic_errno.h>
|
||||
#include <hexdump.h>
|
||||
@@ -82,10 +83,15 @@ static int do_mtd_dump(int argc, char *argv[])
|
||||
{
|
||||
int err;
|
||||
struct mtd_dev *mtd;
|
||||
u8 *data;
|
||||
u8 *data = NULL;
|
||||
char *name;
|
||||
unsigned long offset, size;
|
||||
|
||||
if (argc < 4) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
offset = strtol(argv[2], NULL, 0);
|
||||
size = strtol(argv[3], NULL, 0);
|
||||
@@ -93,9 +99,10 @@ static int do_mtd_dump(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
data = malloc(size);
|
||||
data = aicos_malloc_align(0, size, CACHE_LINE_SIZE);
|
||||
if (data == NULL) {
|
||||
printf("Out of memory.\n");
|
||||
return -1;
|
||||
@@ -106,7 +113,7 @@ static int do_mtd_dump(int argc, char *argv[])
|
||||
err = mtd_read(mtd, offset, data, size);
|
||||
if (!err)
|
||||
hexdump((void *)data, size, 1);
|
||||
free(data);
|
||||
aicos_free_align(0, data);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -119,6 +126,11 @@ static int do_mtd_read(int argc, char *argv[])
|
||||
unsigned long addr, offset, size;
|
||||
u64 start_us;
|
||||
|
||||
if (argc < 5) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
addr = strtol(argv[2], NULL, 0);
|
||||
offset = strtol(argv[3], NULL, 0);
|
||||
@@ -133,11 +145,12 @@ static int do_mtd_read(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
start_us = aic_get_time_us();
|
||||
err = mtd_read(mtd, offset, data, size);
|
||||
show_speed("sfud_read speed", size, aic_get_time_us() - start_us);
|
||||
show_speed("mtd_read speed", size, aic_get_time_us() - start_us);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -148,6 +161,11 @@ static int do_mtd_erase(int argc, char *argv[])
|
||||
char *name;
|
||||
unsigned long offset, size;
|
||||
|
||||
if (argc < 4) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
offset = strtol(argv[2], NULL, 0);
|
||||
size = strtol(argv[3], NULL, 0);
|
||||
@@ -155,6 +173,7 @@ static int do_mtd_erase(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
err = mtd_erase(mtd, offset, size);
|
||||
@@ -168,6 +187,12 @@ static int do_mtd_write(int argc, char *argv[])
|
||||
u8 *data;
|
||||
char *name;
|
||||
unsigned long addr, offset, size;
|
||||
u64 start_us;
|
||||
|
||||
if (argc < 4) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
addr = strtol(argv[2], NULL, 0);
|
||||
@@ -183,9 +208,14 @@ static int do_mtd_write(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
start_us = aic_get_time_us();
|
||||
err = mtd_write(mtd, offset, data, size);
|
||||
show_speed("mtd_write speed", size, aic_get_time_us() - start_us);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -198,12 +228,18 @@ static int do_mtd_oobdump(int argc, char *argv[])
|
||||
char *name;
|
||||
unsigned long offset, size;
|
||||
|
||||
if (argc < 3) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
offset = strtol(argv[2], NULL, 0);
|
||||
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -233,7 +269,12 @@ static int do_mtd_contread(int argc, char *argv[])
|
||||
u8 *data;
|
||||
char *name;
|
||||
unsigned long addr, offset, size;
|
||||
u32 start_us, cur_us;
|
||||
u32 start_us;
|
||||
|
||||
if (argc < 5) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
addr = strtol(argv[2], NULL, 0);
|
||||
@@ -249,13 +290,14 @@ static int do_mtd_contread(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
start_us = aic_get_time_us();
|
||||
err = mtd_contread(mtd, offset, data, size);
|
||||
cur_us = aic_get_time_us();
|
||||
printf("Read speed: %lld B/s, err %d\n",
|
||||
(1000000 * (unsigned long long)size) / (cur_us - start_us), err);
|
||||
show_speed("mtd_contread speed", size, aic_get_time_us() - start_us);
|
||||
if (!err)
|
||||
hexdump((void *)data, size, 1);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
@@ -268,6 +310,11 @@ static int do_mtd_oobread(int argc, char *argv[])
|
||||
char *name;
|
||||
unsigned long addr, offset;
|
||||
|
||||
if (argc < 4) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
addr = strtol(argv[2], NULL, 0);
|
||||
offset = strtol(argv[3], NULL, 0);
|
||||
@@ -281,6 +328,7 @@ static int do_mtd_oobread(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
err = mtd_read_oob(mtd, offset, data, mtd->writesize, data + mtd->writesize,
|
||||
@@ -296,6 +344,11 @@ static int do_mtd_oobwrite(int argc, char *argv[])
|
||||
char *name;
|
||||
unsigned long addr, offset;
|
||||
|
||||
if (argc < 4) {
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
|
||||
name = argv[1];
|
||||
addr = strtol(argv[2], NULL, 0);
|
||||
offset = strtol(argv[3], NULL, 0);
|
||||
@@ -309,6 +362,7 @@ static int do_mtd_oobwrite(int argc, char *argv[])
|
||||
mtd = mtd_get_device(name);
|
||||
if (!mtd) {
|
||||
printf("Failed to get mtd %s\n", name);
|
||||
mtd_help();
|
||||
return -1;
|
||||
}
|
||||
err = mtd_write_oob(mtd, offset, data, mtd->writesize,
|
||||
|
||||
Reference in New Issue
Block a user