1 /* 2 * Copyright (C) 2020-2022 Intel Corporation. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef EFI_H 8 #define EFI_H 9 10 /* EFI Memory Attribute values: */ 11 #define EFI_MEMORY_UC 0x0000000000000001UL /* uncached */ 12 #define EFI_MEMORY_WC 0x0000000000000002UL /* write-coalescing */ 13 #define EFI_MEMORY_WT 0x0000000000000004UL /* write-through */ 14 #define EFI_MEMORY_WB 0x0000000000000008UL /* write-back */ 15 /* 16 #define EFI_MEMORY_UCE 0x0000000000000010UL 17 #define EFI_MEMORY_WP 0x0000000000001000UL 18 #define EFI_MEMORY_RP 0x0000000000002000UL 19 #define EFI_MEMORY_XP 0x0000000000004000UL 20 #define EFI_MEMORY_NV 0x0000000000008000UL 21 #define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000UL 22 #define EFI_MEMORY_RO 0x0000000000020000UL 23 #define EFI_MEMORY_SP 0x0000000000040000UL 24 #define EFI_MEMORY_CPU_CRYPTO 0x0000000000080000UL 25 #define EFI_MEMORY_RUNTIME 0x8000000000000000UL 26 */ 27 28 enum efi_memory_type { 29 EFI_RESERVED_MEMORYTYPE, 30 EFI_LOADER_CODE, 31 EFI_LOADER_DATA, 32 EFI_BOOT_SERVICES_CODE, 33 EFI_BOOT_SERVICES_DATA, 34 EFI_RUNTIME_SERVICES_CODE, 35 EFI_RUNTIME_SERVICES_DATA, 36 EFI_CONVENTIONAL_MEMORY, 37 EFI_UNUSABLE_MEMORY, 38 EFI_ACPI_RECLAIM_MEMORY, 39 EFI_ACPI_MEMORY_NVS, 40 EFI_MEMORYMAPPED_IO, 41 EFI_MEMORYMAPPED_IOPORTSPACE, 42 EFI_PALCODE, 43 EFI_PERSISTENT_MEMORY, 44 EFI_MAX_MEMORYTYPE 45 }; 46 47 struct efi_memory_desc { 48 uint32_t type; 49 uint32_t pad; 50 uint64_t phys_addr; 51 uint64_t virt_addr; 52 uint64_t num_pages; 53 uint64_t attribute; 54 }; 55 56 struct efi_info { 57 uint32_t loader_signature; /* 0x1c0 */ 58 uint32_t systab; /* 0x1c4 */ 59 uint32_t memdesc_size; /* 0x1c8 */ 60 uint32_t memdesc_version; /* 0x1cc */ 61 uint32_t memmap; /* 0x1d0 */ 62 uint32_t memmap_size; /* 0x1d4 */ 63 uint32_t systab_hi; /* 0x1d8 */ 64 uint32_t memmap_hi; /* 0x1dc */ 65 } __packed; 66 67 #endif 68