Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Apr 2025 21:17:56 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: a3fa657eddad - main - efi/metadata: Make a note that efi_map_header isn't standard
Message-ID:  <202504092117.539LHuSd078100@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202504092117.539LHuSd078100>