diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2005-12-04 02:39:23 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-08 22:52:14 -0500 |
commit | 398ab1fcb960ea0800f40a9c36355855e3e23389 (patch) | |
tree | eb7eda3afffb3c99fc57b1064c7501e0ee2cf931 | |
parent | 4693c09a47203d79a9adb69acaf3b3bb3dcf9390 (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/Kconfig | 11 | ||||
-rw-r--r-- | arch/powerpc/kernel/setup_64.c | 3 | ||||
-rw-r--r-- | include/asm-powerpc/page.h | 10 |
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 | ||
382 | config 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 | |||
382 | config IBMVIO | 393 | config 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) |