|
@@ -358,7 +358,8 @@ static void show_time(struct test_info *test, int stage)
|
|
|
int bps; /* Bits per second */
|
|
|
|
|
|
speed = (long long)test->bytes * 1000;
|
|
|
- do_div(speed, test->time_ms[stage] * 1024);
|
|
|
+ if (test->time_ms[stage])
|
|
|
+ do_div(speed, test->time_ms[stage] * 1024);
|
|
|
bps = speed * 8;
|
|
|
|
|
|
printf("%d %s: %d ticks, %d KiB/s %d.%03d Mbps\n", stage,
|
|
@@ -446,11 +447,13 @@ static int do_spi_flash_test(int argc, char * const argv[])
|
|
|
{
|
|
|
unsigned long offset;
|
|
|
unsigned long len;
|
|
|
- uint8_t *buf = (uint8_t *)CONFIG_SYS_TEXT_BASE;
|
|
|
+ uint8_t *buf, *from;
|
|
|
char *endp;
|
|
|
uint8_t *vbuf;
|
|
|
int ret;
|
|
|
|
|
|
+ if (argc < 3)
|
|
|
+ return -1;
|
|
|
offset = simple_strtoul(argv[1], &endp, 16);
|
|
|
if (*argv[1] == 0 || *endp != 0)
|
|
|
return -1;
|
|
@@ -460,17 +463,18 @@ static int do_spi_flash_test(int argc, char * const argv[])
|
|
|
|
|
|
vbuf = malloc(len);
|
|
|
if (!vbuf) {
|
|
|
- printf("Cannot allocate memory\n");
|
|
|
+ printf("Cannot allocate memory (%lu bytes)\n", len);
|
|
|
return 1;
|
|
|
}
|
|
|
buf = malloc(len);
|
|
|
if (!buf) {
|
|
|
free(vbuf);
|
|
|
- printf("Cannot allocate memory\n");
|
|
|
+ printf("Cannot allocate memory (%lu bytes)\n", len);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
- memcpy(buf, (char *)CONFIG_SYS_TEXT_BASE, len);
|
|
|
+ from = map_sysmem(CONFIG_SYS_TEXT_BASE, 0);
|
|
|
+ memcpy(buf, from, len);
|
|
|
ret = spi_flash_test(flash, buf, len, offset, vbuf);
|
|
|
free(vbuf);
|
|
|
free(buf);
|