diff options
author | Joe Hershberger <joe.hershberger@ni.com> | 2015-03-22 17:09:08 -0500 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-04-18 11:11:11 -0600 |
commit | 55d5fd9a84ced5c5feb5eda0db1523fa3c2fc742 (patch) | |
tree | 3111a6255f6b933140d445125e5d3b46107982fe /net | |
parent | 5c421331d5a8eac754c4509a4c710ef334b823c5 (diff) |
net: Access mapped physmem in net functions
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@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/nfs.c | 6 | ||||
-rw-r--r-- | net/tftp.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/net/nfs.c b/net/nfs.c index 381b75f1c5b..8e05ae57cd8 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 0a2c53302ca..51c67be9522 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) |