[U-Boot] [PATCH v5 11/27] net: Access mapped physmem in net functions

Simon Glass sjg at chromium.org
Wed Mar 4 19:34:59 CET 2015


On 3 March 2015 at 19:41, Joe Hershberger <joe.hershberger at ni.com> wrote:
> Previously the net functions would access memory assuming physmem did
> not need to be mapped.  In sandbox, that's not the case.
>
> Now we map the physmem specified by the user in loadaddr to the buffer
> that represents that space.
>
> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
>
> ---
>
> Changes in v5:
> -Include new mapmem.h header
> -Unmap memory for consistency

Reviewed-by: Simon Glass <sjg at chromium.org>

>
> Changes in v4:
> -New to v4
>
> Changes in v3: None
> Changes in v2: None
>
>  net/nfs.c  | 6 +++++-
>  net/tftp.c | 6 +++++-
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/net/nfs.c b/net/nfs.c
> index 381b75f..8e05ae5 100644
> --- a/net/nfs.c
> +++ b/net/nfs.c
> @@ -26,6 +26,7 @@
>  #include <command.h>
>  #include <net.h>
>  #include <malloc.h>
> +#include <mapmem.h>
>  #include "nfs.h"
>  #include "bootp.h"
>
> @@ -93,7 +94,10 @@ store_block(uchar *src, unsigned offset, unsigned len)
>         } else
>  #endif /* CONFIG_SYS_DIRECT_FLASH_NFS */
>         {
> -               (void)memcpy((void *)(load_addr + offset), src, len);
> +               void *ptr = map_sysmem(load_addr + offset, len);
> +
> +               memcpy(ptr, src, len);
> +               unmap_sysmem(ptr);
>         }
>
>         if (NetBootFileXferSize < (offset+len))
> diff --git a/net/tftp.c b/net/tftp.c
> index 0a2c533..51c67be 100644
> --- a/net/tftp.c
> +++ b/net/tftp.c
> @@ -8,6 +8,7 @@
>
>  #include <common.h>
>  #include <command.h>
> +#include <mapmem.h>
>  #include <net.h>
>  #include "tftp.h"
>  #include "bootp.h"
> @@ -184,7 +185,10 @@ store_block(int block, uchar *src, unsigned len)
>         } else
>  #endif /* CONFIG_SYS_DIRECT_FLASH_TFTP */
>         {
> -               (void)memcpy((void *)(load_addr + offset), src, len);
> +               void *ptr = map_sysmem(load_addr + offset, len);
> +
> +               memcpy(ptr, src, len);
> +               unmap_sysmem(ptr);
>         }
>  #ifdef CONFIG_MCAST_TFTP
>         if (Multicast)
> --
> 1.7.11.5
>


More information about the U-Boot mailing list