mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 16:14:04 +02:00
ShellPkg: UefiShellDebug1CommandsLib: Dumping RT Properties in Dmem.c
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>
This commit is contained in:
parent
f91211049c
commit
749065300a
@ -84,9 +84,65 @@ DisplayMmioMemory (
|
|||||||
return (ShellStatus);
|
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) {
|
||||||
|
EfiGetSystemConfigurationTable (&gEfiRtPropertiesTableGuid, (VOID **)&RtPropertiesTable);
|
||||||
|
|
||||||
|
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[] = {
|
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||||
{ L"-mmio", TypeFlag },
|
{ L"-mmio", TypeFlag },
|
||||||
{ NULL, TypeMax }
|
{ L"-verbose", TypeFlag },
|
||||||
|
{ NULL, TypeMax }
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -308,6 +364,12 @@ ShellCommandRunDmem (
|
|||||||
ConformanceProfileTableAddress
|
ConformanceProfileTableAddress
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ShellCommandLineGetFlag (Package, L"-verbose")) {
|
||||||
|
if (ShellStatus == SHELL_SUCCESS) {
|
||||||
|
ShellStatus = DisplayRtProperties (RtPropertiesTableAddress);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ShellStatus = DisplayMmioMemory (Address, (UINTN)Size);
|
ShellStatus = DisplayMmioMemory (Address, (UINTN)Size);
|
||||||
}
|
}
|
||||||
|
@ -126,8 +126,26 @@
|
|||||||
"Memory Range Capsule %016LX\r\n"
|
"Memory Range Capsule %016LX\r\n"
|
||||||
"Hii Database Export Buffer %016LX\r\n"
|
"Hii Database Export Buffer %016LX\r\n"
|
||||||
"Conformance Profile Table %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_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"
|
#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"
|
" \r\n"
|
||||||
" -b - Displays one screen at a time.\r\n"
|
" -b - Displays one screen at a time.\r\n"
|
||||||
" -MMIO - Forces address cycles to the PCI bus.\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"
|
" address - Specifies a starting address in hexadecimal format.\r\n"
|
||||||
" size - Specifies the number of bytes to display in hexadecimal format.\r\n"
|
" size - Specifies the number of bytes to display in hexadecimal format.\r\n"
|
||||||
".SH DESCRIPTION\r\n"
|
".SH DESCRIPTION\r\n"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user