aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)