Lines Matching +full:ia32 +full:- +full:3 +full:a
1 # SPDX-License-Identifier: GPL-2.0
4 bool "64-bit kernel" if "$(ARCH)" = "x86"
7 Say yes to build a 64-bit kernel - formerly known as x86_64
8 Say no to build a 32-bit kernel - formerly known as i386
13 # Options that are inherently 32-bit kernel only:
27 # Options that are inherently 64-bit kernel only:
55 # ported to 32-bit as well. )
154 # Word-size accesses may read uninitialized data past the trailing \0
336 default "elf32-i386" if X86_32
337 default "elf64-x86-64" if X86_64
426 default 3 if X86_PAE
431 …default $(success,$(srctree)/scripts/gcc-x86_64-has-stack-protector.sh $(CC) $(CLANG_FLAGS)) if 64…
432 default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC) $(CLANG_FLAGS))
436 the segment on 32-bit kernels.
441 bool "Symmetric multi-processing support"
444 a system with only one CPU, say N. If you have a system with more
447 If you say N here, the kernel will run on uni- and multiprocessor
448 machines, but will use only one CPU of a multiprocessor machine. If
450 uniprocessor machines. On a uniprocessor machine, the kernel
462 See also <file:Documentation/arch/x86/i386/IO-APIC.rst>,
463 <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
474 This allows 32-bit apic IDs (so it can support very large systems),
485 bool "Enable MSI and MSI-x delivery by posted interrupts"
540 bool "Support for extended (non-PC) x86 platforms"
548 for the following non-PC x86 platforms, depending on the value of
551 32-bit platforms (CONFIG_64BIT=n):
554 RDC R-321x SoC
556 STA2X11-based (e.g. Northville)
559 64-bit platforms (CONFIG_64BIT=y):
564 If you have one of these systems, or if you want to build a
565 generic distribution kernel, say Y here - otherwise say N.
578 Adds support for Numascale NumaChip large-SMP systems. Needed to
591 supposed to run on these EM64T-based machines. Only choose this option
644 Select to build a kernel capable of supporting Intel MID (Mobile
646 interfaces. If you are building for a PC class system say N here.
665 Say Y here if you have a Quark based system such as the Arduino
702 - BayTrail
703 - Braswell
704 - Quark
706 You should say Y if you are running a kernel on one of these SoC's.
715 state information for debug and analysis. As this is a general access
722 bool "RDC R-321x SoC"
728 This option is needed for RDC R-321x system-on-chip, also known
729 as R-8610-(G).
733 bool "Support non-standard 32-bit SMP architectures"
738 subarchitectures. It is intended for a generic binary
748 # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
749 # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
760 This adds support for boards based on the STA2X11 IO-Hub,
761 a.k.a. "ConneXt". The chip is used in place of the standard
771 to shut themselves down properly. A special I/O sequence is
781 prompt "Single-depth WCHAN output"
794 Say Y here to enable options for running Linux under various hyper-
808 under a hypervisor, potentially improving performance significantly
809 over full virtualization. However, when run without a hypervisor
816 bool "paravirt-ops debugging"
820 a paravirt_op is missing when it is called.
826 Paravirtualized spinlocks allow a pvops backend to replace the
827 spinlock implementation with something virtualization-friendly
830 It has a minimal impact on native kernels and gives a nice performance
849 hypervisor. It includes a paravirtualized clock, so that instead
850 of relying on a PIT (or probably other) emulation by the
873 that, there can be a small performance impact.
881 bool "Jailhouse non-root cell support"
885 This option allows to run Linux as guest in a Jailhouse non-root
895 a flexible, lightweight reference open-source hypervisor, built with
896 real-time and safety-criticality in mind. It is built for embedded
897 IOT with small footprint and real-time features. More details can be
901 bool "Intel TDX (Trust Domain Extensions) - Guest Support"
911 Support running as a guest under Intel TDX. Without this support,
926 Use the IA-PC HPET (High Precision Event Timer) to manage
927 time in preference to the PIT and RTC, if a HPET is
930 The HPET provides a stable time base on SMP
932 as it is off-chip. The interface used is documented
963 Provides a driver for older AMD Athlon64/Opteron/Turion/Sempron
966 The GART supports full DMA access for devices with 32-bit access
967 limitations, on systems with more than 3 GB. This is usually needed
970 Newer systems typically have a modern AMD IOMMU, supported via
974 there's more than 3 GB of memory and the system contains a
975 32-bit limited device.
1000 # The ranges are different on 32-bit and 64-bit kernels, depending on
1061 Cluster usually means a couple of CPUs which are placed closely
1062 by sharing mid-level caches, last-level cache tags or internal
1070 prompt "Multi-core scheduler support"
1073 Multi-core scheduler support improves the CPU scheduler's decision
1074 making when dealing with multi-core CPU chips at a cost of slightly
1085 Intel Turbo Boost Max Technology 3.0 enabled CPUs have a
1108 A local APIC (Advanced Programmable Interrupt Controller) is an
1109 integrated interrupt controller in the CPU. If you have a single-CPU
1110 system which has a processor with a local APIC, you can say Y here to
1112 have a local APIC, then the kernel will still run with no slowdown at
1113 all. The local APIC supports CPU-generated self-interrupts (timer,
1118 bool "IO-APIC support on uniprocessors"
1121 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
1122 SMP-capable replacement for PC-style interrupt controllers. Most
1125 If you have a single-CPU system with an IO-APIC, you can say Y here
1127 an IO-APIC, then the kernel will still run with no slowdown at all.
1149 This option enables a workaround that fixes a source of
1154 Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
1155 entry in the chipset's IO-APIC is masked (as, e.g. the RT
1174 kernel if it detects a problem (e.g. overheating, data corruption).
1219 If you don't know what a machine check is and you don't do kernel
1229 mode, which is an 80286-era approximation of 16-bit real mode.
1237 a 16-bit DOS program where 16-bit performance matters, vm86
1241 Note that any app that works on a 64-bit kernel is unlikely to
1242 need this option, as 64-bit kernels don't, and can't, support
1243 V8086 mode. This option is also unrelated to 16-bit protected
1244 mode and is not needed to run most 16-bit programs under Wine.
1247 and slows down exception handling a tiny bit.
1256 bool "Enable support for 16-bit segments" if EXPERT
1260 This option is required by programs like Wine to run 16-bit
1263 plus 16K runtime memory on x86-64,
1280 that it will also disable the helpful warning if a program
1281 tries to use a vsyscall. With this option set to N, offending
1313 This adds a driver to safely access the System Management Mode of
1314 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
1315 not work on models with a Phoenix BIOS. The System Management Mode
1322 Say Y if you intend to run this kernel on a Toshiba portable.
1332 this config is intended, is when reboot ends with a stalled/hung
1336 CS5530A and CS5536 chipsets and the RDC R-321x SoC.
1357 is a tricky business and should be avoided if possible. Just the sequence
1371 in use features, newer microcode patches have a minimum revision field
1384 tristate "/dev/cpu/*/msr - Model-specific register support"
1387 Model-Specific Registers (MSRs). It is a character device with
1389 MSR accesses are directed to a specific CPU on multi-processor
1393 tristate "/dev/cpu/*/cpuid - CPU information support"
1396 be executed on a specific processor. It is a character device
1409 However, the address space of 32-bit x86 processors is only 4
1410 Gigabytes large. That means that, if you have a large amount of
1415 If you are compiling a kernel which will never run on a machine with
1417 choice and suitable for most users). This will result in a "3GB/1GB"
1418 split: 3GB are mapped so that each process sees a 3GB virtual memory
1428 PAE implements 3-level paging on IA32 processors. PAE is fully
1434 auto detected or can be forced by using a kernel command line option
1444 Select this if you have a 32-bit processor and between 1 and 4
1452 Select this if you have a 32-bit processor and more than 4
1466 as "high memory". Accessing high memory is a little more costly
1470 tighter. Selecting anything other than the default 3G/1G split
1471 will also likely make your kernel incompatible with binary-only
1478 bool "3G/1G user/kernel split"
1481 bool "3G/1G user/kernel split (for full 1G low memory)"
1488 bool "1G/3G user/kernel split"
1511 larger swapspace support for non-overcommit purposes. It
1516 bool "Enable 5-level page tables support"
1522 5-level paging enables access to larger address space:
1528 A kernel with the option enabled can be booted on machines that
1529 support 4- or 5-level paging.
1531 See Documentation/arch/x86/x86_64/5level-paging.rst for more
1583 Enable NUMA (Non-Uniform Memory Access) support.
1585 The kernel will try to allocate memory used by a CPU on the
1589 For 64-bit this is recommended if the system is Intel Core i7
1592 For 32-bit this is only needed if you boot a 32-bit
1593 kernel on a 64-bit NUMA platform.
1603 you have a multi processor AMD system. This uses an old method to
1617 int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
1621 default "3"
1648 This option enables a sysfs memory/probe interface for testing.
1649 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1665 tristate "Support non-standard NVDIMMs and ADR protected memory"
1672 Treat memory marked using the non-standard e820 type of 12 as used
1673 by the Intel Sandy Bridge-EP reference BIOS as protected memory.
1680 bool "Allocate 3rd-level pagetables from highmem"
1684 For systems with a lot of RAM, this can be wasteful of precious
1685 low memory. Setting this option will put user-space page table
1698 Documentation/admin-guide/kernel-parameters.rst to adjust this.
1701 almost no overhead, as it reserves a relatively small amount
1705 It is, however, intended as a diagnostic tool; if repeatable
1706 BIOS-originated corruption always affects the same memory,
1723 Linux can emulate a math coprocessor (used for floating point
1725 a math coprocessor built in, 486SX and 386 do not, unless you added
1726 a 487DX or 387, respectively. (The messages during boot time can
1727 give you some hints here ["man dmesg"].) Everyone needs either a
1730 If you don't have a math coprocessor, you need to say Y here; if you
1731 say Y here even though you have a coprocessor, the coprocessor will
1736 boot time.) This means that it is a good idea to say Y here if you
1740 emulation can be found in <file:arch/x86/math-emu/README>.
1742 If you are not sure, say Y; apart from resulting in a 66 KB bigger
1752 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1753 allows bus write transfers to be combined into a larger transfer
1755 of image write operations 2.5 times or more. Saying Y here creates a
1759 This code has a reasonably generic interface so that similar
1764 Registers (ARRs) which provide a similar functionality to MTRRs. For
1766 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1768 write-combining. All of these processors are supported by this code
1771 Saying Y here also fixes a problem with buggy SMP BIOSes which only
1789 The largest mtrr entry size for a continuous block can be set with
1795 int "MTRR cleanup enable value (0-1)"
1803 int "MTRR cleanup spare reg num (0-7)"
1823 spontaneous reboots) or a non-working video driver.
1831 User Mode Instruction Prevention (UMIP) is a security feature in
1832 some x86 processors. If enabled, a general protection fault is
1839 specific cases in protected and virtual-8086 modes. Emulated
1846 # https://github.com/llvm/llvm-project/commit/e0b89df2e0f0130881bf6c39bf31d7f6aac00e0f
1847 # https://github.com/llvm/llvm-project/commit/dfcf69770bc522b9e411c66454934a37c1f35332
1848 def_bool ((CC_IS_GCC && $(cc-option, -fcf-protection=branch -mindirect-branch-register)) || \
1850 $(as-instr,endbr64)
1861 # https://github.com/llvm/llvm-project/commit/9d7001eba9c4cb311e03cd8cdc231f9e579f2d0f
1866 Build the kernel with support for Indirect Branch Tracking, a
1867 hardware support course-grain forward-edge Control Flow Integrity
1882 # Note: only available in 64-bit mode
1887 Memory Protection Keys provides a mechanism for enforcing
1888 page-based protections, but without requiring modification of the
1891 For details, see Documentation/core-api/protection-keys.rst
1906 can lead to a noticeable performance boost.
1919 and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
1929 TSX is disabled if possible - equals to tsx=off command line parameter.
1934 TSX is always enabled on TSX capable HW - equals the tsx=on command
1941 side channel attacks- equals the tsx=auto command line parameter.
1953 Intel(R) Software Guard eXtensions (SGX) is a set of CPU instructions
1970 Shadow stack protection is a hardware feature that detects function
2013 resultant kernel should continue to boot on existing non-EFI
2021 This kernel feature allows a bzImage to be loaded directly
2022 by EFI firmware without the use of a bootloader.
2024 See Documentation/admin-guide/efi-stub.rst for more information.
2033 EFI stub. This is a practice that has no basis in the UEFI
2034 specification, and requires a priori knowledge on the part of the
2044 bool "EFI mixed-mode support"
2047 Enabling this feature allows a 64-bit kernel to be booted
2048 on a 32-bit firmware, provided that your CPU supports 64-bit
2051 Note that it is not possible to boot a mixed-mode enabled
2052 kernel via the EFI boot stub - a bootloader that supports
2061 Export EFI runtime memory regions to /sys/firmware/efi/runtime-map.
2065 See also Documentation/ABI/testing/sysfs-firmware-efi-runtime-map.
2120 as now bzImage can be compiled as a completely relocatable image
2121 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
2123 to use a bzImage for capturing the crash dump and want to use a
2124 vmlinux instead. vmlinux is not relocatable hence a kernel needs
2125 to be specifically compiled to run from a specific memory area
2126 (normally a reserved region) and this option comes handy.
2134 command line boot parameter passed to the panic-ed
2135 kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
2149 bool "Build a relocatable kernel"
2152 This builds a kernel image that retains relocation information
2158 must live at a different physical address than the primary
2173 image is mapped, as a security feature that deters exploit
2177 On 64-bit, the kernel physical and virtual addresses are
2184 On 32-bit, the kernel physical and virtual addresses are
2193 2GB addressing, and that PHYSICAL_ALIGN must be at a
2194 minimum of 2MB. As a result, only 10 bits of entropy are
2215 If bootloader loads the kernel at a non-aligned address and
2219 If bootloader loads the kernel at a non-aligned address and
2224 end result is that kernel runs from a physical address meeting
2227 On 32-bit this value must be a multiple of 0x2000. On 64-bit
2228 this value must be a multiple of 0x200000.
2277 to 64-bit linear addresses, allowing software to use of the
2289 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
2293 presented with a 32-bit vDSO that is not mapped at the address
2297 and fixed by 3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a and
2298 49ad572a70b8aeb91e57483a11dd1b77e31c4468. Glibc 2.3.3 is
2300 contains a buggy "glibc 2.3.2".
2303 dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
2306 option from 1 to 0, which turns off the 32-bit vDSO entirely.
2310 are unlikely to be using a buggy version of glibc.
2327 On a system with recent enough glibc (2.14 or newer) and no
2328 static binaries, you can say None without a performance penalty
2341 certain uses of the vsyscall area as an ASLR-bypassing
2356 bool "Built-in kernel command line"
2368 Systems with fully functional boot loaders (i.e. non-embedded)
2372 string "Built-in kernel command string"
2377 image and used at boot time. If the boot loader provides a
2384 In most cases, the command line (whether built-in or provided
2389 bool "Built-in command line overrides boot loader arguments"
2393 command line, and use ONLY the built-in command line.
2402 Linux can allow user programs to install a per-process x86
2404 call. This is required to run 16-bit or segmented code such as
2408 Enabling this feature adds a small amount of overhead to
2409 context switches and increases the low-level kernel attack
2418 For historical reasons MINSIGSTKSZ is a constant which became
2419 already too small with AVX512 support. Add a mechanism to
2425 allocate a too small sigaltstack but 'work' because they
2426 never get a signal delivered.
2452 def_bool $(success,echo 'int __seg_fs fs; int __seg_gs gs;' | $(CC) -x c - -S -o /dev/null)
2456 # -fsanitize=kernel-address (KASAN) and -fsanitize=thread (KCSAN)
2471 def_bool $(cc-option,-mharden-sls=all)
2474 def_bool $(cc-option,-mfunction-return=thunk-extern)
2477 def_bool $(cc-option,-fpatchable-function-entry=16,16)
2484 default 3 if FUNCTION_ALIGNMENT_8B
2487 # Basically: FUNCTION_ALIGNMENT - 5*CFI_CLANG
2549 kernel-to-user data leaks by avoiding speculative indirect
2550 branches. Requires a compiler with -mindirect-branch=thunk-extern
2554 bool "Enable return-thunks"
2559 Compile the kernel with the return-thunks compiler option to guard
2560 against kernel-to-user data leaks by avoiding return speculation.
2561 Requires a compiler with -mfunction-return=thunk-extern
2579 SKL Return-Stack-Buffer (RSB) underflow issue. The mitigation is off
2581 retbleed=stuff option. For non-affected systems the overhead of this
2582 option is marginal as the call depth tracking is using run-time
2583 generated call thunks in a compiler generated padding area and call
2585 this space is unused. On affected SKL systems this results in a
2595 a noisy dmesg about callthunks generation and call patching for
2597 kernel command line with 'debug-callthunks'.
2599 creates a noticeable runtime overhead. If unsure say N.
2607 spec_rstack_overflow={ibpb,ibpb-vmexit} mitigations.
2623 Enable the SRSO mitigation needed on AMD Zen1-4 machines.
2626 bool "Mitigate Straight-Line-Speculation"
2631 Compile the kernel with straight-line-speculation options to guard
2640 Enable mitigation for Gather Data Sampling (GDS). GDS is a hardware
2651 RFDS is a hardware vulnerability which affects Intel Atom CPUs. It
2654 See also <file:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst>
2657 bool "Mitigate Spectre-BHB (Branch History Injection)"
2661 Enable BHI mitigations. BHI attacks are a form of Spectre V2 attacks
2664 See <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2672 a hardware vulnerability which allows unprivileged speculative access
2674 See also <file:Documentation/admin-guide/hw-vuln/mds.rst>
2681 Enable mitigation for TSX Asynchronous Abort (TAA). TAA is a hardware
2685 See also <file:Documentation/admin-guide/hw-vuln/tsx_async_abort.rst>
2693 Stale Data Vulnerabilities are a class of memory-mapped I/O (MMIO)
2697 <file:Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst>
2704 Mitigate L1 Terminal Fault (L1TF) hardware bug. L1 Terminal Fault is a
2707 See <file:Documentation/admin-guide/hw-vuln/l1tf.rst
2715 with Return Instructions) vulnerability. RETBleed is a speculative
2726 Enable mitigation for Spectre V1 (Bounds Check Bypass). Spectre V1 is a
2730 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2737 V2 is a class of side channel attacks that takes advantage of
2740 victim to gadget code by poisoning the branch target buffer of a CPU
2742 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2750 SRBDS is a hardware vulnerability that allows Microarchitectural Data
2756 <file:Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst>
2762 Enable mitigation for Speculative Store Bypass (SSB). SSB is a
2764 of speculative execution in a similar way to the Meltdown and Spectre
2791 APM is a BIOS specification for saving power using several different
2794 reset after a RESUME operation, the /proc/apm device will provide
2795 battery status information, and user-space programs will receive
2805 and more information, read <file:Documentation/power/apm-acpi.rst>
2806 and the Battery Powered Linux mini-HOWTO, available from
2811 VESA-compliant "green" monitors.
2818 Generally, if you don't have a battery in your machine, there isn't
2830 3) switch on floating point emulation in the kernel and pass
2838 9) install a fan for the video card or exchange video RAM
2839 10) install a better fan for the CPU
2843 To compile this driver as a module, choose M here: the
2851 This option will ignore USER SUSPEND requests. On machines with a
2853 series notebooks, it is necessary to say Y because of a BIOS bug.
2863 feature is turned off -- see "Do CPU IDLE calls", below). This
2868 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
2878 a slowed CPU clock rate, when the machine is idle. These idle calls
2880 333 mS). On some machines, this will cause a hang at boot time or
2892 do with your VESA-compliant power-saving monitor. Further, this
2893 option doesn't work for all laptops -- it might not turn off your
2894 backlight at all, or it might print a lot of errors to the console,
2901 the APM BIOS as a measure to lessen the effects of a badly behaving
2903 needs to. Unfortunately, some BIOSes do not -- especially those in
2927 PCI-based systems don't have any BIOS at all. Linux can also try to
2948 bool "OLPC XO-1"
2960 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
3002 architectures -- if your target machine is modern, it probably does
3007 # x86_64 have no ISA slots, but can have ISA-style DMA.
3009 bool "ISA-style DMA support" if (X86_64 && EXPERT)
3012 Enables ISA-style DMA support for devices requiring such controllers.
3021 name of a bus system, i.e. the way the CPU talks to the other stuff
3031 PCI-IDs of several on-chip devices, so its a good dependency
3034 If compiled as a module, the driver is named scx200.
3037 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
3041 This driver provides a clocksource built upon the on-chip
3042 27MHz high-resolution timer. Its also a workaround for
3043 NSC Geode SC-1100's buggy TSC, which loses time when the
3060 bool "OLPC XO-1 Power Management"
3063 Add support for poweroff and suspend of the OLPC XO-1 laptop.
3066 bool "OLPC XO-1 Real Time Clock"
3069 Add support for the XO-1 real time clock, which can be used as a
3073 bool "OLPC XO-1 SCI extras"
3078 Add support for SCI-based features of the OLPC XO-1 laptop:
3079 - EC-driven system wakeups
3080 - Power button
3081 - Ebook switch
3082 - Lid switch
3083 - AC adapter status updates
3084 - Battery status updates
3087 bool "OLPC XO-1.5 SCI extras"
3091 Add support for SCI-based features of the OLPC XO-1.5 laptop:
3092 - EC-driven system wakeups
3093 - AC adapter status updates
3094 - Battery status updates
3106 ALIX2/3/6 boards. However, other system specific setup should
3130 bool "Technologic Systems TS-5500 platform support"
3136 This option enables system support for the Technologic Systems TS-5500.
3153 bool "IA32 Emulation"
3159 Include code to run legacy 32-bit programs under a
3160 64-bit kernel. You should likely turn this on, unless you're
3161 100% sure that you don't have any 32-bit programs left.
3164 bool "IA32 emulation disabled by default"
3168 Make IA32 emulation disabled by default. This prevents loading 32-bit
3169 processes and access to 32-bit syscalls. If unsure, leave it to its
3173 bool "x32 ABI for 64-bit mode"
3175 # llvm-objcopy does not convert x86_64 .note.gnu.property or
3179 depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
3181 Include code to run binaries for the x32 native 32-bit ABI
3182 for 64-bit processors. An x32 process gets access to the
3183 full 64-bit register file and wide data path while leaving