arm64: Add back cpu reset routines
authorGeoff Levand <geoff@infradead.org>
Thu, 23 Jun 2016 17:54:48 +0000 (17:54 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 27 Jun 2016 15:31:25 +0000 (16:31 +0100)
commitf9076ecfb1216a478312b1c078d04792df6d4477
tree824d82ef044ea476fe23416b2d17e6481d6d060c
parentb69e0dc14ce3c4abbd11725ff98a885d4616f9fe
arm64: Add back cpu reset routines

Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed the global
arm64 routines cpu_reset() and cpu_soft_restart() needed by the arm64
kexec and kdump support.  Add back a simplified version of
cpu_soft_restart() with some changes needed for kexec in the new files
cpu_reset.S, and cpu_reset.h.

When a CPU is reset it needs to be put into the exception level it had when
it entered the kernel. Update cpu_soft_restart() to accept an argument
which signals if the reset address should be entered at EL1 or EL2, and
add a new hypercall HVC_SOFT_RESTART which is used for the EL2 switch.

Signed-off-by: Geoff Levand <geoff@infradead.org>
Reviewed-by: James Morse <james.morse@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/virt.h
arch/arm64/kernel/cpu-reset.S [new file with mode: 0644]
arch/arm64/kernel/cpu-reset.h [new file with mode: 0644]
arch/arm64/kernel/hyp-stub.S