diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-05-30 09:00:14 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-05-30 09:00:14 -0400 |
commit | faa7bc51c11d5bbe440ac04710fd7a3208782000 (patch) | |
tree | 8aaa4e8e2fbb14b421988762fa90a3dbe6fa76e7 /arch/arm/mm/proc-v7.S | |
parent | da055eb52ec067d51dc08c7e86baf92dd5c01599 (diff) |
Check whether the TLB operations need broadcasting on SMP systems
ARMv7 SMP hardware can handle the TLB maintenance operations
broadcasting in hardware so that the software can avoid the costly IPIs.
This patch adds the necessary checks (the MMFR3 CPUID register) to avoid
the broadcasting if already supported by the hardware.
(this patch is based on the work done by Tony Thompson @ ARM)
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/mm/proc-v7.S')
-rw-r--r-- | arch/arm/mm/proc-v7.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 3397f1e64d76..c3f737516836 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -176,8 +176,8 @@ cpu_v7_name: | |||
176 | */ | 176 | */ |
177 | __v7_setup: | 177 | __v7_setup: |
178 | #ifdef CONFIG_SMP | 178 | #ifdef CONFIG_SMP |
179 | mrc p15, 0, r0, c1, c0, 1 @ Enable SMP/nAMP mode | 179 | mrc p15, 0, r0, c1, c0, 1 @ Enable SMP/nAMP mode and |
180 | orr r0, r0, #(0x1 << 6) | 180 | orr r0, r0, #(1 << 6) | (1 << 0) @ TLB ops broadcasting |
181 | mcr p15, 0, r0, c1, c0, 1 | 181 | mcr p15, 0, r0, c1, c0, 1 |
182 | #endif | 182 | #endif |
183 | adr r12, __v7_setup_stack @ the local stack | 183 | adr r12, __v7_setup_stack @ the local stack |