mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
6befda9a27
Most peripherals on the i.MX53 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. It does work for SSI2, the QSB for example uses SSI2 for its audio. But SSI2 only works because it does NOT have an OPACR. The right solution would be to fix the access rights for the SDMA, but the unit responsible for this is the Central Security Unit (CSU), which of course is NOT documented. So, until documentation for this is openly available, turn off the supervisor protection because it cripples the hardware. Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/*
|
|
* Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
* Copyright 2011 Linaro Ltd.
|
|
*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
|
|
#include <linux/clk.h>
|
|
#include <linux/clkdev.h>
|
|
#include <linux/err.h>
|
|
#include <linux/io.h>
|
|
#include <linux/irq.h>
|
|
#include <linux/of_irq.h>
|
|
#include <linux/of_platform.h>
|
|
#include <asm/mach/arch.h>
|
|
#include <asm/mach/time.h>
|
|
|
|
#include "common.h"
|
|
#include "hardware.h"
|
|
|
|
static void __init imx53_init_early(void)
|
|
{
|
|
mxc_set_cpu_type(MXC_CPU_MX53);
|
|
}
|
|
|
|
static void __init imx53_dt_init(void)
|
|
{
|
|
mxc_arch_reset_init_dt();
|
|
imx_src_init();
|
|
|
|
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
|
|
|
imx_aips_allow_unprivileged_access("fsl,imx53-aipstz");
|
|
}
|
|
|
|
static void __init imx53_init_late(void)
|
|
{
|
|
imx53_pm_init();
|
|
}
|
|
|
|
static const char * const imx53_dt_board_compat[] __initconst = {
|
|
"fsl,imx53",
|
|
NULL
|
|
};
|
|
|
|
DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)")
|
|
.init_early = imx53_init_early,
|
|
.init_irq = tzic_init_irq,
|
|
.init_machine = imx53_dt_init,
|
|
.init_late = imx53_init_late,
|
|
.dt_compat = imx53_dt_board_compat,
|
|
.restart = mxc_restart,
|
|
MACHINE_END
|