diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2005-12-04 02:39:43 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-08 22:52:28 -0500 |
commit | cc53291521701f9c7c7265bbb3c140563174d8b2 (patch) | |
tree | 9fa71dbb7d853f983c9033fc629edcd118c67858 /include/asm-powerpc | |
parent | 758438a7b8da593c9116e95cc7fdff6e9e0b0c40 (diff) |
[PATCH] powerpc: Add arch dependent basic infrastructure for Kdump.
Implementing the machine_crash_shutdown which will be called by
crash_kexec (called in case of a panic, sysrq etc.). Disable the
interrupts, shootdown cpus using debugger IPI and collect regs
for all CPUs.
elfcorehdr= specifies the location of elf core header stored by
the crashed kernel. This command line option will be passed by
the kexec-tools to capture kernel.
savemaxmem= specifies the actual memory size that the first kernel
has and this value will be used for dumping in the capture kernel.
This command line option will be passed by the kexec-tools to
capture kernel.
Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/kexec.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/asm-powerpc/kexec.h b/include/asm-powerpc/kexec.h index 934b4981651d..ae76ed5d973f 100644 --- a/include/asm-powerpc/kexec.h +++ b/include/asm-powerpc/kexec.h | |||
@@ -32,6 +32,8 @@ | |||
32 | 32 | ||
33 | #ifndef __ASSEMBLY__ | 33 | #ifndef __ASSEMBLY__ |
34 | 34 | ||
35 | #ifdef CONFIG_KEXEC | ||
36 | |||
35 | #define MAX_NOTE_BYTES 1024 | 37 | #define MAX_NOTE_BYTES 1024 |
36 | typedef u32 note_buf_t[MAX_NOTE_BYTES / sizeof(u32)]; | 38 | typedef u32 note_buf_t[MAX_NOTE_BYTES / sizeof(u32)]; |
37 | 39 | ||
@@ -41,11 +43,17 @@ extern note_buf_t crash_notes[]; | |||
41 | extern void kexec_smp_wait(void); /* get and clear naca physid, wait for | 43 | extern void kexec_smp_wait(void); /* get and clear naca physid, wait for |
42 | master to copy new code to 0 */ | 44 | master to copy new code to 0 */ |
43 | extern void __init kexec_setup(void); | 45 | extern void __init kexec_setup(void); |
44 | #endif | 46 | extern int crashing_cpu; |
47 | extern void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *)); | ||
48 | #endif /* __powerpc64 __ */ | ||
45 | 49 | ||
46 | struct kimage; | 50 | struct kimage; |
51 | struct pt_regs; | ||
47 | extern void default_machine_kexec(struct kimage *image); | 52 | extern void default_machine_kexec(struct kimage *image); |
48 | extern int default_machine_kexec_prepare(struct kimage *image); | 53 | extern int default_machine_kexec_prepare(struct kimage *image); |
54 | extern void default_machine_crash_shutdown(struct pt_regs *regs); | ||
55 | |||
56 | #endif /* !CONFIG_KEXEC */ | ||
49 | 57 | ||
50 | #endif /* ! __ASSEMBLY__ */ | 58 | #endif /* ! __ASSEMBLY__ */ |
51 | #endif /* _ASM_POWERPC_KEXEC_H */ | 59 | #endif /* _ASM_POWERPC_KEXEC_H */ |