diff options
Diffstat (limited to 'arch/mips/include/asm/kexec.h')
-rw-r--r-- | arch/mips/include/asm/kexec.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/arch/mips/include/asm/kexec.h b/arch/mips/include/asm/kexec.h index 4314892aaeb..ee25ebbf2a2 100644 --- a/arch/mips/include/asm/kexec.h +++ b/arch/mips/include/asm/kexec.h | |||
@@ -9,22 +9,43 @@ | |||
9 | #ifndef _MIPS_KEXEC | 9 | #ifndef _MIPS_KEXEC |
10 | # define _MIPS_KEXEC | 10 | # define _MIPS_KEXEC |
11 | 11 | ||
12 | #include <asm/stacktrace.h> | ||
13 | |||
12 | /* Maximum physical address we can use pages from */ | 14 | /* Maximum physical address we can use pages from */ |
13 | #define KEXEC_SOURCE_MEMORY_LIMIT (0x20000000) | 15 | #define KEXEC_SOURCE_MEMORY_LIMIT (0x20000000) |
14 | /* Maximum address we can reach in physical address mode */ | 16 | /* Maximum address we can reach in physical address mode */ |
15 | #define KEXEC_DESTINATION_MEMORY_LIMIT (0x20000000) | 17 | #define KEXEC_DESTINATION_MEMORY_LIMIT (0x20000000) |
16 | /* Maximum address we can use for the control code buffer */ | 18 | /* Maximum address we can use for the control code buffer */ |
17 | #define KEXEC_CONTROL_MEMORY_LIMIT (0x20000000) | 19 | #define KEXEC_CONTROL_MEMORY_LIMIT (0x20000000) |
18 | 20 | /* Reserve 3*4096 bytes for board-specific info */ | |
19 | #define KEXEC_CONTROL_PAGE_SIZE 4096 | 21 | #define KEXEC_CONTROL_PAGE_SIZE (4096 + 3*4096) |
20 | 22 | ||
21 | /* The native architecture */ | 23 | /* The native architecture */ |
22 | #define KEXEC_ARCH KEXEC_ARCH_MIPS | 24 | #define KEXEC_ARCH KEXEC_ARCH_MIPS |
25 | #define MAX_NOTE_BYTES 1024 | ||
23 | 26 | ||
24 | static inline void crash_setup_regs(struct pt_regs *newregs, | 27 | static inline void crash_setup_regs(struct pt_regs *newregs, |
25 | struct pt_regs *oldregs) | 28 | struct pt_regs *oldregs) |
26 | { | 29 | { |
27 | /* Dummy implementation for now */ | 30 | if (oldregs) |
31 | memcpy(newregs, oldregs, sizeof(*newregs)); | ||
32 | else | ||
33 | prepare_frametrace(newregs); | ||
28 | } | 34 | } |
29 | 35 | ||
36 | #ifdef CONFIG_KEXEC | ||
37 | struct kimage; | ||
38 | extern unsigned long kexec_args[4]; | ||
39 | extern int (*_machine_kexec_prepare)(struct kimage *); | ||
40 | extern void (*_machine_kexec_shutdown)(void); | ||
41 | extern void (*_machine_crash_shutdown)(struct pt_regs *regs); | ||
42 | extern void default_machine_crash_shutdown(struct pt_regs *regs); | ||
43 | #ifdef CONFIG_SMP | ||
44 | extern const unsigned char kexec_smp_wait[]; | ||
45 | extern unsigned long secondary_kexec_args[4]; | ||
46 | extern void (*relocated_kexec_smp_wait) (void *); | ||
47 | extern atomic_t kexec_ready_to_reboot; | ||
48 | #endif | ||
49 | #endif | ||
50 | |||
30 | #endif /* !_MIPS_KEXEC */ | 51 | #endif /* !_MIPS_KEXEC */ |