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
12 #include <linux/dma-map-ops.h>
24 #include <linux/usb/xhci-dbgp.h>
52 #include <asm/pci-direct.h>
177 * copy_edd() - Copy the BIOS EDD information
197 size_t mask = align - 1; in extend_brk()
224 _brk_end - _brk_start); in reserve_brk()
264 /* We need to move the initrd down into directly mapped mem */ in relocate_initrd()
273 printk(KERN_INFO "Allocated new RAMDISK: [mem %#010llx-%#010llx]\n", in relocate_initrd()
274 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
280 printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to" in relocate_initrd()
281 " [mem %#010llx-%#010llx]\n", in relocate_initrd()
282 ramdisk_image, ramdisk_image + ramdisk_size - 1, in relocate_initrd()
283 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
297 memblock_reserve(ramdisk_image, ramdisk_end - ramdisk_image); in early_reserve_initrd()
313 printk(KERN_INFO "RAMDISK: [mem %#010llx-%#010llx]\n", ramdisk_image, in reserve_initrd()
314 ramdisk_end - 1); in reserve_initrd()
326 memblock_phys_free(ramdisk_image, ramdisk_end - ramdisk_image); in reserve_initrd()
349 if (data->size) { in add_early_ima_buffer()
350 memblock_reserve(data->addr, data->size); in add_early_ima_buffer()
351 ima_kexec_buffer_phys = data->addr; in add_early_ima_buffer()
352 ima_kexec_buffer_size = data->size; in add_early_ima_buffer()
365 return -ENOENT; in ima_free_kexec_buffer()
379 return -ENOENT; in ima_get_kexec_buffer()
398 data_len = data->len + sizeof(struct setup_data); in parse_setup_data()
399 data_type = data->type; in parse_setup_data()
400 pa_next = data->next; in parse_setup_data()
418 add_bootloader_randomness(data->data, data->len); in parse_setup_data()
420 memzero_explicit(data->data, data->len); in parse_setup_data()
422 memzero_explicit(&data->len, sizeof(data->len)); in parse_setup_data()
448 pa_next = data->next; in memblock_x86_reserve_range_setup_data()
450 memblock_reserve(pa_data, sizeof(*data) + data->len); in memblock_x86_reserve_range_setup_data()
452 if (data->type == SETUP_INDIRECT) { in memblock_x86_reserve_range_setup_data()
453 len += data->len; in memblock_x86_reserve_range_setup_data()
461 indirect = (struct setup_indirect *)data->data; in memblock_x86_reserve_range_setup_data()
463 if (indirect->type != SETUP_INDIRECT) in memblock_x86_reserve_range_setup_data()
464 memblock_reserve(indirect->addr, indirect->len); in memblock_x86_reserve_range_setup_data()
580 printk(KERN_DEBUG "reserving inaccessible SNB gfx pages\n"); in trim_snb_memory()
587 * To avoid these pages being ever accessed by SNB gfx devices reserve in trim_snb_memory()
615 * area (640Kb -> 1Mb) as RAM even though it is not. in trim_bios_range()
618 e820__range_remove(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_TYPE_RAM, 1); in trim_bios_range()
627 u64 size = __pa_symbol(_end) - start; in e820_add_kernel_range()
633 * exclude kernel range. If we really are running on top non-RAM, in e820_add_kernel_range()
653 (unsigned long)__end_of_kernel_reserve - (unsigned long)_text); in early_reserve_memory()
683 pr_emerg("Kernel Offset: 0x%lx from 0x%lx (relocation range: 0x%lx-0x%lx)\n", in dump_kernel_offset()
687 MODULES_VADDR-1); in dump_kernel_offset()
712 /* 32bit non-PAE kernel, NX cannot be used */ in x86_report_nx()
714 "cannot be enabled: non-PAE kernel!\n"); in x86_report_nx()
727 * setup_arch - architecture-specific boot-time initializations
838 iomem_resource.end = (1ULL << boot_cpu_data.x86_phys_bits) - 1; in setup_arch()
849 code_resource.end = __pa_symbol(_etext)-1; in setup_arch()
851 rodata_resource.end = __pa_symbol(__end_rodata)-1; in setup_arch()
853 data_resource.end = __pa_symbol(_edata)-1; in setup_arch()
855 bss_resource.end = __pa_symbol(__bss_stop)-1; in setup_arch()
871 * Memory used by the kernel cannot be hot-removed because Linux in setup_arch()
881 * node the kernel resides in as un-hotpluggable. in setup_arch()
883 * Since on modern servers, one node could have double-digit in setup_arch()
885 * image is also un-hotpluggable. So before SRAT is parsed, just in setup_arch()
916 * For some guest types (Xen PV, SEV-SNP, TDX) it is required to be in setup_arch()
945 * partially used pages are not usable - thus in setup_arch()
969 /* How many end-of-memory variables you have, grandma! */ in setup_arch()
971 if (max_pfn > (1UL<<(32 - PAGE_SHIFT))) in setup_arch()
976 high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1; in setup_arch()
1021 printk(KERN_DEBUG "initial memory mapped: [mem 0x00000000-%#010lx]\n", in setup_arch()
1022 (max_pfn_mapped<<PAGE_SHIFT) - 1); in setup_arch()
1027 * there is not enough free memory under 1M, on EFI-enabled systems in setup_arch()
1048 * for 64-bit in the IDT. in setup_arch()
1055 * auditing all the early-boot CR4 manipulation would be needed to in setup_arch()
1066 * NOTE: On x86-32, only from this point on, fixmaps are ready for use. in setup_arch()
1112 hugetlb_cma_reserve(PUD_SHIFT - PAGE_SHIFT); in setup_arch()
1182 * This needs to run before setup_local_APIC() which soft-disables the in setup_arch()