]> git.proxmox.com Git - mirror_edk2.git/log
mirror_edk2.git
2 years agoOvmfPkg/ResetSystemLib: add driver for microvm
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:14 +0000 (11:01 +0200)]
OvmfPkg/ResetSystemLib: add driver for microvm

Uses the generic event device to reset and poweroff.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: PlatformPei/Platform: add id.
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:13 +0000 (11:01 +0200)]
OvmfPkg/Microvm: PlatformPei/Platform: add id.

Add + set microvm id for PcdOvmfHostBridgePciDevId.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: PlatformPei/Platform memory map tweaks
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:12 +0000 (11:01 +0200)]
OvmfPkg/Microvm: PlatformPei/Platform memory map tweaks

Microvm needs ioapic hobs only.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: PlatformPei/MemDetect tweaks
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:11 +0000 (11:01 +0200)]
OvmfPkg/Microvm: PlatformPei/MemDetect tweaks

Skip host bridge setup on microvm.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: use XenTimerDxe (lapic timer)
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:10 +0000 (11:01 +0200)]
OvmfPkg/Microvm: use XenTimerDxe (lapic timer)

Microvm has no acpi timer, so go use XenTimerDxe
which uses the local apic instead.

Set PcdFSBClock to 1000 MHz, which is the lapic
timer frequency used by KVM.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: use MdePkg/Library/SecPeiDxeTimerLibCpu
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:09 +0000 (11:01 +0200)]
OvmfPkg/Microvm: use MdePkg/Library/SecPeiDxeTimerLibCpu

Microvm has no acpi timer, so use the generic lib instead.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no emulated scsi
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:08 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no emulated scsi

Microvm focus is virtio, so go drop support
for emulated scsi host adapters.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no csm
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:07 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no csm

Guests depending on BIOS will probably not work that well with microvm
due to legacy hardware being not available.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no sev
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:06 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no sev

Microvm has no SEV support.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no tpm
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:05 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no tpm

Microvm has no TPM support.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no secure boot
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:04 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no secure boot

Without SMM secure boot isn't actually secure, so drop it too.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: no smm
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:03 +0000 (11:01 +0200)]
OvmfPkg/Microvm: no smm

Microvm has no SMM support.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: rename output files, fix includes
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:02 +0000 (11:01 +0200)]
OvmfPkg/Microvm: rename output files, fix includes

Rename the firmware volume files (s/OVMF/MICROVM/).
Fix includes so they work with microvm config being in a subdirectory.
With this patch applied the build works.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/Microvm: copy OvmfPkgX64 files as-is
Gerd Hoffmann [Wed, 8 Sep 2021 09:01:01 +0000 (11:01 +0200)]
OvmfPkg/Microvm: copy OvmfPkgX64 files as-is

Create Microvm subdirectory.  Copy OvmfPkgX64 .dsc and .fdf files
unmodified as starting point for MicrovmX64.

Changes come as separate patches, to simplify patch review and rebases.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoArmVirtPkg: Disable the TPM2 platform hierarchy
Stefan Berger [Fri, 24 Sep 2021 11:42:21 +0000 (07:42 -0400)]
ArmVirtPkg: Disable the TPM2 platform hierarchy

Disable the TPM2 platform hierarchy by directly calling
ConfigureTpmPlatformHierarchy().

Per the TCG firmware specification "TCG PC Client Platform Firmware Profile
Specification" the TPM 2 platform hierarchy needs to be disabled or a
random password set and discarded before the firmware passes control to the
next stage bootloader or kernel.

Current specs are here:
https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClient_PFP_r1p05_v23_pub.pdf

Section 11 states:
"Platform Firmware MUST protect access to the Platform Hierarchy
and prevent access to the platform hierarchy by non-manufacturer-
controlled components."

Link: https://bugzilla.tianocore.org/show_bug.cgi?id=3510
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 years agoArmVirtPkg: Reference new TPM classes in the build system for compilation
Stefan Berger [Fri, 24 Sep 2021 11:42:20 +0000 (07:42 -0400)]
ArmVirtPkg: Reference new TPM classes in the build system for compilation

We just added the same functionality to the OvmfPkg. However, on x86, we
could use the notification mechanism around
gEfiDxeSmmReadyToLockProtocolGuid to indirectly invoke
ConfigureTpmPlatformHierarchy(). Since ARM does not have an SMM mode, we
have to use direct invocation of this function at the same place in
PlatformBootManagerBeforeConsole() as it is called on x86.

Link: https://bugzilla.tianocore.org/show_bug.cgi?id=3510
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 years agoArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Stefan Berger [Fri, 24 Sep 2021 11:42:19 +0000 (07:42 -0400)]
ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib

Add a NULL implementation of the library class TpmPlatformHierarchyLib.

Link: https://bugzilla.tianocore.org/show_bug.cgi?id=3510
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 years agoArmPkg: SmbiosMiscDxe: Don't populate ExtendedBiosSize when size < 16MB
Rebecca Cran [Mon, 4 Oct 2021 16:22:33 +0000 (10:22 -0600)]
ArmPkg: SmbiosMiscDxe: Don't populate ExtendedBiosSize when size < 16MB

According to the SMBIOS specification, the ExtendedBiosSize field should
be zero when the BIOS size is less than 16MB:

"Size (n) where 64K * (n+1) is the size of the
physical device containing the BIOS, in
bytes.
FFh - size is 16MB or greater, see Extended
BIOS ROM Size for actual size."

Fix the code in MiscBiosVendorFunction.c to only populate the
ExtendedBiosSize field if the BIOS size is greater than 16MB.

Fix the code to correctly populate the ExtendedBiosSize field with the
unit bits set to MB if the size is between 16MB and 16GB.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Acked-by: Nhi Pham <nhi@os.amperecomputing.com>
2 years agoIntelFsp2Pkg: Adopt FSP 2.3 specification.
Chasel Chiu [Fri, 1 Oct 2021 07:34:39 +0000 (15:34 +0800)]
IntelFsp2Pkg: Adopt FSP 2.3 specification.

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3674

