From 42b0443599a69c703034079cf2bd389fa3a6bfde Mon Sep 17 00:00:00 2001 From: Sam Kaynor Date: Wed, 5 Apr 2023 04:11:16 +0800 Subject: ShellPkg: UefiShellDebug1CommandsLib: Uefi Config Tables in Dmem.c Added entries for UEFI Config Tables not present in current Dmem output. Cc: Ray Ni Cc: Zhichao Gao Signed-off-by: Sam Kaynor Reviewed-by: Sunny Wang Reviewed-by: Zhichao Gao Reviewed-by: Samer El-Haj-Mahmoud --- ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c | 99 ++++++++++++++++++++-- .../UefiShellDebug1CommandsLib.inf | 9 ++ .../UefiShellDebug1CommandsLib.uni | 28 ++++-- 3 files changed, 123 insertions(+), 13 deletions(-) (limited to 'ShellPkg') diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c index c52c212a56..a609971f34 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c @@ -10,9 +10,15 @@ #include "UefiShellDebug1CommandsLib.h" #include +#include #include #include #include +#include +#include +#include +#include +#include /** Make a printable character. @@ -108,6 +114,18 @@ ShellCommandRunDmem ( UINT64 SalTableAddress; UINT64 SmbiosTableAddress; UINT64 MpsTableAddress; + UINT64 DtbTableAddress; + UINT64 MemoryAttributesTableAddress; + UINT64 RtPropertiesTableAddress; + UINT64 SystemResourceTableAddress; + UINT64 DebugImageInfoTableAddress; + UINT64 ImageExecutionTableAddress; + UINT64 JsonConfigDataTableAddress; + UINT64 JsonCapsuleDataTableAddress; + UINT64 JsonCapsuleResultTableAddress; + UINT64 MemoryRangeCapsuleAddress; + UINT64 HiiDatabaseExportBufferAddress; + UINT64 ConformanceProfileTableAddress; UINTN TableWalker; ShellStatus = SHELL_SUCCESS; @@ -168,11 +186,23 @@ ShellCommandRunDmem ( 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; - AcpiTableAddress = 0; - SalTableAddress = 0; - SmbiosTableAddress = 0; - MpsTableAddress = 0; + Acpi20TableAddress = 0; + AcpiTableAddress = 0; + SalTableAddress = 0; + SmbiosTableAddress = 0; + MpsTableAddress = 0; + DtbTableAddress = 0; + MemoryAttributesTableAddress = 0; + RtPropertiesTableAddress = 0; + SystemResourceTableAddress = 0; + DebugImageInfoTableAddress = 0; + ImageExecutionTableAddress = 0; + JsonConfigDataTableAddress = 0; + JsonCapsuleDataTableAddress = 0; + JsonCapsuleResultTableAddress = 0; + MemoryRangeCapsuleAddress = 0; + HiiDatabaseExportBufferAddress = 0; + ConformanceProfileTableAddress = 0; for (TableWalker = 0; TableWalker < gST->NumberOfTableEntries; TableWalker++) { if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiAcpi20TableGuid)) { Acpi20TableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; @@ -198,6 +228,51 @@ ShellCommandRunDmem ( MpsTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; continue; } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiMemoryAttributesTableGuid)) { + MemoryAttributesTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiRtPropertiesTableGuid)) { + RtPropertiesTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSystemResourceTableGuid)) { + SystemResourceTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiDebugImageInfoTableGuid)) { + DebugImageInfoTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiImageSecurityDatabaseGuid)) { + ImageExecutionTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonConfigDataTableGuid)) { + JsonConfigDataTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonCapsuleDataTableGuid)) { + JsonCapsuleDataTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiJsonCapsuleResultTableGuid)) { + JsonCapsuleResultTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } + + if (CompareGuid (&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiHiiDatabaseProtocolGuid)) { + HiiDatabaseExportBufferAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable; + continue; + } } ShellPrintHiiEx ( @@ -218,7 +293,19 @@ ShellCommandRunDmem ( AcpiTableAddress, Acpi20TableAddress, MpsTableAddress, - SmbiosTableAddress + SmbiosTableAddress, + DtbTableAddress, + MemoryAttributesTableAddress, + RtPropertiesTableAddress, + SystemResourceTableAddress, + DebugImageInfoTableAddress, + ImageExecutionTableAddress, + JsonConfigDataTableAddress, + JsonCapsuleDataTableAddress, + JsonCapsuleResultTableAddress, + MemoryRangeCapsuleAddress, + HiiDatabaseExportBufferAddress, + ConformanceProfileTableAddress ); } } else { diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf index 74ad5facf6..3741dac5d9 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf @@ -121,6 +121,7 @@ gEfiBlockIoProtocolGuid ## SOMETIMES_CONSUMES gEfiSimplePointerProtocolGuid ## SOMETIMES_CONSUMES gEfiCpuIo2ProtocolGuid ## SOMETIMES_CONSUMES + gEfiHiiDatabaseProtocolGuid ## SOMETIMES_CONSUMES [Guids] gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## GUID @@ -130,3 +131,11 @@ gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable gEfiAcpi20TableGuid ## SOMETIMES_CONSUMES ## SystemTable gShellDebug1HiiGuid ## SOMETIMES_CONSUMES ## HII + gEfiMemoryAttributesTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiRtPropertiesTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiSystemResourceTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiDebugImageInfoTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiImageSecurityDatabaseGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiJsonConfigDataTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiJsonCapsuleDataTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiJsonCapsuleResultTableGuid ## SOMETIMES_CONSUMES ## SystemTable diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni index 4fedc0d149..4041f0cd48 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni @@ -107,13 +107,27 @@ "---------------------------------------------\r\n" "System: Table Structure size %08x revision %08x\r\n" "ConIn (%016LX) ConOut (%016LX) StdErr (%016LX)\r\n" - "Runtime Services %016LX\r\n" - "Boot Services %016LX\r\n" - "SAL System Table %016LX\r\n" - "ACPI Table %016LX\r\n" - "ACPI 2.0 Table %016LX\r\n" - "MPS Table %016LX\r\n" - "SMBIOS Table %016LX\r\n" + "Runtime Services %016LX\r\n" + "Boot Services %016LX\r\n" + "SAL System Table %016LX\r\n" + "ACPI Table %016LX\r\n" + "ACPI 2.0 Table %016LX\r\n" + "MPS Table %016LX\r\n" + "SMBIOS Table %016LX\r\n" + "DTB Table %016LX\r\n" + "Memory Attribute Table %016LX\r\n" + "RT Properties Table %016LX\r\n" + "System Resource Table %016LX\r\n" + "Debug Image Info Table %016LX\r\n" + "Image Execution Info Table %016LX\r\n" + "Json Config Data Table %016LX\r\n" + "Json Capsule Data Table %016LX\r\n" + "Json Capsule Results Table %016LX\r\n" + "Memory Range Capsule %016LX\r\n" + "Hii Database Export Buffer %016LX\r\n" + "Conformance Profile Table %016LX\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" -- cgit v1.2.3