diff options
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r-- | include/linux/efi.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h index 85ef051ac6fb..569b5a866bb1 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h | |||
@@ -99,6 +99,7 @@ typedef struct { | |||
99 | #define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */ | 99 | #define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */ |
100 | #define EFI_MEMORY_MORE_RELIABLE \ | 100 | #define EFI_MEMORY_MORE_RELIABLE \ |
101 | ((u64)0x0000000000010000ULL) /* higher reliability */ | 101 | ((u64)0x0000000000010000ULL) /* higher reliability */ |
102 | #define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */ | ||
102 | #define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ | 103 | #define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ |
103 | #define EFI_MEMORY_DESCRIPTOR_VERSION 1 | 104 | #define EFI_MEMORY_DESCRIPTOR_VERSION 1 |
104 | 105 | ||
@@ -595,6 +596,9 @@ void efi_native_runtime_setup(void); | |||
595 | #define DEVICE_TREE_GUID \ | 596 | #define DEVICE_TREE_GUID \ |
596 | EFI_GUID( 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 ) | 597 | EFI_GUID( 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 ) |
597 | 598 | ||
599 | #define EFI_PROPERTIES_TABLE_GUID \ | ||
600 | EFI_GUID( 0x880aaca3, 0x4adc, 0x4a04, 0x90, 0x79, 0xb7, 0x47, 0x34, 0x08, 0x25, 0xe5 ) | ||
601 | |||
598 | typedef struct { | 602 | typedef struct { |
599 | efi_guid_t guid; | 603 | efi_guid_t guid; |
600 | u64 table; | 604 | u64 table; |
@@ -676,7 +680,7 @@ typedef struct { | |||
676 | } efi_system_table_t; | 680 | } efi_system_table_t; |
677 | 681 | ||
678 | struct efi_memory_map { | 682 | struct efi_memory_map { |
679 | void *phys_map; | 683 | phys_addr_t phys_map; |
680 | void *map; | 684 | void *map; |
681 | void *map_end; | 685 | void *map_end; |
682 | int nr_map; | 686 | int nr_map; |
@@ -808,6 +812,15 @@ typedef struct _efi_file_io_interface { | |||
808 | #define EFI_FILE_MODE_WRITE 0x0000000000000002 | 812 | #define EFI_FILE_MODE_WRITE 0x0000000000000002 |
809 | #define EFI_FILE_MODE_CREATE 0x8000000000000000 | 813 | #define EFI_FILE_MODE_CREATE 0x8000000000000000 |
810 | 814 | ||
815 | typedef struct { | ||
816 | u32 version; | ||
817 | u32 length; | ||
818 | u64 memory_protection_attribute; | ||
819 | } efi_properties_table_t; | ||
820 | |||
821 | #define EFI_PROPERTIES_TABLE_VERSION 0x00010000 | ||
822 | #define EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA 0x1 | ||
823 | |||
811 | #define EFI_INVALID_TABLE_ADDR (~0UL) | 824 | #define EFI_INVALID_TABLE_ADDR (~0UL) |
812 | 825 | ||
813 | /* | 826 | /* |
@@ -830,6 +843,7 @@ extern struct efi { | |||
830 | unsigned long runtime; /* runtime table */ | 843 | unsigned long runtime; /* runtime table */ |
831 | unsigned long config_table; /* config tables */ | 844 | unsigned long config_table; /* config tables */ |
832 | unsigned long esrt; /* ESRT table */ | 845 | unsigned long esrt; /* ESRT table */ |
846 | unsigned long properties_table; /* properties table */ | ||
833 | efi_get_time_t *get_time; | 847 | efi_get_time_t *get_time; |
834 | efi_set_time_t *set_time; | 848 | efi_set_time_t *set_time; |
835 | efi_get_wakeup_time_t *get_wakeup_time; | 849 | efi_get_wakeup_time_t *get_wakeup_time; |
@@ -901,13 +915,19 @@ extern void efi_initialize_iomem_resources(struct resource *code_resource, | |||
901 | struct resource *data_resource, struct resource *bss_resource); | 915 | struct resource *data_resource, struct resource *bss_resource); |
902 | extern void efi_get_time(struct timespec *now); | 916 | extern void efi_get_time(struct timespec *now); |
903 | extern void efi_reserve_boot_services(void); | 917 | extern void efi_reserve_boot_services(void); |
904 | extern int efi_get_fdt_params(struct efi_fdt_params *params, int verbose); | 918 | extern int efi_get_fdt_params(struct efi_fdt_params *params); |
905 | extern struct efi_memory_map memmap; | 919 | extern struct efi_memory_map memmap; |
906 | extern struct kobject *efi_kobj; | 920 | extern struct kobject *efi_kobj; |
907 | 921 | ||
908 | extern int efi_reboot_quirk_mode; | 922 | extern int efi_reboot_quirk_mode; |
909 | extern bool efi_poweroff_required(void); | 923 | extern bool efi_poweroff_required(void); |
910 | 924 | ||
925 | #ifdef CONFIG_EFI_FAKE_MEMMAP | ||
926 | extern void __init efi_fake_memmap(void); | ||
927 | #else | ||
928 | static inline void efi_fake_memmap(void) { } | ||
929 | #endif | ||
930 | |||
911 | /* Iterate through an efi_memory_map */ | 931 | /* Iterate through an efi_memory_map */ |
912 | #define for_each_efi_memory_desc(m, md) \ | 932 | #define for_each_efi_memory_desc(m, md) \ |
913 | for ((md) = (m)->map; \ | 933 | for ((md) = (m)->map; \ |
@@ -959,6 +979,7 @@ extern int __init efi_setup_pcdp_console(char *); | |||
959 | #define EFI_PARAVIRT 6 /* Access is via a paravirt interface */ | 979 | #define EFI_PARAVIRT 6 /* Access is via a paravirt interface */ |
960 | #define EFI_ARCH_1 7 /* First arch-specific bit */ | 980 | #define EFI_ARCH_1 7 /* First arch-specific bit */ |
961 | #define EFI_DBG 8 /* Print additional debug info at runtime */ | 981 | #define EFI_DBG 8 /* Print additional debug info at runtime */ |
982 | #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ | ||
962 | 983 | ||
963 | #ifdef CONFIG_EFI | 984 | #ifdef CONFIG_EFI |
964 | /* | 985 | /* |