40a45b5a2b
The patch "[PATCH v3 1/2] StandaloneMmPkg: Make StandaloneMmCpu driver architecture independent" (https://edk2.groups.io/g/devel/message/109178) removed ArmPkg/ArmPkg.dec from the Packages section in the INF file: StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf This change was done as part of making the StandaloneMmCpu driver architecture independent. Although this change is correct, it results in a side effect here some platforms that utilise PCDs declared in ArmPkg.dec are no longer declared. An example of this issue can be seen when building edk2-platforms/Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc $ build -a AARCH64 -t GCC -p Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc build.py... /mnt/source/edk2-platforms/Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf(23): error F001: PCD (gArmTokenSpaceGuid.PcdFdBaseAddress) used in FDF is not declared in DEC files. As seen above, removing ArmPkg.dec from the Packages section in the StandAloneMmCpu Driver Inf file triggers build failure. Although, ArmPkg.dec is included in other Library Instances, the build system does not include the declarations from .dec files defined in Library instances. The build system only includes the PCD declarations from DEC files that are specified in INF files for Modules (components). Therefore, extend the build system to include the Packages from Library Instances so that the PCD declarations from the respective package DEC files are included. This patch can be seen on https://github.com/LeviYeoReum/edk2/tree/levi/2848_dec_check_on_library Signed-off-by: levi.yun <yeoreum.yun@arm.com> Tested-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Rebecca Cran <rebecca@bsdio.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> |
||
---|---|---|
.. | ||
AmlToC | ||
AutoGen | ||
BPDG | ||
Capsule | ||
Common | ||
CommonDataClass | ||
Ecc | ||
Eot | ||
FMMT | ||
FirmwareStorageFormat | ||
GenFds | ||
GenPatchPcdTable | ||
PatchPcdValue | ||
Pkcs7Sign | ||
Rsa2048Sha256Sign | ||
Split | ||
Table | ||
TargetTool | ||
Trim | ||
UPT | ||
Workspace | ||
build | ||
tests/Split | ||
GNUmakefile | ||
Makefile | ||
README.md | ||
basetool_tiano_python_path_env.yaml | ||
sitecustomize.py |
README.md
Edk2 Basetools
This folder has traditionally held the source of Python based tools used by EDK2.
The official repo this source has moved to https://github.com/tianocore/edk2-basetools.
This folder will remain in the tree until the next stable release (expected 202102).
There is a new folder under Basetools BinPipWrappers
that uses the pip module rather than this tree for Basetools.
By adding the scope pipbuild-win
or pipbuild-unix
(depending on your host system), the SDE will use the
BinPipWrappers
instead of the regular BinWrappers
.
Why Move It?
The discussion is on the mailing list. The RFC is here: https://edk2.groups.io/g/rfc/topic/74009714#270 The benefits allow for the Basetools project to be used separately from EDK2 itself as well as offering it in a globally accessible manner. This makes it much easier to build a module using Basetools. Separating the Basetools into their own repo allows for easier CI and contribution process. Additional pros, cons, and process can be found on the mailing list.
How Do I Install It?
By default, EDK2 is tied to and tested with a specific version of the Basetools through pip-requirements.txt
.
You can simply run:
pip install -r pip-requirements.txt
This will install the required module, thought we strongly suggest setting up a virtual environment. Additionally, you can also install a local clone of the Basetools as well as a specific git commit.