Lines Matching +full:gfx +full:- +full:mem
1 // SPDX-License-Identifier: GPL-2.0-only
5 * This file contains the setup_arch() code, which handles the architecture-dependent
11 #include <linux/dma-map-ops.h>
24 #include <linux/usb/xhci-dbgp.h>
51 #include <asm/pci-direct.h>
175 * copy_edd() - Copy the BIOS EDD information
195 size_t mask = align - 1; in extend_brk()
222 _brk_end - _brk_start); in reserve_brk()
261 /* We need to move the initrd down into directly mapped mem */ in relocate_initrd()
270 printk(KERN_INFO "Allocated new RAMDISK: [mem %#010llx-%#010llx]\n", in relocate_initrd()
271 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
275 printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to" in relocate_initrd()
276 " [mem %#010llx-%#010llx]\n", in relocate_initrd()
277 ramdisk_image, ramdisk_image + ramdisk_size - 1, in relocate_initrd()
278 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
292 memblock_reserve(ramdisk_image, ramdisk_end - ramdisk_image); in early_reserve_initrd()
308 printk(KERN_INFO "RAMDISK: [mem %#010llx-%#010llx]\n", ramdisk_image, in reserve_initrd()
309 ramdisk_end - 1); in reserve_initrd()
321 memblock_phys_free(ramdisk_image, ramdisk_end - ramdisk_image); in reserve_initrd()
344 if (data->size) { in add_early_ima_buffer()
345 memblock_reserve(data->addr, data->size); in add_early_ima_buffer()
346 ima_kexec_buffer_phys = data->addr; in add_early_ima_buffer()
347 ima_kexec_buffer_size = data->size; in add_early_ima_buffer()
360 return -ENOENT; in ima_free_kexec_buffer()
374 return -ENOENT; in ima_get_kexec_buffer()
393 data_len = data->len + sizeof(struct setup_data); in parse_setup_data()
394 data_type = data->type; in parse_setup_data()
395 pa_next = data->next; in parse_setup_data()
413 add_bootloader_randomness(data->data, data->len); in parse_setup_data()
415 memzero_explicit(data->data, data->len); in parse_setup_data()
417 memzero_explicit(&data->len, sizeof(data->len)); in parse_setup_data()
443 pa_next = data->next; in memblock_x86_reserve_range_setup_data()
445 memblock_reserve(pa_data, sizeof(*data) + data->len); in memblock_x86_reserve_range_setup_data()
447 if (data->type == SETUP_INDIRECT) { in memblock_x86_reserve_range_setup_data()
448 len += data->len; in memblock_x86_reserve_range_setup_data()
456 indirect = (struct setup_indirect *)data->data; in memblock_x86_reserve_range_setup_data()
458 if (indirect->type != SETUP_INDIRECT) in memblock_x86_reserve_range_setup_data()
459 memblock_reserve(indirect->addr, indirect->len); in memblock_x86_reserve_range_setup_data()
575 printk(KERN_DEBUG "reserving inaccessible SNB gfx pages\n"); in trim_snb_memory()
582 * To avoid these pages being ever accessed by SNB gfx devices reserve in trim_snb_memory()
610 * area (640Kb -> 1Mb) as RAM even though it is not. in trim_bios_range()
613 e820__range_remove(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_TYPE_RAM, 1); in trim_bios_range()
622 u64 size = __pa_symbol(_end) - start; in e820_add_kernel_range()
628 * exclude kernel range. If we really are running on top non-RAM, in e820_add_kernel_range()
648 (unsigned long)__end_of_kernel_reserve - (unsigned long)_text); in early_reserve_memory()
678 pr_emerg("Kernel Offset: 0x%lx from 0x%lx (relocation range: 0x%lx-0x%lx)\n", in dump_kernel_offset()
682 MODULES_VADDR-1); in dump_kernel_offset()
707 /* 32bit non-PAE kernel, NX cannot be used */ in x86_report_nx()
709 "cannot be enabled: non-PAE kernel!\n"); in x86_report_nx()
722 * setup_arch - architecture-specific boot-time initializations
816 iomem_resource.end = (1ULL << boot_cpu_data.x86_phys_bits) - 1; in setup_arch()
827 code_resource.end = __pa_symbol(_etext)-1; in setup_arch()
829 rodata_resource.end = __pa_symbol(__end_rodata)-1; in setup_arch()
831 data_resource.end = __pa_symbol(_edata)-1; in setup_arch()
833 bss_resource.end = __pa_symbol(__bss_stop)-1; in setup_arch()
865 * Memory used by the kernel cannot be hot-removed because Linux in setup_arch()
875 * node the kernel resides in as un-hotpluggable. in setup_arch()
877 * Since on modern servers, one node could have double-digit in setup_arch()
879 * image is also un-hotpluggable. So before SRAT is parsed, just in setup_arch()
910 * For some guest types (Xen PV, SEV-SNP, TDX) it is required to be in setup_arch()
939 * partially used pages are not usable - thus in setup_arch()
963 /* How many end-of-memory variables you have, grandma! */ in setup_arch()
965 if (max_pfn > (1UL<<(32 - PAGE_SHIFT))) in setup_arch()
970 high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1; in setup_arch()
974 * Find and reserve possible boot-time SMP configuration: in setup_arch()
1017 printk(KERN_DEBUG "initial memory mapped: [mem 0x00000000-%#010lx]\n", in setup_arch()
1018 (max_pfn_mapped<<PAGE_SHIFT) - 1); in setup_arch()
1023 * there is not enough free memory under 1M, on EFI-enabled systems in setup_arch()
1046 * auditing all the early-boot CR4 manipulation would be needed to in setup_arch()
1057 * NOTE: On x86-32, only from this point on, fixmaps are ready for use. in setup_arch()
1101 hugetlb_cma_reserve(PUD_SHIFT - PAGE_SHIFT); in setup_arch()
1141 * get boot-time SMP configuration: in setup_arch()
1178 * This needs to run before setup_local_APIC() which soft-disables the in setup_arch()