Add ExtendedImageRevision in FSP_INFO_HEADER structure, also add
FSP_NON_VOLATILE_STORAGE_HOB2 header.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2 years agoDynamicTablesPkg: Rework AmlResourceDataCodegen.c/h
Pierre Gondois [Thu, 30 Sep 2021 07:48:21 +0000 (08:48 +0100)]
DynamicTablesPkg: Rework AmlResourceDataCodegen.c/h

Rework all the functions to to have a generic prototype:
 - First take take the resource data specific arguments.
   E.g.: for a Register(): the AddressSpace, BitWidth, ...
 - The penultimate parameter is a NameOpNode. The resource data
   created is appended to the ResourceTemplate() contained in the
   NameOpNode.
 - The last parameter is a pointer holding the created resource data.

A least one of the two last parameter must be provided. One of them can
be omitted. This generic interface allows to either:
 - Add the resource data to a NameOpNode. This is a common case for the
   Ssdt tables generator.
 - Get the created resource data and let the caller place it in an AML
   tree.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Deprecate Crs specific methods in AmlLib
Pierre Gondois [Thu, 30 Sep 2021 07:48:20 +0000 (08:48 +0100)]
DynamicTablesPkg: Deprecate Crs specific methods in AmlLib

Some functions in the AmlLib have 'Crs' in their name and can only
be applied to '_CRS' AML objects. To re-use them on AML objects that
have different names:
 - Rename them and remove the '_CRS' name check.
 - Create aliases having of the 'Crs' function prototypes. These
   aliases are available when DISABLE_NEW_DEPRECATED_INTERFACES
   is not defined. They will be deprecated in a near future.

The deprecated functions are:
- AmlNameOpCrsGetFirstRdNode()
- AmlNameOpCrsGetNextRdNode()
- AmlCodeGenCrsAddRdInterrupt()

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Update DynamicTablesPkg.ci.yaml
Pierre Gondois [Thu, 30 Sep 2021 07:48:19 +0000 (08:48 +0100)]
DynamicTablesPkg: Update DynamicTablesPkg.ci.yaml

To prepare edk2 upstream CI for incoming modifications:
1- Disable the Ecc check 9005:
   "Only Doxygen commands '@bug', '@todo', [...], '@{', '@}'
   are allowed to mark the code Unknown doxygen command [...]"
2- Disable the Ecc check 8003 for the following keyword:
   "DISABLE_NEW_DEPRECATED_INTERFACES"
   Indeed, this error has been corrected on the latest version of
   BaseTools, but is still triggered when using the older python
   packages containing the BaseTools.
3- Add word exceptions for the cspell tool.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Use %a formatter in AmlDbgPrint
Pierre Gondois [Thu, 30 Sep 2021 07:48:18 +0000 (08:48 +0100)]
DynamicTablesPkg: Use %a formatter in AmlDbgPrint

The correct formatter to print a CHAR8 char in edk2 is '%a'.
Replace the '%s' formatters by '%a'.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Add Configuration Manager Object parser
Sami Mujawar [Thu, 30 Sep 2021 07:48:17 +0000 (08:48 +0100)]
DynamicTablesPkg: Add Configuration Manager Object parser

The Platform information repository in the Configuration Manager
may be dynamically populated, for e.g. by a Hardware Information
Parser like FdtHwInfoParser. In such cases it is useful to trace
the CM objects that were populated by the parser.

Therefore, introduce helper functions that can parse and trace
the Configuration Manager Objects.

Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Add AmlGetEisaIdFromString() to AcpiHelperLib
Pierre Gondois [Thu, 30 Sep 2021 07:48:16 +0000 (08:48 +0100)]
DynamicTablesPkg: Add AmlGetEisaIdFromString() to AcpiHelperLib

Add a function converting a 7 characters string to its UINT32
EISAID. The algorithm used to create the EISAID is described
in the ACPI 6.4 specification, s19.3.4 "ASL Macros".

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Add HexFromAscii() to AcpiHelperLib
Pierre Gondois [Thu, 30 Sep 2021 07:48:15 +0000 (08:48 +0100)]
DynamicTablesPkg: Add HexFromAscii() to AcpiHelperLib

Add HexFromAscii(), converting an hexadecimal ascii char
to an integer.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Rename single char input parameter
Pierre Gondois [Thu, 30 Sep 2021 07:48:14 +0000 (08:48 +0100)]
DynamicTablesPkg: Rename single char input parameter

The Ecc tool forbids the usage of one char variable: Ecc error 8007:
"There should be no use of short (single character) variable names"

To follow this policy, rename this one letter parameter.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Update TableHelperLib.inf
Pierre Gondois [Thu, 30 Sep 2021 07:48:13 +0000 (08:48 +0100)]
DynamicTablesPkg: Update TableHelperLib.inf

Update the inf file version and BASE_NAME of the library.
Remove unused sections.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoDynamicTablesPkg: Extract AcpiHelperLib from TableHelperLib
Pierre Gondois [Thu, 30 Sep 2021 07:48:12 +0000 (08:48 +0100)]
DynamicTablesPkg: Extract AcpiHelperLib from TableHelperLib

The TableHelperLib contains helper functions. Some rely on
DynamicTablesPkg definitions (they use Configuration Manager objects).
Some others are more generic.

To allow using these generic functions without including
DynamicTablesPkg definitions, move them to a new AcpiHelperLib
library.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
2 years agoUefiPayloadPkg: Remove asm code and sharing libraries
Guo Dong [Wed, 29 Sep 2021 03:34:40 +0000 (20:34 -0700)]
UefiPayloadPkg: Remove asm code and sharing libraries

Remove asm code used for payload entry.
Use patchable PCD instead a fixed PCD PcdPayloadStackTop to avoid
potential conflict.

Based on the removal, use same HobLib regardless UNIVERSAL_PAYLOAD.
Use same PlatformHookLib regardless UNIVERSAL_PAYLOAD. The original
PlatformHookLib was removed and UniversalPayloadPlatformHookLib was
rename to new PlatformHookLib.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 years agoSecurityPkg: Fix SecureBootDefaultKeysDxe failed to start
Nhi Pham [Mon, 27 Sep 2021 07:46:27 +0000 (15:46 +0800)]
SecurityPkg: Fix SecureBootDefaultKeysDxe failed to start

