From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by mx.groups.io with SMTP id smtpd.web10.4896.1670470905214385453 for ; Wed, 07 Dec 2022 19:41:45 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@canonical.com header.s=20210705 header.b=uTtFhUpd; spf=pass (domain: canonical.com, ip: 185.125.188.123, mailfrom: heinrich.schuchardt@canonical.com) Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id C775D4154A for ; Thu, 8 Dec 2022 03:41:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1670470903; bh=/EfWYsvRrE47dZdObIu2kMPgBZNFQO+hNGg1oAtVfgU=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=uTtFhUpd72Eu0jA066wI5sWRxJCN5iGrqag6lMQG+tRyq3paZdVAkUxxtH1KOk9YN 78mcHqggjfW1NAA+ABmyzKNDQFk4FSLflTVjWJjOU4ittadqZaqYC73ppXaaBZo0KN Q/+Ld/pnliEaCOnPs6t7chM7/UXOO5rx39W3rfQPMRUFW4h0kMOoX5gbdQqXAtnaap 2rqlJBv994/uwv2ezxIGY0HXp4x+W0sALL1Fd1xjvcm0dmcIsUzotsbdPNNIU8aosD RzLQzNLWWeKJe+LwC245ivw8i0FBUmCbEpo89BnK+N+DMAjvXD61SI61wMbC3f7Imf KZit/pG6/H0nQ== Received: by mail-ej1-f69.google.com with SMTP id ds15-20020a170907724f00b007c0abebc958so271233ejc.2 for ; Wed, 07 Dec 2022 19:41:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/EfWYsvRrE47dZdObIu2kMPgBZNFQO+hNGg1oAtVfgU=; b=G8PmTeLhOmuYsCz1p+C7Sh6+HuoaFIoph1stfRR56AeRlQ1pwSd6f7P2VVedM8CR7a ktC6vx97bEcMXtMfHXW7SkXP6pNLLDhkVupIHnCmfFxPaNDIoA2iWn2l33K8dVpcJ5rf MuMD603HzYgnI11coAHEqFr8i0Mc7vh3FJQx8qYWr7DOHxXOHx7f/zw09b9f8GaXdfxP xcY3uuAiPVqHCcM38opN2oM5xFY9hgpbOrCbEY0LZ+Gl2AGO0TwvZCIYgiHNYUFdn5jS CfvOLvpcOMLv9uEyW3E6tBxIv+aBRgXhUGu9oZDbO1HL5r7TeUYl6I2HFl3wt9iUItcl tBmw== X-Gm-Message-State: ANoB5pnH9wPwU75an19AlEC1840SLhmefRtEag1KFxjlNO+VlQzzqv26 SUFneqNblRYsNZoZB02//lYleNucH/88z/oyC3D+EvAnVuVgCG8hT3WGeYCXf3L+S/+mfKh3YZY DUQl55YTg6UcSvZaao0vL/w8awH02qnM= X-Received: by 2002:a17:906:524b:b0:7ad:a030:485c with SMTP id y11-20020a170906524b00b007ada030485cmr75726989ejm.605.1670466840240; Wed, 07 Dec 2022 18:34:00 -0800 (PST) X-Google-Smtp-Source: AA0mqf6A7PqLnf4244iKkfTeM7nSarLcpMqlYlGKDZPYGx4FDgvsNwQ4/IuC6nMD5JBpX0cKew5DWA== X-Received: by 2002:a17:906:524b:b0:7ad:a030:485c with SMTP id y11-20020a170906524b00b007ada030485cmr75726980ejm.605.1670466839758; Wed, 07 Dec 2022 18:33:59 -0800 (PST) Received: from [192.168.123.94] (ip-088-152-145-137.um26.pools.vodafone-ip.de. [88.152.145.137]) by smtp.gmail.com with ESMTPSA id ca13-20020a170906a3cd00b007c08439161dsm9170444ejb.50.2022.12.07.18.33.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Dec 2022 18:33:59 -0800 (PST) Message-ID: <879d35d0-98c7-1deb-6e5e-6b21fbc242b5@canonical.com> Date: Thu, 8 Dec 2022 03:33:58 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [RFC PATCH V2 18/19] RISC-V: Add Qemu Virt platform support To: Sunil V L Cc: Jian J Wang , Liming Gao , Eric Dong , Ray Ni , Rahul Kumar , Debkumar De , Catharine West , Daniel Schaefer , Abner Chang , Leif Lindholm , Andrew Fish , Ard Biesheuvel , Anup Patel , devel@edk2.groups.io References: <20220907113626.540065-1-sunilvl@ventanamicro.com> <20220907113626.540065-19-sunilvl@ventanamicro.com> From: Heinrich Schuchardt In-Reply-To: <20220907113626.540065-19-sunilvl@ventanamicro.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 9/7/22 13:36, Sunil V L wrote: > Add build infrastructure files to boot qemu virt machine. > > EDK2 will boot as S-mode payload of opensbi. There is no > integrated opensbi (M-mode firmware) within EDK2 for virt > machine. > > It relies on the RISC-V calling convention that M-mode firmware like > opensbi will pass the BootHartId and the DTB to EDK2. This helps > to simplify the platform specific PCD variables required. It > can parse the DTB to know all the details. Even for future ACPI > support, EDK2 can parse the DTB to create static tables. > > Signed-off-by: Sunil V L > --- > OvmfPkg/RiscVVirt/RiscVVirt.dsc | 713 ++++++++++++++++++++ > OvmfPkg/RiscVVirt/RiscVVirt.fdf | 379 +++++++++++ > OvmfPkg/RiscVVirt/RiscVVirt.fdf.inc | 49 ++ > OvmfPkg/RiscVVirt/VarStore.fdf.inc | 79 +++ > 4 files changed, 1220 insertions(+) > > diff --git a/OvmfPkg/RiscVVirt/RiscVVirt.dsc b/OvmfPkg/RiscVVirt/RiscVVirt.dsc > new file mode 100644 > index 000000000000..d189c047e817 > --- /dev/null > +++ b/OvmfPkg/RiscVVirt/RiscVVirt.dsc > @@ -0,0 +1,713 @@ > +## @file > +# RISC-V EFI on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
> +# > +# 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/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 Why should we disable IPv6? It is supported by QEMU. Best regards Heinrich > + 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/BaseSynchronizationLib.inf > + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf > + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf > + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf > + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf > + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf > + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf > + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf > + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf > + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf > + SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf > + PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf > + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf > + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf > + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf > + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf > + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf > + DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf > + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf > + CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf > + SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf > + VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf > + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf > + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf > + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf > + TimerLib|MdePkg/Library/ArchTimerLib/ArchTimerLib.inf > + TimeBaseLib|EmbeddedPkg//Library/TimeBaseLib/TimeBaseLib.inf > + RealTimeClockLib|EmbeddedPkg//Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf > + NorFlashPlatformLib|ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf > + DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf > +!else > + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf > + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf > +!endif > + > + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > + TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf > +!else > + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf > + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf > +!endif > + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf > + > +!if $(HTTP_BOOT_ENABLE) == TRUE > + HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf > +!endif > + > +# ACPI not supported yet. > + SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf > + OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf > + > +[LibraryClasses.common] > +!if $(SECURE_BOOT_ENABLE) == TRUE > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > +!endif > + > + RiscVSbiLib|MdePkg/Library/RiscVSbiLib/RiscVSbiLib.inf > + CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.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/BasePciCapPciSegmentLib.inf > + PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf > + DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf > + > + # Virtio Support > + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > + VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf > + QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf > + QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf > + QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf > + > + # PCI support > + PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf > + PciHostBridgeLib|MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf > + > + # Boot Manager > +!if $(TPM2_ENABLE) == TRUE > + Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf > + Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.inf > + TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > + TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.inf > +!else > + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf > + TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf > +!endif > + > + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf > + PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf > + > + # TODO: This would need to be made common for RISC-V and ARM or need to copied > + PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf > + > + FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf > + QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.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 > + > + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf > + ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf > +!endif > + > + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf > + PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > +[LibraryClasses.common.PEI_CORE] > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf > + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf > + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf > + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.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.inf > + > +[LibraryClasses.common.PEIM] > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf > + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf > + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf > + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf > + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.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/PeiResourcePublicationLib.inf > + ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf > +!endif > + > +[LibraryClasses.common.DXE_CORE] > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf > + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf > + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf > + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf > +!endif > + > +[LibraryClasses.common.DXE_RUNTIME_DRIVER] > + 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/UefiMemoryAllocationLib.inf > + ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf > + ResetSystemLib|MdePkg/Library/ResetSystemLib/ResetSystemLib.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/UefiBootManagerLib.inf > + > +[LibraryClasses.common.UEFI_DRIVER] > + 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/UefiMemoryAllocationLib.inf > + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.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/VariablePolicyLib.inf > + PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > + PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf > + > +[LibraryClasses.common.DXE_DRIVER] > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.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/DxeDebugAgentLib.inf > +!endif > + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf > + PlatformUpdateProgressLib|MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf > + > +[LibraryClasses.common.UEFI_APPLICATION] > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf > + > +################################################################################ > +# > +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. > +# > +################################################################################ > +[PcdsFeatureFlag] > + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > + > +[PcdsFixedAtBuild] > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 > + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000 > + 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|0x2 > +!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|0x04 > + gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|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|FALSE > + 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|640 > + 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 > + # > + UefiCpuPkg/SecCore/SecCoreRiscV.inf { > + > + NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > + } > + > + # > + # PEI Phase modules > + # > + MdeModulePkg/Core/Pei/PeiMain.inf > + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { > + > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf > + MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf > + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { > + > + NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > + } > + > + MdeModulePkg/Universal/PlatformPei/PlatformPei.inf { > + > + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + PlatformPeiLib|MdePkg/Library/PlatformPeiLib/PlatformPeiLib.inf > + } > + > + # > + # DXE Phase modules > + # > + MdeModulePkg/Core/Dxe/DxeMain.inf { > + > + NULL|MdeModulePkg//Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + } > + > + MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf > + MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf > + > + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { > + > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + > + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { > + > + 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 > + # > + MdeModulePkg/Universal/TimerDxe/TimerDxe.inf > + > + # > + # TODO: Move this to OvmfPkg? > + ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > + # > + # RISC-V Core module > + # > + UefiCpuPkg/CpuDxe/CpuDxe.inf > + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > + > + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { > + > + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > + } > + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > + > +# Graphic console > + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.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/NullMemoryTestDxe.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 { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > + > + 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 > + > + # > + # TODO: Move this to OVMF/Generic > + # > + ArmVirtPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > + # > + # FAT filesystem + GPT/MBR partitioning + UDF filesystem > + # > + FatPkg/EnhancedFatDxe/Fat.inf > + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + > + OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + ShellPkg/Application/Shell/Shell.inf { > + > + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf > + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf > + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf > + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.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/UefiShellBcfgCommandLib.inf > + > + > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > + } > + > +!if $(SECURE_BOOT_ENABLE) == TRUE > + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf > +!endif > + > + # > + # Bds > + # > + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { > + > + 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/DriverHealthManagerDxe.inf > + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > + MdeModulePkg/Logo/LogoDxe.inf > + MdeModulePkg/Application/UiApp/UiApp.inf { > + > + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf > + } > + OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { > + > + NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf > + } > + > +# HTTPS(secure) support in GUI for updating ssl keys for PXE boot > + MdeModulePkg/Application/UiApp/UiApp.inf { > + > + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf > + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + } > + > +# TFTP support for PXE boot > + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + # HTTP support for PXE boot > + ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + HttpLib|NetworkPkg/Library/DxeHttpLib/DxeHttpLib.inf > + } > + ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + 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 { > + > + 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 { > + > + 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|0xFFFFFFFFFFFFFFFF > + > + 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/RiscVVirt/RiscVVirt.fdf b/OvmfPkg/RiscVVirt/RiscVVirt.fdf > new file mode 100644 > index 000000000000..9996d8a299f8 > --- /dev/null > +++ b/OvmfPkg/RiscVVirt/RiscVVirt.fdf > @@ -0,0 +1,379 @@ > +# @file > +# Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +# Platform definitions > +# > + > +!include RiscVVirt.fdf.inc > + > +################################################################################ > + > +[FD.RISCV_VIRT] > +BaseAddress = $(FW_BASE_ADDRESS) > +Size = $(FW_SIZE) > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = $(FW_BLOCKS) > + > +$(SECFV_OFFSET)|$(SECFV_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdSecMemFvBase|gEfiMdeModulePkgTokenSpaceGuid.PcdSecMemFvSize > +FV = SECFV > + > +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) > +FV = FVMAIN_COMPACT > + > +!include VarStore.fdf.inc > +################################################################################ > + > +[FD.RISCV_MEMFD] > +BaseAddress = $(MEMFD_BASE_ADDRESS) > +Size = 0x00a00000 > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = 0xa00 > + > +0x00000000|0x00010000 > +gEfiMdeModulePkgTokenSpaceGuid.PcdSecPeiTempRamBase|gEfiMdeModulePkgTokenSpaceGuid.PcdSecPeiTempRamSize > + > +0x00010000|0x001000 > +gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize > + > +0x00040000|0x00080000 > +gEfiMdeModulePkgTokenSpaceGuid.PcdPeiMemFvBase|gEfiMdeModulePkgTokenSpaceGuid.PcdPeiMemFvSize > +FV = PEIFV > + > +0x00100000|0x00900000 > +gEfiMdeModulePkgTokenSpaceGuid.PcdDxeMemFvBase|gEfiMdeModulePkgTokenSpaceGuid.PcdDxeMemFvSize > +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 UefiCpuPkg/SecCore/SecCoreRiscV.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/ReportStatusCodeRouterPei.inf > + INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf > + 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/ReportStatusCodeRouterPei.inf > +INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf > +INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > + > +# RISC-V Platform PEI Driver > +INF MdeModulePkg/Universal/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/ReportStatusCodeRouterRuntimeDxe.inf > +INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.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 > + > +# TODO: Move this to OVMF? > +INF ArmVirtPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > +# RISC-V Platform Drivers > +INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > +# RISC-V Core Drivers > +INF MdeModulePkg/Universal/TimerDxe/TimerDxe.inf > +INF UefiCpuPkg/CpuDxe/CpuDxe.inf > + > +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > + > +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > +!if $(SECURE_BOOT_ENABLE) == TRUE > + INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf > +!endif > + > +INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.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/GraphicsConsoleDxe.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/NullMemoryTestDxe.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/LinuxInitrdDynamicShellCommand.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/RiscVVirt/RiscVVirt.fdf.inc b/OvmfPkg/RiscVVirt/RiscVVirt.fdf.inc > new file mode 100644 > index 000000000000..6e08e8e9ba71 > --- /dev/null > +++ b/OvmfPkg/RiscVVirt/RiscVVirt.fdf.inc > @@ -0,0 +1,49 @@ > +## @file > +# Definitions of Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > +[Defines] > +DEFINE BLOCK_SIZE = 0x1000 > + > +DEFINE FW_BASE_ADDRESS = 0x22000000 > +DEFINE FW_SIZE = 0x00300000 > +DEFINE FW_BLOCKS = 0x300 > + > +DEFINE CODE_BASE_ADDRESS = $(FW_BASE_ADDRESS) > +DEFINE CODE_SIZE = 0x00240000 > +DEFINE CODE_BLOCKS = 0x240 > + > + > +# > +# 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 > +# > +DEFINE VARS_OFFSET = 0x00240000 > +DEFINE VARS_SIZE = 0x00040000 > +DEFINE VARS_FTW_WORKING_OFFSET = 0x00280000 > +DEFINE VARS_FTW_WORKING_SIZE = 0x00040000 > +DEFINE VARS_FTW_SPARE_OFFSET = 0x002c0000 > +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 > diff --git a/OvmfPkg/RiscVVirt/VarStore.fdf.inc b/OvmfPkg/RiscVVirt/VarStore.fdf.inc > new file mode 100644 > index 000000000000..fd97db71d29d > --- /dev/null > +++ b/OvmfPkg/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.
> +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
> +# Copyright (C) 2014, Red Hat, Inc. > +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +$(VARS_OFFSET)|$(VARS_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.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|gEfiMdeModulePkgTokenSpaceGuid.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|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > +# > +#NV_FTW_SPARE