From e47496ef32afa204cdb50b159f816f624554470e Mon Sep 17 00:00:00 2001 From: tkasivajhula Date: Wed, 16 Jun 2010 15:23:26 -0700 Subject: [ARM/tegra]: Turn off MMU in LP2 With the MMU on, the instruction prefetcher can potentially fetch instructions from memory as the CPU is losing power. This can cause SDRAM to hang. Change-Id: Iee4a40cc65f25a5969c443710c3a446befd07f41 Reviewed-on: http://git-master/r/2789 Reviewed-by: Trivikram Kasivajhula Tested-by: Trivikram Kasivajhula Reviewed-by: Gary King --- arch/arm/mach-tegra/platsmp.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'arch/arm/mach-tegra/platsmp.c') diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index 3190a7112066..547b2a3bf557 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c @@ -43,6 +43,7 @@ extern void tegra_secondary_startup(void); static DEFINE_SPINLOCK(boot_lock); static void __iomem *scu_base = IO_ADDRESS(TEGRA_ARM_PERIF_BASE); extern void __cortex_a9_restore(void); +extern void __shut_off_mmu(void); #ifdef CONFIG_HOTPLUG_CPU static DEFINE_PER_CPU(struct completion, cpu_killed); @@ -172,6 +173,7 @@ static int create_suspend_pgtable(void) (unsigned long)tegra_context_area, (unsigned long)virt_to_phys(tegra_hotplug_startup), (unsigned long)__cortex_a9_restore, + (unsigned long)virt_to_phys(__shut_off_mmu), }; unsigned long addr_p[] = { PHYS_OFFSET, @@ -179,6 +181,7 @@ static int create_suspend_pgtable(void) (unsigned long)virt_to_phys(tegra_context_area), (unsigned long)virt_to_phys(tegra_hotplug_startup), (unsigned long)virt_to_phys(__cortex_a9_restore), + (unsigned long)virt_to_phys(__shut_off_mmu), }; unsigned int flags = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_WBWA | PMD_SECT_S; -- cgit v1.2.3