From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Thu, 13 Apr 2017 17:44:39 +0200 Subject: [U-Boot] [PATCH 7/8] mips: bmips: fix ioremap for BCM6358 In-Reply-To: <1492098280-3259-1-git-send-email-noltari@gmail.com> References: <1492098280-3259-1-git-send-email-noltari@gmail.com> Message-ID: <1492098280-3259-8-git-send-email-noltari@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de BCM6358 has its internal registers mapped to 0xfffe0000, which is changed to 0x1ffe0000 when ioremap is called. Signed-off-by: Álvaro Fernández Rojas --- 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