Merge /u/gmbr3/gnu-efi/ branch shim into master

https://sourceforge.net/p/gnu-efi/code/merge-requests/61/
This commit is contained in:
b'Nigel Croxon 2023-07-07 13:13:41 +00:00
commit f5bb5112de
8 changed files with 56 additions and 12 deletions

View file

@ -172,7 +172,7 @@ ifeq ($(ARCH),arm)
CFLAGS += -marm
endif
ifeq ($(ARCH),aarch64)
ifneq (,$(filter $(ARCH),aarch64 arm))
LDFLAGS += -z common-page-size=4096
LDFLAGS += -z max-page-size=4096
endif

View file

@ -27,7 +27,7 @@ SECTIONS
} =0
_reloc_vsize = _evreloc - _reloc;
_reloc_size = _ereloc - _reloc;
. = ALIGN(4096);
. = ALIGN(65536);
_data = .;
.dynamic : { *(.dynamic) }
. = ALIGN(4096);

View file

@ -229,6 +229,7 @@ VOID
#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010
#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020
#define EFI_VARIABLE_APPEND_WRITE 0x00000040
#define EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS 0x00000080
// Variable size limitation
#define EFI_MAXIMUM_VARIABLE_SIZE 1024
@ -771,6 +772,8 @@ typedef struct _EFI_TABLE_HEADER {
//
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552
#define EFI_1_10_RUNTIME_SERVICES_REVISION ((1<<16) | (10))
#define EFI_2_00_RUNTIME_SERVICES_REVISION ((2<<16) | (0))
#define EFI_RUNTIME_SERVICES_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
typedef struct {
@ -818,6 +821,8 @@ typedef struct {
//
#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
#define EFI_1_10_BOOT_SERVICES_REVISION ((1<<16) | (10))
#define EFI_2_00_BOOT_SERVICES_REVISION ((2<<16) | (0))
#define EFI_BOOT_SERVICES_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
typedef struct _EFI_BOOT_SERVICES {
@ -960,6 +965,9 @@ typedef struct _EFI_CONFIGURATION_TABLE {
#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | (02))
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | (10))
#define EFI_2_00_SYSTEM_TABLE_REVISION ((2<<16) | (0))
#define EFI_SYSTEM_TABLE_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
typedef struct _EFI_SYSTEM_TABLE {

View file

@ -190,12 +190,13 @@ typedef enum {
#define EFI_MEMORY_WC 0x0000000000000002
#define EFI_MEMORY_WT 0x0000000000000004
#define EFI_MEMORY_WB 0x0000000000000008
#define EFI_MEMORY_UCE 0x0000000000000010
// physical memory protection on range
#define EFI_MEMORY_UCE 0x0000000000000010
#define EFI_MEMORY_WP 0x0000000000001000
// physical memory protection on range
#define EFI_MEMORY_RP 0x0000000000002000
#define EFI_MEMORY_XP 0x0000000000004000
#define EFI_MEMORY_RO 0x0000000000020000
// range requires a runtime mapping
#define EFI_MEMORY_RUNTIME 0x8000000000000000

View file

@ -287,17 +287,17 @@ ZeroMem (
IN UINTN Size
);
VOID
VOID EFIAPI
SetMem (
IN VOID *Buffer,
IN UINTN Size,
IN UINT8 Value
);
VOID
VOID EFIAPI
CopyMem (
IN VOID *Dest,
IN CONST VOID *Src,
IN VOID *Src,
IN UINTN len
);

View file

@ -1428,4 +1428,39 @@ typedef struct _EFI_EBC_PROTOCOL {
EFI_EBC_GET_VERSION GetVersion;
} EFI_EBC_PROTOCOL;
INTERFACE_DECL(_EFI_MEMORY_ATTRIBUTE_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_GET_MEMORY_ATTRIBUTES)(
IN struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS BaseAddress,
IN UINT64 Length,
OUT UINT64 *Attributes
);
typedef
EFI_STATUS
(EFIAPI *EFI_SET_MEMORY_ATTRIBUTES)(
IN struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS BaseAddress,
IN UINT64 Length,
IN UINT64 Attributes
);
typedef
EFI_STATUS
(EFIAPI *EFI_CLEAR_MEMORY_ATTRIBUTES)(
IN struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS BaseAddress,
IN UINT64 Length,
IN UINT64 Attributes
);
typedef struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL {
EFI_GET_MEMORY_ATTRIBUTES GetMemoryAttributes;
EFI_SET_MEMORY_ATTRIBUTES SetMemoryAttributes;
EFI_CLEAR_MEMORY_ATTRIBUTES ClearMemoryAttributes;
} EFI_MEMORY_ATTRIBUTE_PROTOCOL;
#endif

View file

@ -98,7 +98,7 @@ ZeroMem (
RtZeroMem (Buffer, Size);
}
VOID
VOID EFIAPI
SetMem (
IN VOID *Buffer,
IN UINTN Size,
@ -108,10 +108,10 @@ SetMem (
RtSetMem (Buffer, Size, Value);
}
VOID
VOID EFIAPI
CopyMem (
IN VOID *Dest,
IN CONST VOID *Src,
IN VOID *Src,
IN UINTN len
)
{

View file

@ -205,7 +205,7 @@ StrDuplicate (
Size = StrSize(Src);
Dest = AllocatePool (Size);
if (Dest) {
CopyMem (Dest, Src, Size);
CopyMem (Dest, (void *)Src, Size);
}
return Dest;
}