[PATCH v2 2/5] x86: hob: Try to show a name instead of a GUID

Simon Glass sjg at chromium.org
Tue Sep 22 22:54:49 CEST 2020


GUIDs are one of the seven evils of the computer world. They obfuscate the
meaning and require people to look up long hex strings to decode it.

Luckily only a miniscule fraction of the 10^38 possible GUIDs are in use.

Add a way to decode the GUIDs known to U-Boot. Add a few more to the list
for good measure.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
---

Changes in v2:
- Fix '93' typo

 arch/x86/include/asm/fsp/fsp_hob.h | 25 +++++++++++++++++
 cmd/x86/hob.c                      | 43 ++++++++++++++++++++++++++++--
 2 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/fsp/fsp_hob.h b/arch/x86/include/asm/fsp/fsp_hob.h
index d248520e972..ea3983e04ff 100644
--- a/arch/x86/include/asm/fsp/fsp_hob.h
+++ b/arch/x86/include/asm/fsp/fsp_hob.h
@@ -99,4 +99,29 @@ struct __packed hob_graphics_info {
 	EFI_GUID(0x39f62cce, 0x6825, 0x4669, \
 		0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07)
 
+/* The following GUIDs are observed with FSP 2.1 / Apollo Lake */
+#define FSP_HOB_RESOURCE_OWNER_SMM_PEI_SMRAM_GUID \
+	EFI_GUID(0x6dadf1d1, 0xd4cc, 0x4910, \
+		0xbb, 0x6e, 0x82, 0xb1, 0xfd, 0x80, 0xff, 0x3d)
+
+#define FSP_HOB_RESOURCE_OWNER_PCD_DATABASE_GUID1 \
+	EFI_GUID(0xea296d92, 0x0b69, 0x423c, \
+		0x8c, 0x28, 0x33, 0xb4, 0xe0, 0xa9, 0x12, 0x68)
+
+#define FSP_HOB_RESOURCE_OWNER_PCD_DATABASE_GUID2 \
+	EFI_GUID(0x9b3ada4f, 0xae56, 0x4c24, \
+		0x8d, 0xea, 0xf0, 0x3b, 0x75, 0x58, 0xae, 0x50)
+
+#define FSP_HOB_RESOURCE_OWNER_PEIM_DXE_GUID \
+	EFI_GUID(0x86d70125, 0xbaa3, 0x4296, \
+		0xa6, 0x2f, 0x60, 0x2b, 0xeb, 0xbb, 0x90, 0x81)
+
+#define FSP_HOB_RESOURCE_OWNER_ALLOC_STACK_GUID \
+	EFI_GUID(0x4ed4bf27, 0x4092, 0x42e9, \
+		0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x00, 0xc9, 0xbd)
+
+#define FSP_HOB_RESOURCE_OWNER_SMBIOS_MEMORY_GUID \
+	EFI_GUID(0x01a1108c, 0x9dee, 0x4984, \
+		0x88, 0xc3, 0xee, 0xe8, 0xc4, 0x9e, 0xfb, 0x89)
+
 #endif
diff --git a/cmd/x86/hob.c b/cmd/x86/hob.c
index e3f512beee8..98a67600086 100644
--- a/cmd/x86/hob.c
+++ b/cmd/x86/hob.c
@@ -8,6 +8,7 @@
 #include <efi.h>
 #include <uuid.h>
 #include <asm/hob.h>
+#include <asm/fsp/fsp_hob.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -26,6 +27,37 @@ static char *hob_type[] = {
 	"Capsule",
 };
 
+static struct guid_name {
+	efi_guid_t guid;
+	const char *name;
+} guid_name[] = {
+	{ FSP_HOB_RESOURCE_OWNER_TSEG_GUID, "TSEG" },
+	{ FSP_HOB_RESOURCE_OWNER_FSP_GUID, "FSP" },
+	{ FSP_HOB_RESOURCE_OWNER_SMM_PEI_SMRAM_GUID, "SMM PEI SMRAM" },
+	{ FSP_NON_VOLATILE_STORAGE_HOB_GUID, "NVS" },
+	{ FSP_VARIABLE_NV_DATA_HOB_GUID, "Variable NVS" },
+	{ FSP_GRAPHICS_INFO_HOB_GUID, "Graphics info" },
+	{ FSP_HOB_RESOURCE_OWNER_PCD_DATABASE_GUID1, "PCD database ea" },
+	{ FSP_HOB_RESOURCE_OWNER_PCD_DATABASE_GUID2, "PCD database 9b" },
+	{ FSP_HOB_RESOURCE_OWNER_PEIM_DXE_GUID, "PEIM Init DXE" },
+	{ FSP_HOB_RESOURCE_OWNER_ALLOC_STACK_GUID, "Alloc stack" },
+	{ FSP_HOB_RESOURCE_OWNER_SMBIOS_MEMORY_GUID, "SMBIOS memory" },
+	{ {}, "zero-guid" },
+	{}
+};
+
+static const char *guid_to_name(const efi_guid_t *guid)
+{
+	struct guid_name *entry;
+
+	for (entry = guid_name; entry->name; entry++) {
+		if (!guidcmp(guid, &entry->guid))
+			return entry->name;
+	}
+
+	return NULL;
+}
+
 static int do_hob(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
 	const struct hob_header *hdr;
@@ -65,9 +97,16 @@ static int do_hob(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 
 		if (type == HOB_TYPE_MEM_ALLOC || type == HOB_TYPE_RES_DESC ||
 		    type == HOB_TYPE_GUID_EXT) {
+			const char *name;
+
 			guid = (efi_guid_t *)(hdr + 1);
-			uuid_bin_to_str(guid->b, uuid, UUID_STR_FORMAT_GUID);
-			printf("%s", uuid);
+			name = guid_to_name(guid);
+			if (!name) {
+				uuid_bin_to_str(guid->b, uuid,
+						UUID_STR_FORMAT_GUID);
+				name = uuid;
+			}
+			printf("%36s", name);
 		} else {
 			printf("%36s", "Not Available");
 		}
-- 
2.28.0.681.g6f77f65b4e-goog



More information about the U-Boot mailing list