The dbt and dbx keys are optional, the driver entry should return
EFI_SUCCESS to start if they are not found in the firmware flash. This
patch is to fix it and update the description of retval as well.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Grzegorz Bernacki <gjb@semihalf.com>
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
Reviewed-by: Grzegorz Bernacki <gjb@semihalf.com>
Acked-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoMdeModulePkg: CI YAML: Added new GUID to ignore duplicate list
Kun Qin [Thu, 16 Sep 2021 00:14:20 +0000 (08:14 +0800)]
MdeModulePkg: CI YAML: Added new GUID to ignore duplicate list

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3629

SMM Communication PPI GUID from MdeModulePkg is defined the same as MM
Communication PPI GUID from MdePkg, according to PI Spec v1.5 and onward.

After introduction of MM Communication PPI definitions, an update in the
ignore duplicate list is needed to avoid breaking CI build.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdePkg: CI YAML: Added new GUID to ignore duplicate list
Kun Qin [Thu, 16 Sep 2021 00:14:19 +0000 (08:14 +0800)]
MdePkg: CI YAML: Added new GUID to ignore duplicate list

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3629

SMM Communication PPI GUID from MdeModulePkg is defined the same as MM
Communication PPI GUID from MdePkg, according to PI Spec v1.5 and onward.

After introduction of MM Communication PPI definitions, an update in the
ignore duplicate list is needed to avoid breaking CI build.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdePkg: MmCommunication: Added definition of MM Communication PPI
Kun Qin [Thu, 16 Sep 2021 00:14:18 +0000 (08:14 +0800)]
MdePkg: MmCommunication: Added definition of MM Communication PPI

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3629

MM Communication PPI was defined in PI Specification since v1.5. This
change added definition of such PPI and related GUIDs into MdePkg.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoOvmfPkg: Reference new Tcg2PlatformPei in the build system
Stefan Berger [Wed, 15 Sep 2021 01:25:06 +0000 (09:25 +0800)]
OvmfPkg: Reference new Tcg2PlatformPei in the build system

Compile the Tcg2PlatformPei related code now to support TPM 2 platform
hierachy disablement if the TPM state cannot be resumed upon S3 resume.

Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Peter Grehan <grehan@freebsd.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg: Reference new Tcg2PlatformDxe in the build system for compilation
Stefan Berger [Wed, 15 Sep 2021 01:25:05 +0000 (09:25 +0800)]
OvmfPkg: Reference new Tcg2PlatformDxe in the build system for compilation

Compile the Tcg2PlatformDxe related code now.

Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Peter Grehan <grehan@freebsd.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg: Handle TPM 2 physical presence opcodes much earlier
Stefan Berger [Wed, 15 Sep 2021 01:25:04 +0000 (09:25 +0800)]
OvmfPkg: Handle TPM 2 physical presence opcodes much earlier

Handle the TPM 2 physical presence interface (PPI) opcodes in
PlatformBootManagerBeforeConsole() before the TPM 2 platform hierarchy
is disabled. Since the handling of the PPI opcodes may require inter-
action with the user, initialize the keyboard before handling PPI codes.

Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Peter Grehan <grehan@freebsd.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoOvmfPkg/TPM PPI: Connect default consoles for user interaction
Stefan Berger [Wed, 15 Sep 2021 01:25:03 +0000 (09:25 +0800)]
OvmfPkg/TPM PPI: Connect default consoles for user interaction

Activate the default console when user interaction is required for
the processing of TPM 2 physical presence interface opcodes.

Background:
TPM 2 physical presence interface (PPI) opcodes need to be handled before
the TPM 2 platform hierarchy is disabled. Due to this requirement we will
move the function call to handle the PPI opcodes into
PlatformBootManagerBeforeConsole() which runs before the initialization
of the consoles. However, since for interaction with the user we need
the console to be available, activate it now before displaying any message
to the user.

Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Peter Grehan <grehan@freebsd.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoUefiPayloadPkg: Update maximum logic processor to 256
Cheng-Chieh Huang [Wed, 26 May 2021 08:01:39 +0000 (08:01 +0000)]
UefiPayloadPkg: Update maximum logic processor to 256

Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Cheng-Chieh Huang <chengchieh@google.com>
Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
Cc: Trammell Hudson <hudson@trmm.net>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
2 years agoBaseTools: Remove hard-coded strings for target and tools_def
Pierre Gondois [Thu, 23 Sep 2021 08:59:03 +0000 (16:59 +0800)]
BaseTools: Remove hard-coded strings for target and tools_def

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3653

The "target.txt" and "tools_def.txt" filenames are hard-coded
at some places when global definitions are available at:
BaseTools/Source/Python/Common/TargetTxtClassObject.py:
DefaultTargetTxtFile
and
BaseTools/Source/Python/Common/ToolDefClassObject.py:
DefaultToolsDefFile

Use these global definitions instead.

Also remove the unused gBuildConfiguration and gToolsDefinition
variables from build.py

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Reviewed-by: Chris Jones <christopher.jones@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 years agoBaseTools: Remove Makefile/MakefileName fields
Pierre Gondois [Thu, 23 Sep 2021 08:59:02 +0000 (16:59 +0800)]
BaseTools: Remove Makefile/MakefileName fields

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3653

The Makefile and MakefilName fields are never set/used. Remove them.
To check this, the following commands can be used:
- grep -rIn "\.Makefile"
- grep -rIn "\.MakefileName"

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Reviewed-by: Chris Jones <christopher.jones@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 years agoBaseTools/build: Set MakefileName
Pierre Gondois [Thu, 23 Sep 2021 08:59:01 +0000 (16:59 +0800)]
BaseTools/build: Set MakefileName

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3653

Running the following command:
  python3 build/build.py -a AARCH64 -t GCC5
  -p ArmPlatformPkg/ArmPlatformPkg.dsc -b DEBUG libraries
triggers the following error:
  make: *** Build/ArmPlatform/DEBUG_GCC5/AARCH64/MdePkg/Library/
  BasePcdLibNull/BasePcdLibNull: Is a directory.  Stop.

