mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull EFI updates from Ingo Molnar: "The main EFI changes in this cycle were: - Use 32-bit alignment for efi_guid_t - Allow the SetVirtualAddressMap() call to be omitted - Implement earlycon=efifb based on existing earlyprintk code - Various minor fixes and code cleanups from Sai, Ard and me" * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efi: Fix build error due to enum collision between efi.h and ima.h efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation x86: Make ARCH_USE_MEMREMAP_PROT a generic Kconfig symbol efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted efi: Replace GPL license boilerplate with SPDX headers efi/fdt: Apply more cleanups efi: Use 32-bit alignment for efi_guid_t efi/memattr: Don't bail on zero VA if it equals the region's PA x86/efi: Mark can_free_region() as an __init function
This commit is contained in:
commit
c8f5ed6ef9
46 changed files with 393 additions and 567 deletions
|
@ -48,7 +48,20 @@ typedef u16 efi_char16_t; /* UNICODE character */
|
|||
typedef u64 efi_physical_addr_t;
|
||||
typedef void *efi_handle_t;
|
||||
|
||||
typedef guid_t efi_guid_t;
|
||||
/*
|
||||
* The UEFI spec and EDK2 reference implementation both define EFI_GUID as
|
||||
* struct { u32 a; u16; b; u16 c; u8 d[8]; }; and so the implied alignment
|
||||
* is 32 bits not 8 bits like our guid_t. In some cases (i.e., on 32-bit ARM),
|
||||
* this means that firmware services invoked by the kernel may assume that
|
||||
* efi_guid_t* arguments are 32-bit aligned, and use memory accessors that
|
||||
* do not tolerate misalignment. So let's set the minimum alignment to 32 bits.
|
||||
*
|
||||
* Note that the UEFI spec as well as some comments in the EDK2 code base
|
||||
* suggest that EFI_GUID should be 64-bit aligned, but this appears to be
|
||||
* a mistake, given that no code seems to exist that actually enforces that
|
||||
* or relies on it.
|
||||
*/
|
||||
typedef guid_t efi_guid_t __aligned(__alignof__(u32));
|
||||
|
||||
#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
|
||||
GUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
|
||||
|
@ -1699,19 +1712,19 @@ extern int efi_tpm_eventlog_init(void);
|
|||
* fault happened while executing an efi runtime service.
|
||||
*/
|
||||
enum efi_rts_ids {
|
||||
NONE,
|
||||
GET_TIME,
|
||||
SET_TIME,
|
||||
GET_WAKEUP_TIME,
|
||||
SET_WAKEUP_TIME,
|
||||
GET_VARIABLE,
|
||||
GET_NEXT_VARIABLE,
|
||||
SET_VARIABLE,
|
||||
QUERY_VARIABLE_INFO,
|
||||
GET_NEXT_HIGH_MONO_COUNT,
|
||||
RESET_SYSTEM,
|
||||
UPDATE_CAPSULE,
|
||||
QUERY_CAPSULE_CAPS,
|
||||
EFI_NONE,
|
||||
EFI_GET_TIME,
|
||||
EFI_SET_TIME,
|
||||
EFI_GET_WAKEUP_TIME,
|
||||
EFI_SET_WAKEUP_TIME,
|
||||
EFI_GET_VARIABLE,
|
||||
EFI_GET_NEXT_VARIABLE,
|
||||
EFI_SET_VARIABLE,
|
||||
EFI_QUERY_VARIABLE_INFO,
|
||||
EFI_GET_NEXT_HIGH_MONO_COUNT,
|
||||
EFI_RESET_SYSTEM,
|
||||
EFI_UPDATE_CAPSULE,
|
||||
EFI_QUERY_CAPSULE_CAPS,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue