
On 13 November 2015 at 11:23, Alexey Brodkin Alexey.Brodkin@synopsys.com wrote:
Hi Simon,
On Fri, 2015-11-13 at 11:14 -0700, Simon Glass wrote:
Hi Alexey,
On 12 November 2015 at 14:56, Alexey Brodkin Alexey.Brodkin@synopsys.com wrote:
Up until now there was no need in those stubs.
But since following commit compilation of U-Boot on ARC is broken: ------------------------>8---------------------- commit 7861204c9af7fec1ea9b41541c272516235a6c93 Author: Stephen Warren swarren@wwwdotorg.org Date: Sat Oct 3 13:56:46 2015 -0600
itest: make memory access work under sandbox itest accesses memory, and hence must map/unmap it. Without doing so, it accesses invalid addresses and crashes. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Reviewed-by: Simon Glass <sjg@chromium.org>
------------------------>8----------------------
That's because CMD_ITEST is enabled by default in common/Kconfig and now map_physmem()/unmap_physmem() is used there.
So this patch adds missing stubs for ARC.
Signed-off-by: Alexey Brodkin abrodkin@synopsys.com Cc: Stephen Warren swarren@wwwdotorg.org Cc: Simon Glass sjg@chromium.org
arch/arc/include/asm/io.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h index 24b7337..281682c 100644 --- a/arch/arc/include/asm/io.h +++ b/arch/arc/include/asm/io.h @@ -10,6 +10,30 @@ #include <linux/types.h> #include <asm/byteorder.h>
+/*
- Given a physical address and a length, return a virtual address
- that can be used to access the memory range with the caching
- properties specified by "flags".
- */
+#define MAP_NOCACHE (0) +#define MAP_WRCOMBINE (0) +#define MAP_WRBACK (0) +#define MAP_WRTHROUGH (0)
+static inline void * +map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) +{
return (void *)((unsigned long)paddr);
+}
+/*
- Take down a mapping set up by map_physmem().
- */
+static inline void unmap_physmem(void *vaddr, unsigned long flags) +{
+}
static inline void sync(void) { /* Not yet implemented */ -- 2.4.3
What error does this solve?
---------------------->8------------------- CC common/cmd_itest.o common/cmd_itest.c: In function 'evalexp': common/cmd_itest.c:61:3: warning: implicit declaration of function 'map_physmem' [-Wimplicit-function-declaration] buf = map_physmem(addr, w, MAP_WRBACK); ^ com mon/cmd_itest.c:61:30: error: 'MAP_WRBACK' undeclared (first use in this function) buf = map_physmem(addr, w, MAP_WRBACK); ^ common/cmd_itest.c:61:30: note: each undeclared identifier is reported only once for each function it appears in common/cmd_itest.c:71:3: warning: implicit declaration of function 'unmap_physmem' [ -Wimplicit-function-declaration] unmap_physmem(buf, w); ^ scripts/Makefile.build:277: recipe for target 'common/cmd_itest.o' failed make[1]: *** [common/cmd_itest.o] Error 1 Makefile:1211: recipe for target 'common' failed make : *** [common] Error 2 ---------------------->8-------------------
Is CONFIG_ARCH_MAP_SYSMEM defined for arc?
No ---------------------->8------------------- $ cat .config | grep CONFIG_ARCH_MAP_SYSMEM---------------------->8-------------------
-Alexey
Reviewed-by: Simon Glass sjg@chromium.org