git: a3fa657eddad - main - efi/metadata: Make a note that efi_map_header isn't standard
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 09 Apr 2025 21:17:56 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=a3fa657eddade274a5cb684b5e5e890eef67ad25
commit a3fa657eddade274a5cb684b5e5e890eef67ad25
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-04-09 21:16:56 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-04-09 21:16:56 +0000
efi/metadata: Make a note that efi_map_header isn't standard
efi_map_header is similar to, but not at all the same as the UEFI
EFI_MEMORY_ATTRIBUTES_TABLE (we could easily have used the latter
though, with one fewer non-standard types, but we can't change
it easily now due to the last 10 years of boot loaders passing
this in).
Sponsored by: Netflix
---
sys/arm/include/metadata.h | 11 ++++++++---
sys/arm64/include/metadata.h | 11 ++++++++---
sys/riscv/include/metadata.h | 11 ++++++++---
sys/x86/include/metadata.h | 11 ++++++++---
4 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/sys/arm/include/metadata.h b/sys/arm/include/metadata.h
index 49f3a32826b8..d6f6f5ac8553 100644
--- a/sys/arm/include/metadata.h
+++ b/sys/arm/include/metadata.h
@@ -33,10 +33,15 @@
#define MODINFOMD_DTBP 0x1002
#define MODINFOMD_EFI_MAP 0x1003
+/*
+ * This is not the same as the UEFI standard EFI_MEMORY_ATTRIBUTES_TABLE, though
+ * memory_size / descritpr_size entries of EFI_MEMORY_DESCRIPTORS follow this table
+ * starting at a 16-byte alignment.
+ */
struct efi_map_header {
- uint64_t memory_size;
- uint64_t descriptor_size;
- uint32_t descriptor_version;
+ uint64_t memory_size; /* Numnber of bytes that follow */
+ uint64_t descriptor_size; /* Size of each EFI_MEMORY_DESCRIPTOR */
+ uint32_t descriptor_version; /* Currently '1' */
};
/*
diff --git a/sys/arm64/include/metadata.h b/sys/arm64/include/metadata.h
index 7459aa90a6e2..30ec5115e670 100644
--- a/sys/arm64/include/metadata.h
+++ b/sys/arm64/include/metadata.h
@@ -31,10 +31,15 @@
#define MODINFOMD_DTBP 0x1002
#define MODINFOMD_EFI_FB 0x1003
+/*
+ * This is not the same as the UEFI standard EFI_MEMORY_ATTRIBUTES_TABLE, though
+ * memory_size / descritpr_size entries of EFI_MEMORY_DESCRIPTORS follow this table
+ * starting at a 16-byte alignment.
+ */
struct efi_map_header {
- size_t memory_size;
- size_t descriptor_size;
- uint32_t descriptor_version;
+ size_t memory_size; /* Numnber of bytes that follow */
+ size_t descriptor_size; /* Size of each EFI_MEMORY_DESCRIPTOR */
+ uint32_t descriptor_version; /* Currently '1' */
};
struct efi_fb {
diff --git a/sys/riscv/include/metadata.h b/sys/riscv/include/metadata.h
index ddbad3fae3b4..7f7b763577e3 100644
--- a/sys/riscv/include/metadata.h
+++ b/sys/riscv/include/metadata.h
@@ -33,10 +33,15 @@
#define MODINFOMD_EFI_FB 0x1003
#define MODINFOMD_BOOT_HARTID 0x1004
+/*
+ * This is not the same as the UEFI standard EFI_MEMORY_ATTRIBUTES_TABLE, though
+ * memory_size / descritpr_size entries of EFI_MEMORY_DESCRIPTORS follow this table
+ * starting at a 16-byte alignment.
+ */
struct efi_map_header {
- size_t memory_size;
- size_t descriptor_size;
- uint32_t descriptor_version;
+ size_t memory_size; /* Numnber of bytes that follow */
+ size_t descriptor_size; /* Size of each EFI_MEMORY_DESCRIPTOR */
+ uint32_t descriptor_version; /* Currently '1' */
};
/*
diff --git a/sys/x86/include/metadata.h b/sys/x86/include/metadata.h
index b3eb4b16c1ba..dd8a8ef6c73d 100644
--- a/sys/x86/include/metadata.h
+++ b/sys/x86/include/metadata.h
@@ -36,10 +36,15 @@
#define MODINFOMD_VBE_FB 0x1007
#define MODINFOMD_EFI_ARCH 0x1008
+/*
+ * This is not the same as the UEFI standard EFI_MEMORY_ATTRIBUTES_TABLE, though
+ * memory_size / descritpr_size entries of EFI_MEMORY_DESCRIPTORS follow this table
+ * starting at a 16-byte alignment.
+ */
struct efi_map_header {
- uint64_t memory_size;
- uint64_t descriptor_size;
- uint32_t descriptor_version;
+ uint64_t memory_size; /* Numnber of bytes that follow */
+ uint64_t descriptor_size; /* Size of each EFI_MEMORY_DESCRIPTOR */
+ uint32_t descriptor_version; /* Currently '1' */
};
struct efi_fb {