Abner Chang
f60d5ca97f
BaseTools: BaseTools changes for RISC-V platform.
...
Python code changes for building EDK2 RISC-V platform.
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Co-authored-by: Gilbert Chen <gilbert.chen@hpe.com >
Co-authored-by: Daniel Helmut Schaefer <daniel.schaefer@hpe.com >
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org >
Reviewed-by: Bob Feng <bob.c.feng@intel.com >
Cc: Bob Feng <bob.c.feng@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Leif Lindholm <leif.lindholm@linaro.org >
Cc: Gilbert Chen <gilbert.chen@hpe.com >
2020-04-29 02:52:08 +00:00
Abner Chang
178938b2b9
BaseTools: BaseTools changes for RISC-V platform.
...
Tools definitions template file changes for building EDK2 RISC-V platform.
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Co-authored-by: Gilbert Chen <gilbert.chen@hpe.com >
Co-authored-by: Daniel Helmut Schaefer <daniel.schaefer@hpe.com >
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org >
Reviewed-by: Bob Feng <bob.c.feng@intel.com >
Cc: Bob Feng <bob.c.feng@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Leif Lindholm <leif.lindholm@linaro.org >
Cc: Gilbert Chen <gilbert.chen@hpe.com >
2020-04-29 02:52:08 +00:00
Abner Chang
ad1db975c0
BaseTools: BaseTools changes for RISC-V platform.
...
C code changes for building EDK2 RISC-V platform.
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Co-authored-by: Gilbert Chen <gilbert.chen@hpe.com >
Co-authored-by: Daniel Helmut Schaefer <daniel.schaefer@hpe.com >
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org >
Reviewed-by: Bob Feng <bob.c.feng@intel.com >
Cc: Bob Feng <bob.c.feng@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Leif Lindholm <leif.lindholm@linaro.org >
Cc: Gilbert Chen <gilbert.chen@hpe.com >
2020-04-29 02:52:08 +00:00
Laszlo Ersek
cdc3fa5418
ArmVirtPkg: control PXEv4 / PXEv6 boot support from the QEMU command line
...
Port the DSC file changes from the similarly titled OvmfPkg patch in this
series to ArmVirtPkg.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-8-lersek@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
270fece684
ArmVirtPkg/QemuFwCfgLib: allow UEFI_DRIVER modules
...
We don't distribute UEFI_DRIVER modules stand-alone that were built as
part of an ArmVirtQemu* platform. ArmVirtQemu* UEFI_DRIVERs are allowed to
inherit platform dependencies.
By enabling UEFI_DRIVERs to consume QemuFwCfgLib, we can hook fw_cfg-based
NULL class libraries into UEFI drivers, e.g. in order to set dynamic PCDs.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-7-lersek@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
b8b890ca0a
OvmfPkg: control PXEv4 / PXEv6 boot support from the QEMU command line
...
Add a minimal, NULL class library called "PxeBcPcdProducerLib" for setting
the "PcdIPv4PXESupport" and "PcdIPv6PXESupport" PCDs of NetworkPkg, from
fw_cfg.
These PCDs control whether the UefiPxeBcDxe driver supports PXEv4 / PXEv6
boot. If a PXE version is disabled, the corresponding LoadFile protocol
instance is not produced by UefiPxeBcDxe, and so
EfiBootManagerRefreshAllBootOption() in UefiBootManagerLib does not
generate corresponding *new* boot options either. (Existent boot options
are not deleted.)
Hook the library into the UefiPxeBcDxe driver. (The driver is already
included from "NetworkComponents.dsc.inc", but we can list it again in the
DSC file, for providing <LibraryClasses> overrides.)
In OVMF, the PCDs could be set in PlatformPei too, but ArmVirtQemu does
not have fw_cfg access in the PEI phase. Hence a NULL class library that
can be linked into UefiPxeBcDxe.
When listing the PCDs under [PcdsDynamicDefault], stick with the DEC
default values.
QEMU switches:
-fw_cfg name=opt/org.tianocore/IPv4PXESupport,string=[yn]
-fw_cfg name=opt/org.tianocore/IPv6PXESupport,string=[yn]
The "opt/org.tianocore" prefix follows the "opt/RFQDN/" recommendation
from QEMU's "docs/specs/fw_cfg.txt".
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-6-lersek@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
2377733248
OvmfPkg/QemuFwCfgDxeLib: allow UEFI_DRIVER modules
...
We don't distribute UEFI_DRIVER modules stand-alone that were built as
part of an OVMF platform. OVMF's UEFI_DRIVERs are allowed to inherit
platform dependencies.
By enabling UEFI_DRIVERs to consume QemuFwCfgDxeLib, we can hook
fw_cfg-based NULL class libraries into UEFI drivers, e.g. in order to set
dynamic PCDs.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-5-lersek@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
b3c1bc1cfa
OvmfPkg/PlatformPei: use QemuFwCfgParseBool in UPDATE_BOOLEAN_PCD_FROM_...
...
The UPDATE_BOOLEAN_PCD_FROM_FW_CFG() macro currently calls the
module-private helper function GetNamedFwCfgBoolean(). Replace the latter
with QemuFwCfgParseBool() from QemuFwCfgSimpleParserLib.
This change is compatible with valid strings accepted previously.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-4-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
98800cce65
OvmfPkg/PlatformPei: parse "X-PciMmio64Mb" with QemuFwCfgSimpleParserLib
...
Replace the
- QemuFwCfgFindFile(),
- QemuFwCfgSelectItem(),
- QemuFwCfgReadBytes(),
- AsciiStrDecimalToUint64()
sequence in the GetFirstNonAddress() function with a call to
QemuFwCfgSimpleParserLib.
This change is compatible with valid strings accepted previously.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-3-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
2020-04-28 22:37:35 +00:00
Laszlo Ersek
611c7f1101
OvmfPkg: introduce QemuFwCfgSimpleParserLib
...
We already parse some boolean and integer values from named fw_cfg files
(usually into PCDs), and we're going to cover more. Add a dedicated
library for centralizing the parsing logic.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Per Sundstrom <per_sundstrom@yahoo.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200424075353.8489-2-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
2020-04-28 22:37:35 +00:00
Sean Brogan
64ab457d1f
ReadMe: Convert to rst and add Platform CI Status
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Convert workspace root Readme.md to reStructuredText
ReStructuredText supports building tables with syntax that is easier
to read in plain-text.
Rename as ReadMe.rst.
Add Platform CI Status Tables
Cc: Andrew Fish <afish@apple.com >
Cc: Laszlo Ersek <lersek@redhat.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: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
Reviewed-by: Leif Lindholm <leif@nuviainc.com >
2020-04-28 21:47:20 +00:00
Anthony PERARD
3a402f9611
OvmfPkg/OvmfXen: Introduce DEBUG_ON_HYPERVISOR_CONSOLE build flag
...
Introduce DEBUG_ON_HYPERVISOR_CONSOLE build flag to enable logging
debug output to the Xen console.
This will work with both Xen HVM guest and Xen PVH guest whereas the
default PlatformDebugLibIoPort works only in HVM when QEMU is present.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Message-Id: <20200423095358.2518197-6-anthony.perard@citrix.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-28 21:12:01 +00:00
Anthony PERARD
a91443885d
OvmfPkg/PlatformDebugLibIoPort: Introduce a Nocheck variant
...
Introduce PlatformRomDebugLibIoPortNocheck which doesn't try to detect
the debug IO port. Instead, debug logs are always written to the IO port.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Message-Id: <20200423095358.2518197-5-anthony.perard@citrix.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-28 21:12:01 +00:00
Anthony PERARD
52f012129a
OvmfPkg/PlatformDebugLibIoPort: factor out debug port detection
...
Factor out debug port detection in PlatformDebugLibIoPort.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Message-Id: <20200423095358.2518197-4-anthony.perard@citrix.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-28 21:12:01 +00:00
Anthony PERARD
61ac4fc70d
OvmfPkg/PlatformDebugLibIoPort: Reword QEMU to hypervisor
...
We are going to reuse PlatformDebugLibIoPort to use debug IO port from
hypervisors that aren't QEMU, so reword "QEMU" to "hypervisor" in the
descriptions.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Message-Id: <20200423095358.2518197-3-anthony.perard@citrix.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-28 21:12:01 +00:00
Anthony PERARD
d5d60a4331
OvmfPkg/OvmfXen: Remove DEBUG_ON_SERIAL_PORT
...
Remove support for DEBUG_ON_SERIAL_PORT because OvmfXen can't be build
with it due to a circular dependency:
DebugLib : BaseDebugLibSerialPort ->
SerialPortLib : XenConsoleSerialPortLib ->
XenHypercallLib : XenHypercallLib ->
DebugLib
Also, if that dependency is fixed, I think it would be harder to find
which console the debug is sent to when running an HVM guest. The xen
console isn't the serial console used by default. Furthermore,
XenHypercallLib isn't initialised early enough, so we would loose
debug output from the SEC phase and early PEI phase.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200423095358.2518197-2-anthony.perard@citrix.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2020-04-28 21:12:01 +00:00
Sean Brogan
099dfbb29d
.azurepipelines: Update Core CI build matrix to include platforms
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Add ArmVirtPkg to Core CI matrix
Add EmulatorPkg to Core CI matrix
Add OvmfPkg to Core CI matrix
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 <liming.gao@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-28 18:07:59 +00:00
Sean Brogan
0358c0bfc1
.pytool: Update CI Settings to support Emulator, ArmVirt, and Ovmf packages
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Update pytools configuration to enable EmulatorPkg, ArmVirtPkg,
and OvmfPkg.
Update documentation for the status of those packages.
Remove future work items that are now complete.
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 <liming.gao@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-28 18:07:59 +00:00
Sean Brogan
6cdf647b5f
OvmfPkg: Add Platform CI and configuration for Core CI
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Add new Azure Pipeline definitions to build and run OvmfPkg with:
* Ubuntu GCC5
* Windows VS2019
Add PyTool based build of OvmfPkg
Add extdep for managing the iasl dependency
Add OvmfPkg.ci.yaml for Core CI
Add ReadMe.md for details and instructions
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Acked-by: Laszlo Ersek <lersek@redhat.com >
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-28 18:07:59 +00:00
Sean Brogan
951a03536c
EmulatorPkg: Add Platform CI and configuration for Core CI
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Add new Azure Pipeline definitions to build and run EmulatorPkg with:
* Ubuntu GCC5
* Windows VS2019
Add PyTool based build of EmulatorPkg
Add EmulatorPkg.ci.yaml for Core CI
Add ReadMe.md for details and instructions
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Andrew Fish <afish@apple.com >
Cc: Ray Ni <ray.ni@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Acked-by: Ray Ni <ray.ni@intel.com >
2020-04-28 18:07:59 +00:00
Sean Brogan
0c7f189e60
ArmVirtPkg: Add Platform CI and configuration for Core CI
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Add new Azure Pipeline definitions to build and run ArmVirtPkg with:
* Ubuntu GCC5
Add PyTool based build of ArmVirtPkg
Add extdep for managing the iasl dependency
Add ArmVirtPkg.ci.yaml for Core CI
Add ReadMe.md for details and instructions
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Acked-by: Laszlo Ersek <lersek@redhat.com >
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-28 18:07:59 +00:00
Sean Brogan
4fcfd089aa
.azurepipelines: Add Platform CI template
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2570
Add template for Platform CI steps for a Pytools based build.
Add README to describe the template and how to use it.
Add helpful information for working with azurepipelines, templates, and
lessons learned.
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 <liming.gao@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-28 18:07:59 +00:00
Shenglei Zhang
0f1946b662
NetworkPkg/IScsiDxe: Enhance the check for array boundary
...
Array 'TargetUrl' of size 255 may use index value(s) 255 and 256.
So enhance the boundary check to ensure the index is valid.
Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com >
Cc: Jiaxin Wu <jiaxin.wu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com >
2020-04-26 06:20:32 +00:00
kuqin
c5c5c980db
UnitTestFrameworkPkg/UnitTestLib: Correct dereferred pointer
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2609
SavedState is not sticky, copied pointer update will not change source
pointer
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-26 01:25:14 +00:00
Guomin Jiang
63d425002a
UnitTestFrameworkPkg/PersistenceLib: Correct the allocated size.
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2608
According to logic and the practice, it is need to allocate ascii length
by 2 for unicode string.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com >
2020-04-26 01:25:14 +00:00
Hao A Wu
d5339c04d7
UefiCpuPkg/MpInitLib: Add missing explicit PcdLib dependency
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2632
Both PEI and DXE instances of the MpInitLib are using PcdLib APIs, but
none of them list the dependency of the PcdLib in INF & header files.
This commit will explicitly add such dependency in .H and .INF files.
Test done:
Library level build pass for VS2015x86 tool chain
Cc: Eric Dong <eric.dong@intel.com >
Signed-off-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-23 08:48:54 +00:00
Fan, Zhiju
3a3a3af4a2
BaseTools:Add the spare space FV image size checker
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2654
If FV is placed in FD region, its FV image size is fixed.
When FV image size exceeds it, it will trig the build break.
To alert the developer to adjust FV image size earlier,
I request to add new checker for the the spare FV space.
When the spare FV space is less than the specified threshold,
build tool will report the error.
This checker is the optional.
It can be enabled by -D FV_SPARE_SPACE_THRESHOLD=10000.
Macro is the value of the spare space threshold size.
It can be decimal or hex format. If it is enabled,
BaseTools will check every FV with the fixed size.
If FV doesn't meet with the size requirement,
Build tool will report error message to say there is no
enough spare space.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Bob Feng <bob.c.feng@intel.com >
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com >
Reviewed-by: Bob Feng <bob.c.feng@intel.com >
2020-04-23 01:29:34 +00:00
Laszlo Ersek
93f6df5f3b
OvmfPkg/ResetSystemLib: introduce the DxeResetSystemLib instance
...
The BaseResetSystemLib instance is not suitable for OS runtime, because
its ResetShutdown() implementation calls PciRead16 (OVMF_HOSTBRIDGE_DID).
On q35, this boils down to a memory-mapped config space access -- but we
never ask the OS to map MMCONFIG for runtime.
There are at least three alternatives to approach this:
(1) Investigate "MdePkg/Library/DxeRuntimePciExpressLib", which offers
some kind of runtime mapping for MMCONFIG.
(2) Consume PciCf8Lib directly, rather than PciLib, in ResetSystemLib.
Then we'll read OVMF_HOSTBRIDGE_DID from the config space with IO port
accesses on q35 too, not just on i440fx. IO ports don't depend on page
tables.
(3) In the lib constructor, cache "mAcpiPmBaseAddress" based on
"PcdOvmfHostBridgePciDevId" (which is set by PlatformPei). Then the
host bridge type will be known at runtime without PCI config space
accesses.
This patch follows approach (3), in order to mirror AcpiTimerLib.
Notes:
* This patch is best viewed with "git show --find-copies-harder -C43".
* PCDs are not usable in the DXE_CORE, as the PCD PPI is gone, and the PCD
protocol is not available yet. (The DXE_CORE does consume ResetSystemLib
in practice, when OVMF is built with -D SOURCE_DEBUG_ENABLE.)
Cc: Anthony Perard <anthony.perard@citrix.com >
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Julien Grall <julien@xen.org >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-7-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
[lersek@redhat.com: move third Note (with repro info) to BZ comment]
2020-04-22 19:42:32 +00:00
Laszlo Ersek
d70cdcf0b5
OvmfPkg/ResetSystemLib: rename to BaseResetSystemLib
...
In preparation for introducing DxeResetSystemLib, rename the current
(only) ResetSystemLib instance to BaseResetSystemLib.
In the DSC files, keep the ResetSystemLib resolution in the same
[LibraryClasses] section, but move it near the TimerLib resolution, as the
differences between the ResetSystemLib instances will mostly follow those
seen under OvmfPkg/Library/AcpiTimerLib.
(While OvmfXen does not use "OvmfPkg/Library/AcpiTimerLib", perform the
same movement there too, for keeping future DSC diffing simple.)
Cc: Anthony Perard <anthony.perard@citrix.com >
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Julien Grall <julien@xen.org >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-6-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2020-04-22 19:42:32 +00:00
Laszlo Ersek
b6d542e927
OvmfPkg/ResetSystemLib: factor out ResetShutdown()
...
Move the ResetShutdown() definition to its own file. This will help us
introduce:
- a new library instance that is not broken in runtime modules (the
current library instance is broken in runtime modules),
- another new library instance for bhyve support.
While at it, squash AcpiPmControl() into ResetShutdown(), open-coding
SuspendType=0. This is justified because we've had no other callers for
AcpiPmControl() since commit 2d9950a2bf
("OvmfPkg: remove
EnterS3WithImmediateWake () from ResetSystemLib", 2020-01-10).
Tested with the "reset -s" UEFI shell command, on both i440fx and q35.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-5-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2020-04-22 19:42:32 +00:00
Laszlo Ersek
92958abf7a
OvmfPkg/ResetSystemLib: improve coding style in ResetSystem()
...
The cases under ResetSystem() currently mix "break"s with "return"s for no
good reason. Use "break" consistently.
(The inconsistency was introduced in commit 84c0b80de7
,
"OvmfPkg/ResetSystemLib: Add new API ResetSystem", 2019-04-28.)
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-4-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2020-04-22 19:42:32 +00:00
Laszlo Ersek
002f38a44a
OvmfPkg/ResetSystemLib: clean up library dependencies
...
Annotate the #include directives with the interfaces that this lib
instance needs from the included lib class headers. This will help us keep
the #include set minimal, when we move code around later.
While at it, synchronize the [LibraryClasses] section with the #include
directives -- list BaseLib.
Also #include the ResetSystemLib class header, which declares the
interfaces that this lib instance implements.
This forces us to spell out the "MdeModulePkg.dec" dependency too, under
[Packages].
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-3-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2020-04-22 19:42:32 +00:00
Laszlo Ersek
b36fbd3645
OvmfPkg/ResetSystemLib: wrap long lines
...
Wrap the source code and the INF file at 79 characters.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jordan Justen <jordan.l.justen@intel.com >
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Rebecca Cran <rebecca@bsdio.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2675
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200417153751.7110-2-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2020-04-22 19:42:32 +00:00
Guomin Jiang
c6a60cf4b9
MdePkg/Security2: Mark the File parameter as OPTIONAL.
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
According to the description, the File is OPTIONAL and can be NULL.
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2020-04-22 01:55:34 +00:00
Guomin Jiang
1e823422fb
MdeModulePkg/SecurityStubDxe: Mark the File parameter as OPTIONAL
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
According to the description, the File is optional and can be NULL
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
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: Liming Gao <liming.gao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-04-22 01:55:34 +00:00
Guomin Jiang
bfd42b2075
MdeModulePkg/SecurityManagementLib: Mark the File parameter as OPTIONAL
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
According to the File description, the File is optional and can be NULL.
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
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: Liming Gao <liming.gao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-04-22 01:55:34 +00:00
Guomin Jiang
1854eee1b4
SecurityPkg/DxeImageVerificationLib: Mark the File parameter as OPTIONAL
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
According to the File description, the File is optional and can be NULL.
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-04-22 01:55:34 +00:00
Guomin Jiang
c14f034a1a
SecurityPkg/DxeImageAuth: Mark the File parameter as OPTIONAL
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
According to the File description, The File is optional and can be NULL.
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-04-22 01:55:34 +00:00
Guomin Jiang
1755932f89
SecurityPkg/TPM: measure UEFI images without associated device paths again
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2652
DxeTpm2MeasureBootHandler() and DxeTpmMeasureBootHandler() functions may
receive a FileBuffer argument that is not associated with any particular
device path (e.g., because the UEFI image has not been loaded from any
particular device path).
Therefore rejecting (File==NULL) at the top of the function is invalid.
Fixes: 4b026f0d5a
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-04-22 01:55:34 +00:00
Samer El-Haj-Mahmoud
b447a20bdf
ArmVirtPkg/ArmVirtQemu: Revert "limit ACPI support to v5.0 and higher"
...
This reverts commit e069278905
.
The default value for PcdAcpiExposedTableVersions is now set to 0x20
for Aarch64 systems. Setting this PCD in ArmVirtPkg/ArmVirtQemu.dsc
is no longer necessary.
Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com >
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-04-21 17:06:06 +00:00
Samer El-Haj-Mahmoud
40b9ca6beb
MdeModulePkg: PcdAcpiExposedTableVersions default for Arm64 platforms
...
Set the default value of PcdAcpiExposedTableVersions for Aarch64
platforms to 0x20. Previously, the default was set to 0x3E for all
platforms. The new value removes ACPI 1.0b compatability, which forces
the use of XSDT 64-bit pointer, as required by Arm SBBR specification.
This also resolves an error reported by acpiview command, as seen on
the RPi (see https://github.com/pftf/RPi4/issues/25 ).
Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com >
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Dandan Bi <dandan.bi@intel.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
Acked-by: Hao A Wu <hao.a.wu@intel.com >
2020-04-21 17:06:06 +00:00
Michael Kubacki
6e3c834ae4
SecurityPkg Tcg: Use SW SMI IO port PCD in Tpm.asl
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2416
Replaces the hardcoded value of 0xB2 with a PCD for the SMI port access
operation region. This allows platforms to customize the IO port value if
necessary.
Cc: Kun Qin <Kun.Qin@microsoft.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
cda6f9455c
SecurityPkg: Add PCD for SW SMI Command port
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2416
Adds a PCD to SecurityPkg used to specify the SW SMI Command port. This
value may vary across platforms and is current hardcoded to 0xB2 in
package code.
Cc: Kun Qin <Kun.Qin@microsoft.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
3571e1360e
SecurityPkg/HddPassword: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in
HddPasswordDxe.h with the common definition in BaseLib.h.
Cc: Chao Zhang <chao.b.zhang@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
9c463f6f59
MdeModulePkg/RamDiskDxe: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in RamDiskImpl.h
with the common definition in BaseLib.h.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
d189a3f9b6
MdeModulePkg/UfsPassThruDxe: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in UfsPassThru.h
with the common definition in BaseLib.h.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
dc528558c9
MdeModulePkg/XhciDxe: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in Xhci.h
with the common definition in BaseLib.h.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
309809455a
MdeModulePkg/EhciPei: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in EhcPeim.h
with the common definition in BaseLib.h.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
e33d3e7f56
MdeModulePkg/EhciDxe: Use BaseLib linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
Replaces usage of the linked list iteration macros defined in Ehci.h
with the common definition in BaseLib.h.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Hao A Wu <hao.a.wu@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00
Michael Kubacki
3b5a58c5f0
MdePkg/BaseLib: Add linked list iteration macros
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1959
The macros EFI_LIST_FOR_EACH and EFI_LIST_FOR_EACH_SAFE have been
duplicated across several drivers. These macros have proven useful and
established a commonly used pattern for linked list iteration.
This change defines the macros in BaseLib.h alongside other generic linked
list macros and functions.
Cc: Dandan Bi <dandan.bi@intel.com >
Cc: Hao A Wu <hao.a.wu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com >
2020-04-21 02:20:51 +00:00