0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 menu "UML-specific options"
0004
0005 config UML
0006 bool
0007 default y
0008 select ARCH_EPHEMERAL_INODES
0009 select ARCH_HAS_GCOV_PROFILE_ALL
0010 select ARCH_HAS_KCOV
0011 select ARCH_HAS_STRNCPY_FROM_USER
0012 select ARCH_HAS_STRNLEN_USER
0013 select ARCH_NO_PREEMPT
0014 select HAVE_ARCH_AUDITSYSCALL
0015 select HAVE_ARCH_KASAN if X86_64
0016 select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
0017 select HAVE_ARCH_SECCOMP_FILTER
0018 select HAVE_ASM_MODVERSIONS
0019 select HAVE_UID16
0020 select HAVE_DEBUG_KMEMLEAK
0021 select HAVE_DEBUG_BUGVERBOSE
0022 select NO_DMA if !UML_DMA_EMULATION
0023 select OF_EARLY_FLATTREE if OF
0024 select GENERIC_IRQ_SHOW
0025 select GENERIC_CPU_DEVICES
0026 select HAVE_GCC_PLUGINS
0027 select TRACE_IRQFLAGS_SUPPORT
0028 select TTY # Needed for line.c
0029 select HAVE_ARCH_VMAP_STACK
0030
0031 config MMU
0032 bool
0033 default y
0034
0035 config UML_DMA_EMULATION
0036 bool
0037
0038 config NO_IOMEM
0039 bool "disable IOMEM" if EXPERT
0040 depends on !INDIRECT_IOMEM
0041 default y
0042
0043 config UML_IOMEM_EMULATION
0044 bool
0045 select INDIRECT_IOMEM
0046 select GENERIC_PCI_IOMAP
0047 select GENERIC_IOMAP
0048 select NO_GENERIC_PCI_IOPORT_MAP
0049
0050 config NO_IOPORT_MAP
0051 def_bool y
0052
0053 config ISA
0054 bool
0055
0056 config SBUS
0057 bool
0058
0059 config LOCKDEP_SUPPORT
0060 bool
0061 default y
0062
0063 config STACKTRACE_SUPPORT
0064 bool
0065 default y
0066 select STACKTRACE
0067
0068 config GENERIC_CALIBRATE_DELAY
0069 bool
0070 default y
0071
0072 config HZ
0073 int
0074 default 100
0075
0076 config NR_CPUS
0077 int
0078 range 1 1
0079 default 1
0080
0081 config ARCH_HAS_CACHE_LINE_SIZE
0082 def_bool y
0083
0084 source "arch/$(HEADER_ARCH)/um/Kconfig"
0085
0086 config MAY_HAVE_RUNTIME_DEPS
0087 bool
0088
0089 config STATIC_LINK
0090 bool "Force a static link"
0091 depends on CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS || !MAY_HAVE_RUNTIME_DEPS
0092 help
0093 This option gives you the ability to force a static link of UML.
0094 Normally, UML is linked as a shared binary. This is inconvenient for
0095 use in a chroot jail. So, if you intend to run UML inside a chroot,
0096 you probably want to say Y here.
0097 Additionally, this option enables using higher memory spaces (up to
0098 2.75G) for UML.
0099
0100 NOTE: This option is incompatible with some networking features which
0101 depend on features that require being dynamically loaded (like NSS).
0102
0103 config LD_SCRIPT_STATIC
0104 bool
0105 default y
0106 depends on STATIC_LINK
0107
0108 config LD_SCRIPT_DYN
0109 bool
0110 default y
0111 depends on !LD_SCRIPT_STATIC
0112
0113 config LD_SCRIPT_DYN_RPATH
0114 bool "set rpath in the binary" if EXPERT
0115 default y
0116 depends on LD_SCRIPT_DYN
0117 help
0118 Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
0119 explicitly.
0120
0121 You may need to turn this off if compiling for nix systems
0122 that have their libraries in random /nix directories and
0123 might otherwise unexpected use libraries from /lib or /lib64
0124 instead of the desired ones.
0125
0126 config HOSTFS
0127 tristate "Host filesystem"
0128 help
0129 While the User-Mode Linux port uses its own root file system for
0130 booting and normal file access, this module lets the UML user
0131 access files stored on the host. It does not require any
0132 network connection between the Host and UML. An example use of
0133 this might be:
0134
0135 mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
0136
0137 where /tmp/fromhost is an empty directory inside UML and
0138 /tmp/umlshare is a directory on the host with files the UML user
0139 wishes to access.
0140
0141 For more information, see
0142 <http://user-mode-linux.sourceforge.net/hostfs.html>.
0143
0144 If you'd like to be able to work with files stored on the host,
0145 say Y or M here; otherwise say N.
0146
0147 config MCONSOLE
0148 bool "Management console"
0149 depends on PROC_FS
0150 default y
0151 help
0152 The user mode linux management console is a low-level interface to
0153 the kernel, somewhat like the i386 SysRq interface. Since there is
0154 a full-blown operating system running under every user mode linux
0155 instance, there is much greater flexibility possible than with the
0156 SysRq mechanism.
0157
0158 If you answer 'Y' to this option, to use this feature, you need the
0159 mconsole client (called uml_mconsole) which is present in CVS in
0160 2.4.5-9um and later (path /tools/mconsole), and is also in the
0161 distribution RPM package in 2.4.6 and later.
0162
0163 It is safe to say 'Y' here.
0164
0165 config MAGIC_SYSRQ
0166 bool "Magic SysRq key"
0167 depends on MCONSOLE
0168 help
0169 If you say Y here, you will have some control over the system even
0170 if the system crashes for example during kernel debugging (e.g., you
0171 will be able to flush the buffer cache to disk, reboot the system
0172 immediately or dump some status information). A key for each of the
0173 possible requests is provided.
0174
0175 This is the feature normally accomplished by pressing a key
0176 while holding SysRq (Alt+PrintScreen).
0177
0178 On UML, this is accomplished by sending a "sysrq" command with
0179 mconsole, followed by the letter for the requested command.
0180
0181 The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y
0182 unless you really know what this hack does.
0183
0184 config KERNEL_STACK_ORDER
0185 int "Kernel stack size order"
0186 default 2 if 64BIT
0187 range 2 10 if 64BIT
0188 default 1 if !64BIT
0189 help
0190 This option determines the size of UML kernel stacks. They will
0191 be 1 << order pages. The default is OK unless you're running Valgrind
0192 on UML, in which case, set this to 3.
0193 It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on
0194 older (pre-2017) CPUs. It is not recommended on newer CPUs due to the
0195 increase in the size of the state which needs to be saved when handling
0196 signals.
0197
0198 config MMAPPER
0199 tristate "iomem emulation driver"
0200 help
0201 This driver allows a host file to be used as emulated IO memory inside
0202 UML.
0203
0204 config PGTABLE_LEVELS
0205 int
0206 default 3 if 3_LEVEL_PGTABLES
0207 default 2
0208
0209 config UML_TIME_TRAVEL_SUPPORT
0210 bool
0211 prompt "Support time-travel mode (e.g. for test execution)"
0212 # inf-cpu mode is incompatible with the benchmarking
0213 depends on !RAID6_PQ_BENCHMARK
0214 depends on !SMP
0215 help
0216 Enable this option to support time travel inside the UML instance.
0217
0218 After enabling this option, two modes are accessible at runtime
0219 (selected by the kernel command line), see the kernel's command-
0220 line help for more details.
0221
0222 It is safe to say Y, but you probably don't need this.
0223
0224 config KASAN_SHADOW_OFFSET
0225 hex
0226 depends on KASAN
0227 default 0x100000000000
0228 help
0229 This is the offset at which the ~16TB of shadow memory is
0230 mapped and used by KASAN for memory debugging. This can be any
0231 address that has at least KASAN_SHADOW_SIZE (total address space divided
0232 by 8) amount of space so that the KASAN shadow memory does not conflict
0233 with anything. The default is 0x100000000000, which works even if mem is
0234 set to a large value. On low-memory systems, try 0x7fff8000, as it fits
0235 into the immediate of most instructions, improving performance.
0236
0237 endmenu
0238
0239 source "arch/um/drivers/Kconfig"
0240
0241 config ARCH_SUSPEND_POSSIBLE
0242 def_bool y
0243
0244 source "kernel/power/Kconfig"