Indeed, MakefileName is set to en empty string. Setting MakefileName
resolves the error.

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Reviewed-by: Chris Jones <christopher.jones@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 years agoBaseTools/GenMake: Use ToolDefinition as fallback option
Pierre Gondois [Thu, 23 Sep 2021 08:59:00 +0000 (16:59 +0800)]
BaseTools/GenMake: Use ToolDefinition as fallback option

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3653

Use the value set in tools_def.txt when the makefile type is
not explicitly set via BuildOption. This allows to have a
valid default makefile name instead of an empty string.

Also use GMAKE_FILETYPE instead of hard-coded "gmake".

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Reviewed-by: Chris Jones <christopher.jones@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 years agoBaseTools: Switch to downloading the AARCH64 compiler from Arm's site
Rebecca Cran [Mon, 30 Aug 2021 05:14:50 +0000 (13:14 +0800)]
BaseTools: Switch to downloading the AARCH64 compiler from Arm's site

Linaro no longer do gcc releases - they're done by Arm now.

Update gcc_aarch64_linux_ext_dep.yaml to fetch the latest AARCH64 gcc
release (10.3-2021.07) from their site and fix LinuxGcc5ToolChain.py with the
new GCC_AARCH64_PREFIX.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Pierre Gondois <Pierre.Gondois@arm.com>
Acked-by: Bob Feng <bob.c.feng@intel.com>
2 years agoBaseTools: Switch to downloading the ARM compiler from Arm's site
Rebecca Cran [Mon, 30 Aug 2021 05:14:49 +0000 (13:14 +0800)]
BaseTools: Switch to downloading the ARM compiler from Arm's site

Linaro no longer do gcc releases - they're done by Arm now.
Update gcc_arm_linux_ext_dep.yaml to fetch the latest ARM gcc release
(10.3-2021.07) from their site and fix LinuxGcc5ToolChain.py with the
new GCC_ARM_PREFIX.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Pierre Gondois <Pierre.Gondois@arm.com>
Acked-by: Bob Feng <bob.c.feng@intel.com>
2 years agoUefiPayloadPkg: Add ".upld_info" in universal payload
Guo Dong [Fri, 24 Sep 2021 21:14:28 +0000 (14:14 -0700)]
UefiPayloadPkg: Add ".upld_info" in universal payload

V2: Use LittleEndianStructure by review comment.

From the universal scalable firmware payload requirement V0.75,
Payload must have Universal Payload Information Section ".upld_info"
So update the build tool to add this section.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Guo Dong <guo.dong@intel.com>
2 years agoUefiPayloadPkg: Use dummy constructor for PlatformHookLib
Guo Dong [Fri, 24 Sep 2021 04:56:16 +0000 (21:56 -0700)]
UefiPayloadPkg: Use dummy constructor for PlatformHookLib

The Library constructor is only used for library dependency.
So use a dummy function to make it clear instead of using an
actual function.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Guo Dong <guo.dong@intel.com>
2 years agoUefiPayloadPkg: Build a HOB from bootloader ACPI table
Guo Dong [Tue, 28 Sep 2021 16:38:53 +0000 (09:38 -0700)]
UefiPayloadPkg: Build a HOB from bootloader ACPI table

V2: Update BuildHobFromAcpi() to return a HOB pointer.

For universal UEFI payload, build a HOB from the ACPI table, so that
other modules could use this info from HOB at very early DXE phase.
This code are shared by universal payload and non universal payload.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Guo Dong <guo.dong@intel.com>
2 years agoMdePkg: Fix DEVICE_SECURITY_EVENT_DATA_HEADER version definition
yi1 li [Thu, 23 Sep 2021 01:57:08 +0000 (09:57 +0800)]
MdePkg: Fix DEVICE_SECURITY_EVENT_DATA_HEADER version definition

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3646

According to latest TCG PFP spec 1.05 revision 23,
(https://trustedcomputinggroup.org/resource/pc-client-specific
-platform-firmware-profile-specification/),
10.2.7 DEVICE_SECURITY_EVENT_DATA Structure,
the version should be 1.

Signed-off-by: yi1 li <yi1.li@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
Zhichao Gao [Thu, 9 Sep 2021 06:17:04 +0000 (14:17 +0800)]
MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590

Limit the draw box always within the screen's column and row.
Limit the string drawing within one line.
For the incompleted string the last 3 characters in one line would
be replaced with "...".

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdeModulePkg/PciBusDxe: Improve the flow of testing support attributes
xueshengfeng [Fri, 24 Sep 2021 06:30:45 +0000 (14:30 +0800)]
MdeModulePkg/PciBusDxe: Improve the flow of testing support attributes

https://bugzilla.tianocore.org/show_bug.cgi?id=3635

Currently, in order to test the supported attributes,
the PciTestSupportedAttribute() will set the command register
to 0x27 (EFI_PCI_COMMAND_IO_SPACE, EFI_PCI_COMMAND_MEMORY_SPACE,
EFI_PCI_COMMAND_BUS_MASTER, EFI_PCI_COMMAND_VGA_PALETTE_SNOOP) firstly,
and then read back to check whether these attributes are
set successfully in the device.
This will cause the other enabled bits
 (other than EFI_PCI_COMMAND_IO_SPACE,EFI_PCI_COMMAND_MEMORY_SPACE,
 EFI_PCI_COMMAND_BUS_MASTER,EFI_PCI_COMMAND_VGA_PALETTE_SNOOP)
 be cleared for a short of time
 This patch fixes this issue by keeping the origina
 enabled bits when setting 0x27.

Signed-off-by: xueshengfeng <xueshengfeng@byosoft.com.cn>
Reviewed-by: Ray <ray.ni@intel.com>
2 years agoUefiPayloadPkg: Add Macro to enable or disable some drivers.
Zhiguang Liu [Sat, 18 Sep 2021 07:10:29 +0000 (15:10 +0800)]
UefiPayloadPkg: Add Macro to enable or disable some drivers.

Add Macro to enable or disable RamDiskDxe and SioBusDxe drivers.

Cc: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
2 years agoEmbeddedPkg: Add LoadFile2 for linux initrd
Jeff Brasen [Mon, 13 Sep 2021 23:18:51 +0000 (23:18 +0000)]
EmbeddedPkg: Add LoadFile2 for linux initrd

