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>
This commit is contained in:
Joe Hershberger 2015-03-22 17:09:08 -05:00 committed by Simon Glass
parent 5c421331d5
commit 55d5fd9a84
2 changed files with 10 additions and 2 deletions

View File

@ -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))

View File

@ -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)