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, 6 Feb 2013 18:30:34 +0000 (20:30 +0200)
commite1305ce907f3c826ea1d29cc9369c1250ea86c26
treeb6ee630d2a8fad651577cc44c0cba2dbe28899ff
parentb6e3842a5fa264612a025a28ddfe4f223f06ded6
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