* [edk2-devel] [PATCH v6 1/4] ShellPkg: UefiShellDebug1CommandsLib: Dumping RT Properties in Dmem.c
2024-04-26 17:52 [edk2-devel] [PATCH v6 0/4] Adding support for veborse UEFI Table dumping to Dmem.c Sam Kaynor
@ 2024-04-26 17:52 ` Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 2/4] ShellPkg: UefiShellDebug1CommandsLib: Image Execution Table " Sam Kaynor
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Sam Kaynor @ 2024-04-26 17:52 UTC (permalink / raw)
To: devel; +Cc: Ray Ni, Zhichao Gao
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
Implemented the dumping of the UEFI RT Properties Table using Dmem.c
Added new entry to the help command for the -verbose option
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
Tested-by: Stuart Yoder <stuart.yoder@arm.com>
Reviewed-by: Stuart Yoder <stuart.yoder@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
---
Notes:
v5:
- corrected style error (spaces before '(')
v4:
- fixed crash when RTProperties table not present
- expanded help output to include -verbose option
v3:
- fixed build errors
- properly using Address variable
ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c | 113 +++++++++++++++-----
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni | 23 +++-
2 files changed, 109 insertions(+), 27 deletions(-)
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
index a609971f345e..2975e21b0a42 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
@@ -34,7 +34,7 @@ MakePrintable (
IN CONST CHAR16 Char
)
{
- if (((Char < 0x20) && (Char > 0)) || (Char > 126)) {
+ if ( ( (Char < 0x20) && (Char > 0)) || (Char > 126)) {
return (L'?');
}
@@ -71,12 +71,12 @@ DisplayMmioMemory (
return SHELL_OUT_OF_RESOURCES;
}
- Status = PciRbIo->Mem.Read (PciRbIo, EfiPciWidthUint8, (UINT64)(UINTN)Address, Size, Buffer);
+ Status = PciRbIo->Mem.Read (PciRbIo, EfiPciWidthUint8, (UINT64) (UINTN)Address, Size, Buffer);
if (EFI_ERROR (Status)) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PCIRBIO_ER), gShellDebug1HiiHandle, L"dmem");
ShellStatus = SHELL_NOT_FOUND;
} else {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_MMIO_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)(UINTN)Address, Size);
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_MMIO_HEADER_ROW), gShellDebug1HiiHandle, (UINT64) (UINTN)Address, Size);
DumpHex (2, (UINTN)Address, Size, Buffer);
}
@@ -84,8 +84,64 @@ DisplayMmioMemory (
return (ShellStatus);
}
+/**
+ 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 = SHELL_SUCCESS;
+
+ if (Address != 0) {
+ RtPropertiesTable = (EFI_RT_PROPERTIES_TABLE *)Address;
+
+ RtServices = (UINT32)RtPropertiesTable->RuntimeServicesSupported;
+ Status = 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
+ );
+
+ if (EFI_ERROR (Status)) {
+ ShellStatus = SHELL_ABORTED;
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_GET_FAIL), gShellDebug1HiiHandle, L"RtPropertiesTable");
+ }
+ } else {
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_NOT_FOUND), gShellDebug1HiiHandle, L"RtPropertiesTable");
+ }
+
+ return (ShellStatus);
+}
+
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
{ L"-mmio", TypeFlag },
+ { L"-verbose", TypeFlag },
{ NULL, TypeMax }
};
@@ -147,7 +203,7 @@ ShellCommandRunDmem (
//
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
if (EFI_ERROR (Status)) {
- if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
+ if ( (Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, L"dmem", ProblemParam);
FreePool (ProblemParam);
ShellStatus = SHELL_INVALID_PARAMETER;
@@ -183,7 +239,7 @@ ShellCommandRunDmem (
if (ShellStatus == SHELL_SUCCESS) {
if (!ShellCommandLineGetFlag (Package, L"-mmio")) {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)(UINTN)Address, Size);
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_HEADER_ROW), gShellDebug1HiiHandle, (UINT64) (UINTN)Address, Size);
DumpHex (2, (UINTN)Address, (UINTN)Size, Address);
if (Address == (VOID *)gST) {
Acpi20TableAddress = 0;
@@ -205,72 +261,72 @@ ShellCommandRunDmem (
ConformanceProfileTableAddress = 0;
for (TableWalker = 0; TableWalker < gST->NumberOfTableEntries; TableWalker++) {
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiAcpi20TableGuid)) {
- Acpi20TableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ Acpi20TableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiAcpi10TableGuid)) {
- AcpiTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ AcpiTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSmbiosTableGuid)) {
- SmbiosTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ SmbiosTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSmbios3TableGuid)) {
- SmbiosTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ SmbiosTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiMpsTableGuid)) {
- MpsTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ MpsTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiMemoryAttributesTableGuid)) {
- MemoryAttributesTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ MemoryAttributesTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiRtPropertiesTableGuid)) {
- RtPropertiesTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ RtPropertiesTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSystemResourceTableGuid)) {
- SystemResourceTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ SystemResourceTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiDebugImageInfoTableGuid)) {
- DebugImageInfoTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ DebugImageInfoTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiImageSecurityDatabaseGuid)) {
- ImageExecutionTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ ImageExecutionTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonConfigDataTableGuid)) {
- JsonConfigDataTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ JsonConfigDataTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonCapsuleDataTableGuid)) {
- JsonCapsuleDataTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ JsonCapsuleDataTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonCapsuleResultTableGuid)) {
- JsonCapsuleResultTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ JsonCapsuleResultTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiHiiDatabaseProtocolGuid)) {
- HiiDatabaseExportBufferAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ HiiDatabaseExportBufferAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
}
@@ -281,14 +337,14 @@ ShellCommandRunDmem (
NULL,
STRING_TOKEN (STR_DMEM_SYSTEM_TABLE),
gShellDebug1HiiHandle,
- (UINT64)(UINTN)Address,
+ (UINT64) (UINTN)Address,
gST->Hdr.HeaderSize,
gST->Hdr.Revision,
- (UINT64)(UINTN)gST->ConIn,
- (UINT64)(UINTN)gST->ConOut,
- (UINT64)(UINTN)gST->StdErr,
- (UINT64)(UINTN)gST->RuntimeServices,
- (UINT64)(UINTN)gST->BootServices,
+ (UINT64) (UINTN)gST->ConIn,
+ (UINT64) (UINTN)gST->ConOut,
+ (UINT64) (UINTN)gST->StdErr,
+ (UINT64) (UINTN)gST->RuntimeServices,
+ (UINT64) (UINTN)gST->BootServices,
SalTableAddress,
AcpiTableAddress,
Acpi20TableAddress,
@@ -308,6 +364,13 @@ ShellCommandRunDmem (
ConformanceProfileTableAddress
);
}
+
+ if (ShellCommandLineGetFlag (Package, L"-verbose")) {
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = DisplayRtProperties (RtPropertiesTableAddress);
+ }
+ }
+
} else {
ShellStatus = DisplayMmioMemory (Address, (UINTN)Size);
}
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
index 4041f0cd483e..a2241614f109 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
@@ -126,8 +126,26 @@
"Memory Range Capsule %016LX\r\n"
"Hii Database Export Buffer %016LX\r\n"
"Conformance Profile Table %016LX\r\n"
-
-
+#string STR_DMEM_RT_PROPERTIES #language en-US "\r\nRT Properties Table\r\n"
+ "----------------------------------------\r\n"
+ "Version 0x%01LX\r\n"
+ "Runtime Services Supported:\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_NAME %d\r\n"
+ " SET_VARIABLE %d\r\n"
+ " SET_VIRTUAL_ADDRESS_MAP %d\r\n"
+ " CONVERT_POINTERS %d\r\n"
+ " GET_NEXT_HIGH_MONOTONIC_COUNT %d\r\n"
+ " RESET_SYSTEM %d\r\n"
+ " UPDATE_CAPSULE %d\r\n"
+ " QUERY_CAPSULE_CAPABILITIES %d\r\n"
+ " QUERY_VARIABLE_INFO %d\r\n"
+#string STR_DMEM_ERR_NOT_FOUND #language en-US "\r\n%H%s%N: Table address not found.\r\n"
+#string STR_DMEM_ERR_GET_FAIL #language en-US "\r\n%H%s%N: Unable to get table information.\r\n"
#string STR_LOAD_PCI_ROM_RES #language en-US "Image '%B%s%N' load result: %r\r\n"
#string STR_LOADPCIROM_CORRUPT #language en-US "%H%s%N: File '%B%s%N' Image %d is corrupt.\r\n"
@@ -589,6 +607,7 @@
" \r\n"
" -b - Displays one screen at a time.\r\n"
" -MMIO - Forces address cycles to the PCI bus.\r\n"
+" -verbose - Displays contents of certain EFI System Tables.\r\n"
" address - Specifies a starting address in hexadecimal format.\r\n"
" size - Specifies the number of bytes to display in hexadecimal format.\r\n"
".SH DESCRIPTION\r\n"
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [edk2-devel] [PATCH v6 2/4] ShellPkg: UefiShellDebug1CommandsLib: Image Execution Table in Dmem.c
2024-04-26 17:52 [edk2-devel] [PATCH v6 0/4] Adding support for veborse UEFI Table dumping to Dmem.c Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 1/4] ShellPkg: UefiShellDebug1CommandsLib: Dumping RT Properties in Dmem.c Sam Kaynor
@ 2024-04-26 17:52 ` Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 4/4] ShellPkg: UefiShellDebug1CommandsLib: Conformance Profiles in Dmem.c Sam Kaynor
3 siblings, 0 replies; 9+ messages in thread
From: Sam Kaynor @ 2024-04-26 17:52 UTC (permalink / raw)
To: devel; +Cc: Ray Ni, Zhichao Gao
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
Implemented dumping of the Image Execution Table using Dmem.c
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
Tested-by: Stuart Yoder <stuart.yoder@arm.com>
Reviewed-by: Stuart Yoder <stuart.yoder@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
---
Notes:
v5:
- corrected comment for GetBaseName
- corrected style error (spaces before '(')
v4:
- changed Image Execution output to match spec
v3:
- fixed build erros
- added setwidth formatting to output
- properly using Address variable
ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c | 135 ++++++++++++++++++++
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni | 3 +
2 files changed, 138 insertions(+)
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
index 2975e21b0a42..a4f404c1cdbd 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
@@ -139,6 +139,138 @@ DisplayRtProperties (
return (ShellStatus);
}
+/**
+ Retrieve the ImageExecutionTable Entry ImageName from ImagePath
+
+ @param[in] Filename The full path of the image.
+ @param[out] Basename The name of the image.
+**/
+EFI_STATUS
+GetBaseName (
+ IN CHAR16 *FileName,
+ OUT CHAR16 **BaseName
+ )
+{
+ UINT32 StrLen;
+ CHAR16 *StrTail;
+
+ StrLen = StrSize (FileName);
+
+ for (StrTail = FileName + StrLen - 1; StrTail != FileName && *StrTail != L'\\'; StrTail--) {
+ }
+
+ if (StrTail == FileName) {
+ return EFI_NOT_FOUND;
+ }
+ *BaseName = StrTail+1;
+
+ return EFI_SUCCESS;
+}
+
+/**
+ Retrieve the ImageExecutionTable entries
+
+ @param[in] Address The pointer to the ImageExecutionTable.
+**/
+EFI_STATUS
+GetImageExecutionInfo (
+ IN UINT64 Address
+ )
+{
+ EFI_STATUS Status;
+ EFI_IMAGE_EXECUTION_INFO_TABLE *ExecInfoTablePtr;
+ EFI_IMAGE_EXECUTION_INFO *InfoPtr;
+ VOID *ptr;
+ CHAR16 *ImagePath;
+ CHAR16 *ImageName;
+ UINTN *NumberOfImages;
+ CHAR16 *ActionType;
+
+ ExecInfoTablePtr = (EFI_IMAGE_EXECUTION_INFO_TABLE *)Address;
+
+ NumberOfImages = &ExecInfoTablePtr->NumberOfImages;
+
+ ptr = (VOID *) (ExecInfoTablePtr + 1);
+
+ for (int Image = 0; Image < *NumberOfImages; Image++, ptr += InfoPtr->InfoSize) {
+ InfoPtr = ptr;
+ ImagePath = (CHAR16*) (InfoPtr + 1);
+
+ GetBaseName (ImagePath,&ImageName);
+
+ switch (InfoPtr->Action) {
+ case EFI_IMAGE_EXECUTION_AUTHENTICATION:
+ ActionType = L"AUTHENTICATION";
+ break;
+ case EFI_IMAGE_EXECUTION_AUTH_UNTESTED:
+ ActionType = L"AUTH_UNTESTED";
+ break;
+ case EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED:
+ ActionType = L"AUTH_SIG_FAILED";
+ break;
+ case EFI_IMAGE_EXECUTION_AUTH_SIG_PASSED:
+ ActionType = L"AUTH_SIG_PASSED";
+ break;
+ case EFI_IMAGE_EXECUTION_AUTH_SIG_NOT_FOUND:
+ ActionType = L"AUTH_SIG_NOT_FOUND";
+ break;
+ case EFI_IMAGE_EXECUTION_AUTH_SIG_FOUND:
+ ActionType = L"AUTH_SIG_FOUND";
+ break;
+ case EFI_IMAGE_EXECUTION_POLICY_FAILED:
+ ActionType = L"POLICY_FAILED";
+ break;
+ case EFI_IMAGE_EXECUTION_INITIALIZED:
+ ActionType = L"INITIALIZED";
+ break;
+ default:
+ ActionType = L"invalid action";
+ }
+
+ Status = ShellPrintHiiEx (
+ -1,
+ -1,
+ NULL,
+ STRING_TOKEN (STR_DMEM_IMG_EXE_ENTRY),
+ gShellDebug1HiiHandle,
+ ImageName,
+ ActionType
+ );
+ }
+
+ return Status;
+}
+
+/**
+ Display the ImageExecutionTable entries
+
+ @param[in] Address The pointer to the ImageExecutionTable.
+**/
+SHELL_STATUS
+DisplayImageExecutionEntries (
+ IN UINT64 Address
+ )
+{
+ SHELL_STATUS ShellStatus;
+ EFI_STATUS Status;
+
+ ShellStatus = SHELL_SUCCESS;
+
+ if (Address != 0) {
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_IMG_EXE_TABLE), gShellDebug1HiiHandle);
+ Status = GetImageExecutionInfo (Address);
+ if (EFI_ERROR (Status)) {
+ ShellStatus = SHELL_ABORTED;
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_GET_FAIL), gShellDebug1HiiHandle, L"ImageExecutionTable");
+ }
+ } else {
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_NOT_FOUND), gShellDebug1HiiHandle, L"ImageExecutionTable");
+ }
+ return (ShellStatus);
+}
+
+
+
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
{ L"-mmio", TypeFlag },
{ L"-verbose", TypeFlag },
@@ -369,6 +501,9 @@ ShellCommandRunDmem (
if (ShellStatus == SHELL_SUCCESS) {
ShellStatus = DisplayRtProperties (RtPropertiesTableAddress);
}
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = DisplayImageExecutionEntries (ImageExecutionTableAddress);
+ }
}
} else {
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
index a2241614f109..3b730164ddce 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
@@ -144,6 +144,9 @@
" UPDATE_CAPSULE %d\r\n"
" QUERY_CAPSULE_CAPABILITIES %d\r\n"
" QUERY_VARIABLE_INFO %d\r\n"
+#string STR_DMEM_IMG_EXE_TABLE #language en-US "\r\nImage Execution Table\r\n"
+ "----------------------------------------\r\n"
+#string STR_DMEM_IMG_EXE_ENTRY #language en-US "%20s: %s\r\n"
#string STR_DMEM_ERR_NOT_FOUND #language en-US "\r\n%H%s%N: Table address not found.\r\n"
#string STR_DMEM_ERR_GET_FAIL #language en-US "\r\n%H%s%N: Unable to get table information.\r\n"
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
2024-04-26 17:52 [edk2-devel] [PATCH v6 0/4] Adding support for veborse UEFI Table dumping to Dmem.c Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 1/4] ShellPkg: UefiShellDebug1CommandsLib: Dumping RT Properties in Dmem.c Sam Kaynor
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 2/4] ShellPkg: UefiShellDebug1CommandsLib: Image Execution Table " Sam Kaynor
@ 2024-04-26 17:52 ` Sam Kaynor
2024-04-29 1:05 ` [edk2-devel] 回复: " gaoliming via groups.io
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 4/4] ShellPkg: UefiShellDebug1CommandsLib: Conformance Profiles in Dmem.c Sam Kaynor
3 siblings, 1 reply; 9+ messages in thread
From: Sam Kaynor @ 2024-04-26 17:52 UTC (permalink / raw)
To: devel; +Cc: Michael D Kinney, Liming Gao, Zhiguang Liu
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
Adding support for EFI_CONFORMANCE_PROFILE_TABLE by adding an
associated header file and relevant GUIDs to MdePkg.dec as defined
in the UEFI 2.10 spec.
This table is needed to address changes being made within ShellPkg.
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
---
Notes:
v6:
- Added patch to address MdePkg changes separately
MdePkg/MdePkg.dec | 5 ++
MdePkg/Include/Guid/ConformanceProfiles.h | 56 ++++++++++++++++++++
2 files changed, 61 insertions(+)
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index bf94549cbfbd..2c053a7459f3 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -746,6 +746,11 @@ [Guids]
## Include/Guid/DeviceAuthentication.h
gEfiDeviceSignatureDatabaseGuid = { 0xb9c2b4f4, 0xbf5f, 0x462d, {0x8a, 0xdf, 0xc5, 0xc7, 0xa, 0xc3, 0x5d, 0xad }}
+ ## Include/Guid/ConformanceProfiles.h
+ gEfiConfProfilesTableGuid = { 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}
+ gEfiConfProfilesUefiSpecGuid = { 0x523c91af, 0xa195, 0x4382, { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
+ gEfiConfProfilesEbbrSpecGuid = { 0xcce33c35, 0x74ac, 0x4087, { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
+
#
# GUID defined in PI1.0
#
diff --git a/MdePkg/Include/Guid/ConformanceProfiles.h b/MdePkg/Include/Guid/ConformanceProfiles.h
new file mode 100644
index 000000000000..c6211d63d79c
--- /dev/null
+++ b/MdePkg/Include/Guid/ConformanceProfiles.h
@@ -0,0 +1,56 @@
+/** @file
+ Legal information
+
+**/
+
+#ifndef __CONFORMANCE_PROFILES_TABLE_GUID_H__
+#define __CONFORMANCE_PROFILES_TABLE_GUID_H__
+
+
+//
+// This table allows the platform to advertise its UEFI specification conformance
+// in the form of pre-defined profiles. Each profile is identified by a GUID, with
+// known profiles listed in the section below.
+// The absence of this table shall indicate that the platform implementation is
+// conformant with the UEFI specification requirements, as defined in Section 2.6.
+// This is equivalent to publishing this configuration table with the
+// EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile.
+//
+#define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
+ { \
+ 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b } \
+ }
+
+#pragma pack(1)
+
+typedef struct {
+ ///
+ /// Version of the table must be 0x1
+ ///
+ UINT16 Version;
+ ///
+ /// The number of profiles GUIDs present in ConformanceProfiles
+ ///
+ UINT16 NumberOfProfiles;
+ ///
+ /// An array of conformance profile GUIDs that are supported by this system.
+ /// EFI_GUID ConformanceProfiles[];
+ ///
+} EFI_CONFORMANCE_PROFILES_TABLE;
+
+#define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 0x1
+
+//
+// GUID defined in spec.
+//
+#define EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID \
+ { 0x523c91af, 0xa195, 0x4382, \
+ { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
+#define EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID \
+ { 0xcce33c35, 0x74ac, 0x4087, \
+ { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
+
+extern EFI_GUID gEfiConfProfilesTableGuid;
+extern EFI_GUID gEfiConfProfilesUefiSpecGuid;
+
+#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [edk2-devel] 回复: [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE Sam Kaynor
@ 2024-04-29 1:05 ` gaoliming via groups.io
2024-04-29 13:49 ` [edk2-devel] " Sam Kaynor
0 siblings, 1 reply; 9+ messages in thread
From: gaoliming via groups.io @ 2024-04-29 1:05 UTC (permalink / raw)
To: 'Sam Kaynor', devel
Cc: 'Michael D Kinney', 'Zhiguang Liu'
Sam:
I don't find EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID definition in UEFI 2.10
spec. So, what's its definition from?
Thanks
Liming
> -----邮件原件-----
> 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> 发送时间: 2024年4月27日 1:53
> 收件人: devel@edk2.groups.io
> 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> 主题: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
>
> Adding support for EFI_CONFORMANCE_PROFILE_TABLE by adding an
> associated header file and relevant GUIDs to MdePkg.dec as defined
> in the UEFI 2.10 spec.
> This table is needed to address changes being made within ShellPkg.
>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
> ---
>
> Notes:
> v6:
> - Added patch to address MdePkg changes separately
>
> MdePkg/MdePkg.dec | 5 ++
> MdePkg/Include/Guid/ConformanceProfiles.h | 56 ++++++++++++++++++++
> 2 files changed, 61 insertions(+)
>
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> index bf94549cbfbd..2c053a7459f3 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -746,6 +746,11 @@ [Guids]
> ## Include/Guid/DeviceAuthentication.h
> gEfiDeviceSignatureDatabaseGuid = { 0xb9c2b4f4, 0xbf5f, 0x462d, {0x8a,
> 0xdf, 0xc5, 0xc7, 0xa, 0xc3, 0x5d, 0xad }}
>
> + ## Include/Guid/ConformanceProfiles.h
> + gEfiConfProfilesTableGuid = { 0x36122546, 0xf7e7, 0x4c8f, {
0xbd,
> 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}
> + gEfiConfProfilesUefiSpecGuid = { 0x523c91af, 0xa195, 0x4382, {
0x81,
> 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
> + gEfiConfProfilesEbbrSpecGuid = { 0xcce33c35, 0x74ac, 0x4087,
> { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> +
> #
> # GUID defined in PI1.0
> #
> diff --git a/MdePkg/Include/Guid/ConformanceProfiles.h
> b/MdePkg/Include/Guid/ConformanceProfiles.h
> new file mode 100644
> index 000000000000..c6211d63d79c
> --- /dev/null
> +++ b/MdePkg/Include/Guid/ConformanceProfiles.h
> @@ -0,0 +1,56 @@
> +/** @file
> + Legal information
> +
> +**/
> +
> +#ifndef __CONFORMANCE_PROFILES_TABLE_GUID_H__
> +#define __CONFORMANCE_PROFILES_TABLE_GUID_H__
> +
> +
> +//
> +// This table allows the platform to advertise its UEFI specification
> conformance
> +// in the form of pre-defined profiles. Each profile is identified by a
GUID,
> with
> +// known profiles listed in the section below.
> +// The absence of this table shall indicate that the platform
implementation
> is
> +// conformant with the UEFI specification requirements, as defined in
> Section 2.6.
> +// This is equivalent to publishing this configuration table with the
> +// EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile.
> +//
> +#define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
> + { \
> + 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5,
0x0c,
> 0x0b } \
> + }
> +
> +#pragma pack(1)
> +
> +typedef struct {
> + ///
> + /// Version of the table must be 0x1
> + ///
> + UINT16 Version;
> + ///
> + /// The number of profiles GUIDs present in ConformanceProfiles
> + ///
> + UINT16 NumberOfProfiles;
> + ///
> + /// An array of conformance profile GUIDs that are supported by this
> system.
> + /// EFI_GUID ConformanceProfiles[];
> + ///
> +} EFI_CONFORMANCE_PROFILES_TABLE;
> +
> +#define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 0x1
> +
> +//
> +// GUID defined in spec.
> +//
> +#define EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID \
> + { 0x523c91af, 0xa195, 0x4382, \
> + { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
> +#define EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID \
> + { 0xcce33c35, 0x74ac, 0x4087, \
> + { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> +
> +extern EFI_GUID gEfiConfProfilesTableGuid;
> +extern EFI_GUID gEfiConfProfilesUefiSpecGuid;
> +
> +#endif
> --
> 2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118360): https://edk2.groups.io/g/devel/message/118360
Mute This Topic: https://groups.io/mt/105793166/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
2024-04-29 1:05 ` [edk2-devel] 回复: " gaoliming via groups.io
@ 2024-04-29 13:49 ` Sam Kaynor
2024-04-30 1:48 ` [edk2-devel] 回复: " gaoliming via groups.io
0 siblings, 1 reply; 9+ messages in thread
From: Sam Kaynor @ 2024-04-29 13:49 UTC (permalink / raw)
To: gaoliming, devel@edk2.groups.io
Cc: 'Michael D Kinney', 'Zhiguang Liu'
Liming,
Excuse me, I forgot to include the spec for that GUID. It's defined in the Embedded Base Boot Requirements (EBBR) specification 2.1.0 release.
https://arm-software.github.io/ebbr/
Thanks,
Sam
-----Original Message-----
From: gaoliming <gaoliming@byosoft.com.cn>
Sent: Sunday, April 28, 2024 8:05 PM
To: Sam Kaynor <Sam.Kaynor@arm.com>; devel@edk2.groups.io
Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu' <zhiguang.liu@intel.com>
Subject: 回复: [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
Sam:
I don't find EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID definition in UEFI 2.10 spec. So, what's its definition from?
Thanks
Liming
> -----邮件原件-----
> 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> 发送时间: 2024年4月27日 1:53
> 收件人: devel@edk2.groups.io
> 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> 主题: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
>
> Adding support for EFI_CONFORMANCE_PROFILE_TABLE by adding an
> associated header file and relevant GUIDs to MdePkg.dec as defined in
> the UEFI 2.10 spec.
> This table is needed to address changes being made within ShellPkg.
>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
> ---
>
> Notes:
> v6:
> - Added patch to address MdePkg changes separately
>
> MdePkg/MdePkg.dec | 5 ++
> MdePkg/Include/Guid/ConformanceProfiles.h | 56 ++++++++++++++++++++
> 2 files changed, 61 insertions(+)
>
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index
> bf94549cbfbd..2c053a7459f3 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -746,6 +746,11 @@ [Guids]
> ## Include/Guid/DeviceAuthentication.h
> gEfiDeviceSignatureDatabaseGuid = { 0xb9c2b4f4, 0xbf5f, 0x462d,
> {0x8a, 0xdf, 0xc5, 0xc7, 0xa, 0xc3, 0x5d, 0xad }}
>
> + ## Include/Guid/ConformanceProfiles.h
> + gEfiConfProfilesTableGuid = { 0x36122546, 0xf7e7, 0x4c8f, {
0xbd,
> 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}
> + gEfiConfProfilesUefiSpecGuid = { 0x523c91af, 0xa195, 0x4382, {
0x81,
> 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
> + gEfiConfProfilesEbbrSpecGuid = { 0xcce33c35, 0x74ac, 0x4087,
> { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> +
> #
> # GUID defined in PI1.0
> #
> diff --git a/MdePkg/Include/Guid/ConformanceProfiles.h
> b/MdePkg/Include/Guid/ConformanceProfiles.h
> new file mode 100644
> index 000000000000..c6211d63d79c
> --- /dev/null
> +++ b/MdePkg/Include/Guid/ConformanceProfiles.h
> @@ -0,0 +1,56 @@
> +/** @file
> + Legal information
> +
> +**/
> +
> +#ifndef __CONFORMANCE_PROFILES_TABLE_GUID_H__
> +#define __CONFORMANCE_PROFILES_TABLE_GUID_H__
> +
> +
> +//
> +// This table allows the platform to advertise its UEFI specification
> conformance
> +// in the form of pre-defined profiles. Each profile is identified by
> +a
GUID,
> with
> +// known profiles listed in the section below.
> +// The absence of this table shall indicate that the platform
implementation
> is
> +// conformant with the UEFI specification requirements, as defined in
> Section 2.6.
> +// This is equivalent to publishing this configuration table with the
> +// EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile.
> +//
> +#define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
> + { \
> + 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5,
0x0c,
> 0x0b } \
> + }
> +
> +#pragma pack(1)
> +
> +typedef struct {
> + ///
> + /// Version of the table must be 0x1
> + ///
> + UINT16 Version;
> + ///
> + /// The number of profiles GUIDs present in ConformanceProfiles
> + ///
> + UINT16 NumberOfProfiles;
> + ///
> + /// An array of conformance profile GUIDs that are supported by
> +this
> system.
> + /// EFI_GUID ConformanceProfiles[];
> + ///
> +} EFI_CONFORMANCE_PROFILES_TABLE;
> +
> +#define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 0x1
> +
> +//
> +// GUID defined in spec.
> +//
> +#define EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID \
> + { 0x523c91af, 0xa195, 0x4382, \
> + { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }} #define
> +EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID \
> + { 0xcce33c35, 0x74ac, 0x4087, \
> + { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> +
> +extern EFI_GUID gEfiConfProfilesTableGuid; extern EFI_GUID
> +gEfiConfProfilesUefiSpecGuid;
> +
> +#endif
> --
> 2.34.1
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118389): https://edk2.groups.io/g/devel/message/118389
Mute This Topic: https://groups.io/mt/105800726/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 9+ messages in thread
* [edk2-devel] 回复: [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
2024-04-29 13:49 ` [edk2-devel] " Sam Kaynor
@ 2024-04-30 1:48 ` gaoliming via groups.io
2024-04-30 17:40 ` [edk2-devel] " Sam Kaynor
0 siblings, 1 reply; 9+ messages in thread
From: gaoliming via groups.io @ 2024-04-30 1:48 UTC (permalink / raw)
To: 'Sam Kaynor', devel
Cc: 'Michael D Kinney', 'Zhiguang Liu'
Sam:
I would suggest to separate this patch 3/4 to two patches. One is to add UEFI definition, another is to add EBBR definition. Do you think so?
Thanks
Liming
> -----邮件原件-----
> 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> 发送时间: 2024年4月29日 21:49
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> 抄送: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu'
> <zhiguang.liu@intel.com>
> 主题: RE: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> Liming,
>
> Excuse me, I forgot to include the spec for that GUID. It's defined in the
> Embedded Base Boot Requirements (EBBR) specification 2.1.0 release.
> https://arm-software.github.io/ebbr/
>
> Thanks,
> Sam
>
> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: Sunday, April 28, 2024 8:05 PM
> To: Sam Kaynor <Sam.Kaynor@arm.com>; devel@edk2.groups.io
> Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu'
> <zhiguang.liu@intel.com>
> Subject: 回复: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> Sam:
> I don't find EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID definition in
> UEFI 2.10 spec. So, what's its definition from?
>
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> > 发送时间: 2024年4月27日 1:53
> > 收件人: devel@edk2.groups.io
> > 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> > 主题: [PATCH v6 3/4] MdePkg: Adding support for
> > EFI_CONFORMANCE_PROFILE_TABLE
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
> >
> > Adding support for EFI_CONFORMANCE_PROFILE_TABLE by adding an
> > associated header file and relevant GUIDs to MdePkg.dec as defined in
> > the UEFI 2.10 spec.
> > This table is needed to address changes being made within ShellPkg.
> >
> > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
> > ---
> >
> > Notes:
> > v6:
> > - Added patch to address MdePkg changes separately
> >
> > MdePkg/MdePkg.dec | 5 ++
> > MdePkg/Include/Guid/ConformanceProfiles.h | 56
> ++++++++++++++++++++
> > 2 files changed, 61 insertions(+)
> >
> > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index
> > bf94549cbfbd..2c053a7459f3 100644
> > --- a/MdePkg/MdePkg.dec
> > +++ b/MdePkg/MdePkg.dec
> > @@ -746,6 +746,11 @@ [Guids]
> > ## Include/Guid/DeviceAuthentication.h
> > gEfiDeviceSignatureDatabaseGuid = { 0xb9c2b4f4, 0xbf5f, 0x462d,
> > {0x8a, 0xdf, 0xc5, 0xc7, 0xa, 0xc3, 0x5d, 0xad }}
> >
> > + ## Include/Guid/ConformanceProfiles.h
> > + gEfiConfProfilesTableGuid = { 0x36122546, 0xf7e7, 0x4c8f, {
> 0xbd,
> > 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}
> > + gEfiConfProfilesUefiSpecGuid = { 0x523c91af, 0xa195, 0x4382, {
> 0x81,
> > 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
> > + gEfiConfProfilesEbbrSpecGuid = { 0xcce33c35, 0x74ac, 0x4087,
> > { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> > +
> > #
> > # GUID defined in PI1.0
> > #
> > diff --git a/MdePkg/Include/Guid/ConformanceProfiles.h
> > b/MdePkg/Include/Guid/ConformanceProfiles.h
> > new file mode 100644
> > index 000000000000..c6211d63d79c
> > --- /dev/null
> > +++ b/MdePkg/Include/Guid/ConformanceProfiles.h
> > @@ -0,0 +1,56 @@
> > +/** @file
> > + Legal information
> > +
> > +**/
> > +
> > +#ifndef __CONFORMANCE_PROFILES_TABLE_GUID_H__
> > +#define __CONFORMANCE_PROFILES_TABLE_GUID_H__
> > +
> > +
> > +//
> > +// This table allows the platform to advertise its UEFI specification
> > conformance
> > +// in the form of pre-defined profiles. Each profile is identified by
> > +a
> GUID,
> > with
> > +// known profiles listed in the section below.
> > +// The absence of this table shall indicate that the platform
> implementation
> > is
> > +// conformant with the UEFI specification requirements, as defined in
> > Section 2.6.
> > +// This is equivalent to publishing this configuration table with the
> > +// EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile.
> > +//
> > +#define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
> > + { \
> > + 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5,
> 0x0c,
> > 0x0b } \
> > + }
> > +
> > +#pragma pack(1)
> > +
> > +typedef struct {
> > + ///
> > + /// Version of the table must be 0x1
> > + ///
> > + UINT16 Version;
> > + ///
> > + /// The number of profiles GUIDs present in ConformanceProfiles
> > + ///
> > + UINT16 NumberOfProfiles;
> > + ///
> > + /// An array of conformance profile GUIDs that are supported by
> > +this
> > system.
> > + /// EFI_GUID ConformanceProfiles[];
> > + ///
> > +} EFI_CONFORMANCE_PROFILES_TABLE;
> > +
> > +#define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 0x1
> > +
> > +//
> > +// GUID defined in spec.
> > +//
> > +#define EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID \
> > + { 0x523c91af, 0xa195, 0x4382, \
> > + { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }} #define
> > +EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID \
> > + { 0xcce33c35, 0x74ac, 0x4087, \
> > + { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> > +
> > +extern EFI_GUID gEfiConfProfilesTableGuid; extern EFI_GUID
> > +gEfiConfProfilesUefiSpecGuid;
> > +
> > +#endif
> > --
> > 2.34.1
>
>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended recipient,
> please notify the sender immediately and do not disclose the contents to any
> other person, use it for any purpose, or store or copy the information in any
> medium. Thank you.
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118398): https://edk2.groups.io/g/devel/message/118398
Mute This Topic: https://groups.io/mt/105814144/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
2024-04-30 1:48 ` [edk2-devel] 回复: " gaoliming via groups.io
@ 2024-04-30 17:40 ` Sam Kaynor
0 siblings, 0 replies; 9+ messages in thread
From: Sam Kaynor @ 2024-04-30 17:40 UTC (permalink / raw)
To: gaoliming, devel@edk2.groups.io
Cc: 'Michael D Kinney', 'Zhiguang Liu'
Liming,
I will do that; I will also update the EBBR definition to include the GUID from the most recent EBBR release.
Thanks,
Sam
-----Original Message-----
From: gaoliming <gaoliming@byosoft.com.cn>
Sent: Monday, April 29, 2024 8:48 PM
To: Sam Kaynor <Sam.Kaynor@arm.com>; devel@edk2.groups.io
Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu' <zhiguang.liu@intel.com>
Subject: 回复: [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE
Sam:
I would suggest to separate this patch 3/4 to two patches. One is to add UEFI definition, another is to add EBBR definition. Do you think so?
Thanks
Liming
> -----邮件原件-----
> 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> 发送时间: 2024年4月29日 21:49
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> 抄送: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu'
> <zhiguang.liu@intel.com>
> 主题: RE: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> Liming,
>
> Excuse me, I forgot to include the spec for that GUID. It's defined in
> the Embedded Base Boot Requirements (EBBR) specification 2.1.0 release.
> https://arm-software.github.io/ebbr/
>
> Thanks,
> Sam
>
> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: Sunday, April 28, 2024 8:05 PM
> To: Sam Kaynor <Sam.Kaynor@arm.com>; devel@edk2.groups.io
> Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu'
> <zhiguang.liu@intel.com>
> Subject: 回复: [PATCH v6 3/4] MdePkg: Adding support for
> EFI_CONFORMANCE_PROFILE_TABLE
>
> Sam:
> I don't find EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID definition in
> UEFI 2.10 spec. So, what's its definition from?
>
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: Sam Kaynor <Sam.Kaynor@arm.com>
> > 发送时间: 2024年4月27日 1:53
> > 收件人: devel@edk2.groups.io
> > 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> > 主题: [PATCH v6 3/4] MdePkg: Adding support for
> > EFI_CONFORMANCE_PROFILE_TABLE
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
> >
> > Adding support for EFI_CONFORMANCE_PROFILE_TABLE by adding an
> > associated header file and relevant GUIDs to MdePkg.dec as defined
> > in the UEFI 2.10 spec.
> > This table is needed to address changes being made within ShellPkg.
> >
> > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
> > ---
> >
> > Notes:
> > v6:
> > - Added patch to address MdePkg changes separately
> >
> > MdePkg/MdePkg.dec | 5 ++
> > MdePkg/Include/Guid/ConformanceProfiles.h | 56
> ++++++++++++++++++++
> > 2 files changed, 61 insertions(+)
> >
> > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index
> > bf94549cbfbd..2c053a7459f3 100644
> > --- a/MdePkg/MdePkg.dec
> > +++ b/MdePkg/MdePkg.dec
> > @@ -746,6 +746,11 @@ [Guids]
> > ## Include/Guid/DeviceAuthentication.h
> > gEfiDeviceSignatureDatabaseGuid = { 0xb9c2b4f4, 0xbf5f, 0x462d,
> > {0x8a, 0xdf, 0xc5, 0xc7, 0xa, 0xc3, 0x5d, 0xad }}
> >
> > + ## Include/Guid/ConformanceProfiles.h
> > + gEfiConfProfilesTableGuid = { 0x36122546, 0xf7e7, 0x4c8f, {
> 0xbd,
> > 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}
> > + gEfiConfProfilesUefiSpecGuid = { 0x523c91af, 0xa195, 0x4382, {
> 0x81,
> > 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }}
> > + gEfiConfProfilesEbbrSpecGuid = { 0xcce33c35, 0x74ac, 0x4087,
> > { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> > +
> > #
> > # GUID defined in PI1.0
> > #
> > diff --git a/MdePkg/Include/Guid/ConformanceProfiles.h
> > b/MdePkg/Include/Guid/ConformanceProfiles.h
> > new file mode 100644
> > index 000000000000..c6211d63d79c
> > --- /dev/null
> > +++ b/MdePkg/Include/Guid/ConformanceProfiles.h
> > @@ -0,0 +1,56 @@
> > +/** @file
> > + Legal information
> > +
> > +**/
> > +
> > +#ifndef __CONFORMANCE_PROFILES_TABLE_GUID_H__
> > +#define __CONFORMANCE_PROFILES_TABLE_GUID_H__
> > +
> > +
> > +//
> > +// This table allows the platform to advertise its UEFI
> > +specification
> > conformance
> > +// in the form of pre-defined profiles. Each profile is identified
> > +by a
> GUID,
> > with
> > +// known profiles listed in the section below.
> > +// The absence of this table shall indicate that the platform
> implementation
> > is
> > +// conformant with the UEFI specification requirements, as defined
> > +in
> > Section 2.6.
> > +// This is equivalent to publishing this configuration table with
> > +the // EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile.
> > +//
> > +#define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
> > + { \
> > + 0x36122546, 0xf7e7, 0x4c8f, { 0xbd, 0x9b, 0xeb, 0x85, 0x25,
> > +0xb5,
> 0x0c,
> > 0x0b } \
> > + }
> > +
> > +#pragma pack(1)
> > +
> > +typedef struct {
> > + ///
> > + /// Version of the table must be 0x1
> > + ///
> > + UINT16 Version;
> > + ///
> > + /// The number of profiles GUIDs present in ConformanceProfiles
> > + ///
> > + UINT16 NumberOfProfiles;
> > + ///
> > + /// An array of conformance profile GUIDs that are supported by
> > +this
> > system.
> > + /// EFI_GUID ConformanceProfiles[];
> > + ///
> > +} EFI_CONFORMANCE_PROFILES_TABLE;
> > +
> > +#define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 0x1
> > +
> > +//
> > +// GUID defined in spec.
> > +//
> > +#define EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID \
> > + { 0x523c91af, 0xa195, 0x4382, \
> > + { 0x81, 0x8d, 0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65 }} #define
> > +EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID \
> > + { 0xcce33c35, 0x74ac, 0x4087, \
> > + { 0xbc, 0xe7, 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27 }}
> > +
> > +extern EFI_GUID gEfiConfProfilesTableGuid; extern EFI_GUID
> > +gEfiConfProfilesUefiSpecGuid;
> > +
> > +#endif
> > --
> > 2.34.1
>
>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose
> the contents to any other person, use it for any purpose, or store or
> copy the information in any medium. Thank you.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118445): https://edk2.groups.io/g/devel/message/118445
Mute This Topic: https://groups.io/mt/105825977/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 9+ messages in thread
* [edk2-devel] [PATCH v6 4/4] ShellPkg: UefiShellDebug1CommandsLib: Conformance Profiles in Dmem.c
2024-04-26 17:52 [edk2-devel] [PATCH v6 0/4] Adding support for veborse UEFI Table dumping to Dmem.c Sam Kaynor
` (2 preceding siblings ...)
2024-04-26 17:52 ` [edk2-devel] [PATCH v6 3/4] MdePkg: Adding support for EFI_CONFORMANCE_PROFILE_TABLE Sam Kaynor
@ 2024-04-26 17:52 ` Sam Kaynor
3 siblings, 0 replies; 9+ messages in thread
From: Sam Kaynor @ 2024-04-26 17:52 UTC (permalink / raw)
To: devel; +Cc: Ray Ni, Zhichao Gao
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4352
Implemented dumping of the UEFI Conformance Profiles Table using Dmem.c
Uses header file for GUIDs added in previous patch
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
---
Notes:
v6:
- Moved MdePkg changes to separate patch
v5:
- corrected style error (spaces before '(')
v3:
- fixed build errors
- properly using Address variable
- removed unecessary comment in header file
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf | 3 +
ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c | 69 ++++++++++++++++++++
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni | 5 ++
3 files changed, 77 insertions(+)
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
index 3741dac5d94c..172ac2862ba1 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
@@ -139,3 +139,6 @@ [Guids]
gEfiJsonConfigDataTableGuid ## SOMETIMES_CONSUMES ## SystemTable
gEfiJsonCapsuleDataTableGuid ## SOMETIMES_CONSUMES ## SystemTable
gEfiJsonCapsuleResultTableGuid ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiConfProfilesTableGuid ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiConfProfilesUefiSpecGuid ## SOMETIMES_CONSUMES ## GUID
+ gEfiConfProfilesEbbrSpecGuid ## SOMETIMES_CONSUMES ## GUID
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
index a4f404c1cdbd..53ee2b01f918 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
@@ -19,6 +19,7 @@
#include <Guid/SystemResourceTable.h>
#include <Guid/DebugImageInfoTable.h>
#include <Guid/ImageAuthentication.h>
+#include <Guid/ConformanceProfiles.h>
/**
Make a printable character.
@@ -269,7 +270,67 @@ DisplayImageExecutionEntries (
return (ShellStatus);
}
+/**
+ Display the ConformanceProfileTable entries
+ @param[in] Address The pointer to the ConformanceProfileTable.
+**/
+SHELL_STATUS
+DisplayConformanceProfiles (
+ IN UINT64 Address
+ )
+{
+ SHELL_STATUS ShellStatus;
+ EFI_STATUS Status;
+ EFI_GUID *EntryGuid;
+ CHAR16 *GuidName;
+ EFI_CONFORMANCE_PROFILES_TABLE *ConfProfTable;
+
+ ShellStatus = SHELL_SUCCESS;
+
+ if (Address != 0) {
+ ConfProfTable = (EFI_CONFORMANCE_PROFILES_TABLE *)Address;
+
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_CONF_PRO_TABLE), gShellDebug1HiiHandle);
+
+ EntryGuid = (EFI_GUID *) (ConfProfTable + 1);
+
+ for (int Profile = 0; Profile < ConfProfTable->NumberOfProfiles; Profile++, EntryGuid++) {
+ GuidName = L"Unknown_Profile";
+
+ if (CompareGuid (EntryGuid, &gEfiConfProfilesEbbrSpecGuid)) {
+ GuidName = L"EBBR_2.1";
+ }
+
+ Status = ShellPrintHiiEx (
+ -1,
+ -1,
+ NULL,
+ STRING_TOKEN (STR_DMEM_CONF_PRO_ROW),
+ gShellDebug1HiiHandle,
+ GuidName,
+ EntryGuid
+ );
+ }
+ if (EFI_ERROR (Status)) {
+ ShellStatus = SHELL_ABORTED;
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_ERR_GET_FAIL), gShellDebug1HiiHandle, L"ComformanceProfilesTable");
+ }
+ } else {
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DMEM_CONF_PRO_TABLE), gShellDebug1HiiHandle);
+ ShellPrintHiiEx (
+ -1,
+ -1,
+ NULL,
+ STRING_TOKEN (STR_DMEM_CONF_PRO_ROW),
+ gShellDebug1HiiHandle,
+ L"EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID",
+ &gEfiConfProfilesUefiSpecGuid
+ );
+ }
+
+ return (ShellStatus);
+}
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
{ L"-mmio", TypeFlag },
@@ -461,6 +522,11 @@ ShellCommandRunDmem (
HiiDatabaseExportBufferAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
+
+ if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiConfProfilesTableGuid)) {
+ ConformanceProfileTableAddress = (UINT64) (UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
+ continue;
+ }
}
ShellPrintHiiEx (
@@ -504,6 +570,9 @@ ShellCommandRunDmem (
if (ShellStatus == SHELL_SUCCESS) {
ShellStatus = DisplayImageExecutionEntries (ImageExecutionTableAddress);
}
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = DisplayConformanceProfiles (ConformanceProfileTableAddress);
+ }
}
} else {
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
index 3b730164ddce..6ef923e4fd5e 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
@@ -147,6 +147,11 @@
#string STR_DMEM_IMG_EXE_TABLE #language en-US "\r\nImage Execution Table\r\n"
"----------------------------------------\r\n"
#string STR_DMEM_IMG_EXE_ENTRY #language en-US "%20s: %s\r\n"
+#string STR_DMEM_CONF_PRO_TABLE #language en-US "\r\nConformance Profile Table\r\n"
+ "----------------------------------------\r\n"
+ "Version 0x1\r\n"
+ "Profile GUIDs:\r\n"
+#string STR_DMEM_CONF_PRO_ROW #language en-US " %s %g\r\n"
#string STR_DMEM_ERR_NOT_FOUND #language en-US "\r\n%H%s%N: Table address not found.\r\n"
#string STR_DMEM_ERR_GET_FAIL #language en-US "\r\n%H%s%N: Unable to get table information.\r\n"
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread