summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/efi_api.h59
-rw-r--r--include/lmb.h72
2 files changed, 79 insertions, 52 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index 0accad08c8e..80109f012bc 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -20,8 +20,8 @@
#include <charset.h>
#include <pe.h>
-/* UEFI spec version 2.8 */
-#define EFI_SPECIFICATION_VERSION (2 << 16 | 80)
+/* UEFI spec version 2.9 */
+#define EFI_SPECIFICATION_VERSION (2 << 16 | 90)
/* Types and defines for EFI CreateEvent */
enum efi_timer_delay {
@@ -360,10 +360,15 @@ struct efi_runtime_services {
};
/* EFI event group GUID definitions */
+
#define EFI_EVENT_GROUP_EXIT_BOOT_SERVICES \
EFI_GUID(0x27abf055, 0xb1b8, 0x4c26, 0x80, 0x48, \
0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf)
+#define EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES \
+ EFI_GUID(0x8be0e274, 0x3970, 0x4b44, 0x80, 0xc5, \
+ 0x1a, 0xb9, 0x50, 0x2f, 0x3b, 0xfc)
+
#define EFI_EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE \
EFI_GUID(0x13fa7698, 0xc831, 0x49c7, 0x87, 0xea, \
0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96)
@@ -376,6 +381,10 @@ struct efi_runtime_services {
EFI_GUID(0x7ce88fb3, 0x4bd7, 0x4679, 0x87, 0xa8, \
0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b)
+#define EFI_EVENT_GROUP_AFTER_READY_TO_BOOT \
+ EFI_GUID(0x3a2a00ad, 0x98b9, 0x4cdf, 0xa4, 0x78, \
+ 0x70, 0x27, 0x77, 0xf1, 0xc1, 0xb)
+
#define EFI_EVENT_GROUP_RESET_SYSTEM \
EFI_GUID(0x62da6a56, 0x13fb, 0x485a, 0xa8, 0xda, \
0xa3, 0xdd, 0x79, 0x12, 0xcb, 0x6b)
@@ -417,6 +426,15 @@ struct efi_runtime_services {
EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, \
0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25)
+/**
+ * struct efi_configuration_table - EFI Configuration Table
+ *
+ * This table contains a set of GUID/pointer pairs.
+ * The EFI Configuration Table may contain at most one instance of each table type.
+ *
+ * @guid: GUID that uniquely identifies the system configuration table
+ * @table: A pointer to the table associated with guid
+ */
struct efi_configuration_table {
efi_guid_t guid;
void *table;
@@ -424,6 +442,29 @@ struct efi_configuration_table {
#define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
+/**
+ * struct efi_system_table - EFI System Table
+ *
+ * EFI System Table contains pointers to the runtime and boot services tables.
+ *
+ * @hdr: The table header for the EFI System Table
+ * @fw_vendor: A pointer to a null terminated string that identifies the vendor
+ * that produces the system firmware
+ * @fw_revision: The revision of the system firmware
+ * @con_in_handle: The handle for the active console input device
+ * @con_in: A pointer to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL interface
+ * that is associated with con_in_handle
+ * @con_out_handle: The handle for the active console output device
+ * @con_out: A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface
+ * that is associated with con_out_handle
+ * @stderr_handle: The handle for the active standard error console device
+ * @std_err: A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface
+ * that is associated with stderr_handle
+ * @runtime: A pointer to the EFI Runtime Services Table
+ * @boottime: A pointer to the EFI Boot Services Table
+ * @nr_tables: The number of system configuration tables
+ * @tables: A pointer to the system configuration tables
+ */
struct efi_system_table {
struct efi_table_hdr hdr;
u16 *fw_vendor; /* physical addr of wchar_t vendor string */
@@ -870,8 +911,8 @@ struct efi_hii_package_list_header {
* @fields: 'fields' replaces the bit-fields defined in the EFI
* specification to to avoid possible compiler incompatibilities::
*
- * u32 length:24;
- * u32 type:8;
+ * u32 length:24;
+ * u32 type:8;
*/
struct efi_hii_package_header {
u32 fields;
@@ -1809,7 +1850,7 @@ struct efi_system_resource_table {
0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7)
/**
- * win_certificate_uefi_guid - A certificate that encapsulates
+ * struct win_certificate_uefi_guid - A certificate that encapsulates
* a GUID-specific signature
*
* @hdr: Windows certificate header
@@ -1823,7 +1864,7 @@ struct win_certificate_uefi_guid {
} __attribute__((__packed__));
/**
- * efi_variable_authentication_2 - A time-based authentication method
+ * struct efi_variable_authentication_2 - A time-based authentication method
* descriptor
*
* This structure describes an authentication information for
@@ -1840,7 +1881,7 @@ struct efi_variable_authentication_2 {
} __attribute__((__packed__));
/**
- * efi_firmware_image_authentication - Capsule authentication method
+ * struct efi_firmware_image_authentication - Capsule authentication method
* descriptor
*
* This structure describes an authentication information for
@@ -1858,7 +1899,7 @@ struct efi_firmware_image_authentication {
/**
- * efi_signature_data - A format of signature
+ * struct efi_signature_data - A format of signature
*
* This structure describes a single signature in signature database.
*
@@ -1871,7 +1912,7 @@ struct efi_signature_data {
} __attribute__((__packed__));
/**
- * efi_signature_list - A format of signature database
+ * struct efi_signature_list - A format of signature database
*
* This structure describes a list of signatures with the same type.
* An authenticated variable's value is a concatenation of one or more
diff --git a/include/lmb.h b/include/lmb.h
index 19842911322..ab277ca8000 100644
--- a/include/lmb.h
+++ b/include/lmb.h
@@ -25,8 +25,9 @@ enum lmb_flags {
/**
* struct lmb_property - Description of one region.
*
- * @base: Base address of the region.
- * @size: Size of the region
+ * @base: Base address of the region.
+ * @size: Size of the region
+ * @flags: memory region attributes
*/
struct lmb_property {
phys_addr_t base;
@@ -73,64 +74,49 @@ struct lmb {
#endif
};
-extern void lmb_init(struct lmb *lmb);
-extern void lmb_init_and_reserve(struct lmb *lmb, struct bd_info *bd,
- void *fdt_blob);
-extern void lmb_init_and_reserve_range(struct lmb *lmb, phys_addr_t base,
- phys_size_t size, void *fdt_blob);
-extern long lmb_add(struct lmb *lmb, phys_addr_t base, phys_size_t size);
-extern long lmb_reserve(struct lmb *lmb, phys_addr_t base, phys_size_t size);
+void lmb_init(struct lmb *lmb);
+void lmb_init_and_reserve(struct lmb *lmb, struct bd_info *bd, void *fdt_blob);
+void lmb_init_and_reserve_range(struct lmb *lmb, phys_addr_t base,
+ phys_size_t size, void *fdt_blob);
+long lmb_add(struct lmb *lmb, phys_addr_t base, phys_size_t size);
+long lmb_reserve(struct lmb *lmb, phys_addr_t base, phys_size_t size);
/**
* lmb_reserve_flags - Reserve one region with a specific flags bitfield.
*
- * @lmb the logical memory block struct
- * @base base address of the memory region
- * @size size of the memory region
- * @flags flags for the memory region
- * @return 0 if OK, > 0 for coalesced region or a negative error code.
+ * @lmb: the logical memory block struct
+ * @base: base address of the memory region
+ * @size: size of the memory region
+ * @flags: flags for the memory region
+ * Return: 0 if OK, > 0 for coalesced region or a negative error code.
*/
long lmb_reserve_flags(struct lmb *lmb, phys_addr_t base,
phys_size_t size, enum lmb_flags flags);
-extern phys_addr_t lmb_alloc(struct lmb *lmb, phys_size_t size, ulong align);
-extern phys_addr_t lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align,
- phys_addr_t max_addr);
-extern phys_addr_t __lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align,
- phys_addr_t max_addr);
-extern phys_addr_t lmb_alloc_addr(struct lmb *lmb, phys_addr_t base,
- phys_size_t size);
-extern phys_size_t lmb_get_free_size(struct lmb *lmb, phys_addr_t addr);
-extern int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr);
+phys_addr_t lmb_alloc(struct lmb *lmb, phys_size_t size, ulong align);
+phys_addr_t lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align,
+ phys_addr_t max_addr);
+phys_addr_t __lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align,
+ phys_addr_t max_addr);
+phys_addr_t lmb_alloc_addr(struct lmb *lmb, phys_addr_t base, phys_size_t size);
+phys_size_t lmb_get_free_size(struct lmb *lmb, phys_addr_t addr);
+int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr);
/**
* lmb_is_reserved_flags - test if tha address is in reserved region with a bitfield flag
*
- * @lmb the logical memory block struct
- * @addr address to be tested
- * @flags flags bitfied to be tested
- * @return 0 if not reserved or reserved without the requested flag else 1
+ * @lmb: the logical memory block struct
+ * @addr: address to be tested
+ * @flags: flags bitfied to be tested
+ * Return: if not reserved or reserved without the requested flag else 1
*/
int lmb_is_reserved_flags(struct lmb *lmb, phys_addr_t addr, int flags);
-extern long lmb_free(struct lmb *lmb, phys_addr_t base, phys_size_t size);
+long lmb_free(struct lmb *lmb, phys_addr_t base, phys_size_t size);
-extern void lmb_dump_all(struct lmb *lmb);
-extern void lmb_dump_all_force(struct lmb *lmb);
-
-static inline phys_size_t
-lmb_size_bytes(struct lmb_region *type, unsigned long region_nr)
-{
- return type->region[region_nr].size;
-}
+void lmb_dump_all(struct lmb *lmb);
+void lmb_dump_all_force(struct lmb *lmb);
void board_lmb_reserve(struct lmb *lmb);
void arch_lmb_reserve(struct lmb *lmb);
void arch_lmb_reserve_generic(struct lmb *lmb, ulong sp, ulong end, ulong align);
-/* Low level functions */
-
-static inline bool lmb_is_nomap(struct lmb_property *m)
-{
- return m->flags & LMB_NOMAP;
-}
-
#endif /* __KERNEL__ */
#endif /* _LINUX_LMB_H */