aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/efi.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r--include/linux/efi.h25
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
598typedef struct { 602typedef 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
678struct efi_memory_map { 682struct 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
815typedef 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);
902extern void efi_get_time(struct timespec *now); 916extern void efi_get_time(struct timespec *now);
903extern void efi_reserve_boot_services(void); 917extern void efi_reserve_boot_services(void);
904extern int efi_get_fdt_params(struct efi_fdt_params *params, int verbose); 918extern int efi_get_fdt_params(struct efi_fdt_params *params);
905extern struct efi_memory_map memmap; 919extern struct efi_memory_map memmap;
906extern struct kobject *efi_kobj; 920extern struct kobject *efi_kobj;
907 921
908extern int efi_reboot_quirk_mode; 922extern int efi_reboot_quirk_mode;
909extern bool efi_poweroff_required(void); 923extern bool efi_poweroff_required(void);
910 924
925#ifdef CONFIG_EFI_FAKE_MEMMAP
926extern void __init efi_fake_memmap(void);
927#else
928static 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/*