6ca9f410d1
ShellPkg: Update shell command memmap to show unaccepted memory
...
RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3937
ShellCommandRunMemMap() is updated to handle the case of unaccepted
memory type.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Erdem Aktas <erdemaktas@google.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: James Bottomley <jejb@linux.ibm.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Tom Lendacky <thomas.lendacky@amd.com >
Acked-by: Gerd Hoffmann <kraxel@redhat.com >
Acked-by: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Min Xu <min.m.xu@intel.com >
2022-11-01 10:08:10 +00:00
e9a3613ce0
ShellPkg/AcpiView: Update PCCT fields for ACPI 6.5
...
The ACPI specification updated some terms in accordance with:
s1.1.1 Principle of Inclusive Terminology
Update the PCCT parser accordincly with these new terms.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2022-10-31 12:32:32 +00:00
78b081334e
ShellPkg: Add LOONGARCH64 architecture for EDK2 CI.
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4053
Add LOONGARCH64 architecture to ShellPkg for EDK2 CI testing.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Chao Li <lichao@loongson.cn >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-10-14 02:16:33 +00:00
3c06953fd7
ShellPkg: Adds Local APIC parser to AcpiView
...
Parse Type 0 or Local APIC structure.
Also parse the Local APIC Flags as bitfields.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Abdul Lateef Attar <abdattar@amd.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-08-31 01:57:58 +00:00
166c49c212
Revert "ShellPkg: Adds Local APIC parser to AcpiView"
...
This reverts commit d5fd86f256
for tag202208.
This feature will be merged after stable tag 202208 is created.
Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn >
Acked-by: Ard Biesheuvel <ardb@kernel.org >
2022-08-28 02:17:24 +00:00
4d83ee04f4
ShellPkg: Add revision check for DSDT Header on Arm
...
Bugzilla: 3995 (https://bugzilla.tianocore.org/show_bug.cgi?id=3995 )
ACPI 6.4 spec states that if the revision field in the DSDT header is less
than 2, then all integers are restricted in width to 32 bits, including in
SSDTs.
Arm Base boot requirements state that platforms must conform to ACPI 6.3
or later, and that legacy tables are not supported.
Adds a check for this field and raise warning if revision is less
than 2 on arm.
Signed-off-by: Edward Pickup <edward.pickup@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-08-24 03:14:52 +00:00
d5fd86f256
ShellPkg: Adds Local APIC parser to AcpiView
...
Parse Type 0 or Local APIC structure.
Also parse the Local APIC Flags as bitfields.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Abdul Lateef Attar <abdattar@amd.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-08-22 09:33:56 +00:00
35d167ef3c
ShellPkg: Improved Smbios Type 9 table changes in PrintInfo.c
...
Since PeerGroups has a variable number of entries, new fields added
after PeerGroups are defined in a extended structure.
Done changes in PrintInfo.c to access those fields using
SMBIOS_TABLE_TYPE9_EXTENDED structure from SmBios.h.
Signed-off-by: Sainadh Nagolu <sainadhn@ami.com >
Cc: Vasudevan Sambandan <vasudevans@ami.com >
Cc: Sundaresan S <sundaresans@ami.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2022-08-18 08:41:22 +00:00
74f44d920a
ShellPkg/SmbiosView: Display extended memory info in smbiosview -t 17
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4014
If Configured Memory Speed is 65,535 MT/s or greater,
and the actual speed is stored in the Extended Configured Memory Speed
field. but current Smbiosview have no this logic.
Signed-off-by: Shengfengx Xue <shengfengx.xue@intel.com >
2022-08-15 03:44:57 +00:00
cd67efa1b2
ShellPkg: Acpiview: IORT parser update for IORT Rev E.d spec
...
Bugzilla: 3458 - Add support IORT Rev E.d specification updates
(https://bugzilla.tianocore.org/show_bug.cgi?id=3458 )
The IO Remapping Table, Platform Design Document, Revision E.d,
Feb 2022 (https://developer.arm.com/documentation/den0049/ )
introduces the following updates, collectively including the
updates and errata fixes to Rev E, Rev E.a, Rev E.b, Rev E.c:
- increments the IORT table revision to 5.
- updates the node definition to add an 'Identifier' field.
- adds definition of node type 6 - Reserved Memory Range node.
- adds definition for Memory Range Descriptors.
- adds flag to indicate PRI support for root complexes.
- adds flag to indicate if the root complex supports forwarding
of PASID information on translated transactions to the SMMU.
- adds flag to indicate if the root complex supports PASID.
- adds flags to define access privilege and attributes for the
memory ranges.
Therefore, update the IORT parser to:
- parse the Identifier field.
- parse Reserved Memory Range node.
- parse Memory Range Descriptors.
- add validations to check that the physical range base
and size of the Memory Range Descriptor is 64KB aligned.
- add validation to check that the IORT Table Revision is
not 4 as IORT Rev E.c is deprecated.
- add validation to check that the IORT RMR node revision
is not 2 as it breaks backward compatibility and was
deprecated as part of IORT Rev E.c.
- skip parsing of IORT Rev E, Rev E.a, Rev E.b, Rev E.c as
some fields were deprecated in these revisions.
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com >
2022-07-29 19:22:15 +00:00
8a210b9ac0
ShellPkg: Acpiview: Abbreviate field names to preserve alignment
...
Some field names in the IORT table parser were longer than the
OUTPUT_FIELD_COLUMN_WIDTH plus indentation, resulting in loss of
the output print alignment. Therefore, abbreviate the field names.
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com >
2022-07-29 19:22:15 +00:00
483d3bb716
ShellPkg: Update smbiosview type 0 with SMBIOS 3.5 fields
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3906
update smbiosview type 0 related fileds.
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-04-25 07:20:26 +00:00
a85ae8d964
ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3896
update smbiosview type 9 related fileds.
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-04-22 01:48:09 +00:00
9bf7291d63
ShellPkg: Update smbiosview type 41 with SMBIOS 3.5 fields
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3900
update smbiosview type 41 related fileds.
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2022-04-15 03:06:02 +00:00
40004ff9d5
ShellPkg/AcpiView: PrintFormatter for FADT Flags field
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3839
Adds PrintFormatter function to the FADT flags field.
Prints indivisual flag name along with flag value.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Sami Mujawar <sami.mujawar@arm.com >
Signed-off-by: Abdul Lateef Attar <abdattar@amd.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-03-28 09:38:30 +00:00
691b178667
ShellPkg/AcpiView: Adds ACPI_PARSER bitfield parser
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3839
Adds ParseAcpiBitFields() which is based on
ParseAcpi() and capable of parsing the bit fields.
Supports parsing of UINT8, UINT16, UINT32 and UINT64 byte data.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Sami Mujawar <sami.mujawar@arm.com >
Signed-off-by: Abdul Lateef Attar <abdattar@amd.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2022-03-28 09:38:30 +00:00
8a57673316
ShellPkg: Fix Ping GetTimerPeriod API failure
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3819
Ping GetTimerPeriod API returns sometime zero value when
StallCounter has smaller value than RttTimerTick (divide by zero)
which results some failure at ping UEFI shell command
Signed-off-by: MohammedX Rehan <mohammedx.rehan@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2022-02-16 08:09:46 +00:00
6fb09da89f
ShellPkg: Fix incorrect PPTT FlagName dereference
...
Bugzilla: 3770 (https://bugzilla.tianocore.org/show_bug.cgi?id=3770 )
The PPTT parser in AcpiView incorrectly dereferences a pointer to
FlagName when trying to log an error with the PPTT cache flags, which
can lead to random crashes and other errors.
Also fix some spacing in the error message to ensure the message is
printed cleanly.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Rebecca Cran <rebecca@nuviainc.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2022-02-07 01:52:17 +00:00
76b3d45b75
ShellPkg: Add the missing VariablePolicyHelperLib in ShellPkg.dsc
...
This change is required by f4b7b473b4
.
Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
2022-01-29 01:37:24 +00:00
8cf2bdfcfb
ShellPkg: Add Cache ID to PPTT parser
...
Bugzilla: 3697 (https://bugzilla.tianocore.org/show_bug.cgi?id=3697 )
Update the Acpiview PPTT parser with the Cache ID field and relevant
validations as defined in tables 5.140 and 5.141 of the ACPI 6.4
specification.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2021-12-10 20:06:52 +00:00
a50b65ce22
ShellPkg: Update Acpiview PPTT parser to ACPI 6.4
...
Bugzilla: 3697 (https://bugzilla.tianocore.org/show_bug.cgi?id=3697 )
Update the Acpiview PPTT parser to use Acpi64.h. As part of the changes,
remove support for parsing PPTT type 2 ID structure.
Mantis ID for removing PPTT type 2 structure:
2072 (https://mantis.uefi.org/mantis/view.php?id=2072 )
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2021-12-10 20:06:52 +00:00
47d20b54f9
ShellPkg: Apply uncrustify changes
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737
Apply uncrustify changes to .c/.h files in the ShellPkg package
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2021-12-07 17:24:28 +00:00
9b8507cabe
ShellPkg: Change OPTIONAL keyword usage style
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760
Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params.
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2021-12-07 17:24:28 +00:00
4a1aee13d8
ShellPkg: Change use of EFI_D_* to DEBUG_*
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3739
Update all use of EFI_D_* defines in DEBUG() macros to DEBUG_* defines.
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2021-12-07 17:24:28 +00:00
9944508e85
ShellPkg: Update YAML to ignore specific ECC files/errors
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3749
Update package YAML files to ignore ECC errors that are
already present. These issues must be fixed in the future,
but should not block source code changes for these known
issues.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Acked-by: Zhichao Gao <zhichao.gao@intel.com >
2021-11-30 14:19:07 +00:00
8c1b1fe634
ShellPkg: Add comment that ItemPtr is set after validation
...
Add a comment to clarify that in Acpiview the ItemPtr is not set until
after the FieldValidator has been called.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-11-09 01:24:41 +00:00
2f286930a8
ShellPkg: Parse I/O APIC and x2APIC structure
...
Parse and print the below interrupt structures
- I/O APIC Structure
- Interrupt Source Override Structure
- Processor Local x2APIC Structure
- Local x2APIC NMI Structure
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-10-21 05:46:17 +00:00
ba4ae92234
ShellPkg: Support ProcessorUpgradeSocketLGA4677 from SMBIOS 3.5.0
...
The patch adds entry into QueryTable.c for ProcessorUpgradeSocketLGA4677
from SMBIOS 3.5.0.
It also adds entries into QueryTable.c for ProcessorUpgradeSocketLGA4189
and ProcessorUpgradeSocketLGA1200 from SMBIOS 3.4.0.
Signed-off-by: Star Zeng <star.zeng@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2021-10-12 05:41:25 +00:00
30400318a2
ShellPkg: Update Acpiview HMAT parser to ACPI spec version 6.4
...
Add parser support for the new "MinTransferSize" field of the System
Locality, Latency and Bandwidth structure, introduced by the ACPI
specification version 6.4.
Also update the HMAT parser to use the newer ACPI version 6.4
definitions.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhcihao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2021-10-08 15:16:21 +00:00
b4da6c29f1
ShellPkg: Add Type 5 PCC Subspace Structure parser
...
Bugzilla: 3563 (https://bugzilla.tianocore.org/show_bug.cgi?id=3563 )
Update the Acpiview PCCT parser with the HW Registers based
Communications Subspace Structure (Type 5) as defined in Section 14.1.7
of the ACPI 6.4 specification.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar <sami.mujawar@arm.com >
2021-10-06 11:20:48 +00:00
80e67bcb23
ShellPkg: Update Acpiview PCCT parser to ACPI 6.4
...
Bugzilla: 3563 (https://bugzilla.tianocore.org/show_bug.cgi?id=3563 )
Update the Acpiview PCCT parser to use Acpi64.h.
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar <sami.mujawar@arm.com >
2021-10-06 11:20:48 +00:00
942c9bd357
ShellPkg: Update Acpiview GTDT parser to ACPI 6.4
...
Bugzilla: 3565 (https://bugzilla.tianocore.org/show_bug.cgi?id=3565 )
Update the Acpiview GTDT parser to use Acpi64.h and as such rename all
occurences of "SBSA Generic Watchdog" to "Arm Generic Watchdog".
Signed-off-by: Chris Jones <christopher.jones@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2021-10-05 16:04:44 +00:00
885efcd3f9
MdePkg/Include: Smbios Specification 3.4.0 changes
...
The following changes were addressed,
1. Smbios specs 3.4.0 table-51 bit5&6, these fields moved
from specific MemoryArrayLocationCXLFlexbus10AddonCard
to generic MemoryArrayLocationCXLAddonCard
to address both CXL1.0 and 2.0 CXL revisions.
2. Smbios specs 3.4.0 table-79, The memory technology name changed
from MemoryTechnologyIntelPersistentMemory
to MemoryTechnologyIntelOptanePersistentMemory.
Signed-off-by: Thotala Gopi <gopi.thotala@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2021-07-20 01:50:58 +00:00
beb443fde0
ShellPkg: Fix typo
...
Fix typo of 'specified' in UefiShellDriver1CommandsLib.
Signed-off-by: Rebecca Cran <rebecca@nuviainc.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-06-09 06:12:52 +00:00
aecfbc81a9
ShellPkg/HttpDynamicCommand: Fix possible uninitialized use
...
`Status` can be used uninitialized:
/* Evaluates to FALSE */
if (ShellGetExecutionBreakFlag ()) {
Status = EFI_ABORTED;
break;
}
/* Evaluates to FALSE */
if (!Context->ContentDownloaded && !Context->ResponseToken.Event) {
Status = ...;
ASSERT_EFI_ERROR (Status);
} else {
ResponseMessage.Data.Response = NULL;
}
/* UNINITIALIZED USE */
if (EFI_ERROR (Status)) {
break;
}
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Sergei Dmitrouk <sergei@posteo.net >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2021-05-19 01:39:49 +00:00
eec44cdd00
ShellPkg/UefiShellCommandLib: suppress incorrect gcc warning
...
`Dupes` is used only if `Duplicates != NULL` and function is left if
allocation of memory for `Dupes` fails, so it can't be used
uninitialized.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3228
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Sergei Dmitrouk <sergei@posteo.net >
Message-Id: <20210511225616.5942-2-sergei@posteo.net >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2021-05-14 10:00:13 +00:00
10bf6c40f6
ShellPkg: Rename Address Size to Access size
...
This matches the ACPI spec 6.3, table 5.1: Generic Address Structure.
Signed-off-by: Joey Gouly <joey.gouly@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
2021-04-19 13:28:26 +00:00
97336fdee4
ShellPkg: Fix smbiosview system enclosure type table
...
The SystemEnclosureTypeTable in QueryTable.c contained a couple
of errors: value 0x10 is "Lunch Box" not "Main Server Chassis", and
the Sub Notebook value was repeated as 0x13 when that entry is for
"SubChassis". The entries in-between needed adjusted.
Signed-off-by: Rebecca Cran <rebecca@nuviainc.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-04-12 02:19:39 +00:00
25b77b5090
ShellPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3246
MdeLibs.dsc.inc was added for some basic/default library
instances provided by MdePkg and RegisterFilterLibNull Library
was also added into it as the first version of MdeLibs.dsc.inc.
So update platform dsc to consume MdeLibs.dsc.inc for
RegisterFilterLibNull which will be consumed by IoLib and BaseLib.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Dandan Bi <dandan.bi@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Acked-by: Ard Biesheuvel <ardb@kernel.org >
2021-03-31 05:47:10 +00:00
b33cf5bfcb
ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols
...
Add handle parsing for EFI Redfish Discover protocol.
Add handle parsing for EFI RestEx protocol.
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Nickle Wang <nickle.wang@hpe.com >
Cc: Peter O'Hanley <peter.ohanley@hpe.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2021-03-26 02:56:22 +00:00
3d0df0f076
ShellPkg/Pci: Add valid check for PCI extended config space parser
...
Bugzilla: 3262 (https://bugzilla.tianocore.org/show_bug.cgi?id=3262 )
No need to print PCIe details while CapabilityId is 0xFFFF.
Limit the NextCapabilityOffset to PCI configuration space.
Signed-off-by: VincentX Ke <vincentx.ke@intel.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-03-22 01:37:30 +00:00
f9c53a69ed
ShellPkg/SmbiosView: add more items for smbiosview -t 3
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3177
Add ContainedElementCount, ContainedElementRecordLength and
ContainedElements for smbiosview type 3.
Signed-off-by: Mars CC Lin <mars_cc_lin@phoenix.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-03-18 03:10:45 +00:00
618e6a1f21
ShellPkg/AcpiView: HMAT Parser
...
Bugzilla: 3045 (https://bugzilla.tianocore.org/show_bug.cgi?id=3045 )
Add a new parser for the Heterogeneous Memory Attribute Table. The
parser also validates some fields for this table.
The HMAT table is used to describe the memory attributes such as memory
side cache attributes and bandwidth and latency details related to
memory proximity domains. The info in the HMAT table can be used by an
operating system for optimisation.
Signed-off-by: Marc Moisson-Franckhauser <marc.moisson-franckhauser@arm.com >
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com >
Tested-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-02-03 02:22:53 +00:00
c8ce60eb29
ShellPkg/ShellProtocol: sort files by FullName in RemoveDupInFileList()
...
The current implementation of EfiShellRemoveDupInFileList():
- has quadratic time complexity, as a disadvantage, and
- needs no dynamic memory, as an advantage.
Because the UEFI Shell Spec requires
EFI_SHELL_PROTOCOL.RemoveDupInFileList() to succeed at all times, keep the
current method as a fallback (it cannot fail due to needing no dynamic
memory).
However, as a higher priority option, call the new ShellSortFileList()
function at first, separating out and releasing duplicates.
(ShellSortFileList() can fail due to EFI_OUT_OF_RESOURCES.)
Beyond improving the runtime of EfiShellRemoveDupInFileList(), this change
has the extremely desirable effect that the ShellOpenFileMetaArg()
function in the ShellPkg/Library/UefiShellLib instance will produce file
lists that are sorted by FullName.
Consequently, when used with wildcards, the ATTRIB, CP, FOR, LOAD,
LOADPCIROM, LS, MV, RM, TOUCH, TYPE commands will process files in
FullName order. (LS in recursive mode uses wildcards internally.)
Before:
> FS2:\> dir -r -sfo apps
> [...]
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\X64"
> FileInfo,"FS2:\apps\AARCH64"
> FileInfo,"FS2:\"
> FileInfo,"FS2:\apps\IA32"
> FileInfo,"FS2:\apps\X64\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\X64\SmiHandlerProfileInfo.efi"
> FileInfo,"FS2:\apps\X64\"
> FileInfo,"FS2:\apps\X64\VariableInfo.efi"
> FileInfo,"FS2:\apps\X64\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\X64\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\X64\Cpuid.efi"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\AARCH64\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\AARCH64\"
> FileInfo,"FS2:\apps\AARCH64\VariableInfo.efi"
> FileInfo,"FS2:\apps\AARCH64\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\AARCH64\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\IA32\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\IA32\SmiHandlerProfileInfo.efi"
> FileInfo,"FS2:\apps\IA32\"
> FileInfo,"FS2:\apps\IA32\VariableInfo.efi"
> FileInfo,"FS2:\apps\IA32\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\IA32\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\IA32\Cpuid.efi"
> FileInfo,"FS2:\apps\"
After:
> FS2:\> dir -r -sfo apps
> [...]
> FileInfo,"FS2:\"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\AARCH64"
> FileInfo,"FS2:\apps\IA32"
> FileInfo,"FS2:\apps\X64"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\AARCH64\"
> FileInfo,"FS2:\apps\AARCH64\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\AARCH64\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\AARCH64\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\AARCH64\VariableInfo.efi"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\IA32\"
> FileInfo,"FS2:\apps\IA32\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\IA32\Cpuid.efi"
> FileInfo,"FS2:\apps\IA32\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\IA32\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\IA32\SmiHandlerProfileInfo.efi"
> FileInfo,"FS2:\apps\IA32\VariableInfo.efi"
> FileInfo,"FS2:\apps\"
> FileInfo,"FS2:\apps\X64\"
> FileInfo,"FS2:\apps\X64\AcpiViewApp.efi"
> FileInfo,"FS2:\apps\X64\Cpuid.efi"
> FileInfo,"FS2:\apps\X64\DumpDynPcd.efi"
> FileInfo,"FS2:\apps\X64\MemoryProfileInfo.efi"
> FileInfo,"FS2:\apps\X64\SmiHandlerProfileInfo.efi"
> FileInfo,"FS2:\apps\X64\VariableInfo.efi"
Regarding LS in non-SFO mode, the stability of ShellSortFileList() shows.
The ShellSortFileList() call added to LS in the previous patch re-sorts
the output of ShellOpenFileMetaArg(); and so this patch improves the
ordering between identical FileNames:
Before:
> FS2:\> dir -r apps
> Directory of: FS2:\apps\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 <DIR> 4,096 AARCH64
> 12/22/2020 17:53 <DIR> 4,096 IA32
> 12/22/2020 17:53 <DIR> 4,096 X64
> 0 File(s) 0 bytes
> 5 Dir(s)
> Directory of: FS2:\apps\X64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 6 File(s) 256,192 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\AARCH64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 4 File(s) 233,472 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\IA32\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 6 File(s) 224,768 bytes
> 2 Dir(s)
>
> FS2:\> dir apps\*\*.efi
> Directory of: FS2:\apps\*\
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 16 File(s) 714,432 bytes
> 0 Dir(s)
After:
> FS2:\> dir -r apps
> Directory of: FS2:\apps\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 <DIR> 4,096 AARCH64
> 12/22/2020 17:53 <DIR> 4,096 IA32
> 12/22/2020 17:53 <DIR> 4,096 X64
> 0 File(s) 0 bytes
> 5 Dir(s)
> Directory of: FS2:\apps\AARCH64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 4 File(s) 233,472 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\IA32\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 6 File(s) 224,768 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\X64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 6 File(s) 256,192 bytes
> 2 Dir(s)
>
> FS2:\> dir apps\*\*.efi
> Directory of: FS2:\apps\*\
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 16 File(s) 714,432 bytes
> 0 Dir(s)
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3151
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Message-Id: <20210113085453.10168-9-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2021-01-19 18:23:28 +00:00
70254306a8
ShellPkg/Ls: sort output by FileName in non-SFO mode
...
Sorting the LS output in non-SFO mode by FileName is best demonstrated
with two examples.
(1a) Before:
> FS2:\> dir -r apps
> Directory of: FS2:\apps\
> 01/01/1970 01:00 <DIR> r 0 .
> 12/22/2020 17:53 <DIR> 4,096 X64
> 12/22/2020 17:53 <DIR> 4,096 AARCH64
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 <DIR> 4,096 IA32
> 0 File(s) 0 bytes
> 5 Dir(s)
> Directory of: FS2:\apps\X64\
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 01/01/1970 01:00 <DIR> r 0 .
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 01/01/1970 01:00 <DIR> r 0 ..
> 6 File(s) 256,192 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\AARCH64\
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 01/01/1970 01:00 <DIR> r 0 .
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 01/01/1970 01:00 <DIR> r 0 ..
> 4 File(s) 233,472 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\IA32\
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 01/01/1970 01:00 <DIR> r 0 .
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 01/01/1970 01:00 <DIR> r 0 ..
> 6 File(s) 224,768 bytes
> 2 Dir(s)
(1b) After:
> FS2:\> dir -r apps
> Directory of: FS2:\apps\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 <DIR> 4,096 AARCH64
> 12/22/2020 17:53 <DIR> 4,096 IA32
> 12/22/2020 17:53 <DIR> 4,096 X64
> 0 File(s) 0 bytes
> 5 Dir(s)
> Directory of: FS2:\apps\X64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 6 File(s) 256,192 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\AARCH64\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 4 File(s) 233,472 bytes
> 2 Dir(s)
> Directory of: FS2:\apps\IA32\
> 01/01/1970 01:00 <DIR> r 0 .
> 01/01/1970 01:00 <DIR> r 0 ..
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 6 File(s) 224,768 bytes
> 2 Dir(s)
(2a) Before:
> FS2:\> dir apps\*\*.efi
> Directory of: FS2:\apps\*\
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 16 File(s) 714,432 bytes
> 0 Dir(s)
(2b) After:
> FS2:\> dir apps\*\*.efi
> Directory of: FS2:\apps\*\
> 12/22/2020 17:53 126,656 AcpiViewApp.efi
> 12/22/2020 17:53 139,264 AcpiViewApp.efi
> 12/22/2020 17:53 105,536 AcpiViewApp.efi
> 12/22/2020 17:53 38,784 Cpuid.efi
> 12/22/2020 17:53 36,096 Cpuid.efi
> 12/22/2020 17:52 18,752 DumpDynPcd.efi
> 12/22/2020 17:52 32,768 DumpDynPcd.efi
> 12/22/2020 17:52 17,344 DumpDynPcd.efi
> 12/22/2020 17:52 26,304 MemoryProfileInfo.efi
> 12/22/2020 17:52 40,960 MemoryProfileInfo.efi
> 12/22/2020 17:52 24,192 MemoryProfileInfo.efi
> 12/22/2020 17:52 34,240 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 30,720 SmiHandlerProfileInfo.efi
> 12/22/2020 17:52 11,456 VariableInfo.efi
> 12/22/2020 17:52 20,480 VariableInfo.efi
> 12/22/2020 17:52 10,880 VariableInfo.efi
> 16 File(s) 714,432 bytes
> 0 Dir(s)
(In example (2), note that the sorting is stable; that is, whatever order
is established between identical FileNames by ShellOpenFileMetaArg(), it
is preserved by ShellSortFileList().)
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3151
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Message-Id: <20210113085453.10168-8-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2021-01-19 18:23:28 +00:00
101c55ac0d
ShellPkg/ShellCommandLib: add ShellSortFileList()
...
Introduce the ShellSortFileList() function, for sorting an
EFI_SHELL_FILE_INFO list, by FileName or by FullName.
Duplicates can be kept in the same list, or separated out to a new list.
In either case, the relative order between duplicates does not change (the
sorting is stable).
For the sorting, use OrderedCollectionLib rather than SortLib:
- The PerformQuickSort() function from the latter has quadratic worst-case
time complexity, plus it is implemented recursively (see
"MdeModulePkg/Library/UefiSortLib/UefiSortLib.c"). It can also not
return an error on memory allocation failure.
- In comparison, the Red-Black Tree instance of OrderedCollectionLib sorts
in O(n*log(n)) worst-case time, contains no recursion with the default
PcdValidateOrderedCollection=FALSE setting, and the OrderedCollectionLib
class APIs return errors appropriately.
The OrderedCollectionLib APIs do not permit duplicates natively, but by
using lists as collection entries, stable sorting of duplicates can be
achieved.
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3151
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Message-Id: <20210113085453.10168-7-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2021-01-19 18:23:28 +00:00
f72fd9616e
ShellPkg/Comp: add file buffering
...
The COMP shell command compares two files byte for byte. In order to
retrieve the bytes to compare, it currently invokes
gEfiShellProtocol->ReadFile() on both files, using a single-byte buffer
every time. This is very inefficient; the underlying
EFI_FILE_PROTOCOL.Read() function may be costly.
Read both file operands in chunks of "PcdShellFileOperationSize" bytes.
Draw bytes for comparison from the internal read-ahead buffers.
Some ad-hoc measurements on my laptop, using OVMF, and the 4KB default of
"PcdShellFileOperationSize":
- When comparing two identical 1MB files that are served by EnhancedFatDxe
on top of VirtioScsiDxe, this patch brings no noticeable improvement;
the comparison completes in <1s both before and after.
- When comparing two identical 1MB files served by VirtioFsDxe, the
comparison time improves from 2 minutes 25 seconds to <1s.
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3123
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Message-Id: <20210113085453.10168-2-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2021-01-19 18:23:28 +00:00
a8a0831589
ShellPkg: Remove bogus "Bits" text from some smbiosview strings.
...
Neither of the "CPU Socket Unpopulated" or "Do not reboot" messages
should contain the word "Bits".
Remove them and update the identifier for the "Do not reboot" message
to remove the word "BITS".
Signed-off-by: Rebecca Cran <rebecca@nuviainc.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
2021-01-11 02:09:10 +00:00
1d3d5e3256
ShellPkg/Acpiview: AEST Parser
...
Bugzilla: 3048 (https://bugzilla.tianocore.org/show_bug.cgi?id=3048 )
Add a new parser for the Arm Error Source Table (AEST) described in
the ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document,
dated 28 September 2020.
(https://developer.arm.com/documentation/den0085/0101/ )
AEST enables kernel-first handling of errors in a system that supports
the Armv8 RAS extensions. It covers Armv8.2+ RAS extensions for PEs
and the RAS system architecture for non-PE system components.
Signed-off-by: Marc Moisson-Franckhauser <marc.moisson-franckhauser@arm.com >
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2021-01-08 03:50:34 +00:00
42fe8ca453
MdePkg: Define structures for Resizable BAR Capability
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3138
Define structures for Resizable BAR Capability in
MdePkg/Include/IndustryStandard/PciExpress21.h,
Change ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
to use new structures.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Signed-off-by: Heng Luo <heng.luo@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2021-01-04 08:25:28 +00:00