Add support under a pcd feature for using the new interface to pass
initrd to the linux kernel instead of via device tree.
This feature is also enabled if ACPI tables are present, and will skip
locating and installation of device tree.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
2 years agoEmbeddedPkg: Install FDT if UpdateDtb is not present
Jeff Brasen [Mon, 13 Sep 2021 23:18:50 +0000 (23:18 +0000)]
EmbeddedPkg: Install FDT if UpdateDtb is not present

Currently if mAndroidBootImg->UpdateDtb is not supported on the platform
the device tree updates of the initrd are not made.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
2 years agoEmbeddedPkg: AndroidBootImgBoot error handling updates
Jeff Brasen [Mon, 13 Sep 2021 23:18:49 +0000 (23:18 +0000)]
EmbeddedPkg: AndroidBootImgBoot error handling updates

Update AndroidBootImgBoot to use a single return point
Make sure Kernel args are freed and Image is unloaded.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
2 years agoEmbeddedPkg: Remove duplicate libfdt.h include
Jeff Brasen [Mon, 13 Sep 2021 23:18:48 +0000 (23:18 +0000)]
EmbeddedPkg: Remove duplicate libfdt.h include

Remove duplicate libfdt.h include statement in AndroidBootImgLib

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
2 years agoOvmfPkg: set a default value for the WorkAreaHeader PCD
Corvin Köhne [Fri, 17 Sep 2021 05:37:24 +0000 (07:37 +0200)]
OvmfPkg: set a default value for the WorkAreaHeader PCD

SEC checks in IsSevGuest if the PCD defined WorkAreaHeader size
matches the size of the WorkAreaHeader struct definition. Set a
default value for the PCD to avoid unnecessary DSC/FDF file
changes in all OVMF DSC/FDF files.

Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoIntelFsp2WrapperPkg: Make PcdFspModeSelection dynamic
Zhang Xiaoqiang [Thu, 16 Sep 2021 03:44:47 +0000 (11:44 +0800)]
IntelFsp2WrapperPkg: Make PcdFspModeSelection dynamic

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3632

PcdFspModeSelection will be used to set FSP mode.
Make PcdFspModeSelection dynamic and set it accordingly.

Signed-off-by: Zhang Xiaoqiang <xiaoqiang.zhang@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
2 years agoSecurityPkg: Add debug log for indicating IBB verified OBB successfully
Yang, Longlong [Fri, 17 Sep 2021 02:50:55 +0000 (10:50 +0800)]
SecurityPkg: Add debug log for indicating IBB verified OBB successfully

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3615

Debug message should be added for indicating IBB is successfully verifying
the OBB.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Min M Xu <min.m.xu@intel.com>
Cc: Qi Zhang <qi1.zhang@intel.com>
Signed-off-by: Longlong Yang <longlong.yang@intel.com>
Reviewed-by: Min M Xu <min.m.xu@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2 years agoUefiCpuPkg: SecCoreNative without ResetVector
S, Ashraf Ali [Thu, 16 Sep 2021 14:26:37 +0000 (22:26 +0800)]
UefiCpuPkg: SecCoreNative without ResetVector

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3492

Currently SecCore.inf having the resetvector code under IA32. if the
user wants to use both SecCore and UefiCpuPkg ResetVector it's not
possible, since SecCore and ResetVector(VTF0.INF/ResetVector.inf)
are sharing the same GUID which is BFV. to overcome this issue we can
create the Duplicate version of the SecCore.inf as SecCoreNative.inf
which contains pure SecCore Native functionality without resetvector.
SecCoreNative.inf should have the Unique GUID so that it can be used
along with UefiCpuPkg ResetVector in there implementation.

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Harry Han <harry.han@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: Digant H Solanki <digant.h.solanki@intel.com>
Cc: Sangeetha V <sangeetha.v@intel.com>
Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
2 years agoArmPkg/ProcessorSubClassDxe: Fix the format of ProcessorId
Nhi Pham [Wed, 15 Sep 2021 13:55:32 +0000 (20:55 +0700)]
ArmPkg/ProcessorSubClassDxe: Fix the format of ProcessorId

According to SMBIOS 3.4, section 7.5.3.3 ARM64-class CPUs, if
SMCCC_ARCH_SOC_ID is supported, the first DWORD is the JEP-106 code and
the second DWORD is the SoC revision value. But in the current
implementation, they are set in reverse. This patch is to correct it.

Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Rebecca Cran <rebecca@nuviainc.com>
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
Reviewed-by: Rebecca Cran <rebecca@nuviainc.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
2 years agoUefiCpuPkg: VTF0 Linear-Address Translation to a 1-GByte Page till 512GB
Ashraf Ali S [Sat, 11 Sep 2021 11:25:51 +0000 (16:55 +0530)]
UefiCpuPkg: VTF0 Linear-Address Translation to a 1-GByte Page till 512GB

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3473

X64 Reset Vector Code can access the memory range till 4GB using the
Linear-Address Translation to a 2-MByte Page, when user wants to use
more than 4G using 2M Page it will leads to use more number of Page
table entries. using the 1-GByte Page table user can use more than
4G Memory by reducing the page table entries using 1-GByte Page,
this patch attached can access memory range till 512GByte via Linear-
Address Translation to a 1-GByte Page.

Build Tool: if the nasm is not found it will throw Build errors like
FileNotFoundError: [WinError 2]The system cannot find the file specified
run the command wil try except block to get meaningful error message

Test Result: Tested in both Simulation environment and Hardware
both works fine without any issues.

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Harry Han <harry.han@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: Sangeetha V <sangeetha.v@intel.com>
Cc: Rangasai V Chaganty <rangasai.v.chaganty@intel.com>
Cc: Sahil Dureja <sahil.dureja@intel.com>
Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
2 years agoUefiCpuPkg: Prevent from re-initializing CPU features during S3 resume
Lou, Yun [Thu, 16 Sep 2021 09:27:12 +0000 (17:27 +0800)]
UefiCpuPkg: Prevent from re-initializing CPU features during S3 resume

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3621
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3631

