]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiPayloadPkg: UniversalPayloadBuild.py to support --pcd feature
authorGua Guo <gua.guo@intel.com>
Tue, 21 Jun 2022 03:52:05 +0000 (11:52 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 21 Jun 2022 04:11:13 +0000 (04:11 +0000)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3955

Currently, UPL freezed all PCD and only known UPL hob can hook DXE
Drivers behavior, add optional feature on UniversalPayloadBuild.py to
have another way to hook PCD value.

Cc: Guo Dong <guo.dong@intel.com>
Reviewed-by: : Ray Ni <ray.ni@intel.com>
Signed-off-by: Gua Guo <gua.guo@intel.com>
UefiPayloadPkg/UniversalPayloadBuild.py

index 089d631b516a32103a87bee6edecac1088a03910..c71526e0a652bee7c0d8442da5df761cce184c57 100644 (file)
@@ -82,6 +82,11 @@ def BuildUniversalPayload(Args, MacroList):
         print("- Failed - Please check if LLVM is installed or if CLANG_BIN is set correctly")\r
         sys.exit(1)\r
 \r
+    Pcds = ""\r
+    if (Args.pcd != None):\r
+        for PcdItem in Args.pcd:\r
+            Pcds += " --pcd {}".format (PcdItem)\r
+\r
     Defines = ""\r
     for key in MacroList:\r
         Defines +=" -D {0}={1}".format(key, MacroList[key])\r
@@ -90,12 +95,14 @@ def BuildUniversalPayload(Args, MacroList):
     # Building DXE core and DXE drivers as DXEFV.\r
     #\r
     BuildPayload = f"build -p {DscPath} -b {BuildTarget} -a X64 -t {ToolChain} -y {PayloadReportPath} {Quiet}"\r
+    BuildPayload += Pcds\r
     BuildPayload += Defines\r
     RunCommand(BuildPayload)\r
     #\r
     # Building Universal Payload entry.\r
     #\r
     BuildModule = f"build -p {DscPath} -b {BuildTarget} -a {BuildArch} -m {EntryModuleInf} -t {ElfToolChain} -y {ModuleReportPath} {Quiet}"\r
+    BuildModule += Pcds\r
     BuildModule += Defines\r
     RunCommand(BuildModule)\r
 \r
@@ -128,6 +135,7 @@ def main():
     parser.add_argument("-D", "--Macro", action="append", default=["UNIVERSAL_PAYLOAD=TRUE"])\r
     parser.add_argument('-i', '--ImageId', type=str, help='Specify payload ID (16 bytes maximal).', default ='UEFI')\r
     parser.add_argument('-q', '--Quiet', action='store_true', help='Disable all build messages except FATAL ERRORS.')\r
+    parser.add_argument("-p", "--pcd", action="append")\r
     MacroList = {}\r
     args = parser.parse_args()\r
     if args.Macro is not None:\r