diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-05-11 19:12:16 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-05-11 20:45:05 -0400 |
commit | ceefccc93932b920a8ec6f35f596db05202a12fe (patch) | |
tree | 5def2c91f78186e944c23ba1d1b3e0741382b180 /arch/x86/Kconfig | |
parent | d297366ba692faf1f0384811a6ff0b20c3470b1b (diff) |
x86: default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN to 16 MB
Default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN each to 16 MB,
so that both non-relocatable and relocatable kernels are loaded at
16 MB by a non-relocating bootloader. This is somewhat hacky, but it
appears to be the only way to do this that does not break some some
set of existing bootloaders.
We want to avoid the bottom 16 MB because of large page breakup,
memory holes, and ZONE_DMA. Embedded systems may need to reduce this,
or update their bootloaders to be aware of the new min_alignment field.
[ Impact: performance improvement, avoids problems on some systems ]
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r-- | arch/x86/Kconfig | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5aee45356b58..50fbb47f5295 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -1455,9 +1455,7 @@ config KEXEC_JUMP | |||
1455 | 1455 | ||
1456 | config PHYSICAL_START | 1456 | config PHYSICAL_START |
1457 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) | 1457 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) |
1458 | default "0x1000000" if X86_NUMAQ | 1458 | default "0x1000000" |
1459 | default "0x200000" if X86_64 | ||
1460 | default "0x100000" | ||
1461 | ---help--- | 1459 | ---help--- |
1462 | This gives the physical address where the kernel is loaded. | 1460 | This gives the physical address where the kernel is loaded. |
1463 | 1461 | ||
@@ -1476,15 +1474,15 @@ config PHYSICAL_START | |||
1476 | to be specifically compiled to run from a specific memory area | 1474 | to be specifically compiled to run from a specific memory area |
1477 | (normally a reserved region) and this option comes handy. | 1475 | (normally a reserved region) and this option comes handy. |
1478 | 1476 | ||
1479 | So if you are using bzImage for capturing the crash dump, leave | 1477 | So if you are using bzImage for capturing the crash dump, |
1480 | the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y. | 1478 | leave the value here unchanged to 0x1000000 and set |
1481 | Otherwise if you plan to use vmlinux for capturing the crash dump | 1479 | CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux |
1482 | change this value to start of the reserved region (Typically 16MB | 1480 | for capturing the crash dump change this value to start of |
1483 | 0x1000000). In other words, it can be set based on the "X" value as | 1481 | the reserved region. In other words, it can be set based on |
1484 | specified in the "crashkernel=YM@XM" command line boot parameter | 1482 | the "X" value as specified in the "crashkernel=YM@XM" |
1485 | passed to the panic-ed kernel. Typically this parameter is set as | 1483 | command line boot parameter passed to the panic-ed |
1486 | crashkernel=64M@16M. Please take a look at | 1484 | kernel. Please take a look at Documentation/kdump/kdump.txt |
1487 | Documentation/kdump/kdump.txt for more details about crash dumps. | 1485 | for more details about crash dumps. |
1488 | 1486 | ||
1489 | Usage of bzImage for capturing the crash dump is recommended as | 1487 | Usage of bzImage for capturing the crash dump is recommended as |
1490 | one does not have to build two kernels. Same kernel can be used | 1488 | one does not have to build two kernels. Same kernel can be used |
@@ -1521,9 +1519,8 @@ config X86_NEED_RELOCS | |||
1521 | config PHYSICAL_ALIGN | 1519 | config PHYSICAL_ALIGN |
1522 | hex | 1520 | hex |
1523 | prompt "Alignment value to which kernel should be aligned" if X86_32 | 1521 | prompt "Alignment value to which kernel should be aligned" if X86_32 |
1524 | default "0x100000" if X86_32 | 1522 | default "0x1000000" |
1525 | default "0x200000" if X86_64 | 1523 | range 0x2000 0x1000000 |
1526 | range 0x2000 0x400000 | ||
1527 | ---help--- | 1524 | ---help--- |
1528 | This value puts the alignment restrictions on physical address | 1525 | This value puts the alignment restrictions on physical address |
1529 | where kernel is loaded and run from. Kernel is compiled for an | 1526 | where kernel is loaded and run from. Kernel is compiled for an |