From nobody Mon Sep 16 19:23:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+114354+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+114354+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1706129855; cv=none; d=zohomail.com; s=zohoarc; b=g8HCnaZ0qyR1dqnZft23FrCiBVnhSjs7q0gfHlZmNozv1pwx7pXP8eH5iNJSvCdtDtalQ9vsT8em+j6Rl4OBlqXcTRQXcC6NNe0xpfBvPbUTZ0FtG/gL4DUPuk5GpBX0Zyp8O/PAZK7bmdJ+B2cHYV+UOzjdXvJjVyOzl+mEMMA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706129855; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=xPAn+b2fXQQNlmgMRs96fyYmNk98OCGsjcSCnsKNiIg=; b=e7IUPKwk/3WI5C6z2+2AOwD7dugZV3gbSwni1UnvxV7mFgmjeXOPv26GmdYmSIyiSB2BxMscfYhx3XUNyh21ThKHu+7RaGb3MKWKkbjx//pPLlXEaWxykvi5lf9Zj3y+0rCDn8iJovZagr9P572Br5F2L7CmyGfJipXdO3v1dWA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+114354+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1706129855845781.8080153773819; Wed, 24 Jan 2024 12:57:35 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=xPAn+b2fXQQNlmgMRs96fyYmNk98OCGsjcSCnsKNiIg=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1706129855; v=1; b=E+FkSaT4o8gNTkLzThsWMdTXpmK3A0CxnRCKLhTzbCIuFGkZvAdWk118blpzL8CKPIXXX36B HjEetbMz+kYFe2fjvlVUU/GH33z33hFucXw4GHe7pgp9/87jswQ1I+DXegKAPHFMxgCL2wyxhb7 5LB3ES9R47/RXfemo/qmwcwo= X-Received: by 127.0.0.2 with SMTP id Z0BqYY1788612xs3ViGp9Lna; Wed, 24 Jan 2024 12:57:35 -0800 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.35263.1706129854231029175 for ; Wed, 24 Jan 2024 12:57:34 -0800 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B34D6FEC; Wed, 24 Jan 2024 12:58:18 -0800 (PST) X-Received: from beelzebub.ast.arm.com (u203625-lin.austin.arm.com [10.118.28.39]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D42903F73F; Wed, 24 Jan 2024 12:57:33 -0800 (PST) From: "Sam Kaynor" To: devel@edk2.groups.io Cc: stuart.yoder@arm.com, Sam Kaynor , Ray Ni , Zhichao Gao Subject: [edk2-devel] [PATCH v1 1/3] ShellPkg: UefiShellDebug1CommandsLib: Dumping RT Properties in Dmem.c Date: Wed, 24 Jan 2024 14:56:04 -0600 Message-Id: <20240124205605.69439-2-Sam.Kaynor@arm.com> In-Reply-To: <20240124205605.69439-1-Sam.Kaynor@arm.com> References: <20240124205605.69439-1-Sam.Kaynor@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sam.kaynor@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: oxbzeDnoCSMYhwasJsotsOqSx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1706129856441100001 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4352 Implemented the dumping of the UEFI RT Properties Table using Dmem.c Cc: Ray Ni Cc: Zhichao Gao Signed-off-by: Sam Kaynor --- ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c = | 62 ++++++++++++++++++++ ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni= | 22 ++++++- 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/= Library/UefiShellDebug1CommandsLib/Dmem.c index a609971f345e..1ae7b1f3d85c 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c @@ -84,8 +84,63 @@ DisplayMmioMemory ( return (ShellStatus); } =20 +/** + Display the RtPropertiesTable entries + + @param[in] Address The pointer to the RtPropertiesTable. +**/ +SHELL_STATUS +DisplayRtProperties ( + IN UINT64 Address + ) +{ + EFI_RT_PROPERTIES_TABLE *RtPropertiesTable; + UINT32 RtServices; + SHELL_STATUS ShellStatus; + EFI_STATUS Status; + + ShellStatus =3D SHELL_SUCCESS; + + if (Address !=3D 0) { + Status =3D EfiGetSystemConfigurationTable (&gEfiRtPropertiesTableGuid,= (VOID **)&RtPropertiesTable); + if (EFI_ERROR (Status)) { + ShellStatus =3D SHELL_NOT_FOUND; + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_GET_FAIL),= gShellDebug1HiiHandle, L"RtPropertiesTable"); + } else { + RtServices =3D (UINT32)RtPropertiesTable->RuntimeServicesSupported; + ShellPrintHiiEx ( + -1, + -1, + NULL, + STRING_TOKEN (STR_DMEM_RT_PROPERTIES), + gShellDebug1HiiHandle, + EFI_RT_PROPERTIES_TABLE_VERSION, + (RtServices & EFI_RT_SUPPORTED_GET_TIME) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_SET_TIME) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_GET_WAKEUP_TIME) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_SET_WAKEUP_TIME) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_GET_VARIABLE) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_GET_NEXT_VARIABLE_NAME) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_SET_VARIABLE) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_CONVERT_POINTER) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_GET_NEXT_HIGH_MONOTONIC_COUNT) ? 1 = : 0, + (RtServices & EFI_RT_SUPPORTED_RESET_SYSTEM) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_UPDATE_CAPSULE) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES) ? 1 : 0, + (RtServices & EFI_RT_SUPPORTED_QUERY_VARIABLE_INFO) ? 1 : 0 + ); + } + } else { + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_NOT_FOUND), = gShellDebug1HiiHandle, L"RtPropertiesTable"); + } + + return (ShellStatus); +} + STATIC CONST SHELL_PARAM_ITEM ParamList[] =3D { { L"-mmio", TypeFlag }, + { L"-verbose", TypeFlag }, { NULL, TypeMax } }; =20 @@ -308,6 +363,13 @@ ShellCommandRunDmem ( ConformanceProfileTableAddress ); } + + if (ShellCommandLineGetFlag (Package, L"-verbose")) { + if (ShellStatus =3D=3D SHELL_SUCCESS) { + ShellStatus =3D DisplayRtProperties (RtPropertiesTableAddress); + } + } + } else { ShellStatus =3D DisplayMmioMemory (Address, (UINTN)Size); } diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com= mandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1C= ommandsLib.uni index 4041f0cd483e..299b0ba44f31 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLi= b.uni +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLi= b.uni @@ -126,8 +126,26 @@ "Memory Range Capsule = %016LX\r\n" "Hii Database Export Buf= fer %016LX\r\n" "Conformance Profile Tab= le %016LX\r\n" - - +#string STR_DMEM_RT_PROPERTIES #language en-US "\r\nRT Properties Table= \r\n" + "-----------------------= -----------------\r\n" + "Version 0x%01= LX\r\n" + "Runtime Services Suppor= ted:\r\n" + " GET_TIME = %d\r\n" + " GET_WAKEUP_TIME = %d\r\n" + " SET_TIME = %d\r\n" + " SET_WAKEUP_TIME = %d\r\n" + " GET_VARIABLE = %d\r\n" + " GET_NEXT_VARIABLE_NAM= E %d\r\n" + " SET_VARIABLE = %d\r\n" + " SET_VIRTUAL_ADDRESS_M= AP %d\r\n" + " CONVERT_POINTERS = %d\r\n" + " GET_NEXT_HIGH_MONOTON= IC_COUNT %d\r\n" + " RESET_SYSTEM = %d\r\n" + " UPDATE_CAPSULE = %d\r\n" + " QUERY_CAPSULE_CAPABIL= ITIES %d\r\n" + " QUERY_VARIABLE_INFO = %d\r\n" +#string STR_DMEM_ERR_NOT_FOUND #language en-US "\r\n%H%s%N: Table addre= ss not found.\r\n" +#string STR_DMEM_ERR_GET_FAIL #language en-US "\r\n%H%s%N: Unable to g= et table information.\r\n" =20 #string STR_LOAD_PCI_ROM_RES #language en-US "Image '%B%s%N' load res= ult: %r\r\n" #string STR_LOADPCIROM_CORRUPT #language en-US "%H%s%N: File '%B%s%N' I= mage %d is corrupt.\r\n" --=20 2.25.1