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)
committerWill Deacon <will.deacon@arm.com>
Mon, 12 Dec 2011 16:07:35 +0000 (16:07 +0000)
commit290130a17718c1451bb8a77a5e2510e0279bd5f3
treec5373065a8809c02092891e1494e1c6fb904ad7f
parent2d81f1fe81b753a5744fd2deceafab3e62ba02d5
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