Patchwork ARM: imx: armadillo5x0: Fix illegal register access

login
register
mail settings
Submitter Fabio Estevam
Date Sept. 15, 2012, 7:15 p.m.
Message ID <1347736516-10697-1-git-send-email-festevam@gmail.com>
Download mbox | patch
Permalink /patch/184096/
State New
Headers show

Comments

Fabio Estevam - Sept. 15, 2012, 7:15 p.m.
From: Fabio Estevam <fabio.estevam@freescale.com>

commit 0c8bad6a(Armadillo 500 add NAND flash device support (resend).)
introduced an incorrect access to MXC_CCM_RCSR.

MXC_CCM_RCSR is an offset and in order to properly access this register, 
the mx3_ccm_base needs to be passed, otherwise an illegal access is done.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/mach-imx/mach-armadillo5x0.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Arnd Bergmann - Sept. 15, 2012, 8:12 p.m.
On Saturday 15 September 2012, Fabio Estevam wrote:
> 
>         /* set NAND page size to 2k if not configured via boot mode pins */
> -       __raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
> +       __raw_writel(__raw_readl(mx3_ccm_base + MXC_CCM_RCSR) |
> +                                               (1 << 30), MXC_CCM_RCSR);
>  
>         /* RTC */

Shouldn't you change both the read and the write here, rather than just the read?

	Arnd

Patch

diff --git a/arch/arm/mach-imx/mach-armadillo5x0.c b/arch/arm/mach-imx/mach-armadillo5x0.c
index 2c6ab32..d22e8cc 100644
--- a/arch/arm/mach-imx/mach-armadillo5x0.c
+++ b/arch/arm/mach-imx/mach-armadillo5x0.c
@@ -526,7 +526,8 @@  static void __init armadillo5x0_init(void)
 	imx31_add_mxc_nand(&armadillo5x0_nand_board_info);
 
 	/* set NAND page size to 2k if not configured via boot mode pins */
-	__raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
+	__raw_writel(__raw_readl(mx3_ccm_base + MXC_CCM_RCSR) |
+						(1 << 30), MXC_CCM_RCSR);
 
 	/* RTC */
 	/* Get RTC IRQ and register the chip */