From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 8AC71AC0921 for ; Wed, 10 Jan 2024 01:28:25 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=txMdka7zWz3cJkR/eFMsJAZJ1AFCVcQNspvc2CHOv3w=; c=relaxed/simple; d=groups.io; h=Subject:To:Cc:References:From:Message-ID:Date:User-Agent:MIME-Version:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Language:Content-Transfer-Encoding; s=20140610; t=1704850104; v=1; b=A9adKktL48w+KHbKhOdZh5D3nOUDqBJGaF2lkFZRcidjK2U23OENT7ejKhhPpytSN1vRy/z7 tCITeubG6qYV6DbFscpCopdq0n/WHL1D+D90lBh2E0TNeBqTxiImsIx+isbRhltI7tU/Uz6RMKQ kr+Eug6Mlwse1o3gdCWsuaK0= X-Received: by 127.0.0.2 with SMTP id ZU0rYY7687511xb1tpkAdPnE; Tue, 09 Jan 2024 17:28:24 -0800 X-Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.2145.1704850101657684569 for ; Tue, 09 Jan 2024 17:28:23 -0800 X-Received: from loongson.cn (unknown [10.20.42.173]) by gateway (Coremail) with SMTP id _____8Dxvuux8p1lUK8DAA--.11441S3; Wed, 10 Jan 2024 09:28:17 +0800 (CST) X-Received: from [10.20.42.173] (unknown [10.20.42.173]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxG96v8p1l0PAJAA--.26440S3; Wed, 10 Jan 2024 09:28:15 +0800 (CST) Subject: Re: [edk2-devel] [PATCH v6 35/36] OvmfPkg/LoongArchVirt: Add build file To: Chao Li , devel@edk2.groups.io Cc: Ard Biesheuvel , Jiewen Yao , Jordan Justen , Gerd Hoffmann , Dongyan Qian , Xianglai Li References: <20240105094118.2279380-1-lichao@loongson.cn> <20240105094647.2282496-1-lichao@loongson.cn> From: "maobibo" Message-ID: <6d4b6c45-4900-ac9f-4c4d-c2723cc1e071@loongson.cn> Date: Wed, 10 Jan 2024 09:28:15 +0800 User-Agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20240105094647.2282496-1-lichao@loongson.cn> X-CM-TRANSID: AQAAf8DxG96v8p1l0PAJAA--.26440S3 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj9fXoWDXF48KFW3Ar47Aryrur48uFX_yoW7Aw1xZo WfJr18tr47trn7A3yUWrn8J342vw4aqr45Xr18Aa1UJF4Utr129rWDJwnrWr1DJrn8Arnr G3y8Jay8KFW7tw1xl-sFpf9Il3svdjkaLaAFLSUrUUUUbb8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrn0xqx4xG64xvF2IEw4CE5I8CrVC2j2Jv73VFW2AGmfu7bjvjm3AaLaJ3 UjIYCTnIWjp_UUUYI7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI 8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xG Y2AK021l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14 v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAF wI0_Gr1j6F4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI 0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUtVWrXwAv7VC2z280 aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2 xFo4CEbIxvr21l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAq x4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r 43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF 7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxV W8JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxU 2F4iUUUUU Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,maobibo@loongson.cn List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: NmQNpfUEyoSNqtzNkmj8ig34x7686176AA= Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=A9adKktL; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io On 2024/1/5 下午5:46, Chao Li wrote: > Add infrastructure files to build edk2 for LoongArch QEMU virtual > machine. > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 > > Cc: Ard Biesheuvel > Cc: Jiewen Yao > Cc: Jordan Justen > Cc: Gerd Hoffmann > Cc: Bibo Mao > Cc: Dongyan Qian > Signed-off-by: Chao Li > Co-authored-by: Xianglai Li > Co-authored-by: Bibo Mao > --- > OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc | 34 + > OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | 679 ++++++++++++++++++++ > OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf | 313 +++++++++ > OvmfPkg/LoongArchVirt/VarStore.fdf.inc | 67 ++ > 4 files changed, 1093 insertions(+) > create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc > create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc > create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf > create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc > > diff --git a/OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc b/OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc > new file mode 100644 > index 0000000000..22373bec6a > --- /dev/null > +++ b/OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc > @@ -0,0 +1,34 @@ > +## @file > +# > +# Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +DEFINE BLOCK_SIZE = 0x1000 > + > +############################################################################ > +# FW total > +DEFINE FW_BASE_ADDRESS = 0x1c000000 > +DEFINE FW_BLOCKS = 0x400 > +DEFINE FW_SIZE = 0x400000 > + > +############################################################################ > +#Flash code layout > +#Set Sec size in flash > +DEFINE SECFV_SIZE = 0x00010000 > + > +#Set Pei size in flash > +DEFINE PEIFV_SIZE = 0x00040000 > + > +#Set Dxe size in flash > +DEFINE DXEFV_SIZE = 0x00350000 > + > +#Set FVMAIN size > +DEFINE FVMAIN_SIZE = $(SECFV_SIZE) + $(PEIFV_SIZE) +$(DXEFV_SIZE) > + > +#Set Memory layout > +DEFINE SEC_PEI_TEMP_RAM_BASE = 0x10000 > +DEFINE SEC_PEI_TEMP_RAM_SIZE = 0x80000 > +DEFINE DEVICE_TREE_RAM_BASE = 0x100000 > diff --git a/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc b/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc > new file mode 100644 > index 0000000000..0a6b5f830b > --- /dev/null > +++ b/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc > @@ -0,0 +1,679 @@ > +## @file > +# > +# Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +################################################################################ > +# > +# Defines Section - statements that will be processed to create a Makefile. > +# > +############################################################################### > +[Defines] > + PLATFORM_NAME = LoongArchVirtQemu > + PLATFORMPKG_NAME = LoongArchVirtQemu > + PLATFORM_GUID = 7926ea52-b0dc-4ee8-ac63-341eebd84ed4 > + PLATFORM_VERSION = 0.1 > + DSC_SPECIFICATION = 0x00010005 > + OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME) > + SUPPORTED_ARCHITECTURES = LOONGARCH64 > + BUILD_TARGETS = DEBUG|RELEASE > + SKUID_IDENTIFIER = DEFAULT > + FLASH_DEFINITION = OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf > + TTY_TERMINAL = FALSE > + > +!include LoongArchVirt.fdf.inc > + > + # > + # Defines for default states. These can be changed on the command line. > + # -D FLAG=VALUE > + DEFINE TTY_TERMINAL = FALSE > + DEFINE SECURE_BOOT_ENABLE = FALSE > + DEFINE TPM2_ENABLE = FALSE > + DEFINE TPM2_CONFIG_ENABLE = FALSE > + > + # > + # Network definition > + # > + DEFINE NETWORK_IP6_ENABLE = FALSE > + DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE > + DEFINE NETWORK_SNP_ENABLE = FALSE > + DEFINE NETWORK_TLS_ENABLE = FALSE > + DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE > + DEFINE NETWORK_ISCSI_ENABLE = FALSE > + > +!include NetworkPkg/NetworkDefines.dsc.inc > +############################################################################ > +# > +# Defines for default states. These can be changed on the command line. > +# -D FLAG=VALUE > +############################################################################ > +[BuildOptions] > + GCC:RELEASE_*_*_CC_FLAGS = -DSPEEDUP > + > + # > + # Disable deprecated APIs. > + # > + GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES > + > +!include NetworkPkg/NetworkBuildOptions.dsc.inc > + > +[BuildOptions.LOONGARCH64.EDKII.SEC] > + *_*_*_CC_FLAGS = > + > +# > +# Default page size is 16K for loongarch qemu tcg > +# code section separated with data section with 16K page alignment, else data > +# write operation in the same page with code section will cause qemu TB flush. > +# > +[BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION] > + GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x4000 > + > +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > + GCC:*_*_LOONGARCH64_DLINK_FLAGS = -z common-page-size=0x10000 > + > +################################################################################ > +# > +# 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.common] > + PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf > + TimerLib | UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTimerLib.inf > + PrintLib | MdePkg/Library/BasePrintLib/BasePrintLib.inf > + BaseMemoryLib | MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf > + > + # Networking Requirements > +!include NetworkPkg/NetworkLibs.dsc.inc > +!if $(NETWORK_TLS_ENABLE) == TRUE > + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf > +!endif > + > + # For stack protector support > + NULL | MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf > + > + BaseLib | MdePkg/Library/BaseLib/BaseLib.inf > + SafeIntLib | MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf > + TimeBaseLib | EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf > + BmpSupportLib | MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.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 > + PciLib | MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciExpressLib | OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.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 > + IoLib | MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > + FdtSerialPortAddressLib | OvmfPkg/Library/FdtSerialPortAddressLib/FdtSerialPortAddressLib.inf > + PlatformHookLib | OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.inf > + SerialPortLib | MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf > + EfiResetSystemLib | OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf > + ResetSystemLib | OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.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 > + SerializeVariablesLib | OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf > + CustomizedDisplayLib | MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf > + DebugPrintErrorLevelLib | MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf > + TpmMeasurementLib | MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf > + AuthVariableLib | MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf > + VarCheckLib | MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf > + VariablePolicyLib | MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf > + VariablePolicyHelperLib | MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf > + SortLib | MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + FdtLib | EmbeddedPkg/Library/FdtLib/FdtLib.inf > + PciSegmentLib | MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf > + PciHostBridgeLib | OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > + PciHostBridgeUtilityLib | OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf > + FileExplorerLib | MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + ImagePropertiesRecordLib | MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf > + > +!if $(HTTP_BOOT_ENABLE) == TRUE > + HttpLib | MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf > +!endif > + UefiBootManagerLib | MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf > + OrderedCollectionLib | MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf > + ReportStatusCodeLib | MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf > + > + PeCoffGetEntryPointLib | MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf > + PeCoffExtraActionLib | MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf > + DebugAgentLib | MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf > + > + TpmPlatformHierarchyLib | SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf > + PlatformBmPrintScLib | OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf > + PlatformBootManagerLib | OvmfPkg/Library/PlatformBootManagerLibLight/PlatformBootManagerLib.inf > + BootLogoLib | MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf > + QemuBootOrderLib | OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf > + QemuFwCfgSimpleParserLib | OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf > + QemuLoadImageLib | OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf > + > + # > + # Virtio Support > + # > + VirtioLib | OvmfPkg/Library/VirtioLib/VirtioLib.inf > + FrameBufferBltLib | MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf > + QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + DebugLib | MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > + PeiServicesLib | MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + VariableFlashInfoLib | MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf > + VirtNorFlashPlatformLib | OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.inf > + CollectApResourceLib | OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.inf > + > +[LibraryClasses.common.SEC] > + PcdLib | MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + ReportStatusCodeLib | MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf > + HobLib | MdePkg/Library/PeiHobLib/PeiHobLib.inf > + MemoryAllocationLib | MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf > + PeiServicesTablePointerLib | MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.inf > + PlatformHookLib | OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf > + SerialPortLib | OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf > + CpuExceptionHandlerLib | UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf > + > +[LibraryClasses.common.PEI_CORE] > + PcdLib | MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + HobLib | MdePkg/Library/PeiHobLib/PeiHobLib.inf > + PeiServicesTablePointerLib | MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.inf > + MemoryAllocationLib | MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf > + PeiCoreEntryPoint | MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf > + ReportStatusCodeLib | MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf > + OemHookStatusCodeLib | MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf > + PeCoffGetEntryPointLib | MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf > + QemuFwCfgLib | OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf > + PlatformHookLib | OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf > + SerialPortLib | OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf > + > +[LibraryClasses.common.PEIM] > + HobLib | MdePkg/Library/PeiHobLib/PeiHobLib.inf > + PeiServicesTablePointerLib | MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.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 > + PeiResourcePublicationLib | MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf > + PcdLib | MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf > + QemuFwCfgLib | OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf > + CpuMmuLib | UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.inf > + MpInitLib | UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.inf > + PlatformHookLib | OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf > + SerialPortLib | OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf > + RealTimeClockLib | OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.inf > + > +[LibraryClasses.common.DXE_CORE] > + HobLib | MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf > + DxeCoreEntryPoint | MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf > + MemoryAllocationLib | MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf > + ReportStatusCodeLib | MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf > + PciExpressLib | MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > + PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + CpuExceptionHandlerLib | UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf > + > +[LibraryClasses.common.DXE_RUNTIME_DRIVER] > + PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf > + DxeCoreEntryPoint | MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf > + MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > + ReportStatusCodeLib | MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf > + UefiRuntimeLib | MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf > + QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf > + RealTimeClockLib | OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.inf > + VariablePolicyLib | MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf > + QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + EfiResetSystemLib | OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf > + ResetSystemLib | OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf > + PciExpressLib | MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > +!if $(TARGET) != RELEASE > + DebugLib | MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf > +!endif > + > +[LibraryClasses.common.UEFI_DRIVER] > + PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.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 > + UefiScsiLib | MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf > + QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > +[LibraryClasses.common.DXE_DRIVER] > + PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.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 > + CpuExceptionHandlerLib | UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf > + QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf > + QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + PciExpressLib | MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > + AcpiPlatformLib | OvmfPkg/Library/AcpiPlatformLib/DxeAcpiPlatformLib.inf > + MpInitLib | UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.inf > + > +[LibraryClasses.common.UEFI_APPLICATION] > + PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf > + MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf > + PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + PciExpressLib | MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > + > +################################################################################ > +# > +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. > +# > +################################################################################ > +[PcdsFeatureFlag] > + gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport | FALSE > +# gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial | TRUE > +# gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory | TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress | TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport | TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport | FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport | FALSE > + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation | TRUE > + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation | TRUE > +[PcdsFixedAtBuild] > +## BaseLib ## > + gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength | 1000000 > + gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength | 1000000 > + gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength | 1000000 > + gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout | 10000000 > + > + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress | $(FW_BASE_ADDRESS) > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize | 1 > + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange | FALSE > + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler | 0x10 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize | 0x2000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize | 0x8000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress | 0x0 > + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask | 0x07 > + > + # Use MMIO for accessing Serial port registers. > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio | TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo | {0xFF} > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate | 115200 > + > + # DEBUG_INIT 0x00000001 // Initialization > + # DEBUG_WARN 0x00000002 // Warnings > + # DEBUG_LOAD 0x00000004 // Load events > + # DEBUG_FS 0x00000008 // EFI File system > + # DEBUG_POOL 0x00000010 // Alloc & Free (pool) > + # DEBUG_PAGE 0x00000020 // Alloc & Free (page) > + # DEBUG_INFO 0x00000040 // Informational debug messages > + # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers > + # DEBUG_VARIABLE 0x00000100 // Variable > + # DEBUG_BM 0x00000400 // Boot Manager > + # DEBUG_BLKIO 0x00001000 // BlkIo Driver > + # DEBUG_NET 0x00004000 // Network Io Driver > + # DEBUG_UNDI 0x00010000 // UNDI Driver > + # DEBUG_LOADFILE 0x00020000 // LoadFile > + # DEBUG_EVENT 0x00080000 // Event messages > + # DEBUG_GCD 0x00100000 // Global Coherency Database changes > + # DEBUG_CACHE 0x00200000 // Memory range cachability changes > + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may > + # DEBUG_ERROR 0x80000000 // Error > + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel | 0x8000004F > + > + # DEBUG_ASSERT_ENABLED 0x01 > + # DEBUG_PRINT_ENABLED 0x02 > + # DEBUG_CODE_ENABLED 0x04 > + # CLEAR_MEMORY_ENABLED 0x08 > + # ASSERT_BREAKPOINT_ENABLED 0x10 > + # ASSERT_DEADLOOP_ENABLED 0x20 > +!if $(TARGET) == RELEASE > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask | 0x21 > +!else > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask | 0x2f > +!endif > + > +####################################################################################### > + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase | $(SEC_PEI_TEMP_RAM_BASE) > + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize | $(SEC_PEI_TEMP_RAM_SIZE) > + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress | $(DEVICE_TREE_RAM_BASE) > + > + gUefiCpuPkgTokenSpaceGuid.PcdCpuExceptionVectorBaseAddress | gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase > + > + # > + # minimal memory for uefi bios should be 512M > + # 0x00000000 - 0x10000000 > + # 0x90000000 - 0xA0000000 > + # > + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions | 0x06 > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile | { 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } > + > + # > + # Network Pcds > + # > +!include NetworkPkg/NetworkPcds.dsc.inc > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize | 0x40000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize | 0x40000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize | 0x40000 > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask | 1 > + > +################################################################################ > +# > +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform > +# > +################################################################################ > +[PcdsDynamicDefault] > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved | 0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration | FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution | 800 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution | 600 > + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut | 2 > + > + # Set video resolution for text setup. > + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution | 640 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution | 480 > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion | 0x0300 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev | 0x0 > + > + ## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI > + # enumeration to complete before installing ACPI tables. > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration |TRUE > + gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation |0x0 > + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this > + # PCD and PcdPciDisableBusEnumeration above have not been assigned yet > + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress |0xFFFFFFFFFFFFFFFF > + > + # > + # IPv4 and IPv6 PXE Boot support. > + # > + gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport | 0x01 > + gEfiNetworkPkgTokenSpaceGuid.PcdIPv6PXESupport | 0x01 > + > + # > + # SMBIOS entry point version > + # > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 > + gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|TRUE > + > +[PcdsPatchableInModule.common] > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x0 > + > +[Components] > + > + # > + # SEC Phase modules > + # > + OvmfPkg/LoongArchVirt/Sec/SecMain.inf > + > + # > + # PEI Phase modules > + # > + MdeModulePkg/Core/Pei/PeiMain.inf > + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { > + > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf > + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { > + > + NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > + } > + > + OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf { > + > + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + } > + > + # > + # DXE Phase modules > + # > + MdeModulePkg/Core/Dxe/DxeMain.inf { > + > + NULL | MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > + DevicePathLib | MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.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 > + UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf { > + > + CpuMmuLib | UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.inf > + } > + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > + OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.inf > + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > + MdeModulePkg/Universal/Metronome/Metronome.inf > + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > + > + # > + # Variable > + # > + OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf > + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { > + > + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > + NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf > + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf > + } > + > + # > + # Platform Driver > + # > + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > + OvmfPkg/VirtioRngDxe/VirtioRng.inf > + > + # > + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs > + # > + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > + FatPkg/EnhancedFatDxe/Fat.inf > + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf > + > + # > + #BDS > + # > + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { > + > + DevicePathLib | MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + PcdLib | MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > + MdeModulePkg/Logo/LogoDxe.inf > + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.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 > + } > + > + # > + # Network Support > + # > +#!include NetworkPkg/NetworkComponents.dsc.inc > + > +# NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf { > +# > +# NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf > +# } > + > +!if $(NETWORK_TLS_ENABLE) == TRUE > + NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf { > + > + NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf > + } > +!endif > + OvmfPkg/VirtioNetDxe/VirtioNet.inf > + > + # > + # IDE/SCSI > + # > + MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > + > + # > + # NVME Driver > + # > + MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf > + > + # > + # SMBIOS Support > + # > + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf { > + > + NULL | OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf > + } > + OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf > + > + # > + # PCI > + # > + UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > + } > + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > + } > + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > + } > + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > + OvmfPkg/Virtio10Dxe/Virtio10.inf > + > + # > + # Console > + # > + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf { > + > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + } > + > + # > + # Video > + # > + OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > + OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > + OvmfPkg/PlatformDxe/Platform.inf > + > + # > + # 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 > + > + # > + # ACPI Support > + # > + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf > + OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + > + # > + #app > + # > + 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/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 > + } > diff --git a/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf b/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf > new file mode 100644 > index 0000000000..82fccc01de > --- /dev/null > +++ b/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf > @@ -0,0 +1,313 @@ > +## @file > +# > +# Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +##################################################################################################### > +[Defines] > +!include LoongArchVirt.fdf.inc > + > +##################################################################################################### > +[FD.QEMU_EFI] > +BaseAddress = $(FW_BASE_ADDRESS) > +Size = $(FW_SIZE) > +ErasePolarity = 1 > +BlockSize = $(BLOCK_SIZE) > +NumBlocks = $(FW_BLOCKS) > + > +0x0|$(FVMAIN_SIZE) > +FV = FVMAIN_COMPACT > + > +!include VarStore.fdf.inc > + > +##################################################################################################### > +[FV.DXEFV] > +FvNameGuid = 5d19a5b3-130f-459b-a292-9270a9e6bc62 > +BlockSize = $(BLOCK_SIZE) > +FvAlignment = 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS = TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_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 > +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > +INF UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf > +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > +INF OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.inf > +INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > +INF MdeModulePkg/Universal/Metronome/Metronome.inf > +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf > +INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > +INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > + > +# > +# Variable > +# > +INF OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf > +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > +# > +# PCI > +# > +INF UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf > +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.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 > + > +# > +# Platform Driver > +# > +INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > +INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > +INF OvmfPkg/VirtioRngDxe/VirtioRng.inf > +INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > + > +# > +# Console > +# > +INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > +INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > +INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf > + > +# > +#Video > +# > +INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > +INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > +INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > +INF OvmfPkg/PlatformDxe/Platform.inf > + > +# > +# SATA/SCSI > +# > +INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > + > +# > +# NVME > +# > +INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf > + > +# > +# 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 > + > +# > +#BDS > +# > +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > +INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > +INF MdeModulePkg/Logo/LogoDxe.inf > +INF MdeModulePkg/Application/UiApp/UiApp.inf > +INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf > + > +# > +#Smbios > +# > +INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf > +INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf > + > +# > +#Acpi > +# > +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > +INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf > +INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf > + > +# > +# Network modules > +#!include NetworkPkg/Network.fdf.inc > + > +# > +# File system > +# > +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > +INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > +INF FatPkg/EnhancedFatDxe/Fat.inf > +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > +INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf > + > +# > +#Boot OS > +# > +INF ShellPkg/Application/Shell/Shell.inf > + > +##################################################################################################### > +[FV.FVMAIN_COMPACT] > +FvNameGuid = af8c3fe8-9ce8-4548-884a-e3f4dd91f040 > +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 > + > +# > +# > +# PEI Phase priori modules > +# > +APRIORI PEI { > + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +} > + > +# > +# SEC Phase modules > +# > +INF OvmfPkg/LoongArchVirt/Sec/SecMain.inf > + > +# > +# PEI Phase modules > +# > +INF MdeModulePkg/Core/Pei/PeiMain.inf > +INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +INF OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf > +INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > + > +# > +# DXE Phase modules > +# > +FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { > + SECTION FV_IMAGE = DXEFV > + } > + } > + > +##################################################################################################### > +[Rule.Common.SEC] > + FILE SEC = $(NAMED_GUID) { > + TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING ="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.PEI_CORE] > + FILE PEI_CORE = $(NAMED_GUID) { > + TE TE Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING ="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.PEIM] > + FILE PEIM = $(NAMED_GUID) { > + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.DXE_CORE] > + FILE DXE_CORE = $(NAMED_GUID) { > + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.DXE_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + RAW ACPI Optional |.acpi > + RAW ASL Optional |.aml > + } > + > +##################################################################################################### > +[Rule.Common.DXE_RUNTIME_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.UEFI_DRIVER] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.UEFI_DRIVER.BINARY] > + FILE DRIVER = $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional |.depex > + PE32 PE32 |.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 $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING="$(MODULE_NAME)" Optional > + } > + > +##################################################################################################### > +[Rule.Common.UEFI_APPLICATION.BINARY] > + FILE APPLICATION = $(NAMED_GUID) { > + PE32 PE32 |.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/LoongArchVirt/VarStore.fdf.inc b/OvmfPkg/LoongArchVirt/VarStore.fdf.inc > new file mode 100644 > index 0000000000..52ef0d482e > --- /dev/null > +++ b/OvmfPkg/LoongArchVirt/VarStore.fdf.inc > @@ -0,0 +1,67 @@ > +## @file > +# > +# Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[FD.QEMU_VARS] > +BaseAddress = 0x0 > +Size = 0x1000000 > +ErasePolarity = 1 > +BlockSize = 0x20000 > +NumBlocks = 128 > + > +0x00000000|0x00040000 > +#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: 0xC0000 > + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, > + # Signature "_FVH" # Attributes > + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, > + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision > + 0x48, 0x00, 0x28, 0x09, 0x00, 0x00, 0x00, 0x02, > + # Blockmap[0]: 0x3 Blocks * 0x40000 Bytes / Block > + 0x3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, > + # Blockmap[1]: End > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + ## This is the VARIABLE_STORE_HEADER > + # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. > + # 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, > + # 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 > +} > + > +0x00040000|0x00040000 > +#NV_FTW_WORKING > +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 > + 0x5b, 0xe7, 0xc6, 0x86, 0xFE, 0xFF, 0xFF, 0xFF, > + # WriteQueueSize: UINT64 > + 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +0x00080000|0x00040000 > +#NV_FTW_SPARE > Reviewed-by: Bibo Mao -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113505): https://edk2.groups.io/g/devel/message/113505 Mute This Topic: https://groups.io/mt/103540137/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-