[U-Boot] [PATCH] arc: add stubs for map_physmem() and unmap_physmem()

Simon Glass sjg at chromium.org
Fri Nov 13 19:14:11 CET 2015


Hi Alexey,

On 12 November 2015 at 14:56, Alexey Brodkin
<Alexey.Brodkin at 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 at 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 at wwwdotorg.org>
>     Reviewed-by: Simon Glass <sjg at 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 at synopsys.com>
> Cc: Stephen Warren <swarren at wwwdotorg.org>
> Cc: Simon Glass <sjg at 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?

Is CONFIG_ARCH_MAP_SYSMEM defined for arc?

Regards,
Simon


More information about the U-Boot mailing list