From: Simon Glass Date: Sun, 10 Nov 2013 17:26:51 +0000 (-0700) Subject: sandbox: spi: Adjust 'sf test' to work on sandbox X-Git-Tag: v2014.01-rc3~2^2~19 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d1f22d4bdf2b20a83277f10f858582d18b01df03;p=oweals%2Fu-boot.git 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 Reviewed-by: Hung-ying Tyan Reviewed-by: Jagannadha Sutradharudu Teki --- diff --git a/common/cmd_sf.c b/common/cmd_sf.c index 3994b0651c..b4ceb71466 100644 --- a/common/cmd_sf.c +++ b/common/cmd_sf.c @@ -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);