Current CPU feature initialization design:
During normal boot, CpuFeaturesPei module (inside FSP) initializes the
CPU features. During S3 boot, CpuFeaturesPei module does nothing, and
CpuSmm driver (in SMRAM) initializes CPU features instead.

This code change prevents CpuSmm driver from re-initializing CPU
features during S3 resume if CpuFeaturesPei module has done the same
initialization.

In addition, EDK2 contains DxeIpl PEIM that calls S3RestoreConfig2 PPI
during S3 boot and this PPI eventually calls CpuSmm driver (in SMRAM) to
initialize the CPU features, so "EDK2 + FSP" does not have the CPU
feature initialization issue during S3 boot. But "coreboot" does not
contain DxeIpl PEIM and the issue appears, unless
"PcdCpuFeaturesInitOnS3Resume" is set to TRUE.

Signed-off-by: Jason Lou <yun.lou@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
2 years agoUefiCpuPkg: Refactor initialization of CPU features during S3 resume
Lou, Yun [Thu, 16 Sep 2021 09:27:11 +0000 (17:27 +0800)]
UefiCpuPkg: Refactor initialization of CPU features during S3 resume

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3621
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3631

Refactor initialization of CPU features during S3 resume.

In addition, the macro ACPI_CPU_DATA_STRUCTURE_UPDATE is used to fix
incompatibility issue caused by ACPI_CPU_DATA structure update. It will
be removed after all the platform code uses new ACPI_CPU_DATA structure.

Signed-off-by: Jason Lou <yun.lou@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
2 years agoUefiPayloadPkg: Fix the warning when building UefiPayloadPkg with IA32+X64
Tan, Dun [Tue, 14 Sep 2021 07:39:07 +0000 (15:39 +0800)]
UefiPayloadPkg: Fix the warning when building UefiPayloadPkg with IA32+X64

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3603

Move the unspecified PCDs from .common section. to .X64 section in .dsc file.
The corresponding PCDs are not used in IA32.

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: Dun Tan <dun.tan@intel.com>
2 years agoUefiPayloadPkg: Add script to build UniversalPayload in UefiPayloadPkg
Tan, Dun [Thu, 16 Sep 2021 09:12:51 +0000 (17:12 +0800)]
UefiPayloadPkg: Add script to build UniversalPayload in UefiPayloadPkg

V1: Add script to build UniversalPayload, which can be used after edksetup rebuild
The final UPL.elf will be located at root folder of edk2

V2: Revise the ouput directory of generated files and coding style in the script

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Signed-off-by: Dun Tan <dun.tan@intel.com>
2 years agoMdeModulePkg/Core/Pei: Fix pointer size mismatch in EvacuateTempRam()
Michael Kubacki [Thu, 9 Sep 2021 03:46:01 +0000 (11:46 +0800)]
MdeModulePkg/Core/Pei: Fix pointer size mismatch in EvacuateTempRam()

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3512

In 32-bit PEI, the local variable pointers MigratedFvHeader and
RawDataFvHeader in EvacuateTempRam() will be 32-bit in size. The
pointers are currently passed to PeiServicesAllocatePages() which
expects a 64-bit output buffer of type EFI_PHYSICAL_ADDRESS.

When PeiServicesAllocatePages() writes to the buffer, the data
can overflow.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdeModulePkg/Core/Pei: Make migrated PEIM message verbose
Michael Kubacki [Thu, 9 Sep 2021 03:46:00 +0000 (11:46 +0800)]
MdeModulePkg/Core/Pei: Make migrated PEIM message verbose

Currently, the debug message that prints the name of a PEIM
being migrated is DEBUG_INFO while similar messages are
DEBUG_VERBOSE. This change updates the print level to
DEBUG_VERBOSE for consistency.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoMdeModulePkg/Core/Pei: Fix typo in function descriptions
Michael Kubacki [Thu, 9 Sep 2021 03:45:59 +0000 (11:45 +0800)]
MdeModulePkg/Core/Pei: Fix typo in function descriptions

Corrects a typo in the return value description of MigratePeim() and
EvacuateTempRam():
  "Succesfully" to "Successfully"

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoSecurityPkg: Add references to header and inf files to SecurityPkg
Stefan Berger [Mon, 13 Sep 2021 14:21:06 +0000 (22:21 +0800)]
SecurityPkg: Add references to header and inf files to SecurityPkg

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/Tcg: Make Tcg2PlatformPei buildable and fix style issues
Stefan Berger [Mon, 13 Sep 2021 14:21:04 +0000 (22:21 +0800)]
SecurityPkg/Tcg: Make Tcg2PlatformPei buildable and fix style issues

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/Tcg: Import Tcg2PlatformPei from edk2-platforms
Stefan Berger [Mon, 13 Sep 2021 14:21:03 +0000 (22:21 +0800)]
SecurityPkg/Tcg: Import Tcg2PlatformPei from edk2-platforms

Import Tcg2PlatformPei from edk2-platforms without any modifications.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg: Introduce new PCD PcdRandomizePlatformHierarchy
Stefan Berger [Mon, 13 Sep 2021 14:21:01 +0000 (22:21 +0800)]
SecurityPkg: Introduce new PCD PcdRandomizePlatformHierarchy

Introduce the new PCD
gEfiSecurityPkgTokenSpaceGuid.PcdRandomizePlatformHierarchy.
We need it for TpmPlatformHierarchyLib.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/Tcg: Make Tcg2PlatformDxe buildable and fix style issues
Stefan Berger [Mon, 13 Sep 2021 14:21:00 +0000 (22:21 +0800)]
SecurityPkg/Tcg: Make Tcg2PlatformDxe buildable and fix style issues

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecrutiyPkg/Tcg: Import Tcg2PlatformDxe from edk2-platforms
Stefan Berger [Mon, 13 Sep 2021 14:20:59 +0000 (22:20 +0800)]
SecrutiyPkg/Tcg: Import Tcg2PlatformDxe from edk2-platforms

Import Tcg2PlatformDxe from edk2-platforms without any modifications.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/TPM: Fix bugs in imported PeiDxeTpmPlatformHierarchyLib
Stefan Berger [Mon, 13 Sep 2021 14:20:58 +0000 (22:20 +0800)]
SecurityPkg/TPM: Fix bugs in imported PeiDxeTpmPlatformHierarchyLib

