[PATCH] kexec: x86_64: add CONFIG_PHYSICAL_START
For one kernel to report a crash another kernel has created we need to have 2 kernels loaded simultaneously in memory. To accomplish this the two kernels need to built to run at different physical addresses. This patch adds the CONFIG_PHYSICAL_START option to the x86_64 kernel so we can do just that. You need to know what you are doing and the ramifications are before changing this value, and most users won't care so I have made it depend on CONFIG_EMBEDDED bzImage kernels will work and run at a different address when compiled with this option but they will still load at 1MB. If you need a kernel loaded at a different address as well you need to boot a vmlinux. Signed-off-by: Eric Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
8a9190853c
commit
d0537508a9
@@ -64,12 +64,14 @@ typedef struct { unsigned long pgprot; } pgprot_t;
|
||||
#define __pgd(x) ((pgd_t) { (x) } )
|
||||
#define __pgprot(x) ((pgprot_t) { (x) } )
|
||||
|
||||
#define __START_KERNEL 0xffffffff80100000UL
|
||||
#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START)
|
||||
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
|
||||
#define __START_KERNEL_map 0xffffffff80000000UL
|
||||
#define __PAGE_OFFSET 0xffff810000000000UL
|
||||
|
||||
#else
|
||||
#define __START_KERNEL 0xffffffff80100000
|
||||
#define __PHYSICAL_START CONFIG_PHYSICAL_START
|
||||
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
|
||||
#define __START_KERNEL_map 0xffffffff80000000
|
||||
#define __PAGE_OFFSET 0xffff810000000000
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
Reference in New Issue
Block a user