diff options
Diffstat (limited to 'arch/arm/mach-imx/head-v7.S')
-rw-r--r-- | arch/arm/mach-imx/head-v7.S | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/head-v7.S b/arch/arm/mach-imx/head-v7.S index 6229efbc70c..7e49deb128a 100644 --- a/arch/arm/mach-imx/head-v7.S +++ b/arch/arm/mach-imx/head-v7.S | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <asm/hardware/cache-l2x0.h> | 16 | #include <asm/hardware/cache-l2x0.h> |
17 | 17 | ||
18 | .section ".text.head", "ax" | 18 | .section ".text.head", "ax" |
19 | __CPUINIT | ||
20 | 19 | ||
21 | /* | 20 | /* |
22 | * The secondary kernel init calls v7_flush_dcache_all before it enables | 21 | * The secondary kernel init calls v7_flush_dcache_all before it enables |
@@ -33,6 +32,7 @@ | |||
33 | */ | 32 | */ |
34 | ENTRY(v7_invalidate_l1) | 33 | ENTRY(v7_invalidate_l1) |
35 | mov r0, #0 | 34 | mov r0, #0 |
35 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache | ||
36 | mcr p15, 2, r0, c0, c0, 0 | 36 | mcr p15, 2, r0, c0, c0, 0 |
37 | mrc p15, 1, r0, c0, c0, 0 | 37 | mrc p15, 1, r0, c0, c0, 0 |
38 | 38 | ||
@@ -71,6 +71,7 @@ ENTRY(v7_secondary_startup) | |||
71 | ENDPROC(v7_secondary_startup) | 71 | ENDPROC(v7_secondary_startup) |
72 | #endif | 72 | #endif |
73 | 73 | ||
74 | #ifdef CONFIG_PM | ||
74 | /* | 75 | /* |
75 | * The following code is located into the .data section. This is to | 76 | * The following code is located into the .data section. This is to |
76 | * allow phys_l2x0_saved_regs to be accessed with a relative load | 77 | * allow phys_l2x0_saved_regs to be accessed with a relative load |
@@ -79,6 +80,7 @@ ENDPROC(v7_secondary_startup) | |||
79 | .data | 80 | .data |
80 | .align | 81 | .align |
81 | 82 | ||
83 | #ifdef CONFIG_CACHE_L2X0 | ||
82 | .macro pl310_resume | 84 | .macro pl310_resume |
83 | ldr r2, phys_l2x0_saved_regs | 85 | ldr r2, phys_l2x0_saved_regs |
84 | ldr r0, [r2, #L2X0_R_PHY_BASE] @ get physical base of l2x0 | 86 | ldr r0, [r2, #L2X0_R_PHY_BASE] @ get physical base of l2x0 |
@@ -88,12 +90,17 @@ ENDPROC(v7_secondary_startup) | |||
88 | str r1, [r0, #L2X0_CTRL] @ re-enable L2 | 90 | str r1, [r0, #L2X0_CTRL] @ re-enable L2 |
89 | .endm | 91 | .endm |
90 | 92 | ||
93 | .globl phys_l2x0_saved_regs | ||
94 | phys_l2x0_saved_regs: | ||
95 | .long 0 | ||
96 | #else | ||
97 | .macro pl310_resume | ||
98 | .endm | ||
99 | #endif | ||
100 | |||
91 | ENTRY(v7_cpu_resume) | 101 | ENTRY(v7_cpu_resume) |
92 | bl v7_invalidate_l1 | 102 | bl v7_invalidate_l1 |
93 | pl310_resume | 103 | pl310_resume |
94 | b cpu_resume | 104 | b cpu_resume |
95 | ENDPROC(v7_cpu_resume) | 105 | ENDPROC(v7_cpu_resume) |
96 | 106 | #endif | |
97 | .globl phys_l2x0_saved_regs | ||
98 | phys_l2x0_saved_regs: | ||
99 | .long 0 | ||