diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2015-07-07 21:17:01 -0400 |
---|---|---|
committer | Florian Fainelli <f.fainelli@gmail.com> | 2015-07-11 21:33:51 -0400 |
commit | ffb910d7b84f21ef6caeed041032a0af8d2e00ed (patch) | |
tree | 83d68aa2f19b6e936a4d0fa13d8a2b3b751b000d | |
parent | a6b4b25bd15c0a490769422a7eee355e9e91a57b (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/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/mach-bcm/bcm63xx_headsmp.S | 23 | ||||
-rw-r--r-- | arch/arm/mach-bcm/bcm63xx_smp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-bcm/bcm63xx_smp.h | 1 |
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 |
41 | ifeq ($(CONFIG_ARCH_BCM_63XX),y) | 41 | ifeq ($(CONFIG_ARCH_BCM_63XX),y) |
42 | CFLAGS_bcm63xx_headsmp.o += -march=armv7-a | ||
43 | obj-y += bcm63xx.o | 42 | obj-y += bcm63xx.o |
44 | obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_headsmp.o \ | 43 | obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_pmb.o |
45 | bcm63xx_pmb.o | ||
46 | endif | 44 | endif |
47 | 45 | ||
48 | ifeq ($(CONFIG_ARCH_BRCMSTB),y) | 46 | ifeq ($(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 | |||
13 | ENTRY(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 | ||
23 | ENDPROC(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 | ||
4 | struct device_node; | 4 | struct device_node; |
5 | 5 | ||
6 | extern void bcm63138_secondary_startup(void); | ||
7 | extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn); | 6 | extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn); |
8 | 7 | ||
9 | #endif /* __BCM63XX_SMP_H */ | 8 | #endif /* __BCM63XX_SMP_H */ |