Lines Matching +full:reserved +full:- +full:memory
15 #include "apic-defs.h"
32 u32 reserved[4]; /* 28-43 */ member
35 u32 reserved0[3]; /* 52-63 */
37 u32 reserved1[5]; /* 68-87 */
71 /* Memory above 4 GB is only supported on 64-bit systems. */ in find_highmem()
72 if (!(bootinfo->flags & 64)) in find_highmem()
75 u64 upper_end = bootinfo->mem_upper * 1024ull; in find_highmem()
80 max_end = -1ull; in find_highmem()
83 uintptr_t mmap = bootinfo->mmap_addr; in find_highmem()
84 while (mmap < bootinfo->mmap_addr + bootinfo->mmap_length) { in find_highmem()
86 mmap += mem->size + 4; in find_highmem()
87 if (mem->type != 1) in find_highmem()
89 if (mem->base_addr <= (uintptr_t) &edata || in find_highmem()
90 (mem->base_addr <= upper_end && mem->base_addr + mem->length <= upper_end)) in find_highmem()
92 if (mem->length < best_end - best_start) in find_highmem()
94 if (mem->base_addr >= max_end) in find_highmem()
96 best_start = mem->base_addr; in find_highmem()
97 best_end = mem->base_addr + mem->length; in find_highmem()
104 best_start = (best_start + HUGEPAGE_SIZE - 1) & -HUGEPAGE_SIZE; in find_highmem()
105 best_end = best_end & -HUGEPAGE_SIZE; in find_highmem()
106 phys_alloc_init(best_start, best_end - best_start); in find_highmem()
143 tss_entry->ss0 = KERNEL_DS; in setup_tss()
149 (unsigned long)stacktop - PER_CPU_SIZE, 0xfffff, 0x93, 0xc0); in setup_tss()
162 u64 best_end = bootinfo->mem_upper * 1024ull; in setup_multiboot()
163 phys_alloc_init(best_start, best_end - best_start); in setup_multiboot()
165 if (bootinfo->mods_count != 1) in setup_multiboot()
168 mods = (struct mbi_module *)(uintptr_t) bootinfo->mods_addr; in setup_multiboot()
170 initrd = (char *)(uintptr_t) mods->start; in setup_multiboot()
171 initrd_size = mods->end - mods->start; in setup_multiboot()
178 /* 64-bit setup_tss does not use the stacktop argument. */ in setup_gdt_tss()
215 struct efi_boot_memmap *map = &(efi_bootinfo->mem_map); in setup_memory_allocator()
216 efi_memory_desc_t *buffer = *map->map; in setup_memory_allocator()
220 * The 'buffer' contains multiple descriptors that describe memory in setup_memory_allocator()
223 * memory allocator, so that the memory allocator can work in the in setup_memory_allocator()
224 * largest free continuous memory region. in setup_memory_allocator()
226 for (i = 0; i < *(map->map_size); i += *(map->desc_size)) { in setup_memory_allocator()
228 if (d->type == EFI_CONVENTIONAL_MEMORY) { in setup_memory_allocator()
229 if (free_mem_pages < d->num_pages) { in setup_memory_allocator()
230 free_mem_pages = d->num_pages; in setup_memory_allocator()
231 free_mem_start = d->phys_addr; in setup_memory_allocator()
252 * by kvm-unit-tests x86's memory allocator. So it is not necessary to in setup_rsdp()
253 * copy the data structure to another memory region to prevent in setup_rsdp()
280 /* Set AMD SEV C-Bit for page table entries */ in setup_page_table()
302 /* Load 4-level page table */ in setup_page_table()
313 printf("Failed to set up memory allocator: "); in setup_efi()
316 printf("No free memory region\n"); in setup_efi()
334 /* Continue if AMD SEV is not supported, but skip SEV-ES setup */ in setup_efi()
336 phase = "AMD SEV-ES"; in setup_efi()
350 * Load GS.base with the per-vCPU data. This must be done after in setup_efi()
352 * as an SEV-ES guest in setup_efi()
356 * Resetting the APIC sets the per-vCPU APIC ops and so must be in setup_efi()
357 * done after loading GS.base with the per-vCPU data. in setup_efi()