1. Safe wrapper function for DumpHex that validates PCI configuration
space boundaries. This function ensures that hex dumps do not exceed
the standard 4KB PCIe configuration space boundary. If the requested
dump would exceed this boundary, it prints an error message and
truncates the dump size to remain within valid bounds.
2. Enhance DVSEC capability structure size calculation method. Size is
now obtained from the DesignatedVendorSpecificHeader1.Bits.DvsecLength
register.
Issue: https://github.com/tianocore/edk2/issues/11554
Signed-off-by: Pranav V V <pranav.v.v@intel.com>
CodeQL incorrectly flags that LoadedDriverImage might be derferenced
while NULL, but the actual code paths make that impossible.
Strip several levels of success handling to improve readability for
humans and static analyzers both.
Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
Make use the newly introduced ShellPrintDefaultEx() alias and
replace wherever it is possible:
- "ShellPrintEx (-1, -1,"
with:
- "ShellPrintDefaultEx ("
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Make use the newly introduced ShellPrintHiiDefaultEx() alias and
replace wherever it is possible:
- "ShellPrintHiiEx (-1, -1, NULL,"
with:
- "ShellPrintHiiDefaultEx ("
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
extract a ConnectFromEfiVariable() function to connect devices
pointed by a list of EFI variables.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
extract a ConnectConsoles() function to connect device consoles.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
simplify error handling case in ShellConnectFromDevPaths().
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
simplify error handling cases in ParseBufferConfig().
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
extract a ParseBufferConfig().
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
extract a ParseMemoryDescriptors() function.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg:
- create a MEMORY_TYPE_INFO struct, storing per-MemoryType configuration
information to facilitate the operations to do for each MemoryType.
- create a MEMORY_TYPE_PAGES_INFO struct, storing per-MemoryType
Pages and PagesSize count.
Also use these arrays to facilitate Pages accounting and remove
per-MemoryType variables.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
replace the MemoryType names that are currently stored in individual
variables by an array of names, facilitating access to these names.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
remove the SHELL_STATUS parameter returned by:
- DisplayRtProperties()
- DisplayImageExecutionEntries()
- DisplayConformanceProfiles()
These functions are independent display functions. Thus failing to
display a configuration table should not prevent from displaying
the remaining tables.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
remove EfiGetSystemConfigurationTable() calls fetching Configuration
Table addresses that have already been collected.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
inverse checks against the 'Address'. This also lowers the
indentation level.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
remove the per-System Table variables by indexed arrays.
The only functional change introduced is that a non-null Smbios3
System Table:
- always replaces an Smbios System Table
- ASSERT if (Smbios3 != 0) and (Smbios != 0)
Otherwise no functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Memory Range Capsule is described in the UEFI spec 2.9
s8.5.3 Update Capsule with the following GUID:
{0DE9F0EC-88B6-428F-977A-258F1D0E5E72}
Support to print the EFI_MEMORY_RANGE_CAPSULE address in the EFI
Configuration table was added in commit: 42b0443599
("ShellPkg: UefiShellDebug1CommandsLib: Uefi Config Tables in Dmem.c")
but EFI_MEMORY_RANGE_CAPSULE type and GUID is not present in edk2.
Thus dmem always print a 0 value for this configuration table.
Remove support of EFI_MEMORY_RANGE_CAPSULE in dmem.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
The SAL System Table is unsupported and its support was
removed in commit:
f4c874c45d ("ShellPkg/UefiShellDebug1CommandsLib")
Remove remaining of SAL System Table handling.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
In an effort to simplify the code in the ShellPkg,
extract a DisplaySystemTable().
This also lowers the indentation level.
No functional change is introduced.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
The AGDI table is a Global Diagnostic Dump and Reset Interface table
defined by Arm. Add support for dumping the table contents in the
acpiview command.
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
When removing ARM32 code from edk2, a CodeQL
error in AcpiView (pointer used without null
check) was flagged in GH.
This updates the code to eliminate the duplicate code in that
function and instead call EfiGetSystemConfigurationTable.
Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
As EFI_UNICODE_COLLATION_PROTOCOL_GUID is being deprecated.
Remove the instances used in ShellPkg.
Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Gowtham M <gowthamm@ami.com>
gEfiDeviceIoProtocolGuid identifies EFI_DEVICE_IO_PROTOCOL,
which provided low-level I/O and MMIO access for UEFI drivers.
It was removed in UEFI 2.10A and 2.11 due to overlapping
functionality with modern protocols like EFI_PCI_IO_PROTOCOL
and EFI_CPU_IO2_PROTOCOL. These newer protocols offer improved
modularity, abstraction, and safety, making EFI_DEVICE_IO_PROTOCOL
obsolete.
Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Gowtham M <gowthamm@ami.com>
EFI_IP4_CONFIG_PROTOCOL is superseded by
EFI_IP4_CONFIG2_PROTOCOL, which provides better
support for modern network stack requirements.
It was officially removed from UEFI specifications
2.10A and 2.11 and should no longer be used in
current implementations.
Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Gowtham M <gowthamm@ami.com>
Added the MRDIMM (0x08) entry to the MemoryDeviceMemoryTechnologyTable
in QueryTable.c. This enables proper display and decoding of MRDIMM memory
technology in SMBIOS Type 17 structures.
Signed-off-by: Ning Feng <ning.feng@intel.com>
Commit dcde148 introduced EmbeddedPkg as a dependency
since gFdtTableGuid was in the EmbeddedPkg, but has now
been moved to MdePkg.
Signed-off-by: Prachotan Bathi <prachotan.bathi@arm.com>
DTB address can be modified through the config table. Use
this address in dmem output.
EmbeddedPkg dependency added to
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
and ShellPkg/ShellPkg.ci.yaml
Adds to: 42b0443599
("ShellPkg: UefiShellDebug1CommandsLib: Uefi Config Tables in Dmem.c")
Signed-off-by: Prachotan Reddy Bathi <Prachotan.Bathi@arm.com>
The Universal Graphics Adapter (UGA) is a graphic abstraction.
The UGA I/O and Draw protocols are deprecated since UEFI 2.0 was
introduced. Cf. the UEFI spec v2.9:
"Appendix L - EFI 1.10 Protocol Changes and Deprecation List"
section L.2 "Deprecated Protocols"
Remove the UGA support.
Signed-off-by: GuoMinJ <newexplorerj@gmail.com>
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Having StrLen(Buffer) == 0 results in a Buffer underflow.
Also, StrLen iterates over the Buffer elements until finding a NULL
character. This results in a quadratic search for '\r' characters
in the while loop.
Fix these issues.
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
The latest VS2022 update replaces some code patterns with struct
assignments with `memcpy`. This change convert the code to
explicitly use `CopyMem`.
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Added switch case for ArmV9 processor family inside function
DisplayProcessorFamily2 in PrintInfo.c to avoid inappropriate data
shown while accessing Type 4 Smbios table. ArmV9 processor family
is added in Smbios Spec 3.8 which should be noted.
Signed-off-by: Praveen Sankar N <praveensankarn@ami.com>
ShellPkg/SmbiosView tool changes for InterfaceTypeSpecificData decode and print
Previously, the InterfaceTypeSpecificData of SMBIOS type42 table was dumped
as hex in the SmbiosView tool output
This commit adds decode, interpretation and print as per SMBIOS spec version 3.8.0
Signed-off-by: G Edhaya Chandran <edhaya.chandran@arm.com>
EFI_USB_HC_PROTOCOL was never defined in a released UEFI specification,
so drop use of it in ShellPkg in preparation of deleting the definitions
based on something allegedly supported in confidential EFI 1.10.
Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
Dmem.c: In function 'GetImageExecutionInfo':
Dmem.c:241:10: error: 'Status' may be used uninitialized
in this function [-Werror=maybe-uninitialized]
return Status;
^~~~~~
Dmem.c:284:35: note: 'Status' was declared here
EFI_STATUS Status;
^~~~~~
Dmem.c: In function 'ShellCommandRunDmem':
Dmem.c:586:27: error: 'ConformanceProfileTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayConformanceProfiles (ConformanceProfileTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dmem.c:582:27: error: 'ImageExecutionTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayImageExecutionEntries (ImageExecutionTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dmem.c:578:27: error: 'RtPropertiesTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayRtProperties (RtPropertiesTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
This checks the number of PCC descriptor entries provided match the
count set in the table, and if they don't indicate a warning.
Signed-off-by: Carsten Haitzler <carsten.haitzler@foss.arm.com>