From patchwork Sun Jan 16 15:14:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1580474 X-Patchwork-Delegate: xypron.glpk@gmx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=hzbiGP6Z; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JcJWn5pTTz9sRR for ; Mon, 17 Jan 2022 02:15:49 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 264A68355E; Sun, 16 Jan 2022 16:15:18 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=canonical.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.b="hzbiGP6Z"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5151C82FC8; Sun, 16 Jan 2022 16:14:59 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CCF948343B for ; Sun, 16 Jan 2022 16:14:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=canonical.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=heinrich.schuchardt@canonical.com Received: from workstation5.fritz.box (ip-88-152-144-107.hsi03.unitymediagroup.de [88.152.144.107]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 4C61241972; Sun, 16 Jan 2022 15:14:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1642346091; bh=f62uhV/qXsMQtylAu29ejfcZmKkdKv36k6zYSiZlrUw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hzbiGP6ZTdbsZYkCVNCQZvPSg3rk63GH+QKOV4uHcc3TPzoyMr4WBd3zN8s0Pc7y1 ogmfnwvLGdjBmr4kmSnj/tcsqN6V2tji5YgRMmujFKzf2f+2BTN4uM23aVSCVxctlc lYeOHau79kYkT9D9AP1HBJb+/dvza+64FINH4JW8JZTTD1DIjkHSTTgWvpcoAhlsGo 32IvtapDd2UMJspVGlmNv1JB4LFTG5v11gRD0cNecMrN8OBUTQ3fPbCj81zXXu2WwS 3MMhJi9FCZsEeTTVOocAMM41QKtMYSGnzdxa2kOeHOSM+FnZ1/aiAGz5jWUG+5NzRo 0bbEZmCYiDOVg== From: Heinrich Schuchardt To: Tom Rini Cc: Simon Glass , Rasmus Villemoes , Patrick Delaunay , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH 6/8] cmd: efidebug: simplify printing GUIDs Date: Sun, 16 Jan 2022 16:14:39 +0100 Message-Id: <20220116151441.219566-7-heinrich.schuchardt@canonical.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220116151441.219566-1-heinrich.schuchardt@canonical.com> References: <20220116151441.219566-1-heinrich.schuchardt@canonical.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Use "%pS" to print text representations of GUIDs. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- cmd/efidebug.c | 160 ++--------------------------------------- include/efi_api.h | 8 +++ include/efi_dt_fixup.h | 4 -- include/efi_rng.h | 4 -- lib/uuid.c | 116 ++++++++++++++++++++++++++++++ 5 files changed, 128 insertions(+), 164 deletions(-) diff --git a/cmd/efidebug.c b/cmd/efidebug.c index a977ca9c72..66ce0fc305 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -502,149 +502,6 @@ static int do_efi_show_drivers(struct cmd_tbl *cmdtp, int flag, return CMD_RET_SUCCESS; } -static const struct { - const char *text; - const efi_guid_t guid; -} guid_list[] = { - { - "Device Path", - EFI_DEVICE_PATH_PROTOCOL_GUID, - }, - { - "Device Path To Text", - EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID, - }, - { - "Device Path Utilities", - EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID, - }, - { - "Unicode Collation 2", - EFI_UNICODE_COLLATION_PROTOCOL2_GUID, - }, - { - "Driver Binding", - EFI_DRIVER_BINDING_PROTOCOL_GUID, - }, - { - "Simple Text Input", - EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID, - }, - { - "Simple Text Input Ex", - EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID, - }, - { - "Simple Text Output", - EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID, - }, - { - "Block IO", - EFI_BLOCK_IO_PROTOCOL_GUID, - }, - { - "Simple File System", - EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID, - }, - { - "Loaded Image", - EFI_LOADED_IMAGE_PROTOCOL_GUID, - }, - { - "Graphics Output", - EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID, - }, - { - "HII String", - EFI_HII_STRING_PROTOCOL_GUID, - }, - { - "HII Database", - EFI_HII_DATABASE_PROTOCOL_GUID, - }, - { - "HII Config Routing", - EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID, - }, - { - "Load File2", - EFI_LOAD_FILE2_PROTOCOL_GUID, - }, - { - "Random Number Generator", - EFI_RNG_PROTOCOL_GUID, - }, - { - "Simple Network", - EFI_SIMPLE_NETWORK_PROTOCOL_GUID, - }, - { - "PXE Base Code", - EFI_PXE_BASE_CODE_PROTOCOL_GUID, - }, - { - "Device-Tree Fixup", - EFI_DT_FIXUP_PROTOCOL_GUID, - }, - { - "System Partition", - PARTITION_SYSTEM_GUID - }, - { - "Firmware Management", - EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID - }, - /* Configuration table GUIDs */ - { - "ACPI table", - EFI_ACPI_TABLE_GUID, - }, - { - "EFI System Resource Table", - EFI_SYSTEM_RESOURCE_TABLE_GUID, - }, - { - "device tree", - EFI_FDT_GUID, - }, - { - "SMBIOS table", - SMBIOS_TABLE_GUID, - }, - { - "Runtime properties", - EFI_RT_PROPERTIES_TABLE_GUID, - }, - { - "TCG2 Final Events Table", - EFI_TCG2_FINAL_EVENTS_TABLE_GUID, - }, -}; - -/** - * get_guid_text - get string of GUID - * - * Return description of GUID. - * - * @guid: GUID - * Return: description of GUID or NULL - */ -static const char *get_guid_text(const void *guid) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(guid_list); i++) { - /* - * As guidcmp uses memcmp() we can safely accept unaligned - * GUIDs. - */ - if (!guidcmp(&guid_list[i].guid, guid)) - return guid_list[i].text; - } - - return NULL; -} - /** * do_efi_show_handles() - show UEFI handles * @@ -664,7 +521,6 @@ static int do_efi_show_handles(struct cmd_tbl *cmdtp, int flag, efi_handle_t *handles; efi_guid_t **guid; efi_uintn_t num, count, i, j; - const char *guid_text; efi_status_t ret; ret = EFI_CALL(efi_locate_handle_buffer(ALL_HANDLES, NULL, NULL, @@ -692,11 +548,7 @@ static int do_efi_show_handles(struct cmd_tbl *cmdtp, int flag, else putc(' '); - guid_text = get_guid_text(guid[j]); - if (guid_text) - puts(guid_text); - else - printf("%pUl", guid[j]); + printf("%pUs", guid[j]); } putc('\n'); } @@ -873,14 +725,10 @@ static int do_efi_show_tables(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { efi_uintn_t i; - const char *guid_str; - for (i = 0; i < systab.nr_tables; ++i) { - guid_str = get_guid_text(&systab.tables[i].guid); - if (!guid_str) - guid_str = ""; - printf("%pUl %s\n", &systab.tables[i].guid, guid_str); - } + for (i = 0; i < systab.nr_tables; ++i) + printf("%pUl (%pUs)\n", + &systab.tables[i].guid, &systab.tables[i].guid); return CMD_RET_SUCCESS; } diff --git a/include/efi_api.h b/include/efi_api.h index ec9fa89a93..a60d1bc416 100644 --- a/include/efi_api.h +++ b/include/efi_api.h @@ -426,6 +426,14 @@ struct efi_runtime_services { EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, \ 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25) +#define EFI_RNG_PROTOCOL_GUID \ + EFI_GUID(0x3152bca5, 0xeade, 0x433d, 0x86, 0x2e, \ + 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44) + +#define EFI_DT_FIXUP_PROTOCOL_GUID \ + EFI_GUID(0xe617d64c, 0xfe08, 0x46da, 0xf4, 0xdc, \ + 0xbb, 0xd5, 0x87, 0x0c, 0x73, 0x00) + /** * struct efi_configuration_table - EFI Configuration Table * diff --git a/include/efi_dt_fixup.h b/include/efi_dt_fixup.h index 9066e8dd8e..83382537d1 100644 --- a/include/efi_dt_fixup.h +++ b/include/efi_dt_fixup.h @@ -7,10 +7,6 @@ #include -#define EFI_DT_FIXUP_PROTOCOL_GUID \ - EFI_GUID(0xe617d64c, 0xfe08, 0x46da, 0xf4, 0xdc, \ - 0xbb, 0xd5, 0x87, 0x0c, 0x73, 0x00) - #define EFI_DT_FIXUP_PROTOCOL_REVISION 0x00010000 /* Add nodes and update properties */ diff --git a/include/efi_rng.h b/include/efi_rng.h index 35f59678c7..3c622381cb 100644 --- a/include/efi_rng.h +++ b/include/efi_rng.h @@ -10,10 +10,6 @@ #include /* EFI random number generation protocol related GUID definitions */ -#define EFI_RNG_PROTOCOL_GUID \ - EFI_GUID(0x3152bca5, 0xeade, 0x433d, 0x86, 0x2e, \ - 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44) - #define EFI_RNG_ALGORITHM_RAW \ EFI_GUID(0xe43176d7, 0xb6e8, 0x4827, 0xb7, 0x84, \ 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61) diff --git a/lib/uuid.c b/lib/uuid.c index 56c452ee77..60b7ca17f1 100644 --- a/lib/uuid.c +++ b/lib/uuid.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -101,6 +102,121 @@ static const struct { {"lvm", PARTITION_LINUX_LVM_GUID}, {"u-boot-env", PARTITION_U_BOOT_ENVIRONMENT}, #endif +#ifdef CONFIG_CMD_EFIDEBUG + { + "Device Path", + EFI_DEVICE_PATH_PROTOCOL_GUID, + }, + { + "Device Path To Text", + EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID, + }, + { + "Device Path Utilities", + EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID, + }, + { + "Unicode Collation 2", + EFI_UNICODE_COLLATION_PROTOCOL2_GUID, + }, + { + "Driver Binding", + EFI_DRIVER_BINDING_PROTOCOL_GUID, + }, + { + "Simple Text Input", + EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID, + }, + { + "Simple Text Input Ex", + EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID, + }, + { + "Simple Text Output", + EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID, + }, + { + "Block IO", + EFI_BLOCK_IO_PROTOCOL_GUID, + }, + { + "Simple File System", + EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID, + }, + { + "Loaded Image", + EFI_LOADED_IMAGE_PROTOCOL_GUID, + }, + { + "Graphics Output", + EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID, + }, + { + "HII String", + EFI_HII_STRING_PROTOCOL_GUID, + }, + { + "HII Database", + EFI_HII_DATABASE_PROTOCOL_GUID, + }, + { + "HII Config Routing", + EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID, + }, + { + "Load File2", + EFI_LOAD_FILE2_PROTOCOL_GUID, + }, + { + "Random Number Generator", + EFI_RNG_PROTOCOL_GUID, + }, + { + "Simple Network", + EFI_SIMPLE_NETWORK_PROTOCOL_GUID, + }, + { + "PXE Base Code", + EFI_PXE_BASE_CODE_PROTOCOL_GUID, + }, + { + "Device-Tree Fixup", + EFI_DT_FIXUP_PROTOCOL_GUID, + }, + { + "System Partition", + PARTITION_SYSTEM_GUID + }, + { + "Firmware Management", + EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID + }, + /* Configuration table GUIDs */ + { + "ACPI table", + EFI_ACPI_TABLE_GUID, + }, + { + "EFI System Resource Table", + EFI_SYSTEM_RESOURCE_TABLE_GUID, + }, + { + "device tree", + EFI_FDT_GUID, + }, + { + "SMBIOS table", + SMBIOS_TABLE_GUID, + }, + { + "Runtime properties", + EFI_RT_PROPERTIES_TABLE_GUID, + }, + { + "TCG2 Final Events Table", + EFI_TCG2_FINAL_EVENTS_TABLE_GUID, + }, +#endif }; /*