cmd: sf: add test count
Change-Id: I06c0783998152ef5d32f95f6813d5dfe315b4cc2 Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
This commit is contained in:
parent
a3d7c00b32
commit
4715d15e17
19
cmd/sf.c
19
cmd/sf.c
|
|
@ -442,12 +442,15 @@ static int spi_flash_test(struct spi_flash *flash, uint8_t *buf, ulong len,
|
||||||
{
|
{
|
||||||
struct test_info test;
|
struct test_info test;
|
||||||
int i;
|
int i;
|
||||||
|
int erase_len;
|
||||||
|
|
||||||
printf("SPI flash test:\n");
|
printf("SPI flash test:\n");
|
||||||
memset(&test, '\0', sizeof(test));
|
memset(&test, '\0', sizeof(test));
|
||||||
test.base_ms = get_timer(0);
|
test.base_ms = get_timer(0);
|
||||||
test.bytes = len;
|
test.bytes = len;
|
||||||
if (spi_flash_erase(flash, offset, len)) {
|
|
||||||
|
erase_len = roundup(len, 4096);
|
||||||
|
if (spi_flash_erase(flash, offset, erase_len)) {
|
||||||
printf("Erase failed\n");
|
printf("Erase failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
@ -506,6 +509,8 @@ static int do_spi_flash_test(int argc, char * const argv[])
|
||||||
char *endp;
|
char *endp;
|
||||||
uint8_t *vbuf;
|
uint8_t *vbuf;
|
||||||
int ret;
|
int ret;
|
||||||
|
int count;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (argc < 3)
|
if (argc < 3)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -516,6 +521,10 @@ static int do_spi_flash_test(int argc, char * const argv[])
|
||||||
if (*argv[2] == 0 || *endp != 0)
|
if (*argv[2] == 0 || *endp != 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
count = simple_strtoul(argv[3], &endp, 10);
|
||||||
|
if (!count)
|
||||||
|
count = 1;
|
||||||
|
|
||||||
vbuf = memalign(ARCH_DMA_MINALIGN, len);
|
vbuf = memalign(ARCH_DMA_MINALIGN, len);
|
||||||
if (!vbuf) {
|
if (!vbuf) {
|
||||||
printf("Cannot allocate memory (%lu bytes)\n", len);
|
printf("Cannot allocate memory (%lu bytes)\n", len);
|
||||||
|
|
@ -530,7 +539,13 @@ static int do_spi_flash_test(int argc, char * const argv[])
|
||||||
|
|
||||||
from = map_sysmem(CONFIG_SYS_TEXT_BASE, 0);
|
from = map_sysmem(CONFIG_SYS_TEXT_BASE, 0);
|
||||||
memcpy(buf, from, len);
|
memcpy(buf, from, len);
|
||||||
ret = spi_flash_test(flash, buf, len, offset, vbuf);
|
for (i = 0; i < count; i++) {
|
||||||
|
ret = spi_flash_test(flash, buf, len, offset, vbuf);
|
||||||
|
if (ret < 0) {
|
||||||
|
printf("Test Failed, passed count:%d\n", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
free(vbuf);
|
free(vbuf);
|
||||||
free(buf);
|
free(buf);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue