diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-12-08 14:41:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-12-10 12:15:01 +0100 |
commit | 4300cd1729a32fc10fd18d47d9c8b26da8694bdd (patch) | |
tree | cb215d4df63eeab118f758e94a8473ecd23d4889 | |
parent | 85520cc9f62be3163a5c46385817f3f1df207d54 (diff) | |
download | barebox-4300cd1729a32fc10fd18d47d9c8b26da8694bdd.tar.gz barebox-4300cd1729a32fc10fd18d47d9c8b26da8694bdd.tar.xz |
pcm043: Add MMU support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 1 | ||||
-rw-r--r-- | board/pcm043/pcm043.c | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 672e04f09f..17f2ad117e 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -221,6 +221,7 @@ config MACH_FREESCALE_MX35_3STACK config MACH_PCM043 bool "phyCORE-i.MX35" select HAS_CFI + select HAVE_MMU select MACH_HAS_LOWLEVEL_INIT help Say Y here if you are using Phytec's phyCORE-i.MX35 (pcm043) equipped diff --git a/board/pcm043/pcm043.c b/board/pcm043/pcm043.c index 88b4113b84..cbd910a214 100644 --- a/board/pcm043/pcm043.c +++ b/board/pcm043/pcm043.c @@ -39,6 +39,7 @@ #include <mach/imx-nand.h> #include <fec.h> #include <fb.h> +#include <asm/mmu.h> #include <mach/imx-ipu-fb.h> #include <mach/imx-pll.h> #include <mach/iomux-mx35.h> @@ -143,10 +144,35 @@ static struct device_d imx_ipu_fb_dev = { .platform_data = &ipu_fb_data, }; +#ifdef CONFIG_MMU +static void pcm043_mmu_init(void) +{ + mmu_init(); + + arm_create_section(0x80000000, 0x80000000, 128, PMD_SECT_DEF_CACHED); + arm_create_section(0x90000000, 0x80000000, 128, PMD_SECT_DEF_UNCACHED); + + setup_dma_coherent(0x10000000); + +#if TEXT_BASE & (0x100000 - 1) +#warning cannot create vector section. Adjust TEXT_BASE to a 1M boundary +#else + arm_create_section(0x0, TEXT_BASE, 1, PMD_SECT_DEF_UNCACHED); +#endif + mmu_enable(); +} +#else +static void pcm043_mmu_init(void) +{ +} +#endif + static int imx35_devices_init(void) { uint32_t reg; + pcm043_mmu_init(); + /* CS0: Nor Flash */ writel(0x0000cf03, CSCR_U(0)); writel(0x10000d03, CSCR_L(0)); |