Commit 80bf3c84 authored by Eric DeVolder's avatar Eric DeVolder Committed by Andrew Morton
Browse files

powerpc/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-11-eric.devolder@oracle.com


Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
Reviewed-by: default avatarSourabh Jain <sourabhjain@linux.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent b9bf5cb1
Loading
Loading
Loading
Loading
+17 −38
Original line number Diff line number Diff line
@@ -589,41 +589,21 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
	default "y" if PPC_POWERNV
	select ARCH_SUPPORTS_MEMORY_FAILURE

config KEXEC
	bool "kexec system call"
	depends on PPC_BOOK3S || PPC_E500 || (44x && !SMP)
	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.

	  It is an ongoing process to be certain the hardware in a machine
	  is properly shutdown, so do not be surprised if this code does not
	  initially work for you.  As of this writing the exact hardware
	  interface is strongly in flux, so no good recommendation can be
	  made.

config KEXEC_FILE
	bool "kexec file based system call"
	select KEXEC_CORE
	select HAVE_IMA_KEXEC if IMA
	select KEXEC_ELF
	depends on PPC64
	depends on CRYPTO=y
	depends on CRYPTO_SHA256=y
	help
	  This is a new version of the kexec system call. This call is
	  file based and takes in file descriptors as system call arguments
	  for kernel and initramfs as opposed to a list of segments as is the
	  case for the older kexec call.
config ARCH_SUPPORTS_KEXEC
	def_bool PPC_BOOK3S || PPC_E500 || (44x && !SMP)

config ARCH_SUPPORTS_KEXEC_FILE
	def_bool PPC64 && CRYPTO=y && CRYPTO_SHA256=y

config ARCH_HAS_KEXEC_PURGATORY
	def_bool KEXEC_FILE

config ARCH_SELECTS_KEXEC_FILE
	def_bool y
	depends on KEXEC_FILE
	select KEXEC_ELF
	select HAVE_IMA_KEXEC if IMA

config PPC64_BIG_ENDIAN_ELF_ABI_V2
	# Option is available to BFD, but LLD does not support ELFv1 so this is
	# always true there.
@@ -683,14 +663,13 @@ config RELOCATABLE_TEST
	  loaded at, which tends to be non-zero and therefore test the
	  relocation code.

config CRASH_DUMP
	bool "Build a dump capture kernel"
	depends on PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP)
config ARCH_SUPPORTS_CRASH_DUMP
	def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP)

config ARCH_SELECTS_CRASH_DUMP
	def_bool y
	depends on CRASH_DUMP
	select RELOCATABLE if PPC64 || 44x || PPC_85xx
	help
	  Build a kernel suitable for use as a dump capture kernel.
	  The same kernel binary can be used as production kernel and dump
	  capture kernel.

config FA_DUMP
	bool "Firmware-assisted dump"