[AMD Official Use Only - General] Acked-by: Abner Chang <abner.ch...@amd.com>
Thanks for making RiscVVirt happened. Abner > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sunil V L > via groups.io > Sent: Saturday, October 15, 2022 12:49 AM > To: devel@edk2.groups.io > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>; Jiewen Yao > <jiewen....@intel.com>; Jordan Justen <jordan.l.jus...@intel.com>; Gerd > Hoffmann <kra...@redhat.com> > Subject: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 32/34] > OvmfPkg: RiscVVirt: Add Qemu Virt platform support > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > REF: > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugz > illa.tianocore.org%2Fshow_bug.cgi%3Fid%3D4076&data=05%7C01%7Ca > bner.chang%40amd.com%7Cfa8ce163113f40a674b108daae048fd5%7C3dd896 > 1fe4884e608e11a82d994e183d%7C0%7C0%7C638013631882315450%7CUnkn > own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik > 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tS3kG3rGf%2BR > qH%2F4stn4SyeBXDPpROcbdpcxGWHkx%2BGQ%3D&reserved=0 > > Add infrastructure files to build edk2 for RISC-V qemu virt machine. > > - EDK2 will boot as S-mode payload of opensbi. > - It supports building > either code and variables in unified flash or in two separate drives > via build time option UNIFIED_NVVARS. > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Sunil V L <suni...@ventanamicro.com> > --- > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc | 726 > ++++++++++++++++++++ > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf | 406 +++++++++++ > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc | 66 ++ > OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc | 79 +++ > 4 files changed, 1277 insertions(+) > > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > new file mode 100644 > index 000000000000..63d95e91abe2 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > @@ -0,0 +1,726 @@ > +## @file > +# RISC-V EFI on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +######################################################### > ####################### > +# > +# Defines Section - statements that will be processed to create a Makefile. > +# > +######################################################### > ####################### > +[Defines] > + PLATFORM_NAME = RiscVVirt > + PLATFORM_GUID = 39DADB39-1B21-4867-838E-830B6149B9E0 > + PLATFORM_VERSION = 0.1 > + DSC_SPECIFICATION = 0x0001001c > + OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME) > + SUPPORTED_ARCHITECTURES = RISCV64 > + BUILD_TARGETS = DEBUG|RELEASE|NOOPT > + SKUID_IDENTIFIER = DEFAULT > + FLASH_DEFINITION = OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > + > + # > + # Enable below options may cause build error or may not work on > + # the initial version of RISC-V package > + # Defines for default states. These can be changed on the command line. > + # -D FLAG=VALUE > + # > + DEFINE SECURE_BOOT_ENABLE = FALSE > + DEFINE DEBUG_ON_SERIAL_PORT = TRUE > + > + # > + # Network definition > + # > + DEFINE NETWORK_SNP_ENABLE = FALSE > + DEFINE NETWORK_IP6_ENABLE = FALSE > + DEFINE NETWORK_TLS_ENABLE = TRUE > + DEFINE NETWORK_HTTP_BOOT_ENABLE = TRUE > + DEFINE NETWORK_ISCSI_ENABLE = FALSE > + DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE > + > +[BuildOptions] > + GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > +!ifdef $(SOURCE_DEBUG_ENABLE) > + GCC:*_*_RISCV64_GENFW_FLAGS = --keepexceptiontable > +!endif > + > +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > + GCC: *_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > + MSFT: *_*_*_DLINK_FLAGS = /ALIGN:4096 > + > +######################################################### > ####################### > +# > +# SKU Identification section - list of all SKU IDs supported by this > Platform. > +# > +######################################################### > ####################### > +[SkuIds] > + 0|DEFAULT > + > +######################################################### > ####################### > +# > +# Library Class section - list of all Library Classes needed by this > Platform. > +# > +######################################################### > ####################### > + > +!include MdePkg/MdeLibs.dsc.inc > + > +[LibraryClasses] > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf > + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf > + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf > + > SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchroniz > ationLib.inf > + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > + > PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanc > eLibNull.inf > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCac > heMaintenanceLib.inf > + > UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDeco > mpressLib.inf > + > UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiService > sLib.inf > + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf > + > CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.i > nf > + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf > + > DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTabl > eLib.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPort > Lib16550.inf > + > PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePla > tformHookLibNull.inf > + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf > + > UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBo > otServicesTableLib.inf > + > UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib > /UefiRuntimeServicesTableLib.inf > + > UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntry > Point.inf > + > UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiA > pplicationEntryPoint.inf > + > DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiD > evicePathLibDevicePathProtocol.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > + > SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementL > ib/DxeSecurityManagementLib.inf > + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf > + > CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/Custo > mizedDisplayLib.inf > + SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf > + > VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/Base > VariableFlashInfoLib.inf > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLi > bRuntimeDxe.inf > + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > + > VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/Va > riablePolicyHelperLib.inf > + TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf > + TimeBaseLib|EmbeddedPkg//Library/TimeBaseLib/TimeBaseLib.inf > + > RealTimeClockLib|EmbeddedPkg//Library/VirtualRealTimeClockLib/VirtualRe > alTimeClockLib.inf > +!ifdef $(UNIFIED_VARSTORE) > + > NorFlashPlatformLib|OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUni > fiedLib.inf > +!else > + > NorFlashPlatformLib|OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib. > inf > +!endif > + > QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibD > ebug/PeCoffExtraActionLibDebug.inf > + > DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicati > onLibSerialPort/DebugCommunicationLibSerialPort.inf > +!else > + > PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BaseP > eCoffExtraActionLibNull.inf > + > DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLi > bNull.inf > +!endif > + > + > DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/Bas > eDebugPrintErrorLevelLib.inf > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > + > TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTp > mMeasurementLib.inf > + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf > +!else > + > TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/Tp > mMeasurementLibNull.inf > + > AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableL > ibNull.inf > +!endif > + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf > + > +!if $(HTTP_BOOT_ENABLE) == TRUE > + HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf > +!endif > + > + SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf > + > OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeL > ib/BaseOrderedCollectionRedBlackTreeLib.inf > + > +[LibraryClasses.common] > +!if $(SECURE_BOOT_ENABLE) == TRUE > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > +!endif > + > + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf > + > + # PCI Libraries > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > + PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf > + > PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCa > pPciSegmentLib.inf > + PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf > + > DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLi > b.inf > + > + # Virtio Support > + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > + > VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDev > iceLib.inf > + > QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3Li > bNull.inf > + > QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/ > QemuFwCfgSimpleParserLib.inf > + > QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/Generic > QemuLoadImageLib.inf > + > + # PCI support > + > PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibP > ci.inf > + > PciHostBridgeLib|MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridg > eLibNull.inf > + > + # Boot Manager > +!if $(TPM2_ENABLE) == TRUE > + > Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandL > ib.inf > + > Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/D > xeTcg2PhysicalPresenceLib.inf > + > TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTp > mMeasurementLib.inf > + > TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchy > Lib/PeiDxeTpmPlatformHierarchyLib.inf > +!else > + > TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/Tp > mMeasurementLibNull.inf > + > TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchy > LibNull/PeiDxeTpmPlatformHierarchyLib.inf > +!endif > + > + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf > + > PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmP > rintScLib.inf > + > + > PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLibVirt/Pla > tformBootManagerLib.inf > + > + > FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBuffer > BltLib.inf > + > QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrder > Lib.inf > + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + > +[LibraryClasses.common.SEC] > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/Bas > eExtractGuidedSectionLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAg > entLib.inf > +!endif > + > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + > PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.i > nf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > +[LibraryClasses.common.PEI_CORE] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/Pei > ServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.in > f > + > +[LibraryClasses.common.PEIM] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/Pei > ServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiR > esourcePublicationLib.inf > + > ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiEx > tractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAg > entLib.inf > +!endif > + > ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiReso > urcePublicationLib.inf > + > +[LibraryClasses.common.DXE_CORE] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLi > b/DxeCoreMemoryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeE > xtractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgen > tLib.inf > +!endif > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.DXE_RUNTIME_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCod > eLib/RuntimeDxeReportStatusCodeLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > +!if $(SECURE_BOOT_ENABLE) == TRUE > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > +!endif > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.UEFI_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > + > VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLi > b.inf > + > PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciEx > pressLib.inf > + > PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLi > b.inf > + > PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > + > PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBrid > geUtilityLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.DXE_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgen > tLib.inf > +!endif > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > PlatformUpdateProgressLib|MdeModulePkg/Library/PlatformBootManager > LibNull/PlatformBootManagerLibNull.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.UEFI_APPLICATION] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +######################################################### > ####################### > +# > +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. > +# > +######################################################### > ####################### > +[PcdsFeatureFlag] > + > gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FAL > SE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > + > +[PcdsFixedAtBuild] > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationC > hange|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8 > 000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard|FALSE > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 > + > + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x02 > + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F > +!ifdef $(SOURCE_DEBUG_ENABLE) > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 > +!else > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F > +!endif > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x > 2 > +!endif > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + # override the default values from SecurityPkg to ensure images from all > sources are verified in secure boot > + > gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04 > + > gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x0 > 4 > + > gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolic > y|0x04 > +!endif > + > + # > + # F2 for UI APP > + # > + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, > 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, > 0x23, 0x31 } > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"2.7" > + > + # Serial Port > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10000000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|9600 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FAL > SE > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|3686400 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1 > + > +######################################################### > ####################### > +# > +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this > Platform > +# > +######################################################### > ####################### > + > +[PcdsDynamicDefault] > + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 > + > + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|10 > + > + # Set video resolution for text setup. > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|64 > 0 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 > + > +######################################################### > ####################### > +# > +# Components Section - list of all EDK II Modules needed by this Platform. > +# > +######################################################### > ####################### > +[Components] > + > + # > + # SEC Phase modules > + # > + OvmfPkg/Sec/SecMain.inf { > + <LibraryClasses> > + > NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDec > ompressLib.inf > + } > + > + # > + # PEI Phase modules > + # > + MdeModulePkg/Core/Pei/PeiMain.inf > + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { > + <LibraryClasses> > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > + > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { > + <LibraryClasses> > + > NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDec > ompressLib.inf > + } > + > + OvmfPkg/PlatformPei/PlatformPei.inf { > + <LibraryClasses> > + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf > + } > + > + # > + # DXE Phase modules > + # > + MdeModulePkg/Core/Dxe/DxeMain.inf { > + <LibraryClasses> > + > NULL|MdeModulePkg//Library/LzmaCustomDecompressLib/LzmaCustomDe > compressLib.inf > + > DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + } > + > + > MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt > atusCodeRouterRuntimeDxe.inf > + > MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHan > dlerRuntimeDxe.inf > + > + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { > + <LibraryClasses> > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + > + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { > + <LibraryClasses> > + > NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib > .inf > + } > +!else > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > +!endif > + > + MdeModulePkg/Universal/Metronome/Metronome.inf > + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > + > + # > + # RISC-V Platform module > + # > + UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf > + > + OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > + # > + # RISC-V Core module > + # > + UefiCpuPkg/CpuDxe/CpuDxe.inf > + > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime > Dxe.inf > + > + > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.in > f > + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > { > + <LibraryClasses> > + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > + } > + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > + > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCoun > terRuntimeDxe.inf > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > + > +# Graphic console > + > MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD > xe.inf > + > + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > + > MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > + > MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryT > estDxe.inf > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > + > + # > + # Network Support > + # > + !include NetworkPkg/Network.dsc.inc > + > + # > + # Usb Support > + # > + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf > + MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf > + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > + # > + # PCI support > + # > + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf { > + <LibraryClasses> > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > + <LibraryClasses> > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > + OvmfPkg/Virtio10Dxe/Virtio10.inf > + > + # > + # Video support > + # > + OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > + OvmfPkg/PlatformDxe/Platform.inf > + > + # > + # Platform Driver > + # > + OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf > + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > + OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf > + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > + OvmfPkg/VirtioNetDxe/VirtioNet.inf > + OvmfPkg/VirtioRngDxe/VirtioRng.inf > + > + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > + OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf > + OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > + # > + # FAT filesystem + GPT/MBR partitioning + UDF filesystem > + # > + FatPkg/EnhancedFatDxe/Fat.inf > + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + > + > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma > nd.inf { > + <PcdsFixedAtBuild> > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + <LibraryClasses> > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + ShellPkg/Application/Shell/Shell.inf { > + <LibraryClasses> > + > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellComma > ndLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCo > mmandLib.inf > + > NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1 > CommandsLib.inf > + > HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingL > ib.inf > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > + > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfg > CommandLib.inf > + > + <PcdsFixedAtBuild> > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > + } > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi > gDxe.inf > +!endif > + > + # > + # Bds > + # > + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { > + <LibraryClasses> > + > DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + } > + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > + > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager > Dxe.inf > + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > + MdeModulePkg/Logo/LogoDxe.inf > + MdeModulePkg/Application/UiApp/UiApp.inf { > + <LibraryClasses> > + > NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMainte > nanceManagerUiLib.inf > + } > + OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { > + <LibraryClasses> > + NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf > + } > + > +# HTTPS(secure) support in GUI for updating ssl keys for PXE boot > + MdeModulePkg/Application/UiApp/UiApp.inf { > + <LibraryClasses> > + > NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMainte > nanceManagerUiLib.inf > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + } > + > +# TFTP support for PXE boot > + > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. > inf { > + <PcdsFixedAtBuild> > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + <LibraryClasses> > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf { > + <PcdsFixedAtBuild> > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + <LibraryClasses> > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + # HTTP support for PXE boot > + > ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand > .inf { > + <PcdsFixedAtBuild> > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + <LibraryClasses> > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + HttpLib|NetworkPkg/Library/DxeHttpLib/DxeHttpLib.inf > + } > + ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf { > + <PcdsFixedAtBuild> > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + <LibraryClasses> > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + HttpLib|NetworkPkg/Library/DxeHttpLib/DxeHttpLib.inf > + } > + > +# HTTPS (secure) support for PXE boot > + NetworkPkg/TlsDxe/TlsDxe.inf { > + <LibraryClasses> > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf > + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > + RngLib|MdePkg/Library/DxeRngLib/DxeRngLib.inf > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + } > + NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf { > + <LibraryClasses> > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf > + } > + > +[PcdsDynamicDefault.common] > + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this > + # PCD and PcdPciDisableBusEnumeration above have not been assigned > yet > + > gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFF > FF > + > + gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0 > + > +[PcdsFeatureFlag.common] > + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE > + > gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE > + > + ## If TRUE, Graphics Output Protocol will be installed on virtual handle > created by ConsplitterDxe. > + # It could be set FALSE to save size. > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > new file mode 100644 > index 000000000000..3e0e0eb9ae77 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > @@ -0,0 +1,406 @@ > +# @file > +# Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +# Platform definitions > +# > + > +!include RiscVVirt.fdf.inc > + > +######################################################### > ####################### > +!ifdef UNIFIED_VARSTORE > +[FD.RISCV_VIRT] > +BaseAddress = > $(FW_BASE_ADDRESS)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAdd > ress > +Size = > $(FW_SIZE)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = $(FW_BLOCKS) > + > +$(SECFV_OFFSET)|$(SECFV_SIZE) > +FV = SECFV > + > +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFvBaseAddress|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfFvSize > +FV = FVMAIN_COMPACT > + > +!include VarStore.fdf.inc > + > +!else > +[FD.RISCV_CODE] > +BaseAddress = > $(FW_BASE_ADDRESS)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAdd > ress > +Size = $(CODE_SIZE) > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = $(CODE_BLOCKS) > + > +$(SECFV_OFFSET)|$(SECFV_SIZE) > +FV = SECFV > + > +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFvBaseAddress|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfFvSize > +FV = FVMAIN_COMPACT > + > +######################################################### > ####################### > +[FD.RISCV_NVVARS] > +BaseAddress = $(VARS_BASE_ADDRESS) > +Size = $(VARS_SIZE) > +ErasePolarity = 1 > +BlockSize = $(VARS_BLOCK_SIZE) > +NumBlocks = $(VARS_BLOCKS) > + > +!include VarStore.fdf.inc > +!endif > +######################################################### > ####################### > + > +[FD.RISCV_MEMFD] > +BaseAddress = $(MEMFD_BASE_ADDRESS) > +Size = 0x00a00000 > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = 0xa00 > + > +0x00000000|0x00010000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmf > PkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize > + > +0x00010000|0x001000 > +gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefi > OvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize > + > +0x00040000|0x00080000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfPeiMemFvSize > +FV = PEIFV > + > +0x00100000|0x00900000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgT > okenSpaceGuid.PcdOvmfDxeMemFvSize > +FV = DXEFV > + > +######################################################### > ################################# > + > +[FV.SECFV] > +BlockSize = 0x1000 > +FvAlignment = 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS = TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS = TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > + > +# > +# SEC Phase modules > +# > +# The code in this FV handles the initial firmware startup, and > +# decompresses the PEI and DXE FVs which handles the rest of the boot > sequence. > +# > +INF OvmfPkg/Sec/SecMain.inf > + > +######################################################### > ####################### > +[FV.PEIFV] > +BlockSize = 0x10000 > +FvAlignment = 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS = TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS = TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > + > +APRIORI PEI { > + INF > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > + INF > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +} > + > +# > +# PEI Phase modules > +# > +INF MdeModulePkg/Core/Pei/PeiMain.inf > +INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +INF > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > +INF > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > +INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > + > +# RISC-V Platform PEI Driver > +INF OvmfPkg/PlatformPei/PlatformPei.inf > + > +######################################################### > ####################### > + > +[FV.DXEFV] > +BlockSize = 0x10000 > +FvAlignment = 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS = TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS = TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > + > +APRIORI DXE { > + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > +} > + > +# > +# DXE Phase modules > +# > +INF MdeModulePkg/Core/Dxe/DxeMain.inf > + > +INF > MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt > atusCodeRouterRuntimeDxe.inf > +INF > MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHan > dlerRuntimeDxe.inf > +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > + > +# > +# PCI support > +# > +INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf > +INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > +INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > +INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > +INF OvmfPkg/Virtio10Dxe/Virtio10.inf > + > +# > +# Video support > +# > +INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > +INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > +INF OvmfPkg/PlatformDxe/Platform.inf > + > +# > +# Platform Driver > +# > +INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf > +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > +INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf > +INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > +INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > +INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > +INF OvmfPkg/VirtioRngDxe/VirtioRng.inf > +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > + > +INF MdeModulePkg/Universal/Metronome/Metronome.inf > +INF > EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > + > +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > +INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf > +INF OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > +# RISC-V Platform Drivers > +INF OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > +# RISC-V Core Drivers > +INF UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf > +INF UefiCpuPkg/CpuDxe/CpuDxe.inf > + > +INF > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.in > f > + > +INF > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > +!if $(SECURE_BOOT_ENABLE) == TRUE > + INF > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi > gDxe.inf > +!endif > + > +INF > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime > Dxe.inf > +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > +INF > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCoun > terRuntimeDxe.inf > +INF > MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > +INF > MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > +INF > MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD > xe.inf > +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > +INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > +INF > MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > +INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > +INF > MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryT > estDxe.inf > +INF FatPkg/EnhancedFatDxe/Fat.inf > +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + > +!ifndef $(SOURCE_DEBUG_ENABLE) > +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > +!endif > + > +INF > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma > nd.inf > +INF ShellPkg/Application/Shell/Shell.inf > + > +# TFTP support for PXE boot > +INF > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. > inf > +INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf > + > +# HTTP support for PXE boot > +INF > ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand > .inf > +INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf > + > +# > +# Network modules > +# > +!if $(E1000_ENABLE) > + FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 { > + SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI > + } > +!endif > + > +!include NetworkPkg/Network.fdf.inc > + > +# > +# Usb Support > +# > +INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf > +INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf > +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > +INF > MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > +INF MdeModulePkg/Application/UiApp/UiApp.inf > +INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf > + > +######################################################### > ####################### > + > +[FV.FVMAIN_COMPACT] > +FvAlignment = 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS = TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS = TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > +FvNameGuid = 27A72E80-3118-4c0c-8673-AA5B4EFA9613 > + > +FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF > PROCESSING_REQUIRED = TRUE { > + # > + # These firmware volumes will have files placed in them uncompressed, > + # and then both firmware volumes will be compressed in a single > + # compression operation in order to achieve better overall compression. > + # > + SECTION FV_IMAGE = PEIFV > + SECTION FV_IMAGE = DXEFV > + } > + } > + > +[Rule.Common.SEC] > + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED { > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING ="$(MODULE_NAME)" Optional > + VERSION STRING ="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.PEI_CORE] > + FILE PEI_CORE = $(NAMED_GUID) { > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING ="$(MODULE_NAME)" Optional > + VERSION STRING ="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.PEIM] > + FILE PEIM = $(NAMED_GUID) { > + PEI_DEPEX PEI_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_CORE] > + FILE DXE_CORE = $(NAMED_GUID) { > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_RUNTIME_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_DRIVER.BINARY] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional |.depex > + PE32 PE32 Align=4K |.efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_APPLICATION] > + FILE APPLICATION = $(NAMED_GUID) { > + PE32 PE32 Align=4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_APPLICATION.BINARY] > + FILE APPLICATION = $(NAMED_GUID) { > + PE32 PE32 Align=4K |.efi > + UI STRING="$(MODULE_NAME)" Optional > + VERSION STRING="$(INF_VERSION)" Optional > BUILD_NUM=$(BUILD_NUMBER) > + } > + > +[Rule.Common.USER_DEFINED.ACPITABLE] > + FILE FREEFORM = $(NAMED_GUID) { > + RAW ACPI |.acpi > + RAW ASL |.aml > + } > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > new file mode 100644 > index 000000000000..5a2d96d53c8e > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > @@ -0,0 +1,66 @@ > +## @file > +# Definitions of Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > +[Defines] > +DEFINE BLOCK_SIZE = 0x1000 > + > +DEFINE PFLASH1_BASE = 0x22000000 > +DEFINE PFLASH2_BASE = 0x23000000 > + > +DEFINE FW_BASE_ADDRESS = $(PFLASH1_BASE) > +DEFINE FW_SIZE = 0x00300000 > +DEFINE FW_BLOCKS = 0x300 > + > +DEFINE CODE_BASE_ADDRESS = $(FW_BASE_ADDRESS) > +DEFINE CODE_SIZE = 0x00240000 > +DEFINE CODE_BLOCKS = 0x240 > + > +# > +# Separate varstore will start at 3rd pflash address > +# > +DEFINE VARS_BASE_ADDRESS = $(PFLASH2_BASE) > + > +DEFINE VARS_SIZE = 0x000C0000 > +DEFINE VARS_BLOCK_SIZE = 0x40000 > +DEFINE VARS_BLOCKS = 0x3 > + > +# > +# The size of memory region must be power of 2. > +# The base address must be aligned with the size. > +# > +# FW memory region > +# > +DEFINE SECFV_OFFSET = 0x00000000 > +DEFINE SECFV_SIZE = 0x00040000 > +DEFINE FVMAIN_OFFSET = 0x00040000 > +DEFINE FVMAIN_SIZE = 0x00200000 > + > +# > +# EFI Variable memory region. > +# The total size of EFI Variable FD must include > +# all of sub regions of EFI Variable > +# > +!ifdef $(UNIFIED_VARSTORE) > +DEFINE VARS_OFFSET = $(CODE_SIZE) > +!else > +DEFINE VARS_OFFSET = 0x00000000 > +!endif > +DEFINE VARS_LIVE_SIZE = 0x00040000 > +DEFINE VARS_FTW_WORKING_OFFSET = $(VARS_OFFSET) + > $(VARS_LIVE_SIZE) > +DEFINE VARS_FTW_WORKING_SIZE = 0x00040000 > +DEFINE VARS_FTW_SPARE_OFFSET = $(VARS_FTW_WORKING_OFFSET) > + $(VARS_FTW_WORKING_SIZE) > +DEFINE VARS_FTW_SPARE_SIZE = 0x00040000 > + > +# > +# Base Address where SEC phase will decompress and load > +# the PEI and DXE FVs > +# > +DEFINE MEMFD_BASE_ADDRESS = 0x80200000 > + > +SET gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency = > 10000000 > diff --git a/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > b/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > new file mode 100644 > index 000000000000..30b170d77997 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > @@ -0,0 +1,79 @@ > +## @file > +# FDF include file with Layout Regions that define an empty variable store. > +# > +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > +# Copyright (C) 2014, Red Hat, Inc. > +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +$(VARS_OFFSET)|$(VARS_LIVE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfi > MdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > +# > +# NV_VARIABLE_STORE > +# > +DATA = { > + ## This is the EFI_FIRMWARE_VOLUME_HEADER > + # ZeroVector [] > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + # FileSystemGuid: gEfiSystemNvDataFvGuid = > + # { 0xFFF12B8D, 0x7696, 0x4C8B, > + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} > + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, > + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, > + # FvLength: 0x20000 > + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, > + # Signature "_FVH" # Attributes > + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, > + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision > + 0x48, 0x00, 0x39, 0xF1, 0x00, 0x00, 0x00, 0x02, > + # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block > + 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, > + # Blockmap[1]: End > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + ## This is the VARIABLE_STORE_HEADER > +!if $(SECURE_BOOT_ENABLE) == TRUE > + # Signature: gEfiAuthenticatedVariableGuid = > + # { 0xaaf32c78, 0x947b, 0x439a, > + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} > + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, > + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, > +!else > + # Signature: gEfiVariableGuid = > + # { 0xddcf3616, 0x3275, 0x4164, > + # { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }} > + 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41, > + 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d, > +!endif > + # Size: 0x40000 > (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - > + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3FFB8 > + # This can speed up the Variable Dispatch a bit. > + 0xB8, 0xFF, 0x03, 0x00, > + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: > UINT32 > + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(VARS_FTW_WORKING_OFFSET)|$(VARS_FTW_WORKING_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|g > EfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > +# > +#NV_FTW_WROK > +# > +DATA = { > + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = > gEdkiiWorkingBlockSignatureGuid = > + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, > 0x1b, > 0x95 }} > + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, > + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, > + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, > Reserved > + 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, > + # WriteQueueSize: UINT64 > + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(VARS_FTW_SPARE_OFFSET)|$(VARS_FTW_SPARE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfi > MdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > +# > +#NV_FTW_SPARE > -- > 2.38.0 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#95479): https://edk2.groups.io/g/devel/message/95479 Mute This Topic: https://groups.io/mt/94330873/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-