aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/Kconfig
diff options
context:
space:
mode:
authorMohan Kumar M <mohan@in.ibm.com>2008-10-21 13:38:10 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-10-22 00:01:22 -0400
commit54622f10a6aabb8bb2bdacf3dd070046f03dc246 (patch)
tree73eb5ad4eeb7174b8c0ae1904bbe80602c5e295d /arch/powerpc/Kconfig
parent4792adbac9eb41cea77a45ab76258ea10d411173 (diff)
powerpc: Support for relocatable kdump kernel
This adds relocatable kernel support for kdump. With this one can use the same regular kernel to capture the kdump. A signature (0xfeed1234) is passed in r6 from panic code to the next kernel through kexec_sequence and purgatory code. The signature is used to differentiate between kdump kernel and non-kdump kernels. The purgatory code compares the signature and sets the __kdump_flag in head_64.S. During the boot up, kernel code checks __kdump_flag and if it is set, the kernel will behave as relocatable kdump kernel. This kernel will boot at the address where it was loaded by kexec-tools ie. at the address reserved through crashkernel boot parameter. CONFIG_CRASH_DUMP depends on CONFIG_RELOCATABLE option to build kdump kernel as relocatable. So the same kernel can be used as production and kdump kernel. This patch incorporates the changes suggested by Paul Mackerras to avoid GOT use and to avoid two copies of the code. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Mohan Kumar M <mohan@in.ibm.com> Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/Kconfig')
-rw-r--r--arch/powerpc/Kconfig10
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 369d93e7377c..5b1527883fcb 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -323,13 +323,11 @@ config KEXEC
323 323
324config CRASH_DUMP 324config CRASH_DUMP
325 bool "Build a kdump crash kernel" 325 bool "Build a kdump crash kernel"
326 depends on PPC_MULTIPLATFORM && PPC64 326 depends on PPC_MULTIPLATFORM && PPC64 && RELOCATABLE
327 help 327 help
328 Build a kernel suitable for use as a kdump capture kernel. 328 Build a kernel suitable for use as a kdump capture kernel.
329 The kernel will be linked at a different address than normal, and 329 The same kernel binary can be used as production kernel and dump
330 so can only be used for Kdump. 330 capture kernel.
331
332 Don't change this unless you know what you are doing.
333 331
334config PHYP_DUMP 332config PHYP_DUMP
335 bool "Hypervisor-assisted dump (EXPERIMENTAL)" 333 bool "Hypervisor-assisted dump (EXPERIMENTAL)"
@@ -829,11 +827,9 @@ config PAGE_OFFSET
829 default "0xc000000000000000" 827 default "0xc000000000000000"
830config KERNEL_START 828config KERNEL_START
831 hex 829 hex
832 default "0xc000000002000000" if CRASH_DUMP
833 default "0xc000000000000000" 830 default "0xc000000000000000"
834config PHYSICAL_START 831config PHYSICAL_START
835 hex 832 hex
836 default "0x02000000" if CRASH_DUMP
837 default "0x00000000" 833 default "0x00000000"
838endif 834endif
839 835