BCM6358 has its internal registers mapped to 0xfffe0000, which is changed to 0x1ffe0000 when ioremap is called.
Signed-off-by: Álvaro Fernández Rojas <nolt...@gmail.com> --- arch/mips/include/asm/mach-generic/ioremap.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/mips/include/asm/mach-generic/ioremap.h b/arch/mips/include/asm/mach-generic/ioremap.h index 6b191d5..b6a920d 100644 --- a/arch/mips/include/asm/mach-generic/ioremap.h +++ b/arch/mips/include/asm/mach-generic/ioremap.h @@ -16,15 +16,28 @@ static inline phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, return phys_addr; } +static inline int is_mips_internal_registers(phys_addr_t offset) +{ +#ifdef CONFIG_SOC_BMIPS_BCM6358 + if (offset >= 0xfffe0000) + return 1; +#endif + + return 0; +} + static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size, unsigned long flags) { + if (is_mips_internal_registers(offset)) + return (void __iomem *)offset; + return NULL; } static inline int plat_iounmap(const volatile void __iomem *addr) { - return 0; + return is_mips_internal_registers((unsigned long)addr); } #define _page_cachable_default _CACHE_CACHABLE_NONCOHERENT -- 2.1.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot