Commit 6339189e authored by Olof Johansson's avatar Olof Johansson

Merge tag 'arm-soc/for-4.3/soc' of http://github.com/broadcom/stblinux into next/cleanup

Merge "Broadcom SoC changes for 4.3 (part 1)" from Florian Fainelli:

This pull request contains two fixes for the Broadcom BCM63xx SMP code:

- Sudeep removes an invalid use of cpu_logical_map() which turned to be a no-op
  since we always boot from physical CPU 0 = logical CPU 0

- Florian removes the custom secondary_startup function and replaces it with
  the generic one

* tag 'arm-soc/for-4.3/soc' of http://github.com/broadcom/stblinux:
  ARM: BCM63xx: Remove custom secondary_startup function
  ARM: BCM63xx: fix parameter to of_get_cpu_node in bcm63138_smp_boot_secondary
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 3bf7b20a ffb910d7
...@@ -39,10 +39,8 @@ obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o ...@@ -39,10 +39,8 @@ obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
# BCM63XXx # BCM63XXx
ifeq ($(CONFIG_ARCH_BCM_63XX),y) ifeq ($(CONFIG_ARCH_BCM_63XX),y)
CFLAGS_bcm63xx_headsmp.o += -march=armv7-a
obj-y += bcm63xx.o obj-y += bcm63xx.o
obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_headsmp.o \ obj-$(CONFIG_SMP) += bcm63xx_smp.o bcm63xx_pmb.o
bcm63xx_pmb.o
endif endif
ifeq ($(CONFIG_ARCH_BRCMSTB),y) ifeq ($(CONFIG_ARCH_BRCMSTB),y)
......
/*
* Copyright (C) 2015, Broadcom Corporation
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/linkage.h>
#include <linux/init.h>
#include <asm/assembler.h>
ENTRY(bcm63138_secondary_startup)
ARM_BE8(setend be)
/*
* L1 cache does have unpredictable contents at power-up clean its
* contents without flushing
*/
bl v7_invalidate_l1
nop
b secondary_startup
ENDPROC(bcm63138_secondary_startup)
...@@ -127,7 +127,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu, ...@@ -127,7 +127,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
} }
/* Locate the secondary CPU node */ /* Locate the secondary CPU node */
dn = of_get_cpu_node(cpu_logical_map(cpu), NULL); dn = of_get_cpu_node(cpu, NULL);
if (!dn) { if (!dn) {
pr_err("SMP: failed to locate secondary CPU%d node\n", cpu); pr_err("SMP: failed to locate secondary CPU%d node\n", cpu);
ret = -ENODEV; ret = -ENODEV;
...@@ -135,7 +135,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu, ...@@ -135,7 +135,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
} }
/* Write the secondary init routine to the BootLUT reset vector */ /* Write the secondary init routine to the BootLUT reset vector */
val = virt_to_phys(bcm63138_secondary_startup); val = virt_to_phys(secondary_startup);
writel_relaxed(val, bootlut_base + BOOTLUT_RESET_VECT); writel_relaxed(val, bootlut_base + BOOTLUT_RESET_VECT);
/* Power up the core, will jump straight to its reset vector when we /* Power up the core, will jump straight to its reset vector when we
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
struct device_node; struct device_node;
extern void bcm63138_secondary_startup(void);
extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn); extern int bcm63xx_pmb_power_on_cpu(struct device_node *dn);
#endif /* __BCM63XX_SMP_H */ #endif /* __BCM63XX_SMP_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment