ARM: reset: implement soft_restart for jumping to a physical address
authorWill Deacon <will.deacon@arm.com>
Mon, 6 Jun 2011 11:28:54 +0000 (12:28 +0100)
committerGrazvydas Ignotas <notasas@gmail.com>
Wed, 20 Feb 2013 21:19:24 +0000 (23:19 +0200)
commit64cd6e831d03cb51c0a910bcc846275168a94950
treeba10635100e7ce1147d2d240515f267999450236
parent63d701e1905e2afbe77a4bf89ffa8d3893ac8079
ARM: reset: implement soft_restart for jumping to a physical address

Tools such as kexec and CPU hotplug require a way to reset the processor
and branch to some code in physical space. This requires various bits of
jiggery pokery with the caches and MMU which, when it goes wrong, tends
to lock up the system.

This patch fleshes out the soft_restart implementation so that it
branches to the reset code using the identity mapping. This requires us
to change to a temporary stack, held within the kernel image as a static
array, to avoid conflicting with the new view of memory.

Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/process.c