Lines Matching +full:has +full:- +full:builtin +full:- +full:dma
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()
272 printk(KERN_INFO "Allocated new RAMDISK: [mem %#010llx-%#010llx]\n", in relocate_initrd()
273 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
277 printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to" in relocate_initrd()
278 " [mem %#010llx-%#010llx]\n", in relocate_initrd()
279 ramdisk_image, ramdisk_image + ramdisk_size - 1, in relocate_initrd()
280 relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1); in relocate_initrd()
294 memblock_reserve(ramdisk_image, ramdisk_end - ramdisk_image); in early_reserve_initrd()
310 printk(KERN_INFO "RAMDISK: [mem %#010llx-%#010llx]\n", ramdisk_image, in reserve_initrd()
311 ramdisk_end - 1); in reserve_initrd()
323 memblock_phys_free(ramdisk_image, ramdisk_end - ramdisk_image); in reserve_initrd()
346 if (data->size) { in add_early_ima_buffer()
347 memblock_reserve(data->addr, data->size); in add_early_ima_buffer()
348 ima_kexec_buffer_phys = data->addr; in add_early_ima_buffer()
349 ima_kexec_buffer_size = data->size; in add_early_ima_buffer()
362 return -ENOENT; in ima_free_kexec_buffer()
376 return -ENOENT; in ima_get_kexec_buffer()
395 data_len = data->len + sizeof(struct setup_data); in parse_setup_data()
396 data_type = data->type; in parse_setup_data()
397 pa_next = data->next; in parse_setup_data()
415 add_bootloader_randomness(data->data, data->len); in parse_setup_data()
417 memzero_explicit(data->data, data->len); in parse_setup_data()
419 memzero_explicit(&data->len, sizeof(data->len)); in parse_setup_data()
445 pa_next = data->next; in memblock_x86_reserve_range_setup_data()
447 memblock_reserve(pa_data, sizeof(*data) + data->len); in memblock_x86_reserve_range_setup_data()
449 if (data->type == SETUP_INDIRECT) { in memblock_x86_reserve_range_setup_data()
450 len += data->len; in memblock_x86_reserve_range_setup_data()
458 indirect = (struct setup_indirect *)data->data; in memblock_x86_reserve_range_setup_data()
460 if (indirect->type != SETUP_INDIRECT) in memblock_x86_reserve_range_setup_data()
461 memblock_reserve(indirect->addr, indirect->len); in memblock_x86_reserve_range_setup_data()
507 { .name = "dma page reg", .start = 0x80, .end = 0x8f,
560 * Sandy Bridge graphics has trouble with certain ranges, exclude
612 * area (640Kb -> 1Mb) as RAM even though it is not. in trim_bios_range()
615 e820__range_remove(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_TYPE_RAM, 1); in trim_bios_range()
624 u64 size = __pa_symbol(_end) - start; in e820_add_kernel_range()
630 * exclude kernel range. If we really are running on top non-RAM, in e820_add_kernel_range()
650 (unsigned long)__end_of_kernel_reserve - (unsigned long)_text); in early_reserve_memory()
680 pr_emerg("Kernel Offset: 0x%lx from 0x%lx (relocation range: 0x%lx-0x%lx)\n", in dump_kernel_offset()
684 MODULES_VADDR-1); in dump_kernel_offset()
709 /* 32bit non-PAE kernel, NX cannot be used */ in x86_report_nx()
711 "cannot be enabled: non-PAE kernel!\n"); in x86_report_nx()
724 * setup_arch - architecture-specific boot-time initializations
747 * X86_FEATURE_PGE has not been invoked yet. Though due to the in setup_arch()
748 * load_cr3() above the TLB has been flushed already. The in setup_arch()
763 /* append boot loader cmdline to builtin */ in setup_arch()
835 iomem_resource.end = (1ULL << boot_cpu_data.x86_phys_bits) - 1; in setup_arch()
846 code_resource.end = __pa_symbol(_etext)-1; in setup_arch()
848 rodata_resource.end = __pa_symbol(__end_rodata)-1; in setup_arch()
850 data_resource.end = __pa_symbol(_edata)-1; in setup_arch()
852 bss_resource.end = __pa_symbol(__bss_stop)-1; in setup_arch()
868 * Memory used by the kernel cannot be hot-removed because Linux in setup_arch()
878 * node the kernel resides in as un-hotpluggable. in setup_arch()
880 * Since on modern servers, one node could have double-digit in setup_arch()
882 * image is also un-hotpluggable. So before SRAT is parsed, just in setup_arch()
913 * For some guest types (Xen PV, SEV-SNP, TDX) it is required to be in setup_arch()
942 * partially used pages are not usable - thus in setup_arch()
966 /* How many end-of-memory variables you have, grandma! */ in setup_arch()
968 if (max_pfn > (1UL<<(32 - PAGE_SHIFT))) in setup_arch()
973 high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1; in setup_arch()
1018 printk(KERN_DEBUG "initial memory mapped: [mem 0x00000000-%#010lx]\n", in setup_arch()
1019 (max_pfn_mapped<<PAGE_SHIFT) - 1); in setup_arch()
1024 * there is not enough free memory under 1M, on EFI-enabled systems in setup_arch()
1045 * for 64-bit in the IDT. in setup_arch()
1052 * auditing all the early-boot CR4 manipulation would be needed to in setup_arch()
1063 * NOTE: On x86-32, only from this point on, fixmaps are ready for use. in setup_arch()
1109 hugetlb_cma_reserve(PUD_SHIFT - PAGE_SHIFT); in setup_arch()
1179 * This needs to run before setup_local_APIC() which soft-disables the in setup_arch()