Skip to contentSkip to conversation

Patch "ARM: ux500: simplify secondary CPU boot" has been added to the 4.2-stable tree

PATCH [email protected] 1 participant 1 message Oct 23, 2015

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ARM: ux500: simplify secondary CPU boot

to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
arm-ux500-simplify-secondary-cpu-boot.patch
and it can be found in the queue-4.2 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From c00def71efd919e8ae835a25f4f4c80a4b2d36d3 Mon Sep 17 00:00:00 2001

From: Linus Walleij <[email protected]>
Date: Mon, 3 Aug 2015 09:26:52 +0200
Subject: ARM: ux500: simplify secondary CPU boot

From: Linus Walleij <[email protected]>

commit c00def71efd919e8ae835a25f4f4c80a4b2d36d3 upstream.

This removes a lot of ancient cruft from the Ux500 SMP boot. Instead of the pen grab/release, just point the ROM to secondary_boot() and start the second CPU there, then send the IPI.

Use our own SMP enable method. This enables us to remove the last static mapping and get both CPUs booting properly.

Tested this and it just works.

---
 arch/arm/mach-ux500/Makefile     |    2 
 arch/arm/mach-ux500/cpu-db8500.c |    1 
 arch/arm/mach-ux500/headsmp.S    |   37 ----------
 arch/arm/mach-ux500/platsmp.c    |  132 +++++++++++----------------------------
 arch/arm/mach-ux500/setup.h      |    1 
 5 files changed, 40 insertions(+), 133 deletions(-)
arch/arm/mach-ux500/Makefile +1 -1
@@ -7,7 +7,7 @@ obj-$(CONFIG_CACHE_L2X0)	+= cache-l2x0.o
 obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o
 obj-$(CONFIG_MACH_MOP500)	+= board-mop500-regulators.o \
 				board-mop500-audio.o
-obj-$(CONFIG_SMP)		+= platsmp.o headsmp.o
+obj-$(CONFIG_SMP)		+= platsmp.o
 obj-$(CONFIG_HOTPLUG_CPU)	+= hotplug.o
 obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
 
arch/arm/mach-ux500/cpu-db8500.c +0 -1
@@ -154,7 +154,6 @@ static const char * stericsson_dt_platfo
 };
 
 DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)")
-	.smp            = smp_ops(ux500_smp_ops),
 	.map_io		= u8500_map_io,
 	.init_irq	= ux500_init_irq,
 	/* we re-use nomadik timer here */
arch/arm/mach-ux500/headsmp.S deleted +0 -37
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2009 ST-Ericsson
- *	This file is based  ARM Realview platform
- *  Copyright (c) 2003 ARM Limited
- *  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>
-
-/*
- * U8500 specific entry point for secondary CPUs.
- */
-ENTRY(u8500_secondary_startup)
-	mrc	p15, 0, r0, c0, c0, 5
-	and	r0, r0, #15
-	adr	r4, 1f
-	ldmia	r4, {r5, r6}
-	sub	r4, r4, r5
-	add	r6, r6, r4
-pen:	ldr	r7, [r6]
-	cmp	r7, r0
-	bne	pen
-
-	/*
-	 * we've been released from the holding pen: secondary_stack
-	 * should now contain the SVC stack for this core
-	 */
-	b	secondary_startup
-ENDPROC(u8500_secondary_startup)
-
-	.align 2
-1:	.long	.
-	.long	pen_release
arch/arm/mach-ux500/platsmp.c +39 -93

174 lines not on this page · raw message

arch/arm/mach-ux500/setup.h +0 -1
@@ -26,7 +26,6 @@ extern struct device *ux500_soc_device_i
 
 extern void ux500_timer_init(void);
 
-extern struct smp_operations ux500_smp_ops;
 extern void ux500_cpu_die(unsigned int cpu);
 
 #endif /*  __ASM_ARCH_SETUP_H */

Patches currently in stable-queue which might be from [email protected] are

queue-4.2/arm-ux500-simplify-secondary-cpu-boot.patch