Fix some bugs in the original PeiDxeTpmPlatformHierarchyLib.c.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/TPM: Import PeiDxeTpmPlatformHierarchyLib.c from edk2-platforms
Stefan Berger [Mon, 13 Sep 2021 14:20:57 +0000 (22:20 +0800)]
SecurityPkg/TPM: Import PeiDxeTpmPlatformHierarchyLib.c from edk2-platforms

Import PeiDxeTpmPlatformHierarchyLib from edk2-platforms without any
modifications.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2 years agoUefiPayloadPkg: Dump hob info from gEdkiiBootManagerMenuFileGuid
duntan [Fri, 10 Sep 2021 08:01:11 +0000 (16:01 +0800)]
UefiPayloadPkg: Dump hob info from gEdkiiBootManagerMenuFileGuid

V1: Dump this hob infomation from gEdkiiBootManagerMenuFileGuid
V2: Delete the duplicated assertions
V3: Add input parameter in Comment

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Dun Tan <dun.tan@intel.com>
2 years agoUefiPayloadPkg: Fix the bug in dump guid HOB info functions
duntan [Fri, 10 Sep 2021 08:01:10 +0000 (16:01 +0800)]
UefiPayloadPkg: Fix the bug in dump guid HOB info functions

The input HobLength of PrintHandler should be data size instead of whole length of HOB

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Dun Tan <dun.tan@intel.com>
2 years agoUefiCpuPkg: ResetVector Tool additional debug prints
Ashraf Ali S [Fri, 23 Jul 2021 08:32:23 +0000 (14:02 +0530)]
UefiCpuPkg: ResetVector Tool additional debug prints

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3506

Before executing the nasm command, added print statement to know what
commands are executing.
before printing the output file need check the status of command which
is executed. if the status is 0 then only print the output file name.

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Harry Han <harry.han@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: Sangeetha V <sangeetha.v@intel.com>
Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
2 years agoUefiCpuPkg: ResetVector Tool Support for Python 3
Ashraf Ali S [Fri, 23 Jul 2021 08:25:30 +0000 (13:55 +0530)]
UefiCpuPkg: ResetVector Tool Support for Python 3

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3506

Build Scrips for Reset Vector currently based on Python 2
which is already EOL, needs to modify the build script based on
Python 3

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Harry Han <harry.han@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: Sangeetha V <sangeetha.v@intel.com>
Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
2 years agoUefiPayloadPkg: Include Network modules in UefiPayloadPkg.
Sravanthi [Thu, 9 Sep 2021 10:12:46 +0000 (18:12 +0800)]
UefiPayloadPkg: Include Network modules in UefiPayloadPkg.

Include Network modules in UefiPayloadPkg.dsc and UefiPayloadPkg.fdf

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Sravanthi <k.kavyax.sravanthi@intel.com>
2 years agoUefiPayloadPkg: Include more modules in UefiPayloadPkg.
Sravanthi [Thu, 9 Sep 2021 10:11:27 +0000 (18:11 +0800)]
UefiPayloadPkg: Include more modules in UefiPayloadPkg.

Include core modules in UefiPayloadPkg.dsc and UefiPayloadPkg.fdf

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Sravanthi <k.kavyax.sravanthi@intel.com>
2 years agoRedfishPkg: Fix various typos
Abner Chang [Tue, 7 Sep 2021 03:25:46 +0000 (11:25 +0800)]
RedfishPkg: Fix various typos

Fix various typos in comments and documentation.

Signed-off-by: Cheng Zhou <zhoucheng@phytium.com.cn>
Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
Cc: Abner Chang <abner.chang@hpe.com>
Reviewed-by: Abner Chang <abner.chang@hpe.com>
2 years agoOvmfPkg/OvmfXen: Fix build with QemuKernelLoaderFsDxe
Anthony PERARD [Mon, 6 Sep 2021 14:02:42 +0000 (15:02 +0100)]
OvmfPkg/OvmfXen: Fix build with QemuKernelLoaderFsDxe

VerifyBlob() has been added recently to QemuKernelLoaderFsDxe, also
QemuKernelLoaderFsDxe has been added recently to OvmfXen but without an
implementation of VerifyBlob().

Fix this by adding the same runes that have been added to
OvmfPkgX64.dsc.

Fixes: 9f3eda177a4b ("OvmfPkg/OvmfXen: add QemuKernelLoaderFsDxe")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
2 years agoSecurityPkg/MemoryOverwriteControl: Add missing argument to DEBUG print
Michael Kubacki [Fri, 3 Sep 2021 19:58:21 +0000 (03:58 +0800)]
SecurityPkg/MemoryOverwriteControl: Add missing argument to DEBUG print

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3605

The error message is missing the argument for the status code
print specifier.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Qi Zhang <qi1.zhang@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoMaintainers.txt: Update maintainer/reviewer roles in MdeModulePkg
Hao A Wu [Fri, 20 Aug 2021 05:36:56 +0000 (13:36 +0800)]
Maintainers.txt: Update maintainer/reviewer roles in MdeModulePkg

Remove Hao A Wu as the MdeModulePkg maintainer.
Add Liming Gao as the MdeModulePkg maintainer.
Remove Hao A Wu as the MdeModulePkg: Firmware Update modules reviewer.
Remove Hao A Wu as the MdeModulePkg: Serial modules reviewer.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Guomin Jiang <guomin.jiang@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
2 years agoMdeModulePkg: Fix typo of "memory" in RamDiskDxe debug message
Rebecca Cran [Mon, 30 Aug 2021 22:36:36 +0000 (06:36 +0800)]
MdeModulePkg: Fix typo of "memory" in RamDiskDxe debug message

Fix a typo of "memory" in a debug message in RamDiskProtocol.c.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 years agoMdeModulePkg/HiiDatabaseDxe:remove dead code block
Wenyi Xie [Thu, 26 Aug 2021 01:16:03 +0000 (09:16 +0800)]
MdeModulePkg/HiiDatabaseDxe:remove dead code block

