aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-12-04 02:39:23 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-08 22:52:14 -0500
commit398ab1fcb960ea0800f40a9c36355855e3e23389 (patch)
treeeb7eda3afffb3c99fc57b1064c7501e0ee2cf931
parent4693c09a47203d79a9adb69acaf3b3bb3dcf9390 (diff)
[PATCH] powerpc: Add CONFIG_CRASH_DUMP
This patch adds a Kconfig variable, CONFIG_CRASH_DUMP, which configures the built kernel for use as a Kdump kernel. Currently "all" this involves is changing the value of KERNELBASE to 32 MB. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/Kconfig11
-rw-r--r--arch/powerpc/kernel/setup_64.c3
-rw-r--r--include/asm-powerpc/page.h10
3 files changed, 23 insertions, 1 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 2c1186ada3ab..773b880d5577 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -379,6 +379,17 @@ config CELL_IIC
379 bool 379 bool
380 default y 380 default y
381 381
382config CRASH_DUMP
383 bool "kernel crash dumps (EXPERIMENTAL)"
384 depends on PPC_MULTIPLATFORM
385 depends on EXPERIMENTAL
386 help
387 Build a kernel suitable for use as a kdump capture kernel.
388 The kernel will be linked at a different address than normal, and
389 so can only be used for Kdump.
390
391 Don't change this unless you know what you are doing.
392
382config IBMVIO 393config IBMVIO
383 depends on PPC_PSERIES || PPC_ISERIES 394 depends on PPC_PSERIES || PPC_ISERIES
384 bool 395 bool
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 65603e9af984..6509dd7c2f8f 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -512,6 +512,9 @@ void __init setup_system(void)
512 ppc64_caches.iline_size); 512 ppc64_caches.iline_size);
513 printk("htab_address = 0x%p\n", htab_address); 513 printk("htab_address = 0x%p\n", htab_address);
514 printk("htab_hash_mask = 0x%lx\n", htab_hash_mask); 514 printk("htab_hash_mask = 0x%lx\n", htab_hash_mask);
515#if PHYSICAL_START > 0
516 printk("physical_start = 0x%x\n", PHYSICAL_START);
517#endif
515 printk("-----------------------------------------------------\n"); 518 printk("-----------------------------------------------------\n");
516 519
517 mm_init_ppc64(); 520 mm_init_ppc64();
diff --git a/include/asm-powerpc/page.h b/include/asm-powerpc/page.h
index 4696bdbcc085..76d7cb4b4ffc 100644
--- a/include/asm-powerpc/page.h
+++ b/include/asm-powerpc/page.h
@@ -51,8 +51,16 @@
51 * 51 *
52 * If you want to test if something's a kernel address, use is_kernel_addr(). 52 * If you want to test if something's a kernel address, use is_kernel_addr().
53 */ 53 */
54
55#ifdef CONFIG_CRASH_DUMP
56/* Kdump kernel runs at 32 MB, change at your peril. */
57#define PHYSICAL_START 0x2000000
58#else
59#define PHYSICAL_START 0x0
60#endif
61
54#define PAGE_OFFSET ASM_CONST(CONFIG_KERNEL_START) 62#define PAGE_OFFSET ASM_CONST(CONFIG_KERNEL_START)
55#define KERNELBASE PAGE_OFFSET 63#define KERNELBASE (PAGE_OFFSET + PHYSICAL_START)
56 64
57#ifdef CONFIG_DISCONTIGMEM 65#ifdef CONFIG_DISCONTIGMEM
58#define page_to_pfn(page) discontigmem_page_to_pfn(page) 66#define page_to_pfn(page) discontigmem_page_to_pfn(page)