sh/kexec: refactor for kernel/Kconfig.kexec

The kexec and crash kernel options are provided in the common
kernel/Kconfig.kexec. Utilize the common options and provide
the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the
equivalent set of KEXEC and CRASH options.

Link: https://lkml.kernel.org/r/20230712161545.87870-14-eric.devolder@oracle.com
Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Eric DeVolder 2023-07-12 12:15:44 -04:00 committed by Andrew Morton
parent 75239cf775
commit 40445d0601

View File

@ -548,44 +548,14 @@ menu "Kernel features"
source "kernel/Kconfig.hz" source "kernel/Kconfig.hz"
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "kexec system call (EXPERIMENTAL)" def_bool MMU
depends on MMU
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call. config ARCH_SUPPORTS_CRASH_DUMP
def_bool BROKEN_ON_SMP
It is an ongoing process to be certain the hardware in a machine config ARCH_SUPPORTS_KEXEC_JUMP
is properly shutdown, so do not be surprised if this code does not def_bool y
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config CRASH_DUMP
bool "kernel crash dumps (EXPERIMENTAL)"
depends on BROKEN_ON_SMP
help
Generate crash dump after being started by kexec.
This should be normally only set in special crash dump kernels
which are loaded in the main kernel with kexec-tools into
a specially reserved region and then later executed after
a crash by kdump/kexec. The crash dump kernel must be compiled
to a memory address not used by the main kernel using
PHYSICAL_START.
For more details see Documentation/admin-guide/kdump/kdump.rst
config KEXEC_JUMP
bool "kexec jump (EXPERIMENTAL)"
depends on KEXEC && HIBERNATION
help
Jump between original kernel and kexeced kernel and invoke
code via KEXEC
config PHYSICAL_START config PHYSICAL_START
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP) hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)