As the if statement outside has confirmed that
BlockData->Name == NULL, so the if statement inside
is always false.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Wenyi Xie <xiewenyi2@huawei.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
2 years ago.azurepipelines: Add UefiPayloadPkg in gate-build-job.yml and CISetting.py
duntan [Fri, 20 Aug 2021 06:43:37 +0000 (14:43 +0800)]
.azurepipelines: Add UefiPayloadPkg in gate-build-job.yml and CISetting.py

Add UefiPayloadPkg in gate-build-job.yml to enable Core ci for UefiPayloadPkg.
Add UefiPayloadPkg to supported Packages in CISettings.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: DunTan <dun.tan@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoUefiPayloadPkg: Create .yaml file in UefiPayloadPkg
duntan [Fri, 20 Aug 2021 06:43:36 +0000 (14:43 +0800)]
UefiPayloadPkg: Create .yaml file in UefiPayloadPkg

Create .yaml file in UefiPayloadPkg to enable Core ci for UefiPayloadPkg

Cc: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: DunTan <dun.tan@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2 years agoIntelFsp2Pkg: Support Config File and Binary delta comparison
Loo, Tung Lun [Tue, 17 Aug 2021 07:43:12 +0000 (15:43 +0800)]
IntelFsp2Pkg: Support Config File and Binary delta comparison

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3567

This patch is to enable config editor to have a new feature that
can spell out the delta between the default configuration files'
data, such as YAML and BSF, against the data stored in the binary.
This can help users understand and track the difference when
modifications are made.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Signed-off-by: Loo Tung Lun <tung.lun.loo@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
2 years agoUefiCpuPkg: Clean up save state boundary checks and comments.
Mark Wilson [Fri, 13 Nov 2020 00:05:18 +0000 (08:05 +0800)]
UefiCpuPkg: Clean up save state boundary checks and comments.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2956

In functions ReadSaveStateRegisterByIndex and WriteSaveStateRegister:
* check width > 4 instead of >= 4 when writing upper 32 bytes.
  - This improves the code but will not affect functionality.

Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Mark Wilson <Mark.Wilson@amd.com>
2 years agoMdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
Marvin H?user [Mon, 9 Aug 2021 06:09:25 +0000 (14:09 +0800)]
MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands

The legacy codebase allowed SMM images to be registered for profiling
from DXE. Support for this has been dropped entirely, so remove the
remaining handlers.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Signed-off-by: Marvin H?user <mhaeuser@posteo.de>
2 years agoUefiPayloadPkg/UefiPayloadEntry: Fix memory corruption
Marvin H?user [Sun, 8 Aug 2021 19:39:53 +0000 (03:39 +0800)]
UefiPayloadPkg/UefiPayloadEntry: Fix memory corruption

UefiPayloadEntry's AllocatePool() applies the "sizeof" operator to
HOB index rather than the HOB header structure. This yields 4 Bytes
compared to the 8 Bytes the structure header requires. Fix the call
to allocate the required space instead.

Reviewed-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Signed-off-by: Marvin H?user <mhaeuser@posteo.de>
2 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Update mPatchCetSupported set condition
Wenxing Hou [Tue, 24 Aug 2021 08:11:11 +0000 (16:11 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Update mPatchCetSupported set condition

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3584

Function AsmCpuid should first check the value for Basic CPUID Information.
The fix is to update the mPatchCetSupported judgment statement.

Signed-off-by: Wenxing Hou <wenxing.hou@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Sheng W <w.sheng@intel.com>
Cc: Yao Jiewen <jiewen.yao@intel.com>
2 years agoUefiPayloadPkg: Fix the build error when enable Core ci for UefiPayloadPkg
duntan [Fri, 20 Aug 2021 05:04:29 +0000 (13:04 +0800)]
UefiPayloadPkg: Fix the build error when enable Core ci for UefiPayloadPkg

V1: Add quotes when using $(ARCH) in .dsc and .fdf file.
The quotes are added due to the way by which Core ci parse the .dsc file.
Add UINTN in Hob.c to fix cast from pointer to integer of different size error.
V2: Delete lines which reference ShellBinPkg.The pkg doesn't exist in edk2.

Cc: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: DunTan <dun.tan@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 years agoOvmfPkg/OvmfXen: add QemuKernelLoaderFsDxe
Lin, Gary (HPS OE-Linux) [Tue, 31 Aug 2021 01:29:48 +0000 (09:29 +0800)]
OvmfPkg/OvmfXen: add QemuKernelLoaderFsDxe

Without QemuKernelLoaderFsDxe, QemuLoadKernelImage() couldn't download
the kernel, initrd, and kernel command line from QEMU's fw_cfg.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3574
Signed-off-by: Gary Lin <gary.lin@hpe.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: Jim Fehlig <jfehlig@suse.com>
2 years agoOvmfPkg/SmmControl2Dxe: use PcdAcpiS3Enable to detect S3 support
Lin, Gary (HPS OE-Linux) [Tue, 31 Aug 2021 01:31:15 +0000 (09:31 +0800)]
OvmfPkg/SmmControl2Dxe: use PcdAcpiS3Enable to detect S3 support

To avoid the potential inconsistency between PcdAcpiS3Enable and
QemuFwCfgS3Enabled(), this commit modifies SmmControl2Dxe to detect
S3 support by PcdAcpiS3Enable as modules in MdeModulePkg do.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3573
Signed-off-by: Gary Lin <gary.lin@hpe.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Tested-by: Jim Fehlig <jfehlig@suse.com>
2 years agoOvmfPkg/PlatformBootManagerLib: use PcdAcpiS3Enable to detect S3 support
Lin, Gary (HPS OE-Linux) [Tue, 31 Aug 2021 01:31:14 +0000 (09:31 +0800)]
OvmfPkg/PlatformBootManagerLib: use PcdAcpiS3Enable to detect S3 support

To avoid the potential inconsistency between PcdAcpiS3Enable and
QemuFwCfgS3Enabled(), this commit modifies PlatformBootManagerLib to
detect S3 support by PcdAcpiS3Enable as modules in MdeModulePkg do.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3573
Signed-off-by: Gary Lin <gary.lin@hpe.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Tested-by: Jim Fehlig <jfehlig@suse.com>