diff mbox

ARM: i.MX: Disable supervisor protect for i.MX51

Message ID 1466832375-32071-1-git-send-email-shc_work@mail.ru
State New
Headers show

Commit Message

Alexander Shiyan June 25, 2016, 5:26 a.m. UTC
Most peripherals on the i.MX51 have an Off-Platform Peripheral Access
Control Register (OPACR) in which the access rights (together with the
MPROT registers) can be declared.
However, this does not seem to work for example for SSI1+SDMA, because the
supervisor bit is not set for the SDMA unit.
A similar problem was described in the patch for i.MX53 CPU
(ARM: i.MX53: globally disable supervisor protect), and the same solution
is applicable for i.MX51 CPU.
Patch has tested on custom board based on Digi CCMX-51 module (i.MX51).

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
DTS-part of this patch, I'll send a bit later.
Another mention of this problem: https://community.nxp.com/thread/333710
---
 arch/arm/mach-imx/mach-imx51.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Shawn Guo June 28, 2016, 2:36 a.m. UTC | #1
On Sat, Jun 25, 2016 at 08:26:15AM +0300, Alexander Shiyan wrote:
> Most peripherals on the i.MX51 have an Off-Platform Peripheral Access
> Control Register (OPACR) in which the access rights (together with the
> MPROT registers) can be declared.
> However, this does not seem to work for example for SSI1+SDMA, because the
> supervisor bit is not set for the SDMA unit.
> A similar problem was described in the patch for i.MX53 CPU
> (ARM: i.MX53: globally disable supervisor protect), and the same solution
> is applicable for i.MX51 CPU.
> Patch has tested on custom board based on Digi CCMX-51 module (i.MX51).
> 
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>

Applied, thanks.
diff mbox

Patch

diff --git a/arch/arm/mach-imx/mach-imx51.c b/arch/arm/mach-imx/mach-imx51.c
index 10a82a4..1e91740 100644
--- a/arch/arm/mach-imx/mach-imx51.c
+++ b/arch/arm/mach-imx/mach-imx51.c
@@ -54,6 +54,8 @@  static void __init imx51_dt_init(void)
 	imx_src_init();
 
 	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+
+	imx_aips_allow_unprivileged_access("fsl,imx51-aipstz");
 }
 
 static void __init imx51_init_late(void)