Thanks,
Chao
--------
Support Dxe for LoogArch.REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4054Cc: Bibo Mao <maobibo@loongson.cn>Cc: Chao Li <lichao@loongson.cn>Cc: Leif Lindholm <quic_llindhol@quicinc.com>Cc: Liming Gao <gaoliming@byosoft.com.cn>Cc: Michael D Kinney <michael.d.kinney@intel.com>Signed-off-by: xianglai li <lixianglai@loongson.cn>---.../Loongson/LoongArchQemuPkg/Loongson.dec | 13 +.../Loongson/LoongArchQemuPkg/Loongson.dsc | 421 ++++++++++++++++++.../Loongson/LoongArchQemuPkg/Loongson.fdf | 245 ++++++++++.../LoongArchQemuPkg/Loongson.fdf.inc | 42 ++4 files changed, 721 insertions(+)diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec b/Platform/Loongson/LoongArchQemuPkg/Loongson.decindex aeae75a678..54a50738ec 100644--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec@@ -27,13 +27,21 @@[Guids]gLoongArchQemuPkgTokenSpaceGuid = { 0x0e0383ce, 0x0151, 0x4d01, { 0x80, 0x0e, 0x3f, 0xef, 0x8b, 0x27, 0x6d, 0x52 } }+ gEfiLoongsonBootparamsTableGuid = { 0x4660f721, 0x2ec5, 0x416a, { 0x89, 0x9a, 0x43, 0x18, 0x02, 0x50, 0xa0, 0xc9 } }++[Protocols]## In the PcdsFixedAtBuild and PcdsDynamic areas, numbers start at 0x0.[PcdsFixedAtBuild, PcdsDynamic]gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|0x0|UINT64|0x00000000gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize|0x0|UINT32|0x00000001+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvOffset|0x0|UINT64|0x00000002gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase|0x0|UINT64|0x00000003gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvSize|0x0|UINT32|0x00000004+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecModuleBase|0x0|UINT64|0x00000005+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecModuleSize|0x0|UINT32|0x00000006+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashEventLogBase|0x0|UINT64|0x00000007+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashEventLogSize|0x0|UINT32|0x00000008gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreeBase|0x0|UINT64|0x00000009gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreePadding|256|UINT32|0x0000000a@@ -48,6 +56,8 @@[PcdsFixedAtBuild.LOONGARCH64]gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32|UINT8|0x00010000gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0|UINT8|0x00010001+ gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceSpaceStartAddress|0x10000000|UINT32|0x00010002+ gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceSpaceLength|0x80000000|UINT32|0x00010003## In the PcdsDynamic area, numbers start at 0x20000.[PcdsDynamic]@@ -59,3 +69,6 @@gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPud|0x0|UINT64|0x00020005gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPmd|0x0|UINT64|0x00020006gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPte|0x0|UINT64|0x00020007++## In the PcdsFeatureFlag area, numbers start at 0x30000.+[PcdsFeatureFlag]diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc b/Platform/Loongson/LoongArchQemuPkg/Loongson.dscindex b78a7e3b49..6f71280c4d 100644--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc@@ -24,6 +24,25 @@FLASH_DEFINITION = Platform/Loongson/LoongArchQemuPkg/Loongson.fdfTTY_TERMINAL = FALSE+ #+ # 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.@@ -37,6 +56,8 @@#GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES+!include NetworkPkg/NetworkBuildOptions.dsc.inc+[BuildOptions.LOONGARCH64.EDKII.SEC]*_*_*_CC_FLAGS =@@ -46,6 +67,14 @@[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.@@ -59,19 +88,93 @@TimerLib | Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/TimerLib.infPrintLib | MdePkg/Library/BasePrintLib/BasePrintLib.infBaseMemoryLib | MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf++ # Networking Requirements+!include NetworkPkg/NetworkLibs.dsc.inc+!if $(NETWORK_TLS_ENABLE) == TRUE+ TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf+!endif+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.infPerformanceLib | MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.infPeCoffLib | MdePkg/Library/BasePeCoffLib/BasePeCoffLib.infCacheMaintenanceLib | MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.infUefiDecompressLib | 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.infPeCoffGetEntryPointLib | 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.infIoLib | MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.infSerialPortLib | Platform/Loongson/LoongArchQemuPkg/Library/SerialPortLib/SerialPortLib.inf+ EfiResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf+ ResetSystemLib | Platform/Loongson/LoongArchQemuPkg/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.infDebugPrintErrorLevelLib | 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.infFdtLib | EmbeddedPkg/Library/FdtLib/FdtLib.inf+ PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf+ PciSegmentLib | MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf+ PciHostBridgeLib | OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf+ PciHostBridgeUtilityLib | OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf+ MmuLib | Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLib.inf+ FileExplorerLib | MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.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.infPeCoffExtraActionLib | MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.infDebugAgentLib | MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf+ CpuExceptionHandlerLib | MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf++ PlatformBootManagerLib | Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/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.infPeiServicesLib | MdePkg/Library/PeiServicesLib/PeiServicesLib.inf+ VariableFlashInfoLib | MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf[LibraryClasses.common.SEC]ReportStatusCodeLib | MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf@@ -104,17 +207,88 @@QemuFwCfgLib | Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.infMmuLib | Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLibPei.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++[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 | Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClockLib.inf+ VariablePolicyLib | MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf+ QemuFwCfgLib | Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf+ EfiResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf+ ResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.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++[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/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf+ ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf+ QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf+ QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.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+################################################################################## 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 | 1000000gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength | 1000000gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength | 1000000+ gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout | 10000000+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize | 1+ gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange | FALSE+ gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler | 0x10+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize | 0x2000+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize | 0x8000+ gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress | 0x0+ gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize | 48+ gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize | 32+ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask | 0x07gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel | 0x8000004F# DEBUG_INIT 0x00000001 // Initialization# DEBUG_WARN 0x00000002 // Warnings@@ -158,6 +332,60 @@# 0x90000000 - 0xA0000000#gLoongArchQemuPkgTokenSpaceGuid.PcdUefiRamTop | 0x10000000+ 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+################################################################################+#+# 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.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++ gLoongArchQemuPkgTokenSpaceGuid.PcdRamSize | 0x40000000++ ## 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[Components]@@ -184,3 +412,196 @@<LibraryClasses>PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf}++ #+ # DXE Phase modules+ #+ MdeModulePkg/Core/Dxe/DxeMain.inf {+ <LibraryClasses>+ 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 {+ <LibraryClasses>+ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf+ }++ MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf+ Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.inf+ MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf+ MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf+ MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf+ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf+ Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/TimerDxe.inf+ MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf+ MdeModulePkg/Universal/Metronome/Metronome.inf+ EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf++ #+ # Variable+ #++ OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {+ <LibraryClasses>+ PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf+ }+ MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf+ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {+ <LibraryClasses>+ NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf+ BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf+ }++ #+ # Platform Driver+ #+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf+ OvmfPkg/VirtioScsiDxe/VirtioScsi.inf+ OvmfPkg/VirtioRngDxe/VirtioRng.inf++ #+ # File system+ #+ 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 {+ <LibraryClasses>+ 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 {+ <LibraryClasses>+ NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf+ NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf+ NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf+ }++ OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {+ <LibraryClasses>+ NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf+ }++ #+ # Network Support+ #+#!include NetworkPkg/NetworkComponents.dsc.inc++# NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf {+# <LibraryClasses>+# NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf+# }++!if $(NETWORK_TLS_ENABLE) == TRUE+ NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf {+ <LibraryClasses>+ NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf+ }+!endif+ OvmfPkg/VirtioNetDxe/VirtioNet.inf++ #+ # IDE/SCSI+ #+ OvmfPkg/SataControllerDxe/SataControllerDxe.inf+ MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf+ MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf+ MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf+ MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf++ #+ # SMBIOS Support+ #+ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {+ <LibraryClasses>+ NULL | OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf+ }+ OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf++ #+ # PCI+ #+ Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf+ MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf+ MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.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 {+ <LibraryClasses>+ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf+ }++ #+ # Video+ #+ 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++ #+ #app+ #+ ShellPkg/Application/Shell/Shell.inf {+ <LibraryClasses>+ 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+<PcdsFixedAtBuild>+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE+ gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000+ }diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdfindex 8e257f2392..34bcdf0d9c 100644--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf@@ -22,6 +22,14 @@ $(SECFV_OFFSET)|$(SECFV_SIZE)gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvSizeFV = SECFV+$(PEIFV_OFFSET)|$(PEIFV_SIZE)+gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize+FV = PEIFV++$(DXEFV_OFFSET)|$(DXEFV_SIZE)+gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvSize+FV = FVMAIN_COMPACT+#####################################################################################################[FV.SECFV]FvNameGuid = 587d4265-5e71-41da-9c35-4258551f1e22@@ -79,6 +87,181 @@ INF MdeModulePkg/Universal/PCD/Pei/Pcd.infINF MdeModulePkg/Core/DxeIplPeim/DxeIpl.infINF Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf+#####################################################################################################+[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 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.inf+INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf+INF Platform/Loongson/LoongArchQemuPkg/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/EmuVariableFvbRuntimeDxe/Fvb.inf+INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf+INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf+#+# PCI+#+INF Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.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/QemuRamfbDxe/QemuRamfbDxe.inf+INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf+INF OvmfPkg/PlatformDxe/Platform.inf++#+# IDE+#+INF OvmfPkg/SataControllerDxe/SataControllerDxe.inf+INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf+INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf+INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf+INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.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++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) {@@ -102,3 +285,65 @@ INF Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf}#####################################################################################################+[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/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.incindex 6f17909748..3530f90c67 100644--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc@@ -19,3 +19,45 @@ DEFINE FD_SIZE = 0x400000#Set Sec base address and size in flashDEFINE SECFV_OFFSET = 0x00000000DEFINE SECFV_SIZE = 0x00010000++#Set Pei base address and size in flash+DEFINE PEIFV_OFFSET = 0x00010000+DEFINE PEIFV_SIZE = 0x00040000++#Set Dxe base address and size in flash+DEFINE DXEFV_OFFSET = 0x00050000+DEFINE DXEFV_SIZE = 0x00350000++#Set Var base address and size in flash+DEFINE VARIABLE_OFFSET = 0x003a0000+DEFINE VAR_ALL_SIZE = 0x60000++############################################################################+#Set Var Flash layout+DEFINE VARIABLE_SIZE = 0x00010000+DEFINE VAR_ALL_BLOCKS = 0x60++DEFINE RESERVE1_OFFSET = $(VARIABLE_OFFSET) + $(VARIABLE_SIZE)+DEFINE RESERVE1_SIZE = 0xB000++DEFINE RESERVE2_OFFSET = $(RESERVE1_OFFSET) + $(RESERVE1_SIZE)+DEFINE RESERVE2_SIZE = 0x14000++DEFINE SPARE_OFFSET = $(RESERVE2_OFFSET) + $(RESERVE2_SIZE)+DEFINE SPARE_SIZE = 0x20000++DEFINE FWTWORKING_OFFSET = $(SPARE_OFFSET) + $(SPARE_SIZE)+DEFINE FWTWORKING_SIZE = 0x8000++DEFINE EVENT_LOG_OFFSET = $(FWTWORKING_OFFSET) + $(FWTWORKING_SIZE)+DEFINE EVENT_LOG_SIZE = 0x8000++# Set Variable+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = 0+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARIABLE_SIZE)++# Set FtwSpare+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(SPARE_SIZE)++# Set FtwWorking+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(FWTWORKING_SIZE)--2.31.1