aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2015-07-07 21:17:01 -0400
committerFlorian Fainelli <f.fainelli@gmail.com>2015-07-11 21:33:51 -0400
commitffb910d7b84f21ef6caeed041032a0af8d2e00ed (patch)
tree83d68aa2f19b6e936a4d0fa13d8a2b3b751b000d
parenta6b4b25bd15c0a490769422a7eee355e9e91a57b (diff)
ARM: BCM63xx: Remove custom secondary_startup function
With commit 02b4e2756e01c623cc4dbceae4b07be75252db5b ("ARM: v7 setup function should invalidate L1 cache"), the default secondary_startup function for ARMv7 CPUs does invalidate the L1 cache, which was the sole reason why BCM63xx had to have its own secondary_startup implementation. Now that the secondary_startup takes care of this, we can completely remove that code. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-rw-r--r--arch/arm/mach-bcm/Makefile4
-rw-r--r--arch/arm/mach-bcm/bcm63xx_headsmp.S23
-rw-r--r--arch/arm/mach-bcm/bcm63xx_smp.c2
-rw-r--r--arch/arm/mach-bcm/bcm63xx_smp.h1
4 files changed, 2 insertions, 28 deletions
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
index 4fb0da458e91..1780a3ff42f9 100644
--- a/arch/arm/mach-bcm/Makefile
+++ b/arch/arm/mach-bcm/Makefile
@@ -39,10 +39,8 @@ obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
39 39
40# BCM63XXx 40# BCM63XXx
41ifeq ($(CONFIG_ARCH_BCM_63XX),y) 41ifeq ($(CONFIG_ARCH_BCM_63XX),y)
42CFLAGS_bcm63xx_headsmp.o += -march=armv7-a
43obj-y += bcm63xx.o 42obj-y += bcm63xx.o
44obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_headsmp.o \ 43obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_pmb.o
45 bcm63xx_pmb.o
46endif 44endif
47 45
48ifeq ($(CONFIG_ARCH_BRCMSTB),y) 46ifeq ($(CONFIG_ARCH_BRCMSTB),y)
diff --git a/arch/arm/mach-bcm/bcm63xx_headsmp.S b/arch/arm/mach-bcm/bcm63xx_headsmp.S
deleted file mode 100644
index c7af397c7f14..000000000000
--- a/arch/arm/mach-bcm/bcm63xx_headsmp.S
+++ /dev/null
@@ -1,23 +0,0 @@
1/*
2 * Copyright (C) 2015, Broadcom Corporation
3 * All Rights Reserved
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9#include <linux/linkage.h>
10#include <linux/init.h>
11#include <asm/assembler.h>
12
13ENTRY(bcm63138_secondary_startup)
14 ARM_BE8(setend be)
15 /*
16 * L1 cache does have unpredictable contents at power-up clean its
17 * contents without flushing
18 */
19 bl v7_invalidate_l1
20 nop
21
22 b secondary_startup
23ENDPROC(bcm63138_secondary_startup)
diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c
index b8e18cc8f237..19be90421f4d 100644
--- a/arch/arm/mach-bcm/bcm63xx_smp.c
+++ b/arch/arm/mach-bcm/bcm63xx_smp.c
@@ -135,7 +135,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
135 } 135 }
136 136
137 /* Write the secondary init routine to the BootLUT reset vector */ 137 /* Write the secondary init routine to the BootLUT reset vector */
138 val = virt_to_phys(bcm63138_secondary_startup); 138 val = virt_to_phys(secondary_startup);
139 writel_relaxed(val, bootlut_base + BOOTLUT_RESET_VECT); 139 writel_relaxed(val, bootlut_base + BOOTLUT_RESET_VECT);
140 140
141 /* Power up the core, will jump straight to its reset vector when we 141 /* Power up the core, will jump straight to its reset vector when we
diff --git a/arch/arm/mach-bcm/bcm63xx_smp.h b/arch/arm/mach-bcm/bcm63xx_smp.h
index 50b76044536e..9c6d50e2b111 100644
--- a/arch/arm/mach-bcm/bcm63xx_smp.h
+++ b/arch/arm/mach-bcm/bcm63xx_smp.h
@@ -3,7 +3,6 @@
3 3
4struct device_node; 4struct device_node;
5 5
6extern void bcm63138_secondary_startup(void);
7extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn); 6extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn);
8 7
9#endif /* __BCM63XX_SMP_H */ 8#endif /* __BCM63XX_SMP_H */