summaryrefslogtreecommitdiff
path: root/arch/mips/netlogic/xlp
diff options
context:
space:
mode:
authorJayachandran C <jchandra@broadcom.com>2013-06-10 06:41:04 (GMT)
committerRalf Baechle <ralf@linux-mips.org>2013-06-13 15:46:42 (GMT)
commit919f9abb3723f088290c62648b12fbfc7600d923 (patch)
tree00d1373418b59a086874a31a9cb5fefb16985cb9 /arch/mips/netlogic/xlp
parent53c832197f3adc5a360336f75fe34a95fe2d796b (diff)
downloadlinux-fsl-qoriq-919f9abb3723f088290c62648b12fbfc7600d923.tar.xz
MIPS: Netlogic: move cpu_ready array to boot area
Move the nlm_cpu_ready[] array used by the cpu wakeup code to the boot area, along with rest of the boot parameter code. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/5425/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/netlogic/xlp')
-rw-r--r--arch/mips/netlogic/xlp/setup.c1
-rw-r--r--arch/mips/netlogic/xlp/wakeup.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c
index 5bdd354..8f69924 100644
--- a/arch/mips/netlogic/xlp/setup.c
+++ b/arch/mips/netlogic/xlp/setup.c
@@ -108,6 +108,7 @@ void __init prom_init(void)
/* Update reset entry point with CPU init code */
reset_vec = (void *)CKSEG1ADDR(RESET_VEC_PHYS);
+ memset(reset_vec, 0, RESET_VEC_SIZE);
memcpy(reset_vec, (void *)nlm_reset_entry,
(nlm_reset_entry_end - nlm_reset_entry));
diff --git a/arch/mips/netlogic/xlp/wakeup.c b/arch/mips/netlogic/xlp/wakeup.c
index abb3e08..feb5736 100644
--- a/arch/mips/netlogic/xlp/wakeup.c
+++ b/arch/mips/netlogic/xlp/wakeup.c
@@ -82,6 +82,7 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask)
struct nlm_soc_info *nodep;
uint64_t syspcibase;
uint32_t syscoremask;
+ volatile uint32_t *cpu_ready = nlm_get_boot_data(BOOT_CPU_READY);
int core, n, cpu, count, val;
for (n = 0; n < NLM_NR_NODES; n++) {
@@ -125,7 +126,7 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask)
/* spin until the first hw thread sets its ready */
count = 0x20000000;
do {
- val = *(volatile int *)&nlm_cpu_ready[cpu];
+ val = cpu_ready[cpu];
} while (val == 0 && --count > 0);
}
}