ARM: tegra11x: remove redundant cpu invalidation
Bo Yan [Tue, 13 Nov 2012 17:59:01 +0000 (09:59 -0800)]
This is a follow up to commit 49de51f9. During a processor reset,
following memory arrays in the processor are invalidated at reset:

  branch prediction arrays such as BTB, GHB, and indirect predictor.
  L1 instruction and data TLBs
  L1 instruction and data caches
  L2 unified TLB

So remove instructions invalidating memory arrays identified above.

Change-Id: Id933867d68b7813c5e47ed05da8e855888f8d959
Signed-off-by: Bo Yan <byan@nvidia.com>
Reviewed-on: http://git-master/r/163285
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

arch/arm/mach-tegra/headsmp.S

index 7c01b25..f2b0156 100644 (file)
@@ -126,6 +126,7 @@ __invalidate_cpu_state:
        mov     r0, #0
        mcr     p15, 0, r0, c1, c0, 1   @ disable SMP, prefetch, broadcast
        isb
+#if defined(CONFIG_HAVE_ARM_SCU)
        mcr     p15, 0, r0, c7, c5, 0   @ invalidate BTAC, i-cache
        mcr     p15, 0, r0, c7, c5, 6   @ invalidate branch pred array
        mcr     p15, 0, r0, c8, c5, 0   @ invalidate instruction TLB
@@ -134,7 +135,6 @@ __invalidate_cpu_state:
        dsb
        isb
 
-#if defined(CONFIG_HAVE_ARM_SCU)
        cpu_id  r0
        cmp     r0, #0
        mov32   r1, (TEGRA_ARM_PERIF_BASE + 0xC)