mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-20 00:11:22 +00:00
54ae36f24b
The calculation of CONFIG_STUB_CODE and CONFIG_STUB_DATA didn't take into account anything but 3G/1G and 2G/2G, leaving the other vmsplits out in the cold. I'd rather not duplicate the four known host vmsplit cases for each of these symbols. I'd also like to calculate them based on the highest userspace address. The Kconfig language seems not to allow calculation of hex constants, so I moved this to as-layout.h. CONFIG_STUB_CODE, CONFIG_STUB_DATA, and CONFIG_STUB_START are now gone. In their place are STUB_CODE, STUB_DATA, and STUB_START in as-layout.h. i386 and x86_64 seem to differ as to whether an unadorned constant is an int or a long, so I cast them to unsigned long so they can be printed consistently. However, they are also used in stub.S, where C types don't work so well. So, there are ASM_ versions of these constants for use in stub.S. I also ifdef-ed the non-asm-friendly portion of as-layout.h. With this in place, most of the rest of this patch is changing CONFIG_STUB_* to STUB_*, except in stub.S, where they are changed to ASM_STUB_*. defconfig has the old symbols deleted. I also print these addresses out in case there is any problem mapping them on the host. The two stub.S files had some trailing whitespace, so that is cleaned up here. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
menu "Host processor type and features"
|
|
|
|
source "arch/i386/Kconfig.cpu"
|
|
|
|
endmenu
|
|
|
|
config UML_X86
|
|
bool
|
|
default y
|
|
|
|
config 64BIT
|
|
bool
|
|
default n
|
|
|
|
config SEMAPHORE_SLEEPERS
|
|
bool
|
|
default y
|
|
|
|
choice
|
|
prompt "Host memory split"
|
|
default HOST_VMSPLIT_3G
|
|
help
|
|
This is needed when the host kernel on which you run has a non-default
|
|
(like 2G/2G) memory split, instead of the customary 3G/1G. If you did
|
|
not recompile your own kernel but use the default distro's one, you can
|
|
safely accept the "Default split" option.
|
|
|
|
It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via
|
|
CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck
|
|
patchset by Con Kolivas, or other ones) - option names match closely the
|
|
host CONFIG_VM_SPLIT_* ones.
|
|
|
|
A lower setting (where 1G/3G is lowest and 3G/1G is higher) will
|
|
tolerate even more "normal" host kernels, but an higher setting will be
|
|
stricter.
|
|
|
|
So, if you do not know what to do here, say 'Default split'.
|
|
|
|
config HOST_VMSPLIT_3G
|
|
bool "Default split (3G/1G user/kernel host split)"
|
|
config HOST_VMSPLIT_3G_OPT
|
|
bool "3G/1G user/kernel host split (for full 1G low memory)"
|
|
config HOST_VMSPLIT_2G
|
|
bool "2G/2G user/kernel host split"
|
|
config HOST_VMSPLIT_1G
|
|
bool "1G/3G user/kernel host split"
|
|
endchoice
|
|
|
|
config TOP_ADDR
|
|
hex
|
|
default 0xB0000000 if HOST_VMSPLIT_3G_OPT
|
|
default 0x78000000 if HOST_VMSPLIT_2G
|
|
default 0x40000000 if HOST_VMSPLIT_1G
|
|
default 0xC0000000
|
|
|
|
config 3_LEVEL_PGTABLES
|
|
bool "Three-level pagetables (EXPERIMENTAL)"
|
|
default n
|
|
depends on EXPERIMENTAL
|
|
help
|
|
Three-level pagetables will let UML have more than 4G of physical
|
|
memory. All the memory that can't be mapped directly will be treated
|
|
as high memory.
|
|
|
|
However, this it experimental on 32-bit architectures, so if unsure say
|
|
N (on x86-64 it's automatically enabled, instead, as it's safe there).
|
|
|
|
config ARCH_HAS_SC_SIGNALS
|
|
bool
|
|
default y
|
|
|
|
config ARCH_REUSE_HOST_VSYSCALL_AREA
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|