[U-Boot] [PATCH 05/32] sandbox: spi: Adjust 'sf test' to work on sandbox

Jagan Teki jagannadh.teki at gmail.com
Fri Dec 20 19:43:55 CET 2013


On Sun, Nov 10, 2013 at 10:56 PM, Simon Glass <sjg at chromium.org> wrote:
> Add map_sysmem() calls so that this test works correctly on sandbox.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> Reviewed-by: Hung-ying Tyan <tyanh at chromium.org>
> ---
>  common/cmd_sf.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/common/cmd_sf.c b/common/cmd_sf.c
> index 3994b06..b4ceb71 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);
> --
> 1.8.4.1
>

Applied to u-boot-spi/master

-- 
Thanks,
Jagan.


More information about the U-Boot mailing list