1767c8f392
Commit 54622f10a6
("powerpc: Support for
relocatable kdump kernel") added a magic flag value in a register to
tell purgatory that it should be a panic kernel. This part is wrong
and is reverted by this commit.
The kernel gets a list of memory blocks and a entry point from user space.
Its job is to copy the blocks into place and then branch to the designated
entry point (after turning "off" the mmu).
The user space tool inserts a trampoline, called purgatory, that runs
before the user supplied code. Its job is to establish the entry
environment for the new kernel or other application based on the contents
of memory. The purgatory code is compiled and embedded in the tool,
where it is later patched using the elf symbol table using elf symbols.
Since the tool knows it is creating a purgatory that will run after a
kernel crash, it should just patch purgatory (or the kernel directly)
if something needs to happen.
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
36 lines
962 B
C
36 lines
962 B
C
#ifndef _PPC64_KDUMP_H
|
|
#define _PPC64_KDUMP_H
|
|
|
|
/* Kdump kernel runs at 32 MB, change at your peril. */
|
|
#define KDUMP_KERNELBASE 0x2000000
|
|
|
|
/* How many bytes to reserve at zero for kdump. The reserve limit should
|
|
* be greater or equal to the trampoline's end address.
|
|
* Reserve to the end of the FWNMI area, see head_64.S */
|
|
#define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */
|
|
|
|
#ifdef CONFIG_CRASH_DUMP
|
|
|
|
#define KDUMP_TRAMPOLINE_START 0x0100
|
|
#define KDUMP_TRAMPOLINE_END 0x3000
|
|
|
|
#define KDUMP_MIN_TCE_ENTRIES 2048
|
|
|
|
#endif /* CONFIG_CRASH_DUMP */
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
extern unsigned long __kdump_flag;
|
|
|
|
#if defined(CONFIG_CRASH_DUMP) && !defined(CONFIG_RELOCATABLE)
|
|
extern void reserve_kdump_trampoline(void);
|
|
extern void setup_kdump_trampoline(void);
|
|
#else
|
|
/* !CRASH_DUMP || RELOCATABLE */
|
|
static inline void reserve_kdump_trampoline(void) { ; }
|
|
static inline void setup_kdump_trampoline(void) { ; }
|
|
#endif
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif /* __PPC64_KDUMP_H */
|