sandbox: spi: Adjust 'sf test' to work on sandbox

Add map_sysmem() calls so that this test works correctly on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Hung-ying Tyan <tyanh@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
master
Simon Glass 11 years ago committed by Jagannadha Sutradharudu Teki
parent 66cb9eb1d6
commit d1f22d4bdf
  1. 14
      common/cmd_sf.c

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

Loading…
Cancel
Save