247 lines
7.4 KiB
Plaintext
247 lines
7.4 KiB
Plaintext
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* CONFIG_CC_VERSION_TEXT (Do not delete this comment. See help in Kconfig) */
|
|
/*
|
|
*
|
|
* Automatically generated file; DO NOT EDIT.
|
|
* Linux/x86 5.11.6 Kernel Configuration
|
|
*
|
|
*/
|
|
/*
|
|
* The use of "&&" / "||" is limited in certain expressions.
|
|
* The following enable to calculate "and" / "or" with macro expansion only.
|
|
*/
|
|
/*
|
|
* Helper macros to use CONFIG_ options in C/CPP expressions. Note that
|
|
* these only work with boolean and tristate options.
|
|
*/
|
|
/*
|
|
* Getting something that works in C and CPP for an arg that may or may
|
|
* not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1"
|
|
* we match on the placeholder define, insert the "0," for arg1 and generate
|
|
* the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one).
|
|
* When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when
|
|
* the last step cherry picks the 2nd arg, we get a zero.
|
|
*/
|
|
/*
|
|
* IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
|
|
* otherwise. For boolean options, this is equivalent to
|
|
* IS_ENABLED(CONFIG_FOO).
|
|
*/
|
|
/*
|
|
* IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0
|
|
* otherwise.
|
|
*/
|
|
/*
|
|
* IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled
|
|
* code can call a function defined in code compiled based on CONFIG_FOO.
|
|
* This is similar to IS_ENABLED(), but returns false when invoked from
|
|
* built-in code when CONFIG_FOO is set to 'm'.
|
|
*/
|
|
/*
|
|
* IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
|
|
* 0 otherwise.
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* realmode.lds.S
|
|
*
|
|
* Linker script for the real-mode code
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/* const.h: Macros for dealing with constants. */
|
|
/* Some constant macros are used in both assembler and
|
|
* C code. Therefore we cannot annotate them always with
|
|
* 'UL' and other type specifiers unilaterally. We
|
|
* use the following macros to deal with this.
|
|
*
|
|
* Similarly, _AT() will cast an expression with a type in C, but
|
|
* leave it unchanged in asm.
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* int-ll64 is used everywhere now.
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* asm-generic/int-ll64.h
|
|
*
|
|
* Integer declarations for architectures which use "long long"
|
|
* for 64-bit types.
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* asm-generic/int-ll64.h
|
|
*
|
|
* Integer declarations for architectures which use "long long"
|
|
* for 64-bit types.
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* There seems to be no way of detecting this automatically from user
|
|
* space, so 64 bit architectures should override this in their
|
|
* bitsperlong.h. In particular, an architecture that supports
|
|
* both 32 and 64 bit user space must not rely on CONFIG_64BIT
|
|
* to decide it, but rather check a compiler provided macro.
|
|
*/
|
|
/*
|
|
* FIXME: The check currently breaks x86-64 build, so it's
|
|
* temporarily disabled. Please fix x86-64 and reenable
|
|
*/
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* AMD Memory Encryption Support
|
|
*
|
|
* Copyright (C) 2016 Advanced Micro Devices, Inc.
|
|
*
|
|
* Author: Tom Lendacky <thomas.lendacky@amd.com>
|
|
*/
|
|
/* PAGE_SHIFT determines the page size */
|
|
/* Cast *PAGE_MASK to a signed type so that it is sign-extended if
|
|
virtual addresses are 32-bits but physical addresses are larger
|
|
(ie, 32-bit PAE). */
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* The index for the tss.ist[] array. The hardware limit is 7 entries.
|
|
*/
|
|
/*
|
|
* Set __PAGE_OFFSET to the most negative possible address +
|
|
* PGDIR_SIZE*17 (pgd slot 273).
|
|
*
|
|
* The gap is to allow a space for LDT remap for PTI (1 pgd slot) and space for
|
|
* a hypervisor (16 slots). Choosing 16 slots for a hypervisor is arbitrary,
|
|
* but it's what Xen requires.
|
|
*/
|
|
/* See Documentation/x86/x86_64/mm.rst for a description of the memory map. */
|
|
/*
|
|
* User space process size. This is the first address outside the user range.
|
|
* There are a few constraints that determine this:
|
|
*
|
|
* On Intel CPUs, if a SYSCALL instruction is at the highest canonical
|
|
* address, then that syscall will enter the kernel with a
|
|
* non-canonical return address, and SYSRET will explode dangerously.
|
|
* We avoid this particular problem by preventing anything executable
|
|
* from being mapped at the maximum canonical address.
|
|
*
|
|
* On AMD CPUs in the Ryzen family, there's a nasty bug in which the
|
|
* CPUs malfunction if they execute code from the highest canonical page.
|
|
* They'll speculate right off the end of the canonical space, and
|
|
* bad things happen. This is worked around in the same way as the
|
|
* Intel problem.
|
|
*
|
|
* With page table isolation enabled, we map the LDT in ... [stay tuned]
|
|
*/
|
|
/* This decides where the kernel will search for a free chunk of vm
|
|
* space during mmap's.
|
|
*/
|
|
/*
|
|
* In spite of the name, KERNEL_IMAGE_SIZE is a limit on the maximum virtual
|
|
* address for the kernel image, rather than the limit on the size itself.
|
|
* This can be at most 1 GiB, due to the fixmap living in the next 1 GiB (see
|
|
* level2_kernel_pgt in arch/x86/kernel/head_64.S).
|
|
*
|
|
* On KASLR use 1 GiB by default, leaving 1 GiB for modules once the
|
|
* page tables are fully set up.
|
|
*
|
|
* If KASLR is disabled we can shrink it to 0.5 GiB and increase the size
|
|
* of the modules area to 1.5 GiB.
|
|
*/
|
|
OUTPUT_FORMAT("elf32-i386")
|
|
OUTPUT_ARCH(i386)
|
|
ENTRY(pa_text_start)
|
|
SECTIONS
|
|
{
|
|
real_mode_seg = 0;
|
|
. = 0;
|
|
.header : {
|
|
pa_real_mode_base = .;
|
|
*(.header)
|
|
}
|
|
. = ALIGN(4);
|
|
.rodata : {
|
|
*(.rodata)
|
|
*(.rodata.*)
|
|
. = ALIGN(16);
|
|
video_cards = .;
|
|
*(.videocards)
|
|
video_cards_end = .;
|
|
}
|
|
. = ALIGN((1 << 12));
|
|
pa_text_start = .;
|
|
.text : {
|
|
*(.text)
|
|
*(.text.*)
|
|
}
|
|
.text32 : {
|
|
*(.text32)
|
|
*(.text32.*)
|
|
}
|
|
.text64 : {
|
|
*(.text64)
|
|
*(.text64.*)
|
|
}
|
|
pa_ro_end = .;
|
|
. = ALIGN((1 << 12));
|
|
.data : {
|
|
*(.data)
|
|
*(.data.*)
|
|
}
|
|
. = ALIGN(128);
|
|
.bss : {
|
|
*(.bss*)
|
|
}
|
|
/* End signature for integrity checking */
|
|
. = ALIGN(4);
|
|
.signature : {
|
|
*(.signature)
|
|
}
|
|
/DISCARD/ : {
|
|
*(.note*)
|
|
*(.debug*)
|
|
}
|
|
pa_HEAP = HEAP;
|
|
pa_adapter = adapter;
|
|
pa_copy_from_fs = copy_from_fs;
|
|
pa_copy_to_fs = copy_to_fs;
|
|
pa_do_restore = do_restore;
|
|
pa_end_signature = end_signature;
|
|
pa_force_x = force_x;
|
|
pa_force_y = force_y;
|
|
pa_graphic_mode = graphic_mode;
|
|
pa_heap_end = heap_end;
|
|
pa_initregs = initregs;
|
|
pa_intcall = intcall;
|
|
pa_machine_real_restart_asm = machine_real_restart_asm;
|
|
pa_machine_real_restart_gdt = machine_real_restart_gdt;
|
|
pa_machine_real_restart_idt = machine_real_restart_idt;
|
|
pa_machine_real_restart_paging_off = machine_real_restart_paging_off;
|
|
pa_main = main;
|
|
pa_memcpy = memcpy;
|
|
pa_memset = memset;
|
|
pa_mode_defined = mode_defined;
|
|
pa_probe_cards = probe_cards;
|
|
pa_real_mode_header = real_mode_header;
|
|
pa_rm_heap = rm_heap;
|
|
pa_rm_stack = rm_stack;
|
|
pa_rm_stack_end = rm_stack_end;
|
|
pa_set_mode = set_mode;
|
|
pa_startup_32 = startup_32;
|
|
pa_startup_64 = startup_64;
|
|
pa_tr_cr4 = tr_cr4;
|
|
pa_tr_efer = tr_efer;
|
|
pa_tr_flags = tr_flags;
|
|
pa_tr_gdt = tr_gdt;
|
|
pa_trampoline_header = trampoline_header;
|
|
pa_trampoline_pgd = trampoline_pgd;
|
|
pa_trampoline_start = trampoline_start;
|
|
pa_vga_crtc = vga_crtc;
|
|
pa_wakeup_gdt = wakeup_gdt;
|
|
pa_wakeup_header = wakeup_header;
|
|
pa_wakeup_start = wakeup_start;
|
|
}
|