aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManish Ahuja <ahuja@austin.ibm.com>2008-03-21 20:38:59 -0400
committerPaul Mackerras <paulus@samba.org>2008-03-25 17:44:07 -0400
commit654f596da4a83a8d2734fba26c2a1257533e6d75 (patch)
treea937646dfd6e225e6b3f25d6adbde921200f21d9
parent242f271c056f49b64b94c06b38fe9e8d3bf703bc (diff)
[POWERPC] pseries: phyp dump: Disable phyp-dump through boot-var
This adds a kernel command line option "phyp_dump", which takes a 0/1 value for disabling/ enabling phyp_dump at boot time. Kdump can use this on cmdline (phyp_dump=0) to disable phyp-dump during boot when enabling itself. This will ensure only one dumping mechanism is active at any given time. Signed-off-by: Manish Ahuja <mahuja@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/kernel/prom.c5
-rw-r--r--arch/powerpc/platforms/pseries/phyp_dump.c18
-rw-r--r--include/asm-powerpc/phyp_dump.h1
3 files changed, 24 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index e6c022ef12ee..9330920265f3 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -1060,6 +1060,11 @@ static void __init phyp_dump_reserve_mem(void)
1060 return; 1060 return;
1061 } 1061 }
1062 1062
1063 if (!phyp_dump_info->phyp_dump_at_boot) {
1064 printk(KERN_INFO "Phyp-dump disabled at boot time\n");
1065 return;
1066 }
1067
1063 if (phyp_dump_info->phyp_dump_is_active) { 1068 if (phyp_dump_info->phyp_dump_is_active) {
1064 /* Reserve *everything* above RMR.Area freed by userland tools*/ 1069 /* Reserve *everything* above RMR.Area freed by userland tools*/
1065 base = PHYP_DUMP_RMR_END; 1070 base = PHYP_DUMP_RMR_END;
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c
index 034fe1b54dd9..f80f8606c6b8 100644
--- a/arch/powerpc/platforms/pseries/phyp_dump.c
+++ b/arch/powerpc/platforms/pseries/phyp_dump.c
@@ -460,3 +460,21 @@ int __init early_init_dt_scan_phyp_dump(unsigned long node,
460 *((unsigned long *)&sizes[4]); 460 *((unsigned long *)&sizes[4]);
461 return 1; 461 return 1;
462} 462}
463
464/* Look for phyp_dump= cmdline option */
465static int __init early_phyp_dump_enabled(char *p)
466{
467 phyp_dump_info->phyp_dump_at_boot = 1;
468
469 if (!p)
470 return 0;
471
472 if (strncmp(p, "1", 1) == 0)
473 phyp_dump_info->phyp_dump_at_boot = 1;
474 else if (strncmp(p, "0", 1) == 0)
475 phyp_dump_info->phyp_dump_at_boot = 0;
476
477 return 0;
478}
479early_param("phyp_dump", early_phyp_dump_enabled);
480
diff --git a/include/asm-powerpc/phyp_dump.h b/include/asm-powerpc/phyp_dump.h
index b454de45b2ca..209a98913d9d 100644
--- a/include/asm-powerpc/phyp_dump.h
+++ b/include/asm-powerpc/phyp_dump.h
@@ -25,6 +25,7 @@ struct phyp_dump {
25 unsigned long init_reserve_start; 25 unsigned long init_reserve_start;
26 unsigned long init_reserve_size; 26 unsigned long init_reserve_size;
27 /* Check status during boot if dump supported, active & present*/ 27 /* Check status during boot if dump supported, active & present*/
28 unsigned long phyp_dump_at_boot;
28 unsigned long phyp_dump_configured; 29 unsigned long phyp_dump_configured;
29 unsigned long phyp_dump_is_active; 30 unsigned long phyp_dump_is_active;
30 /* store cpu & hpte size */ 31 /* store cpu & hpte size */