arm64: Add back cpu reset routines
authorGeoff Levand <geoff@infradead.org>
Thu, 23 Jun 2016 17:54:48 +0000 (17:54 +0000)
committerAKASHI Takahiro <takahiro.akashi@linaro.org>
Mon, 19 Jun 2017 06:08:59 +0000 (15:08 +0900)
commit46165e514b13be831a7e033056328dd483a65963
tree87568a6ed9e15627f416f533c70422a1444e91d5
parent3bbd245ee8508483111eb1901ef82671a27481ec
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