Lines Matching +full:preserved +full:- +full:memory +full:- +full:map
1 // SPDX-License-Identifier: GPL-2.0
7 * Copyright (C) 2013 - 2015 Linaro Ltd.
30 if (md->attribute & (EFI_MEMORY_WB|EFI_MEMORY_WT|EFI_MEMORY_WC)) in is_memory()
45 if (!(md->attribute & EFI_MEMORY_RUNTIME)) in efi_to_phys()
47 if (md->virt_addr == 0) in efi_to_phys()
50 if (md->virt_addr <= addr && in efi_to_phys()
51 (addr - md->virt_addr) < (md->num_pages << EFI_PAGE_SHIFT)) in efi_to_phys()
52 return md->phys_addr + addr - md->virt_addr; in efi_to_phys()
75 pr_err("Could not map screen_info config table\n"); in init_screen_info()
100 pr_warn("Unable to map EFI system table.\n"); in uefi_init()
101 return -ENOMEM; in uefi_init()
108 retval = efi_systab_check_header(&systab->hdr); in uefi_init()
112 efi.runtime = systab->runtime; in uefi_init()
113 efi.runtime_version = systab->hdr.revision; in uefi_init()
115 efi_systab_report_header(&systab->hdr, efi_to_phys(systab->fw_vendor)); in uefi_init()
117 table_size = sizeof(efi_config_table_t) * systab->nr_tables; in uefi_init()
118 config_tables = early_memremap_ro(efi_to_phys(systab->tables), in uefi_init()
121 pr_warn("Unable to map EFI config table array.\n"); in uefi_init()
122 retval = -ENOMEM; in uefi_init()
125 retval = efi_config_parse_tables(config_tables, systab->nr_tables, in uefi_init()
139 switch (md->type) { in is_usable_memory()
152 return (md->attribute & EFI_MEMORY_WB); in is_usable_memory()
165 pr_info("Processing EFI memory map:\n"); in reserve_regions()
169 * regions. Most memblocks at this point originate from memory nodes in reserve_regions()
170 * in the DT and UEFI uses its own memory map instead. However, if in reserve_regions()
171 * KHO is enabled, scratch regions, which are good known memory in reserve_regions()
172 * must be preserved. in reserve_regions()
179 /* Remove all non-KHO regions */ in reserve_regions()
182 memblock_remove(r->base, r->size); in reserve_regions()
183 r--; in reserve_regions()
189 * if there are any at this point, they originate from memory in reserve_regions()
190 * nodes in the DT, and UEFI uses its own memory map instead. in reserve_regions()
196 paddr = md->phys_addr; in reserve_regions()
197 npages = md->num_pages; in reserve_regions()
202 pr_info(" 0x%012llx-0x%012llx %s\n", in reserve_regions()
203 paddr, paddr + (npages << EFI_PAGE_SHIFT) - 1, in reserve_regions()
212 * Special purpose memory is 'soft reserved', which in reserve_regions()
218 (md->attribute & EFI_MEMORY_SP)) in reserve_regions()
226 /* keep ACPI reclaim memory intact for kexec etc. */ in reserve_regions()
227 if (md->type == EFI_ACPI_RECLAIM_MEMORY) in reserve_regions()
245 * If we are booting via UEFI, the UEFI memory map is the only in efi_init()
246 * description of memory we have, so there is little point in in efi_init()
249 panic("Unable to map EFI memory map.\n"); in efi_init()