162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_cimenu "Host processor type and features"
462306a36Sopenharmony_ci
562306a36Sopenharmony_cisource "arch/x86/Kconfig.cpu"
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciendmenu
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciconfig UML_X86
1062306a36Sopenharmony_ci	def_bool y
1162306a36Sopenharmony_ci	select ARCH_BINFMT_ELF_EXTRA_PHDRS if X86_32
1262306a36Sopenharmony_ci	select DCACHE_WORD_ACCESS
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig 64BIT
1562306a36Sopenharmony_ci	bool "64-bit kernel" if "$(SUBARCH)" = "x86"
1662306a36Sopenharmony_ci	default "$(SUBARCH)" != "i386"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciconfig X86_32
1962306a36Sopenharmony_ci	def_bool !64BIT
2062306a36Sopenharmony_ci	select ARCH_32BIT_OFF_T
2162306a36Sopenharmony_ci	select ARCH_WANT_IPC_PARSE_VERSION
2262306a36Sopenharmony_ci	select MODULES_USE_ELF_REL
2362306a36Sopenharmony_ci	select CLONE_BACKWARDS
2462306a36Sopenharmony_ci	select OLD_SIGSUSPEND3
2562306a36Sopenharmony_ci	select OLD_SIGACTION
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciconfig X86_64
2862306a36Sopenharmony_ci	def_bool 64BIT
2962306a36Sopenharmony_ci	select MODULES_USE_ELF_RELA
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig 3_LEVEL_PGTABLES
3262306a36Sopenharmony_ci	bool "Three-level pagetables" if !64BIT
3362306a36Sopenharmony_ci	default 64BIT
3462306a36Sopenharmony_ci	help
3562306a36Sopenharmony_ci	  Three-level pagetables will let UML have more than 4G of physical
3662306a36Sopenharmony_ci	  memory.  All the memory that can't be mapped directly will be treated
3762306a36Sopenharmony_ci	  as high memory.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	  However, this it experimental on 32-bit architectures, so if unsure say
4062306a36Sopenharmony_ci	  N (on x86-64 it's automatically enabled, instead, as it's safe there).
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig ARCH_HAS_SC_SIGNALS
4362306a36Sopenharmony_ci	def_bool !64BIT
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciconfig ARCH_REUSE_HOST_VSYSCALL_AREA
4662306a36Sopenharmony_ci	def_bool !64BIT
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciconfig GENERIC_HWEIGHT
4962306a36Sopenharmony_ci	def_bool y
50