From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mx.groups.io with SMTP id smtpd.web11.52966.1683789171018538814 for ; Thu, 11 May 2023 00:12:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=CKd63PaU; spf=pass (domain: rivosinc.com, ip: 209.85.214.169, mailfrom: dhaval@rivosinc.com) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1aad5245632so59171325ad.3 for ; Thu, 11 May 2023 00:12:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1683789170; x=1686381170; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nhbsrS/TYGlvRV0rN8C+T7C8HW8X53P5+E8wgK29uGQ=; b=CKd63PaUYE8+I91ihbsv1qrc3L6G3zXgWp6O+zaFvcUSQFtGEqIJd9NX+O4iDo8Fho 8LZbkKzMgOCYTSM1UCTTAM6V2W39FKizzS08YAbSHYKwpFSAKIKvbKdLPT7B5i9pGfO5 4tXCpsiCnKgFtWCfAGA67V0UJBB7Eb8uAjANd58GQdNIuOP+2G0YgGWc8IYSOMu6J+FD M8f26hMC2SUHXoHIhA2CM2QHtbEPPus/vTBMBIeIW2+M7gxCWZKzBE/q79xE4TGsUiFa npMuj/+KrrFIbRbHfu1t84bVw3p7t+knoBBtnQoMn7cA5Se2j62tSPlBSPFaeAojAnV3 QFNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683789170; x=1686381170; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nhbsrS/TYGlvRV0rN8C+T7C8HW8X53P5+E8wgK29uGQ=; b=XGffMn3ETTQM0iD1GySAZA8aZiTut+Ij0gepcrnJlhX210MCEsgdyZk5VnC2KaB+Ze g5SffW9puwWLpxMQfX7CHI3PYXrRE2rC1k3UXw2JRfre2vs+U9/gxWzcZBI2wbfmbdJF EEPw8G4BUvujQfyH2i+p2BWU7iJ8RvWUR1NC7UJLT8s9GtuCi1jAiW7D8tkSbwFlps7d T0+BWM3LqA8SvHxwuhZ0KqfzUkfTB3uu4JPcBOXz121oNUY1rQ+Sn9Phubq59CLshU1V 9ndJy3C7rLz4YUDtAyRgY6uEd1XS1LqF1sbT4mBXusIAjiDiYvD2GcCJsgF5uZDighbx PRlA== X-Gm-Message-State: AC+VfDw2NpqMbCc3MMtYwgOUEZ9b9lWwP5h3JJJice6CjpgYC5sF4b9r m+OV2FVmxmJCNWolazz10QaQaRJk6YgGJfv9tNg= X-Google-Smtp-Source: ACHHUZ7eHxXBBWvoO6rgtn0vBj0FDKb4IyN9uUp+IclohQyxuyyBsXpMAv1K3+cYJ2hE3qazIkn8sQ== X-Received: by 2002:a17:902:e852:b0:1a9:433e:41e7 with SMTP id t18-20020a170902e85200b001a9433e41e7mr17604973plg.43.1683789170126; Thu, 11 May 2023 00:12:50 -0700 (PDT) Return-Path: Received: from dhaval.. ([42.106.13.180]) by smtp.gmail.com with ESMTPSA id w20-20020a1709029a9400b001a9884c02e3sm5111214plp.10.2023.05.11.00.12.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 00:12:49 -0700 (PDT) From: "Dhaval Sharma" To: devel@edk2.groups.io Cc: Guo Dong , Ray Ni , Sean Rhodes , James Lu , Gua Guo , Sunil V Subject: [PATCH v1 3/8] UefiPayloadPkg: Basic Infra To Enable RV64 UPL Support Date: Thu, 11 May 2023 12:42:21 +0530 Message-Id: <20230511071226.19726-4-dhaval@rivosinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230511071226.19726-1-dhaval@rivosinc.com> References: <20230511071226.19726-1-dhaval@rivosinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Add support for RiscV64 Arch for UPL. The Patch primarily allows one to compile UPL with RV64 GCC tools. It builds on top of earlier patches submitted for UPL boot flow modifications where arch specific initialization was removed. Follow up patches will be added to further the boot flow. Test: Tested that code compiles UPL Pkg with RV64 GCC5 Cc: Guo Dong Cc: Ray Ni Cc: Sean Rhodes Cc: James Lu Cc: Gua Guo Cc: Sunil V Signed-off-by: Dhaval Sharma --- UefiPayloadPkg/UefiPayloadPkgRV64.dsc | 637 ++++++++++= ++++++++++ UefiPayloadPkg/UefiPayloadPkgRV64.fdf | 318 ++++++++++ UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf | 4 +- UefiPayloadPkg/UefiPayloadEntry/RiscV64/DxeLoadFunc.c | 28 + 4 files changed, 986 insertions(+), 1 deletion(-) diff --git a/UefiPayloadPkg/UefiPayloadPkgRV64.dsc b/UefiPayloadPkg/UefiPay= loadPkgRV64.dsc new file mode 100644 index 000000000000..8b226c483855 --- /dev/null +++ b/UefiPayloadPkg/UefiPayloadPkgRV64.dsc @@ -0,0 +1,637 @@ +## @file=0D +# Bootloader Payload Package=0D +#=0D +# Provides drivers and definitions to create uefi payload for bootloaders.= =0D +#=0D +# Copyright (c) 2023, Rivos Inc=0D +# SPDX-License-Identifier: BSD-2-Clause-Patent=0D +#=0D +##=0D +=0D +##########################################################################= ######=0D +#=0D +# Defines Section - statements that will be processed to create a Makefile= .=0D +#=0D +##########################################################################= ######=0D +[Defines]=0D + PLATFORM_NAME =3D UefiPayloadPkg=0D + PLATFORM_GUID =3D F71608AB-D63D-4491-B744-A99998C8= CD96=0D + PLATFORM_VERSION =3D 0.1=0D + DSC_SPECIFICATION =3D 0x00010005=0D + SUPPORTED_ARCHITECTURES =3D RISCV64=0D + BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT=0D + SKUID_IDENTIFIER =3D DEFAULT=0D + OUTPUT_DIRECTORY =3D Build/UefiPayloadPkgRV64=0D + FLASH_DEFINITION =3D UefiPayloadPkg/UefiPayloadPkgRV6= 4.fdf=0D + PCD_DYNAMIC_AS_DYNAMICEX =3D TRUE=0D +=0D + DEFINE SECURITY_STUB_ENABLE =3D TRUE=0D + DEFINE PLATFORM_BOOT_TIMEOUT =3D 3=0D + DEFINE UNIVERSAL_PAYLOAD =3D TRUE=0D + DEFINE DEBUG_ON_SERIAL_PORT =3D TRUE=0D + #=0D + # CPU options=0D + #=0D + DEFINE MAX_LOGICAL_PROCESSORS =3D 256=0D +=0D + #=0D + # PCI options=0D + #=0D + DEFINE PCIE_BASE_SUPPORT =3D TRUE=0D +=0D + #=0D + # Serial port set up=0D + #=0D + DEFINE BAUD_RATE =3D 115200=0D + DEFINE SERIAL_CLOCK_RATE =3D 1843200=0D + DEFINE SERIAL_LINE_CONTROL =3D 3 # 8-bits, no parity=0D + DEFINE SERIAL_HARDWARE_FLOW_CONTROL =3D FALSE=0D + DEFINE SERIAL_DETECT_CABLE =3D FALSE=0D + DEFINE SERIAL_FIFO_CONTROL =3D 7 # Enable FIFO=0D + DEFINE UART_DEFAULT_BAUD_RATE =3D $(BAUD_RATE)=0D + DEFINE UART_DEFAULT_DATA_BITS =3D 8=0D + DEFINE UART_DEFAULT_PARITY =3D 1=0D + DEFINE UART_DEFAULT_STOP_BITS =3D 1=0D + DEFINE DEFAULT_TERMINAL_TYPE =3D 0=0D +=0D + # Enabling the serial terminal will slow down the boot menu redering!=0D + DEFINE DISABLE_SERIAL_TERMINAL =3D FALSE=0D +=0D + # [Vendor] [Device] [----ClockR= ate---] [------------Offset-----------] [Bar] [Stride] [RxFifo] [TxFifo] = [Rsvd] [Vendor]=0D + DEFINE PCI_SERIAL_PARAMETERS =3D {0xff,0xff, 0x00,0x00, 0x0,0x20,= 0x1c,0x00, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x00, 0x01, 0x0,0x0, 0x0,0x0= , 0x0,0x0, 0xff,0xff}=0D +=0D + #=0D + # Shell options: [BUILD_SHELL, MIN_BIN, NONE, UEFI_BIN]=0D + #=0D + DEFINE SHELL_TYPE =3D BUILD_SHELL=0D +=0D + #=0D + # EMU: UEFI payload with EMU variable=0D + # SPI: UEFI payload with SPI NV variable support=0D + # NONE: UEFI payload with no variable modules=0D + #=0D + DEFINE VARIABLE_SUPPORT =3D EMU=0D +=0D + DEFINE SERIAL_DRIVER_ENABLE =3D TRUE=0D +=0D + # For recent X86 CPU, 0x15 CPUID instruction will return Time Stamp Coun= ter Frequence.=0D + # This is how BaseCpuTimerLib works, and a recommended way to get Freque= nce, so set the default value as TRUE.=0D + # Note: for emulation platform such as QEMU, this may not work and shoul= d set it as FALSE=0D + DEFINE CPU_TIMER_LIB_ENABLE =3D TRUE=0D +=0D +[BuildOptions]=0D + *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES= =0D + GCC:RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG=0D + INTEL:RELEASE_*_*_CC_FLAGS =3D /D MDEPKG_NDEBUG=0D +=0D +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]=0D + GCC:*_*_*_DLINK_FLAGS =3D -z common-page-size=3D0x1000=0D + XCODE:*_*_*_DLINK_FLAGS =3D -seg1addr 0x1000 -segalign 0x1000=0D + XCODE:*_*_*_MTOC_FLAGS =3D -align 0x1000=0D + CLANGPDB:*_*_*_DLINK_FLAGS =3D /ALIGN:4096=0D +=0D +##########################################################################= ######=0D +#=0D +# SKU Identification section - list of all SKU IDs supported by this Platf= orm.=0D +#=0D +##########################################################################= ######=0D +[SkuIds]=0D + 0|DEFAULT=0D +=0D +##########################################################################= ######=0D +#=0D +# Library Class section - list of all Library Classes needed by this Platf= orm.=0D +#=0D +##########################################################################= ######=0D +=0D +!include MdePkg/MdeLibs.dsc.inc=0D +[LibraryClasses]=0D + #=0D + # Entry point=0D + #=0D + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf= =0D + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntry= Point.inf=0D + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiA= pplicationEntryPoint.inf=0D +=0D + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf=0D + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf=0D + #=0D + # Basic=0D + #=0D + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf=0D + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchroniza= tionLib.inf=0D + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf=0D + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf=0D + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf=0D +=0D + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf=0D + PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf=0D + PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf=0D + PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf= =0D + PciSegmentLib|MdePkg/Library/PciSegmentLibSegmentInfo/BasePciSegmentLibS= egmentInfo.inf=0D + PciSegmentInfoLib|UefiPayloadPkg/Library/PciSegmentInfoLibAcpiBoardInfo/= PciSegmentInfoLibAcpiBoardInfo.inf=0D + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf=0D + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeC= offGetEntryPointLib.inf=0D + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMain= tenanceLib.inf=0D + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf=0D + DxeHobListLib|UefiPayloadPkg/Library/DxeHobListLib/DxeHobListLib.inf=0D + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf=0D + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf=0D + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf=0D + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf=0D + RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf=0D + HobLib|UefiPayloadPkg/Library/DxeHobLib/DxeHobLib.inf=0D +=0D + #=0D + # UEFI & PI=0D + #=0D + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBoo= tServicesTableLib.inf=0D + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/U= efiRuntimeServicesTableLib.inf=0D + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf=0D + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf=0D + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServic= esLib.inf=0D + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf=0D + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf=0D + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompres= sLib.inf=0D + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf=0D + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableL= ib.inf=0D + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf=0D +=0D + #=0D + # Generic Modules=0D + #=0D + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHo= okStatusCodeLibNull.inf=0D + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.in= f=0D + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.i= nf=0D + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeS= ecurityManagementLib.inf=0D + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManag= erLib.inf=0D + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf=0D + #=0D + # Platform=0D + #=0D + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf=0D +=0D + TimerLib|UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLi= b.inf=0D + RealTimeClockLib|EmbeddedPkg//Library/VirtualRealTimeClockLib/VirtualRea= lTimeClockLib.inf=0D + ResetSystemLib|OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf=0D + QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf=0D +=0D + SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPort= Lib16550.inf=0D + PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib.i= nf=0D + PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/Pla= tformBootManagerLib.inf=0D + PlatformSupportLib|UefiPayloadPkg/Library/PlatformSupportLibNull/Platfor= mSupportLibNull.inf=0D + #=0D + # Misc=0D + #=0D + DebugPrintErrorLevelLib|UefiPayloadPkg/Library/DebugPrintErrorLevelLibHo= b/DebugPrintErrorLevelLibHob.inf=0D + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibN= ull.inf=0D + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeC= offExtraActionLibNull.inf=0D + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.i= nf=0D +=0D + DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebug= LibReportStatusCode.inf=0D + LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf=0D + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf= =0D + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLib= Null.inf=0D +!if $(VARIABLE_SUPPORT) =3D=3D "EMU"=0D + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurem= entLibNull.inf=0D +!endif=0D + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf=0D + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyL= ib.inf=0D + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/Var= iablePolicyHelperLib.inf=0D + VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseV= ariableFlashInfoLib.inf=0D + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf=0D +=0D +[LibraryClasses.common]=0D + # Virtio Support=0D + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf=0D + VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice= Lib.inf=0D +=0D +=0D + # RISC-V Architectural Libraries=0D + CpuExceptionHandlerLib|UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandler= Lib/BaseRiscV64CpuExceptionHandlerLib.inf=0D + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf=0D + ResetSystemLib|OvmfPkg/RiscVVirt/Library/ResetSystemLib/BaseResetSystemL= ib.inf=0D +=0D +=0D +[LibraryClasses.common.SEC]=0D + HobLib|UefiPayloadPkg/Library/PayloadEntryHobLib/HobLib.inf=0D + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf=0D + DxeHobListLib|UefiPayloadPkg/Library/DxeHobListLibNull/DxeHobListLibNull= .inf=0D + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.in= f=0D +=0D +[LibraryClasses.common.DXE_CORE]=0D + DxeHobListLib|UefiPayloadPkg/Library/DxeHobListLibNull/DxeHobListLibNull= .inf=0D + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf=0D + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf=0D + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeC= oreMemoryAllocationLib.inf=0D + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExt= ractGuidedSectionLib.inf=0D + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf=0D +=0D +!ifdef $(DEBUG_ON_SERIAL_PORT)=0D + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.in= f=0D +!else=0D + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf=0D +!endif=0D +=0D +[LibraryClasses.common.DXE_DRIVER]=0D + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf=0D + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf=0D + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExt= ractGuidedSectionLib.inf=0D + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf=0D +!ifdef $(DEBUG_ON_SERIAL_PORT)=0D + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.in= f=0D +!else=0D + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf=0D +!endif=0D +=0D +[LibraryClasses.common.DXE_RUNTIME_DRIVER]=0D + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf=0D + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf=0D + ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/R= untimeDxeReportStatusCodeLib.inf=0D + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyL= ibRuntimeDxe.inf=0D +!if $(PERFORMANCE_MEASUREMENT_ENABLE)=0D + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.= inf=0D +!endif=0D + ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf=0D + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf=0D +=0D +!ifdef $(DEBUG_ON_SERIAL_PORT)=0D + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.in= f=0D +!else=0D + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf=0D +!endif=0D +=0D +[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]= =0D + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf=0D + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf=0D + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf=0D +!if $(PERFORMANCE_MEASUREMENT_ENABLE)=0D + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.= inf=0D +!endif=0D +=0D +##########################################################################= ######=0D +#=0D +# Pcd Section - list of all EDK II PCD Entries defined by this Platform.=0D +#=0D +##########################################################################= ######=0D +[PcdsFeatureFlag]=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE=0D + ## This PCD specified whether ACPI SDT protocol is installed.=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDegradeResourceForOptionRom|FALSE=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE=0D +=0D +[PcdsFixedAtBuild]=0D + gEfiMdePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel|1=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x10000=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000=0D +!if $(VARIABLE_SUPPORT) =3D=3D "EMU"=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable |TRUE=0D +!else=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable |FALSE= =0D +!endif=0D +=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE=0D +=0D + gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80,= 0xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xD5, 0x0B, 0x76, 0xd8, 0x95, 0x41 }=0D +=0D +!if $(SOURCE_DEBUG_ENABLE)=0D + gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2=0D +!endif=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize|0x4000=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiFpdtStringRecordEnableOnly| TRUE= =0D +!if $(PERFORMANCE_MEASUREMENT_ENABLE)=0D + gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask | 0x1=0D +!endif=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSdMmcGenericTimeoutValue|$(SD_MMC_TIME= OUT)=0D +=0D + gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|$(BOOT_MANAGER_ESCAPE= )=0D +=0D + gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1800000=0D +=0D +!if $(CRYPTO_PROTOCOL_SUPPORT) =3D=3D TRUE=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Fami= ly | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Md5.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Dh.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Random.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha384.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha512.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Ge= tContextSize | TRUE=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.In= it | TRUE=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Cb= cEncrypt | TRUE=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Cb= cDecrypt | TRUE=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sm3.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Tls.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsSet.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D + gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsGet.Family = | PCD_CRYPTO_SERVICE_ENABLE_FAMILY=0D +!endif=0D +=0D +[PcdsPatchableInModule.common]=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c= , 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0= x31 }=0D + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F=0D +!if $(USE_CBMEM_FOR_CONSOLE) =3D=3D FALSE=0D + !if $(SOURCE_DEBUG_ENABLE)=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17=0D + !else=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F=0D + !endif=0D +!else=0D + !if $(TARGET) =3D=3D DEBUG=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x07=0D + !else=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x03=0D + !endif=0D +!endif=0D + #=0D + # The following parameters are set by Library/PlatformHookLib=0D + #=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|$(BAUD_RATE)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1=0D +=0D + #=0D + # Enable these parameters to be set on the command line=0D + #=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|$(SERIAL_CLOCK_RATE)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl|$(SERIAL_LINE_CONTRO= L)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|$(SERIAL_= HARDWARE_FLOW_CONTROL)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|$(SERIAL_DETECT_CABL= E)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|$(SERIAL_FIFO_CONTRO= L)=0D +=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdPciSerialParameters|$(PCI_SERIAL_PARAM= ETERS)=0D +=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|$(MAX_LOGICAL_= PROCESSORS)=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuNumberOfReservedVariableMtrrs|0=0D + gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter|0=0D +=0D +##########################################################################= ######=0D +#=0D +# Pcd DynamicEx Section - list of all EDK II PCD Entries defined by this P= latform=0D +#=0D +##########################################################################= ######=0D +=0D +[PcdsDynamicExDefault]=0D + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|$(UART_DEFAULT_BAUD_RATE= )=0D + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|$(UART_DEFAULT_DATA_BITS= )=0D + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|$(UART_DEFAULT_PARITY)=0D + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|$(UART_DEFAULT_STOP_BITS= )=0D + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|$(DEFAULT_TERMINAL_TYPE)= =0D + gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSystemPageSize=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress=0D + gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize=0D +!if ($(TARGET) =3D=3D DEBUG || $(USE_CBMEM_FOR_CONSOLE) =3D=3D TRUE)=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE=0D +!else=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE=0D +!endif=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FAL= SE=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0=0D + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|$(PLATFORM_BOOT_TIMEOUT)= =0D +!if $(VARIABLE_SUPPORT) =3D=3D "SPI"=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize |0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize |0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase |0=0D +!endif=0D + # Disable SMM S3 script=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE=0D +=0D + ## This PCD defines the video horizontal resolution.=0D + # This PCD could be set to 0 then video resolution could be at highest = resolution.=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0=0D + ## This PCD defines the video vertical resolution.=0D + # This PCD could be set to 0 then video resolution could be at highest = resolution.=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0=0D +=0D + ## The PCD is used to specify the video horizontal resolution of text se= tup.=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|0=0D + ## The PCD is used to specify the video vertical resolution of text setu= p.=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|0=0D +=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|31=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|100=0D + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0=0D + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseSize|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdTestKeyUsed|FALSE=0D + gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0=0D + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE=0D +=0D +##########################################################################= ######=0D +#=0D +# Components Section - list of all EDK II Modules needed by this Platform.= =0D +#=0D +##########################################################################= ######=0D +=0D +[Components]=0D + !if $(UNIVERSAL_PAYLOAD) =3D=3D TRUE=0D + UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf=0D + !else=0D + UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf=0D + !endif=0D +=0D +#=0D +# DXE Main=0D +#=0D + MdeModulePkg/Core/Dxe/DxeMain.inf {=0D + =0D + !if $(MULTIPLE_DEBUG_PORT_SUPPORT) =3D=3D TRUE=0D + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialP= ort.inf=0D + SerialPortLib|UefiPayloadPkg/Library/BaseSerialPortLibHob/BaseSeri= alPortLibHob.inf=0D + !endif=0D + NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompre= ssLib.inf=0D + }=0D +=0D + #=0D + # RISC-V Platform module=0D + #=0D + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf=0D + UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf=0D + #=0D + # Components that produce the architectural protocols=0D + #=0D +!if $(SECURITY_STUB_ENABLE) =3D=3D TRUE=0D + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf=0D +!endif=0D + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf=0D +!if $(BOOTSPLASH_IMAGE)=0D + MdeModulePkg/Logo/LogoDxe.inf=0D +!endif=0D + MdeModulePkg/Application/UiApp/UiApp.inf {=0D + =0D + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf= =0D + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf=0D + NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc= eManagerUiLib.inf=0D + }=0D + MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf {=0D + =0D + NULL|UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManag= erLib.inf=0D + }=0D + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf=0D + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf=0D + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf=0D + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf=0D + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntim= eDxe.inf=0D +!if $(DISABLE_RESET_SYSTEM) =3D=3D FALSE=0D + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf=0D +!endif=0D +!if $(EMU_VARIABLE_ENABLE) =3D=3D TRUE=0D + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf=0D +!endif=0D + #=0D + # Following are the DXE drivers=0D + #=0D + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {=0D + =0D + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf=0D + }=0D +=0D + MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCod= eRouterRuntimeDxe.inf=0D + MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRun= timeDxe.inf=0D + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf=0D + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf=0D +=0D + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf=0D + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf=0D + MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf= =0D +=0D + #=0D + # SMBIOS Support=0D + #=0D + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf=0D +=0D + #=0D + # ACPI Support=0D + #=0D + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf=0D + MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf=0D + OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf=0D +=0D + #=0D + # PCI Support=0D + #=0D + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf=0D + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {=0D + =0D + PciHostBridgeLib|UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBrid= geLib.inf=0D + }=0D +=0D + #=0D + # Platform Driver=0D + #=0D + OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf=0D + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf=0D + OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf=0D + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf=0D + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf=0D + OvmfPkg/VirtioNetDxe/VirtioNet.inf=0D + OvmfPkg/VirtioRngDxe/VirtioRng.inf=0D + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf=0D + OvmfPkg/Virtio10Dxe/Virtio10.inf=0D +=0D + #=0D + # SCSI/ATA/IDE/DISK Support=0D + #=0D + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf=0D + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf=0D + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf=0D + FatPkg/EnhancedFatDxe/Fat.inf=0D +!if $(NVME_ENABLE) =3D=3D TRUE=0D + MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf=0D +!endif=0D + #=0D + # ISA Support=0D + #=0D +!if $(SERIAL_DRIVER_ENABLE) =3D=3D TRUE=0D + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf=0D +!endif=0D +=0D + #=0D + # Console Support=0D + #=0D + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf=0D + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf=0D + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf= =0D +!if $(DISABLE_SERIAL_TERMINAL) =3D=3D FALSE=0D + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf=0D +!endif=0D +=0D + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf=0D +=0D + #------------------------------=0D + # Build the shell=0D + #------------------------------=0D +=0D +!if $(SHELL_TYPE) =3D=3D BUILD_SHELL=0D + #=0D + # Shell Lib=0D + #=0D +[LibraryClasses]=0D + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCom= mandLib.inf=0D + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf=0D + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf=0D + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf=0D + !include NetworkPkg/NetworkLibs.dsc.inc=0D + TimeBaseLib|EmbeddedPkg//Library/TimeBaseLib/TimeBaseLib.inf=0D + OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib= /BaseOrderedCollectionRedBlackTreeLib.inf=0D +=0D +[Components]=0D + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {=0D + =0D + ## This flag is used to control initialization of the shell library= =0D + # This should be FALSE for compiling the dynamic command.=0D + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE=0D + }=0D + ShellPkg/Application/Shell/Shell.inf {=0D + =0D + ## This flag is used to control initialization of the shell library= =0D + # This should be FALSE for compiling the shell application itself o= nly.=0D + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE=0D +=0D + #------------------------------=0D + # Basic commands=0D + #------------------------------=0D +=0D + =0D + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1Comm= andsLib.inf=0D + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Comm= andsLib.inf=0D + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3Comm= andsLib.inf=0D + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Co= mmandsLib.inf=0D + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1= CommandsLib.inf=0D + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm= andsLib.inf=0D +=0D + #------------------------------=0D + # Support libraries=0D + #------------------------------=0D +=0D + =0D + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf= =0D + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandlePar= singLib.inf=0D + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf=0D + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLi= b.inf=0D + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellComman= dLib.inf=0D + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf=0D + }=0D +=0D +!endif=0D diff --git a/UefiPayloadPkg/UefiPayloadPkgRV64.fdf b/UefiPayloadPkg/UefiPay= loadPkgRV64.fdf new file mode 100644 index 000000000000..747c617b0f60 --- /dev/null +++ b/UefiPayloadPkg/UefiPayloadPkgRV64.fdf @@ -0,0 +1,318 @@ +## @file=0D +# Bootloader Payload Package=0D +#=0D +# Provides drivers and definitions to create uefi payload for bootloaders.= =0D +#=0D +# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
=0D +# Copyright (c) 2023, Rivos Inc.
=0D +# SPDX-License-Identifier: BSD-2-Clause-Patent=0D +#=0D +##=0D +=0D +[Defines]=0D +DEFINE FD_BASE =3D 0x80200000=0D +DEFINE FD_BLOCK_SIZE =3D 0x00001000=0D +=0D +!if $(TARGET) =3D=3D "NOOPT"=0D +DEFINE FD_SIZE =3D 0x00850000=0D +DEFINE NUM_BLOCKS =3D 0x850=0D +!else=0D +=0D +DEFINE FD_SIZE =3D 0x00600000=0D +DEFINE NUM_BLOCKS =3D 0x600=0D +!endif=0D +=0D +##########################################################################= ######=0D +[FD.UefiPayload]=0D +BaseAddress =3D $(FD_BASE) | gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdM= emBase=0D +Size =3D $(FD_SIZE) | gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdM= emSize=0D +ErasePolarity =3D 1=0D +BlockSize =3D $(FD_BLOCK_SIZE)=0D +NumBlocks =3D $(NUM_BLOCKS)=0D +=0D +0x00000000|$(FD_SIZE)=0D +FV =3D PLDFV=0D +=0D +##########################################################################= ######=0D +[FV.PLDFV]=0D +FvNameGuid =3D 96E75986-6FDD-491E-9FD5-35E21AC45B45=0D +BlockSize =3D $(FD_BLOCK_SIZE)=0D +FvAlignment =3D 16=0D +ERASE_POLARITY =3D 1=0D +MEMORY_MAPPED =3D TRUE=0D +STICKY_WRITE =3D TRUE=0D +LOCK_CAP =3D TRUE=0D +LOCK_STATUS =3D TRUE=0D +WRITE_DISABLED_CAP =3D TRUE=0D +WRITE_ENABLED_CAP =3D TRUE=0D +WRITE_STATUS =3D TRUE=0D +WRITE_LOCK_CAP =3D TRUE=0D +WRITE_LOCK_STATUS =3D TRUE=0D +READ_DISABLED_CAP =3D TRUE=0D +READ_ENABLED_CAP =3D TRUE=0D +READ_STATUS =3D TRUE=0D +READ_LOCK_CAP =3D TRUE=0D +READ_LOCK_STATUS =3D TRUE=0D +=0D +!if $(UNIVERSAL_PAYLOAD) =3D=3D FALSE=0D +INF UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf=0D +!else=0D +INF UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf=0D +!endif=0D +FILE FV_IMAGE =3D 4E35FD93-9C72-4c15-8C4B-E77F1DB2D793 {=0D + SECTION FV_IMAGE =3D DXEFV=0D +}=0D +=0D +##########################################################################= ######=0D +=0D +[FV.DXEFV]=0D +FvNameGuid =3D 8063C21A-8E58-4576-95CE-089E87975D23=0D +BlockSize =3D $(FD_BLOCK_SIZE)=0D +FvForceRebase =3D FALSE=0D +FvAlignment =3D 16=0D +ERASE_POLARITY =3D 1=0D +MEMORY_MAPPED =3D TRUE=0D +STICKY_WRITE =3D TRUE=0D +LOCK_CAP =3D TRUE=0D +LOCK_STATUS =3D TRUE=0D +WRITE_DISABLED_CAP =3D TRUE=0D +WRITE_ENABLED_CAP =3D TRUE=0D +WRITE_STATUS =3D TRUE=0D +WRITE_LOCK_CAP =3D TRUE=0D +WRITE_LOCK_STATUS =3D TRUE=0D +READ_DISABLED_CAP =3D TRUE=0D +READ_ENABLED_CAP =3D TRUE=0D +READ_STATUS =3D TRUE=0D +READ_LOCK_CAP =3D TRUE=0D +READ_LOCK_STATUS =3D TRUE=0D +=0D +APRIORI DXE {=0D + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf=0D + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf=0D + INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStat= usCodeRouterRuntimeDxe.inf=0D + INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl= erRuntimeDxe.inf=0D +}=0D +=0D +#=0D +# DXE Phase modules=0D +#=0D +INF MdeModulePkg/Core/Dxe/DxeMain.inf=0D +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf=0D +INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusC= odeRouterRuntimeDxe.inf=0D +INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerR= untimeDxe.inf=0D +=0D +!if $(CRYPTO_PROTOCOL_SUPPORT) =3D=3D TRUE=0D +INF CryptoPkg/Driver/CryptoDxe.inf=0D +!endif=0D +!if $(SECURITY_STUB_ENABLE) =3D=3D TRUE=0D +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf=0D +!endif=0D +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf=0D +INF RuleOverride =3D UI MdeModulePkg/Application/UiApp/UiApp.inf=0D +INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf=0D +INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf=0D +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf=0D +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf=0D +INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf=0D +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRunt= imeDxe.inf=0D +=0D +!if $(DISABLE_RESET_SYSTEM) =3D=3D FALSE=0D +INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf= =0D +!endif=0D +=0D +!if $(VARIABLE_SUPPORT) =3D=3D "EMU"=0D + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf=0D +!elseif $(VARIABLE_SUPPORT) =3D=3D "SPI"=0D + INF UefiPayloadPkg/FvbRuntimeDxe/FvbSmm.inf=0D + INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.i= nf=0D + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf=0D + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf= =0D +!endif=0D +=0D +INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf=0D +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf=0D +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf=0D +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf=0D +INF MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.i= nf=0D +=0D +INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf=0D +!if $(BOOTSPLASH_IMAGE)=0D +INF MdeModulePkg/Logo/LogoDxe.inf=0D +!endif=0D +=0D +#=0D +# PCI Support=0D +#=0D +INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf=0D +INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf=0D +INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf=0D +INF OvmfPkg/Virtio10Dxe/Virtio10.inf=0D +=0D +#=0D +# Platform Driver=0D +#=0D +INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf=0D +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf=0D +INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf=0D +INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf=0D +INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf=0D +INF OvmfPkg/VirtioNetDxe/VirtioNet.inf=0D +INF OvmfPkg/VirtioRngDxe/VirtioRng.inf=0D +=0D +# RISC-V Core Drivers=0D +INF UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf=0D +INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf=0D +=0D +#=0D +# ISA Support=0D +#=0D +!if $(SERIAL_DRIVER_ENABLE) =3D=3D TRUE=0D +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf=0D +!endif=0D +#=0D +# Console Support=0D +#=0D +INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf=0D +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf=0D +INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.i= nf=0D +!if $(DISABLE_SERIAL_TERMINAL) =3D=3D FALSE=0D +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf=0D +!endif=0D +#=0D +# SCSI/ATA/IDE/DISK Support=0D +#=0D +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf=0D +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf=0D +INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf= =0D +!if $(ATA_ENABLE) =3D=3D TRUE=0D +INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf=0D +INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf=0D +!endif=0D +!if $(NVME_ENABLE) =3D=3D TRUE=0D +INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf=0D +!endif=0D +!if $(RAM_DISK_ENABLE) =3D=3D TRUE=0D +INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf=0D +!endif=0D +INF FatPkg/EnhancedFatDxe/Fat.inf=0D +=0D +#=0D +# ACPI Support=0D +#=0D +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf=0D +INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf=0D +INF OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf=0D +=0D +#=0D +# UEFI network modules=0D +#=0D +!if $(NETWORK_DRIVER_ENABLE) =3D=3D TRUE=0D + !include NetworkPkg/Network.fdf.inc=0D +!endif=0D +=0D +#=0D +# Shell=0D +#=0D +!if $(SHELL_TYPE) =3D=3D BUILD_SHELL=0D +INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf=0D +!if $(PERFORMANCE_MEASUREMENT_ENABLE) =3D=3D TRUE=0D +INF ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf=0D +!endif=0D +INF ShellPkg/Application/Shell/Shell.inf=0D +!endif=0D +=0D +=0D +##########################################################################= ######=0D +#=0D +# Rules are use with the [FV] section's module INF type to define=0D +# how an FFS file is created for a given INF file. The following Rule are = the default=0D +# rules for the different module type. User can add the customized rules t= o define the=0D +# content of the FFS file.=0D +#=0D +##########################################################################= ######=0D +=0D +[Rule.Common.SEC]=0D + FILE SEC =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + }=0D +=0D +[Rule.Common.PEI_CORE]=0D + FILE PEI_CORE =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING =3D"$(MODULE_NAME)" Optional=0D + VERSION STRING =3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBE= R)=0D + }=0D +=0D +[Rule.Common.PEIM]=0D + FILE PEIM =3D $(NAMED_GUID) {=0D + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depe= x=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).ef= i=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBE= R)=0D + }=0D +=0D +[Rule.Common.DXE_CORE]=0D + FILE DXE_CORE =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBER= )=0D + }=0D +=0D +[Rule.Common.DXE_DRIVER]=0D + FILE DRIVER =3D $(NAMED_GUID) {=0D + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depe= x=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBER= )=0D + }=0D +=0D +[Rule.Common.DXE_RUNTIME_DRIVER]=0D + FILE DRIVER =3D $(NAMED_GUID) {=0D + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depe= x=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBER= )=0D + }=0D +=0D +[Rule.Common.UEFI_DRIVER]=0D + FILE DRIVER =3D $(NAMED_GUID) {=0D + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depe= x=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBER= )=0D + }=0D +=0D +[Rule.Common.UEFI_DRIVER.BINARY]=0D + FILE DRIVER =3D $(NAMED_GUID) {=0D + DXE_DEPEX DXE_DEPEX Optional |.depex=0D + PE32 PE32 Align=3D4K |.efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBE= R)=0D + }=0D +=0D +[Rule.Common.UEFI_APPLICATION]=0D + FILE APPLICATION =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBER= )=0D + }=0D +=0D +[Rule.Common.UEFI_APPLICATION.BINARY]=0D + FILE APPLICATION =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K |.efi=0D + UI STRING=3D"$(MODULE_NAME)" Optional=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBE= R)=0D + }=0D +=0D +[Rule.Common.USER_DEFINED.ACPITABLE]=0D + FILE FREEFORM =3D $(NAMED_GUID) {=0D + RAW ACPI |.acpi=0D + RAW ASL |.aml=0D + }=0D +=0D +[Rule.Common.UEFI_APPLICATION.UI]=0D + FILE APPLICATION =3D $(NAMED_GUID) {=0D + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi=0D + UI STRING=3D"Enter Setup"=0D + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUMBE= R)=0D + }=0D diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf b/Ue= fiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf index c4f4f28eaa86..14d072e1198f 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf +++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf @@ -38,6 +38,8 @@ [Sources.X64] X64/VirtualMemory.c=0D X64/DxeLoadFunc.c=0D =0D +[Sources.RISCV64]=0D + RiscV64/DxeLoadFunc.c=0D [Packages]=0D MdePkg/MdePkg.dec=0D MdeModulePkg/MdeModulePkg.dec=0D @@ -78,7 +80,7 @@ [FeaturePcd.X64] gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUME= S=0D =0D =0D -[Pcd.IA32,Pcd.X64]=0D +[Pcd.IA32,Pcd.X64,Pcd.RISCV64]=0D gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile=0D gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ##= SOMETIMES_CONSUMES=0D gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ##= CONSUMES=0D diff --git a/UefiPayloadPkg/UefiPayloadEntry/RiscV64/DxeLoadFunc.c b/UefiPa= yloadPkg/UefiPayloadEntry/RiscV64/DxeLoadFunc.c new file mode 100644 index 000000000000..db44b38cc7c7 --- /dev/null +++ b/UefiPayloadPkg/UefiPayloadEntry/RiscV64/DxeLoadFunc.c @@ -0,0 +1,28 @@ +/** @file=0D + RISC-V specific functionality for DxeLoad.=0D +=0D + Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All right= s reserved.
=0D + Copyright (c) 2023, Rivos Inc=0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +=0D +/**=0D + Transfers control to DxeCore.=0D +=0D + This function performs a CPU architecture specific operations to execut= e=0D + the entry point of DxeCore with the parameters of HobList.=0D + It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase.=0D +=0D + @param DxeCoreEntryPoint The entry point of DxeCore.=0D + @param HobList The start of HobList passed to DxeCore= .=0D +=0D +**/=0D +VOID=0D +HandOffToDxeCore (=0D + IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint,=0D + IN EFI_PEI_HOB_POINTERS HobList=0D + )=0D +{=0D +}=0D --=20 2.34.1