ShellPkg: UefiShellDebug1CommandsLib: Uefi Config Tables in Dmem.c

Added entries for UEFI Config Tables not present in current
Dmem output.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Sam Kaynor <Sam.Kaynor@arm.com>
Reviewed-by: Sunny Wang <sunny.wang@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
This commit is contained in:
Sam Kaynor 2023-04-05 04:11:16 +08:00 committed by mergify[bot]
parent 5430f7f60d
commit 42b0443599
3 changed files with 123 additions and 13 deletions

View File

@ -10,9 +10,15 @@
#include "UefiShellDebug1CommandsLib.h"
#include <Protocol/PciRootBridgeIo.h>
#include <Protocol/HiiDatabase.h>
#include <Guid/Acpi.h>
#include <Guid/Mps.h>
#include <Guid/SmBios.h>
#include <Guid/MemoryAttributesTable.h>
#include <Guid/RtPropertiesTable.h>
#include <Guid/SystemResourceTable.h>
#include <Guid/DebugImageInfoTable.h>
#include <Guid/ImageAuthentication.h>
/**
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 {

View File

@ -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

View File

@ -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"