diff options
| author | Vivek Goyal <vgoyal@in.ibm.com> | 2007-01-05 19:36:30 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2007-01-06 02:55:23 -0500 |
| commit | dd0ec16fa6cf2498b831663a543e1b67fce6e155 (patch) | |
| tree | 6b91a5ff9713c83f6026d1198be98f7ed1e845e6 | |
| parent | a75acf850ca80136a4f845cf9a7cd26e7465c1f4 (diff) | |
[PATCH] i386: Restore CONFIG_PHYSICAL_START option
o Relocatable bzImage support had got rid of CONFIG_PHYSICAL_START option
thinking that now this option is not required as people can build a
second kernel as relocatable and load it anywhere. So need of compiling
the kernel for a custom address was gone. But Magnus uses vmlinux images
for second kernel in Xen environment and he wants to continue to use
it.
o Restoring the CONFIG_PHYSICAL_START option for the time being. I think
down the line we can get rid of it.
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/i386/Kconfig | 41 | ||||
| -rw-r--r-- | include/asm-i386/boot.h | 3 |
2 files changed, 43 insertions, 1 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 0d67a0a115..0dfee81281 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
| @@ -777,6 +777,47 @@ config CRASH_DUMP | |||
| 777 | PHYSICAL_START. | 777 | PHYSICAL_START. |
| 778 | For more details see Documentation/kdump/kdump.txt | 778 | For more details see Documentation/kdump/kdump.txt |
| 779 | 779 | ||
| 780 | config PHYSICAL_START | ||
| 781 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) | ||
| 782 | default "0x100000" | ||
| 783 | help | ||
| 784 | This gives the physical address where the kernel is loaded. | ||
| 785 | |||
| 786 | If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then | ||
| 787 | bzImage will decompress itself to above physical address and | ||
| 788 | run from there. Otherwise, bzImage will run from the address where | ||
| 789 | it has been loaded by the boot loader and will ignore above physical | ||
| 790 | address. | ||
| 791 | |||
| 792 | In normal kdump cases one does not have to set/change this option | ||
| 793 | as now bzImage can be compiled as a completely relocatable image | ||
| 794 | (CONFIG_RELOCATABLE=y) and be used to load and run from a different | ||
| 795 | address. This option is mainly useful for the folks who don't want | ||
| 796 | to use a bzImage for capturing the crash dump and want to use a | ||
| 797 | vmlinux instead. vmlinux is not relocatable hence a kernel needs | ||
| 798 | to be specifically compiled to run from a specific memory area | ||
| 799 | (normally a reserved region) and this option comes handy. | ||
| 800 | |||
| 801 | So if you are using bzImage for capturing the crash dump, leave | ||
| 802 | the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y. | ||
| 803 | Otherwise if you plan to use vmlinux for capturing the crash dump | ||
| 804 | change this value to start of the reserved region (Typically 16MB | ||
| 805 | 0x1000000). In other words, it can be set based on the "X" value as | ||
| 806 | specified in the "crashkernel=YM@XM" command line boot parameter | ||
| 807 | passed to the panic-ed kernel. Typically this parameter is set as | ||
| 808 | crashkernel=64M@16M. Please take a look at | ||
| 809 | Documentation/kdump/kdump.txt for more details about crash dumps. | ||
| 810 | |||
| 811 | Usage of bzImage for capturing the crash dump is recommended as | ||
| 812 | one does not have to build two kernels. Same kernel can be used | ||
| 813 | as production kernel and capture kernel. Above option should have | ||
| 814 | gone away after relocatable bzImage support is introduced. But it | ||
| 815 | is present because there are users out there who continue to use | ||
| 816 | vmlinux for dump capture. This option should go away down the | ||
| 817 | line. | ||
| 818 | |||
| 819 | Don't change this unless you know what you are doing. | ||
| 820 | |||
| 780 | config RELOCATABLE | 821 | config RELOCATABLE |
| 781 | bool "Build a relocatable kernel(EXPERIMENTAL)" | 822 | bool "Build a relocatable kernel(EXPERIMENTAL)" |
| 782 | depends on EXPERIMENTAL | 823 | depends on EXPERIMENTAL |
diff --git a/include/asm-i386/boot.h b/include/asm-i386/boot.h index 8ce79a6fa8..e7686d0a84 100644 --- a/include/asm-i386/boot.h +++ b/include/asm-i386/boot.h | |||
| @@ -13,7 +13,8 @@ | |||
| 13 | #define ASK_VGA 0xfffd /* ask for it at bootup */ | 13 | #define ASK_VGA 0xfffd /* ask for it at bootup */ |
| 14 | 14 | ||
| 15 | /* Physical address where kenrel should be loaded. */ | 15 | /* Physical address where kenrel should be loaded. */ |
| 16 | #define LOAD_PHYSICAL_ADDR ((0x100000 + CONFIG_PHYSICAL_ALIGN - 1) \ | 16 | #define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ |
| 17 | + (CONFIG_PHYSICAL_ALIGN - 1)) \ | ||
| 17 | & ~(CONFIG_PHYSICAL_ALIGN - 1)) | 18 | & ~(CONFIG_PHYSICAL_ALIGN - 1)) |
| 18 | 19 | ||
| 19 | #endif /* _LINUX_BOOT_H */ | 20 | #endif /* _LINUX_BOOT_H */ |
