mirror of
https://github.com/tianocore/edk2.git
synced 2025-08-26 04:33:51 +00:00
UefiPayloadPkg: Add AARCH64 support
Add basic support for FIT image on the AARCH64 architecture, reuse exsitting DSC and FDF files for IA32, X64 and AARCH64 architectures. Introduce new PCD: PcdUseUniversalPayloadSerialPort to indicate which serial port module is used due to some serial port parameters are fixed for ARM SoC and Platform. Please use following command to build AARCH64 UPL FIT image: " export GCC5_AARCH64_PREFIX=aarch64-linux-gnu- python UefiPayloadPkg/UniversalPayloadBuild.py -a AARCH64 -t GCC5 -b DEBUG --Fit " Signed-off-by: Amos Bu <amos.bu@newfw.com> Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
This commit is contained in:
parent
9757ffaa38
commit
f0a2015373
@ -39,6 +39,7 @@
|
||||
[Guids]
|
||||
gUefiAcpiBoardInfoGuid
|
||||
gUplPciSegmentInfoHobGuid
|
||||
gUniversalPayloadPciRootBridgeInfoGuid
|
||||
|
||||
[Pcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration
|
||||
|
@ -89,11 +89,15 @@ PlatformHookSerialPortInitialize (
|
||||
return Status;
|
||||
}
|
||||
|
||||
#if FixedPcdGetBool (PcdUseUniversalPayloadSerialPort) == 1
|
||||
|
||||
Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo->BaudRate);
|
||||
if (RETURN_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return RETURN_SUCCESS;
|
||||
}
|
||||
|
||||
|
68
UefiPayloadPkg/UefiPayloadEntry/AArch64/DxeHandoff.c
Normal file
68
UefiPayloadPkg/UefiPayloadEntry/AArch64/DxeHandoff.c
Normal file
@ -0,0 +1,68 @@
|
||||
/** @file
|
||||
Generic version of arch-specific functionality for DxeLoad.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright 2024 Google LLC
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/HobLib.h>
|
||||
|
||||
#include "UefiPayloadEntry.h"
|
||||
|
||||
#define STACK_SIZE 0x20000
|
||||
|
||||
/**
|
||||
Transfers control to DxeCore.
|
||||
|
||||
This function performs a CPU architecture specific operations to execute
|
||||
the entry point of DxeCore with the parameters of HobList.
|
||||
It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase.
|
||||
|
||||
@param DxeCoreEntryPoint The entry point of DxeCore.
|
||||
@param HobList The start of HobList passed to DxeCore.
|
||||
|
||||
**/
|
||||
VOID
|
||||
HandOffToDxeCore (
|
||||
IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint,
|
||||
IN EFI_PEI_HOB_POINTERS HobList
|
||||
)
|
||||
{
|
||||
VOID *BaseOfStack;
|
||||
VOID *TopOfStack;
|
||||
|
||||
//
|
||||
// Allocate 128KB for the Stack
|
||||
//
|
||||
BaseOfStack = AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE));
|
||||
ASSERT (BaseOfStack != NULL);
|
||||
|
||||
//
|
||||
// Compute the top of the stack we were allocated. Pre-allocate a UINTN
|
||||
// for safety.
|
||||
//
|
||||
TopOfStack = (VOID *)((UINTN)BaseOfStack + EFI_SIZE_TO_PAGES (STACK_SIZE) * EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT);
|
||||
TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);
|
||||
|
||||
//
|
||||
// Update the contents of BSP stack HOB to reflect the real stack info passed to DxeCore.
|
||||
//
|
||||
UpdateStackHob ((EFI_PHYSICAL_ADDRESS)(UINTN)BaseOfStack, STACK_SIZE);
|
||||
|
||||
//
|
||||
// Transfer the control to the entry point of DxeCore.
|
||||
//
|
||||
SwitchStack (
|
||||
(SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint,
|
||||
HobList.Raw,
|
||||
NULL,
|
||||
TopOfStack
|
||||
);
|
||||
}
|
26
UefiPayloadPkg/UefiPayloadEntry/AArch64/DxeLoadFuncFit.c
Normal file
26
UefiPayloadPkg/UefiPayloadEntry/AArch64/DxeLoadFuncFit.c
Normal file
@ -0,0 +1,26 @@
|
||||
/** @file
|
||||
aarch64-specifc functionality for Module Entry Point.
|
||||
|
||||
Copyright 2024 Google LLC
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#include "UefiPayloadEntry.h"
|
||||
|
||||
/**
|
||||
Entry point to the C language phase of UEFI payload.
|
||||
@param[in] FdtBaseAddr Pointer to the FDT
|
||||
@param[in] AdditionalPara Not used yet
|
||||
@retval It will not return if SUCCESS, and return error
|
||||
when passing bootloader parameter.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
_ModuleEntryPoint (
|
||||
IN UINTN FdtBaseAddr,
|
||||
IN UINTN AddtionalPara
|
||||
)
|
||||
{
|
||||
return FitUplEntryPoint (FdtBaseAddr);
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
# This is the first module for UEFI payload.
|
||||
#
|
||||
# Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright 2024 Google LLC
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
@ -17,7 +18,7 @@
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64
|
||||
# VALID_ARCHITECTURES = IA32 X64 AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
@ -42,6 +43,10 @@
|
||||
RiscV64/DxeLoadFunc.c
|
||||
RiscV64/DxeLoadFuncFit.c
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/DxeHandoff.c
|
||||
AArch64/DxeLoadFuncFit.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
@ -87,7 +92,7 @@
|
||||
[FeaturePcd.X64]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUMES
|
||||
|
||||
[Pcd.IA32,Pcd.X64,Pcd.RISCV64]
|
||||
[Pcd.IA32,Pcd.X64,Pcd.RISCV64,Pcd.AARCH64]
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
||||
|
@ -271,7 +271,9 @@ PrintMemoryTypeInfoGuidHob (
|
||||
//
|
||||
GUID_HOB_PRINT_HANDLE GuidHobPrintHandleTable[] = {
|
||||
{ &gUniversalPayloadAcpiTableGuid, PrintAcpiGuidHob, "gUniversalPayloadAcpiTableGuid(ACPI table Guid)" },
|
||||
#if FixedPcdGetBool (PcdUseUniversalPayloadSerialPort) == 1
|
||||
{ &gUniversalPayloadSerialPortInfoGuid, PrintSerialGuidHob, "gUniversalPayloadSerialPortInfoGuid(Serial Port Info)" },
|
||||
#endif
|
||||
{ &gUniversalPayloadSmbios3TableGuid, PrintSmbios3GuidHob, "gUniversalPayloadSmbios3TableGuid(SmBios Guid)" },
|
||||
{ &gUniversalPayloadSmbiosTableGuid, PrintSmbiosTablGuidHob, "gUniversalPayloadSmbiosTableGuid(SmBios Guid)" },
|
||||
{ &gUefiAcpiBoardInfoGuid, PrintAcpiBoardInfoGuidHob, "gUefiAcpiBoardInfoGuid(Acpi Guid)" },
|
||||
|
@ -274,4 +274,10 @@ UplEntryPoint (
|
||||
IN UINTN BootloaderParameter
|
||||
);
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
InitializeFloatingPointUnits (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@ -18,7 +18,7 @@
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64
|
||||
# VALID_ARCHITECTURES = IA32 X64 AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
@ -38,6 +38,10 @@
|
||||
X64/VirtualMemory.c
|
||||
X64/DxeLoadFunc.c
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/DxeHandoff.c
|
||||
AArch64/DxeLoadFuncFit.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
@ -75,7 +79,7 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUMES
|
||||
|
||||
|
||||
[Pcd.IA32,Pcd.X64]
|
||||
[Pcd.IA32,Pcd.X64,Pcd.AARCH64]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask ## CONSUMES
|
||||
|
@ -15,7 +15,7 @@
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64
|
||||
# VALID_ARCHITECTURES = IA32 X64 AARCH64
|
||||
#
|
||||
[Sources]
|
||||
UniversalPayloadEntry.c
|
||||
@ -32,6 +32,9 @@
|
||||
X64/VirtualMemory.h
|
||||
X64/VirtualMemory.c
|
||||
X64/DxeLoadFunc.c
|
||||
[Sources.AARCH64]
|
||||
AArch64/DxeHandoff.c
|
||||
AArch64/DxeLoadFuncFit.c
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
@ -69,7 +72,7 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
|
||||
[FeaturePcd.X64]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUMES
|
||||
[Pcd.IA32,Pcd.X64]
|
||||
[Pcd.IA32,Pcd.X64,Pcd.AARCH64]
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
||||
|
@ -103,3 +103,8 @@ gUefiPayloadPkgTokenSpaceGuid.PcdPciReservedPMemAbove4GBLimit|0x0000000000000000
|
||||
|
||||
gUefiPayloadPkgTokenSpaceGuid.SizeOfIoSpace|0|UINT8|0x0000002B
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdFDTPageSize|8|UINT8|0x0000002C
|
||||
|
||||
## Indicates if Universal Payload Serial Port feature is used
|
||||
#- PcdUseUniversalPayloadSerialPort is TRUE, Serial Port parameters will be updated
|
||||
#- PcdUseUniversalPayloadSerialPort is FALSE, Serial Port parameters are fixed
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdUseUniversalPayloadSerialPort|TRUE|BOOLEAN|0x0000002D
|
||||
|
@ -5,6 +5,7 @@
|
||||
#
|
||||
# Copyright (c) 2014 - 2023, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Copyright 2024 Google LLC
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
@ -19,7 +20,7 @@
|
||||
PLATFORM_GUID = F71608AB-D63D-4491-B744-A99998C8CD96
|
||||
PLATFORM_VERSION = 0.1
|
||||
DSC_SPECIFICATION = 0x00010005
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64|AARCH64
|
||||
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
||||
SKUID_IDENTIFIER = DEFAULT
|
||||
OUTPUT_DIRECTORY = Build/UefiPayloadPkg$(BUILD_ARCH)
|
||||
@ -167,6 +168,9 @@
|
||||
MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
|
||||
!endif
|
||||
|
||||
[BuildOptions.AARCH64]
|
||||
GCC:*_*_*_CC_FLAGS = -mcmodel=tiny -mstrict-align
|
||||
|
||||
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
|
||||
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
|
||||
XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
|
||||
@ -174,6 +178,12 @@
|
||||
CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
|
||||
MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
|
||||
|
||||
[BuildOptions.IA32.EDKII.DXE_RUNTIME_DRIVER, BuildOptions.X64.EDKII.DXE_RUNTIME_DRIVER]
|
||||
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
|
||||
|
||||
[BuildOptions.AARCH64.EDKII.DXE_RUNTIME_DRIVER]
|
||||
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x10000
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SKU Identification section - list of all SKU IDs supported by this Platform.
|
||||
@ -364,6 +374,55 @@
|
||||
CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
|
||||
CpuPageTableLib|UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableLib.inf
|
||||
|
||||
[LibraryClasses.AARCH64]
|
||||
ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
|
||||
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
||||
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
||||
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
||||
|
||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
||||
EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
|
||||
PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
|
||||
PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
|
||||
SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
|
||||
|
||||
QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgMmioDxeLib.inf
|
||||
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf
|
||||
QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf
|
||||
QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
|
||||
|
||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
||||
VirtNorFlashPlatformLib|OvmfPkg/Library/FdtNorFlashQemuLib/FdtNorFlashQemuLib.inf
|
||||
|
||||
# ARM Architectural Libraries
|
||||
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
|
||||
CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
|
||||
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
||||
|
||||
# ARM PL031 RTC Driver
|
||||
RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
|
||||
TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
|
||||
|
||||
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
||||
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
||||
DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
|
||||
|
||||
OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
|
||||
PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf
|
||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||
|
||||
# PCI Libraries
|
||||
DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf
|
||||
PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf
|
||||
PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf
|
||||
PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf
|
||||
PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
|
||||
ArmPlatformLib|ArmVirtPkg/Library/ArmPlatformLibQemu/ArmPlatformLibQemu.inf
|
||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
||||
|
||||
[LibraryClasses.common.SEC]
|
||||
HobLib|UefiPayloadPkg/Library/PayloadEntryHobLib/HobLib.inf
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
@ -550,12 +609,70 @@
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
||||
!endif
|
||||
|
||||
[PcdsPatchableInModule.X64]
|
||||
[PcdsFixedAtBuild.AARCH64]
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
|
||||
# System Memory Base -- fixed at 0x4000_0000
|
||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
||||
|
||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||
|
||||
# ARM General Interrupt Controller
|
||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x8000000
|
||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x80a0000
|
||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x8080000
|
||||
|
||||
# Enable NX memory protection for all non-code regions, including OEM and OS
|
||||
# reserved ones, with the exception of LoaderData regions, of which OS loaders
|
||||
# (i.e., GRUB) may assume that its contents are executable.
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
|
||||
|
||||
# initial location of the device tree blob passed by QEMU -- base of DRAM
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000
|
||||
|
||||
# The maximum physical I/O addressability of the processor, set with BuildCpuHob().
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
||||
|
||||
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
||||
|
||||
# Shadowing PEI modules is absolutely pointless when the NOR flash is emulated
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|FALSE
|
||||
|
||||
# System Memory Size -- 128 MB initially, actual size will be fetched from DT
|
||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize | 0x40000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize | 0x40000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize | 0x40000
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x9000000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciSerialParameters|$(PCI_SERIAL_PARAMETERS)
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2
|
||||
|
||||
# AARCH64 use PL011 Serial Port device instead of UniversalPayload Serial
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdUseUniversalPayloadSerialPort|FALSE
|
||||
|
||||
[PcdsPatchableInModule.IA32, PcdsPatchableInModule.X64]
|
||||
!if $(NETWORK_DRIVER_ENABLE) == TRUE
|
||||
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
|
||||
!endif
|
||||
gUefiPayloadPkgTokenSpaceGuid.SizeOfIoSpace|16
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdFDTPageSize|8
|
||||
#
|
||||
# The following parameters are set by Library/PlatformHookLib
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x3F8
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|$(BAUD_RATE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1
|
||||
|
||||
[PcdsPatchableInModule.common]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
||||
@ -575,13 +692,6 @@
|
||||
!endif
|
||||
!endif
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|$(MAX_SIZE_NON_POPULATE_CAPSULE)
|
||||
#
|
||||
# The following parameters are set by Library/PlatformHookLib
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x3F8
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|$(BAUD_RATE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1
|
||||
|
||||
#
|
||||
# Enable these parameters to be set on the command line
|
||||
@ -598,6 +708,20 @@
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdCpuNumberOfReservedVariableMtrrs|0
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter|0
|
||||
|
||||
[PcdsPatchableInModule.AARCH64]
|
||||
gUefiPayloadPkgTokenSpaceGuid.SizeOfIoSpace|16
|
||||
gUefiPayloadPkgTokenSpaceGuid.PcdFDTPageSize|8
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x9000000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1
|
||||
|
||||
!if $(TARGET) == DEBUG
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x07
|
||||
!else
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x03
|
||||
!endif
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Pcd DynamicEx Section - list of all EDK II PCD Entries defined by this Platform
|
||||
@ -608,10 +732,6 @@
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|$(PLATFORM_BOOT_TIMEOUT)
|
||||
|
||||
[PcdsDynamicExDefault]
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|$(UART_DEFAULT_BAUD_RATE)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|$(UART_DEFAULT_DATA_BITS)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|$(UART_DEFAULT_PARITY)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|$(UART_DEFAULT_STOP_BITS)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|$(DEFAULT_TERMINAL_TYPE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport|FALSE
|
||||
@ -662,9 +782,51 @@
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
||||
|
||||
[PcdsDynamicExDefault.IA32, PcdsDynamicExDefault.X64]
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister|$(RTC_TARGET_REGISTER)
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|$(UART_DEFAULT_BAUD_RATE)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|$(UART_DEFAULT_DATA_BITS)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|$(UART_DEFAULT_PARITY)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|$(UART_DEFAULT_STOP_BITS)
|
||||
|
||||
[PcdsDynamicExDefault.AARCH64]
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase | 0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 | 0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 | 0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase | 0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase | 0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 | 0
|
||||
|
||||
# Timer IRQs
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|29
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|30
|
||||
# Not used in QEMU platform
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|26
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerHypVirtIntrNum|0x0
|
||||
|
||||
# PL031 RealTimeClock
|
||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x9010000
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x4010000000
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseSize|0xfffffff
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1280
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|800
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|0
|
||||
|
||||
# SMBIOS entry point version
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Components Section - list of all EDK II Modules needed by this Platform.
|
||||
@ -693,7 +855,7 @@
|
||||
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
|
||||
!endif
|
||||
!else
|
||||
[Components.X64]
|
||||
[Components.X64, Components.AARCH64]
|
||||
!if $(UNIVERSAL_PAYLOAD) == TRUE
|
||||
!if $(UNIVERSAL_PAYLOAD_FORMAT) == "ELF"
|
||||
UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf
|
||||
@ -724,7 +886,7 @@
|
||||
!include NetworkPkg/Network.dsc.inc
|
||||
!endif
|
||||
|
||||
[Components.X64]
|
||||
[Components.X64, Components.AARCH64]
|
||||
#
|
||||
# DXE Core
|
||||
#
|
||||
@ -753,7 +915,6 @@
|
||||
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
||||
!endif
|
||||
|
||||
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||
!if $(BOOTSPLASH_IMAGE)
|
||||
MdeModulePkg/Logo/LogoDxe.inf
|
||||
@ -767,17 +928,6 @@
|
||||
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
|
||||
|
||||
|
||||
!if $(TIMER_SUPPORT) == "HPET"
|
||||
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||
!elseif $(TIMER_SUPPORT) == "LAPIC"
|
||||
OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf {
|
||||
<LibraryClasses>
|
||||
NestedInterruptTplLib|OvmfPkg/Library/NestedInterruptTplLib/NestedInterruptTplLib.inf
|
||||
}
|
||||
!else
|
||||
!error "Invalid TIMER_SUPPORT"
|
||||
!endif
|
||||
|
||||
MdeModulePkg/Universal/Metronome/Metronome.inf
|
||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||
@ -954,6 +1104,75 @@
|
||||
!endif
|
||||
!endif
|
||||
|
||||
[Components.X64]
|
||||
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||
|
||||
!if $(TIMER_SUPPORT) == "HPET"
|
||||
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||
!elseif $(TIMER_SUPPORT) == "LAPIC"
|
||||
OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf {
|
||||
<LibraryClasses>
|
||||
NestedInterruptTplLib|OvmfPkg/Library/NestedInterruptTplLib/NestedInterruptTplLib.inf
|
||||
}
|
||||
!else
|
||||
!error "Invalid TIMER_SUPPORT"
|
||||
!endif
|
||||
|
||||
[Components.AARCH64]
|
||||
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
|
||||
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||
ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
||||
|
||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||
|
||||
ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.inf
|
||||
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
||||
OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf {
|
||||
<LibraryClasses>
|
||||
# don't use unaligned CopyMem () on the UEFI varstore NOR flash region
|
||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||
}
|
||||
|
||||
SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf
|
||||
|
||||
OvmfPkg/PlatformDxe/Platform.inf
|
||||
OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
|
||||
OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
|
||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
||||
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||
OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
|
||||
|
||||
MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf
|
||||
|
||||
# SMBIOS Support
|
||||
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
|
||||
}
|
||||
|
||||
# PCI support
|
||||
UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
}
|
||||
OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
|
||||
OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
|
||||
# Video support
|
||||
OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
|
||||
# Hash2 Protocol Support
|
||||
SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.inf
|
||||
|
||||
# ACPI Support
|
||||
OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf
|
||||
|
||||
#------------------------------
|
||||
# Build the shell
|
||||
#------------------------------
|
||||
@ -970,7 +1189,7 @@
|
||||
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
||||
!include NetworkPkg/NetworkLibs.dsc.inc
|
||||
|
||||
[Components.X64]
|
||||
[Components.X64, Components.AARCH64]
|
||||
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
|
||||
<PcdsFixedAtBuild>
|
||||
## This flag is used to control initialization of the shell library
|
||||
|
@ -4,6 +4,7 @@
|
||||
# Provides drivers and definitions to create uefi payload for bootloaders.
|
||||
#
|
||||
# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2024, Google LLC.
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
@ -153,31 +154,52 @@ INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
|
||||
|
||||
!if $(CRYPTO_PROTOCOL_SUPPORT) == TRUE
|
||||
!if $(CRYPTO_DRIVER_EXTERNAL_SUPPORT) == FALSE
|
||||
INF CryptoPkg/Driver/CryptoDxe.inf
|
||||
!endif
|
||||
!endif
|
||||
!if $(SECURITY_STUB_ENABLE) == TRUE
|
||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
!endif
|
||||
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||
!if "X64" IN "$(ARCH)"
|
||||
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||
INF MdeModulePkg/Universal/Metronome/Metronome.inf
|
||||
INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
|
||||
|
||||
!if $(TIMER_SUPPORT) == "HPET"
|
||||
INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||
!elseif $(TIMER_SUPPORT) == "LAPIC"
|
||||
INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf
|
||||
!if $(CRYPTO_PROTOCOL_SUPPORT) == TRUE
|
||||
!if $(CRYPTO_DRIVER_EXTERNAL_SUPPORT) == FALSE
|
||||
INF CryptoPkg/Driver/CryptoDxe.inf
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if $(TIMER_SUPPORT) == "HPET"
|
||||
INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||
!elseif $(TIMER_SUPPORT) == "LAPIC"
|
||||
INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf
|
||||
!endif
|
||||
!elseif "AARCH64" IN "$(ARCH)"
|
||||
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||
INF ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.inf
|
||||
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
||||
|
||||
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
||||
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||
INF OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf
|
||||
INF UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf
|
||||
INF OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
||||
INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
|
||||
INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
INF OvmfPkg/PlatformDxe/Platform.inf
|
||||
!endif
|
||||
INF MdeModulePkg/Universal/Metronome/Metronome.inf
|
||||
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
!if $(SECURITY_STUB_ENABLE) == TRUE
|
||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
!endif
|
||||
|
||||
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
!if $(DISABLE_RESET_SYSTEM) == FALSE
|
||||
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||
!endif
|
||||
INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
|
||||
!if $(PERFORMANCE_MEASUREMENT_ENABLE)
|
||||
INF MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf
|
||||
!endif
|
||||
|
@ -137,6 +137,9 @@ def BuildUniversalPayload(Args):
|
||||
elif Args.Arch == 'RISCV64':
|
||||
BuildArch = "RISCV64"
|
||||
FitArch = "RISCV64"
|
||||
elif Args.Arch == 'AARCH64':
|
||||
BuildArch = "AARCH64"
|
||||
FitArch = "AARCH64"
|
||||
else:
|
||||
print("Incorrect arch option provided")
|
||||
|
||||
@ -312,7 +315,7 @@ def main():
|
||||
parser = argparse.ArgumentParser(description='For building Universal Payload')
|
||||
parser.add_argument('-t', '--ToolChain')
|
||||
parser.add_argument('-b', '--Target', default='DEBUG')
|
||||
parser.add_argument('-a', '--Arch', choices=['IA32', 'X64', 'RISCV64'], help='Specify the ARCH for payload entry module. Default build X64 image.', default ='X64')
|
||||
parser.add_argument('-a', '--Arch', choices=['IA32', 'X64', 'RISCV64', 'AARCH64'], help='Specify the ARCH for payload entry module. Default build X64 image.', default ='X64')
|
||||
parser.add_argument("-D", "--Macro", action="append", default=["UNIVERSAL_PAYLOAD=TRUE"])
|
||||
parser.add_argument('-i', '--ImageId', type=str, help='Specify payload ID (16 bytes maximal).', default ='UEFI')
|
||||
parser.add_argument('-q', '--Quiet', action='store_true', help='Disable all build messages except FATAL ERRORS.')
|
||||
|
Loading…
Reference in New Issue
Block a user