<div>Reviewed-by: Chao Li  <lichao@loongson.cn></div><br><div><signature id="local-a67dfd9c-c219"><p style="color:grey;font-size:11px"><br>Thanks,<br>Chao<br>--------<br><br></p></signature></div><div class="gmail_quote_attribution">On 11月 11 2022, at 5:12 δΈ‹εˆ, xianglai li <lixianglai@loongson.cn> wrote:</div><blockquote><div><div>Support Dxe for LoogArch.</div><br><br><br><div>REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4054</div><br><br><br><div>Cc: Bibo Mao <maobibo@loongson.cn></div><br><div>Cc: Chao Li <lichao@loongson.cn></div><br><div>Cc: Leif Lindholm <quic_llindhol@quicinc.com></div><br><div>Cc: Liming Gao <gaoliming@byosoft.com.cn></div><br><div>Cc: Michael D Kinney <michael.d.kinney@intel.com></div><br><div>Signed-off-by: xianglai li <lixianglai@loongson.cn></div><br><div>---</div><br><div>.../Loongson/LoongArchQemuPkg/Loongson.dec | 13 +</div><br><div>.../Loongson/LoongArchQemuPkg/Loongson.dsc | 421 ++++++++++++++++++</div><br><div>.../Loongson/LoongArchQemuPkg/Loongson.fdf | 245 ++++++++++</div><br><div>.../LoongArchQemuPkg/Loongson.fdf.inc | 42 ++</div><br><div>4 files changed, 721 insertions(+)</div><br><br><br><div>diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec</div><br><div>index aeae75a678..54a50738ec 100644</div><br><div>--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec</div><br><div>+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec</div><br><div>@@ -27,13 +27,21 @@</div><br><br><br><div>[Guids]</div><br><div>gLoongArchQemuPkgTokenSpaceGuid = { 0x0e0383ce, 0x0151, 0x4d01, { 0x80, 0x0e, 0x3f, 0xef, 0x8b, 0x27, 0x6d, 0x52 } }</div><br><div>+ gEfiLoongsonBootparamsTableGuid = { 0x4660f721, 0x2ec5, 0x416a, { 0x89, 0x9a, 0x43, 0x18, 0x02, 0x50, 0xa0, 0xc9 } }</div><br><div>+</div><br><div>+[Protocols]</div><br><br><br><div>## In the PcdsFixedAtBuild and PcdsDynamic areas, numbers start at 0x0.</div><br><div>[PcdsFixedAtBuild, PcdsDynamic]</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|0x0|UINT64|0x00000000</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize|0x0|UINT32|0x00000001</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvOffset|0x0|UINT64|0x00000002</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase|0x0|UINT64|0x00000003</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvSize|0x0|UINT32|0x00000004</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecModuleBase|0x0|UINT64|0x00000005</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecModuleSize|0x0|UINT32|0x00000006</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashEventLogBase|0x0|UINT64|0x00000007</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashEventLogSize|0x0|UINT32|0x00000008</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreeBase|0x0|UINT64|0x00000009</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreePadding|256|UINT32|0x0000000a</div><br><br><br><div>@@ -48,6 +56,8 @@</div><br><div>[PcdsFixedAtBuild.LOONGARCH64]</div><br><div>gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32|UINT8|0x00010000</div><br><div>gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0|UINT8|0x00010001</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceSpaceStartAddress|0x10000000|UINT32|0x00010002</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceSpaceLength|0x80000000|UINT32|0x00010003</div><br><br><br><div>## In the PcdsDynamic area, numbers start at 0x20000.</div><br><div>[PcdsDynamic]</div><br><div>@@ -59,3 +69,6 @@</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPud|0x0|UINT64|0x00020005</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPmd|0x0|UINT64|0x00020006</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdInvalidPte|0x0|UINT64|0x00020007</div><br><div>+</div><br><div>+## In the PcdsFeatureFlag area, numbers start at 0x30000.</div><br><div>+[PcdsFeatureFlag]</div><br><div>diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc</div><br><div>index b78a7e3b49..6f71280c4d 100644</div><br><div>--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc</div><br><div>+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc</div><br><div>@@ -24,6 +24,25 @@</div><br><div>FLASH_DEFINITION = Platform/Loongson/LoongArchQemuPkg/Loongson.fdf</div><br><div>TTY_TERMINAL = FALSE</div><br><br><br><div>+ #</div><br><div>+ # Defines for default states. These can be changed on the command line.</div><br><div>+ # -D FLAG=VALUE</div><br><div>+ DEFINE TTY_TERMINAL = FALSE</div><br><div>+ DEFINE SECURE_BOOT_ENABLE = FALSE</div><br><div>+ DEFINE TPM2_ENABLE = FALSE</div><br><div>+ DEFINE TPM2_CONFIG_ENABLE = FALSE</div><br><div>+</div><br><div>+ #</div><br><div>+ # Network definition</div><br><div>+ #</div><br><div>+ DEFINE NETWORK_IP6_ENABLE = FALSE</div><br><div>+ DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE</div><br><div>+ DEFINE NETWORK_SNP_ENABLE = FALSE</div><br><div>+ DEFINE NETWORK_TLS_ENABLE = FALSE</div><br><div>+ DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE</div><br><div>+ DEFINE NETWORK_ISCSI_ENABLE = FALSE</div><br><div>+</div><br><div>+!include NetworkPkg/NetworkDefines.dsc.inc</div><br><div>############################################################################</div><br><div>#</div><br><div># Defines for default states. These can be changed on the command line.</div><br><div>@@ -37,6 +56,8 @@</div><br><div>#</div><br><div>GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES</div><br><br><br><div>+!include NetworkPkg/NetworkBuildOptions.dsc.inc</div><br><div>+</div><br><div>[BuildOptions.LOONGARCH64.EDKII.SEC]</div><br><div>*_*_*_CC_FLAGS =</div><br><br><br><div>@@ -46,6 +67,14 @@</div><br><div>[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]</div><br><div>GCC:*_*_LOONGARCH64_DLINK_FLAGS = -z common-page-size=0x10000</div><br><br><br><div>+################################################################################</div><br><div>+#</div><br><div>+# SKU Identification section - list of all SKU IDs supported by this Platform.</div><br><div>+#</div><br><div>+################################################################################</div><br><div>+[SkuIds]</div><br><div>+ 0|DEFAULT</div><br><div>+</div><br><div>################################################################################</div><br><div>#</div><br><div># Library Class section - list of all Library Classes needed by this Platform.</div><br><div>@@ -59,19 +88,93 @@</div><br><div>TimerLib | Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/TimerLib.inf</div><br><div>PrintLib | MdePkg/Library/BasePrintLib/BasePrintLib.inf</div><br><div>BaseMemoryLib | MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf</div><br><div>+</div><br><div>+ # Networking Requirements</div><br><div>+!include NetworkPkg/NetworkLibs.dsc.inc</div><br><div>+!if $(NETWORK_TLS_ENABLE) == TRUE</div><br><div>+ TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf</div><br><div>+!endif</div><br><div>+</div><br><div>BaseLib | MdePkg/Library/BaseLib/BaseLib.inf</div><br><div>+ SafeIntLib | MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf</div><br><div>+ TimeBaseLib | EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf</div><br><div>+ BmpSupportLib | MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf</div><br><div>+ SynchronizationLib | MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf</div><br><div>+ CpuLib | MdePkg/Library/BaseCpuLib/BaseCpuLib.inf</div><br><div>PerformanceLib | MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf</div><br><div>PeCoffLib | MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf</div><br><div>CacheMaintenanceLib | MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf</div><br><div>UefiDecompressLib | MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf</div><br><div>+ UefiHiiServicesLib | MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf</div><br><div>+ HiiLib | MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf</div><br><div>+ CapsuleLib | MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf</div><br><div>+ DxeServicesLib | MdePkg/Library/DxeServicesLib/DxeServicesLib.inf</div><br><div>+ DxeServicesTableLib | MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf</div><br><div>PeCoffGetEntryPointLib | MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf</div><br><div>+ PciLib | MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf</div><br><div>+ PciExpressLib | OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf</div><br><div>+ PciCapLib | OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf</div><br><div>+ PciCapPciSegmentLib | OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf</div><br><div>+ PciCapPciIoLib | OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf</div><br><div>+ DxeHardwareInfoLib | OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf</div><br><div>IoLib | MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf</div><br><div>SerialPortLib | Platform/Loongson/LoongArchQemuPkg/Library/SerialPortLib/SerialPortLib.inf</div><br><div>+ EfiResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf</div><br><div>+ ResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf</div><br><div>+</div><br><div>+ UefiLib | MdePkg/Library/UefiLib/UefiLib.inf</div><br><div>+ UefiBootServicesTableLib | MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf</div><br><div>+ UefiRuntimeServicesTableLib | MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf</div><br><div>+ UefiDriverEntryPoint | MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf</div><br><div>+ UefiApplicationEntryPoint | MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf</div><br><div>+ DevicePathLib | MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf</div><br><div>+ FileHandleLib | MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf</div><br><div>+ SecurityManagementLib | MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf</div><br><div>+ UefiUsbLib | MdePkg/Library/UefiUsbLib/UefiUsbLib.inf</div><br><div>+ SerializeVariablesLib | OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf</div><br><div>+ CustomizedDisplayLib | MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf</div><br><div>DebugPrintErrorLevelLib | MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf</div><br><div>+ TpmMeasurementLib | MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf</div><br><div>+ AuthVariableLib | MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf</div><br><div>+ VarCheckLib | MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf</div><br><div>+ VariablePolicyLib | MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf</div><br><div>+ VariablePolicyHelperLib | MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf</div><br><div>+ SortLib | MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf</div><br><div>FdtLib | EmbeddedPkg/Library/FdtLib/FdtLib.inf</div><br><div>+ PciPcdProducerLib | OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf</div><br><div>+ PciSegmentLib | MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf</div><br><div>+ PciHostBridgeLib | OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf</div><br><div>+ PciHostBridgeUtilityLib | OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf</div><br><div>+ MmuLib | Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLib.inf</div><br><div>+ FileExplorerLib | MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf</div><br><div>+</div><br><div>+!if $(HTTP_BOOT_ENABLE) == TRUE</div><br><div>+ HttpLib | MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf</div><br><div>+!endif</div><br><div>+ UefiBootManagerLib | MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf</div><br><div>+ OrderedCollectionLib | MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf</div><br><div>+ ReportStatusCodeLib | MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf</div><br><div>+</div><br><div>+ PeCoffGetEntryPointLib | MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf</div><br><div>PeCoffExtraActionLib | MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf</div><br><div>DebugAgentLib | MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf</div><br><div>+ CpuExceptionHandlerLib | MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf</div><br><div>+</div><br><div>+ PlatformBootManagerLib | Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf</div><br><div>+ BootLogoLib | MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf</div><br><div>+ QemuBootOrderLib | OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf</div><br><div>+ QemuFwCfgSimpleParserLib | OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf</div><br><div>+ QemuLoadImageLib | OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # Virtio Support</div><br><div>+ #</div><br><div>+ VirtioLib | OvmfPkg/Library/VirtioLib/VirtioLib.inf</div><br><div>+ FrameBufferBltLib | MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf</div><br><div>+ QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf</div><br><div>+ DebugLib | MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf</div><br><div>PeiServicesLib | MdePkg/Library/PeiServicesLib/PeiServicesLib.inf</div><br><div>+ VariableFlashInfoLib | MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf</div><br><br><br><div>[LibraryClasses.common.SEC]</div><br><div>ReportStatusCodeLib | MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf</div><br><div>@@ -104,17 +207,88 @@</div><br><div>QemuFwCfgLib | Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf</div><br><div>MmuLib | Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLibPei.inf</div><br><br><br><div>+[LibraryClasses.common.DXE_CORE]</div><br><div>+ HobLib | MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf</div><br><div>+ DxeCoreEntryPoint | MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf</div><br><div>+ MemoryAllocationLib | MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf</div><br><div>+ ReportStatusCodeLib | MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf</div><br><div>+</div><br><div>+[LibraryClasses.common.DXE_RUNTIME_DRIVER]</div><br><div>+ PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf</div><br><div>+ HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf</div><br><div>+ DxeCoreEntryPoint | MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf</div><br><div>+ MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf</div><br><div>+ ReportStatusCodeLib | MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf</div><br><div>+ UefiRuntimeLib | MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf</div><br><div>+ ExtractGuidedSectionLib | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf</div><br><div>+ QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf</div><br><div>+ RealTimeClockLib | Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClockLib.inf</div><br><div>+ VariablePolicyLib | MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf</div><br><div>+ QemuFwCfgLib | Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf</div><br><div>+ EfiResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf</div><br><div>+ ResetSystemLib | Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf</div><br><div>+!if $(TARGET) != RELEASE</div><br><div>+ DebugLib | MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf</div><br><div>+!endif</div><br><div>+</div><br><div>+[LibraryClasses.common.UEFI_DRIVER]</div><br><div>+ PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf</div><br><div>+ HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf</div><br><div>+ DxeCoreEntryPoint | MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf</div><br><div>+ MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf</div><br><div>+ ReportStatusCodeLib | MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf</div><br><div>+ UefiScsiLib | MdePkg/Library/UefiScsiLib/UefiScsiLib.inf</div><br><div>+ ExtractGuidedSectionLib | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf</div><br><div>+ QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf</div><br><div>+</div><br><div>+[LibraryClasses.common.DXE_DRIVER]</div><br><div>+ PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf</div><br><div>+ HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf</div><br><div>+ MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf</div><br><div>+ ReportStatusCodeLib | MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf</div><br><div>+ UefiScsiLib | MdePkg/Library/UefiScsiLib/UefiScsiLib.inf</div><br><div>+ CpuExceptionHandlerLib | UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf</div><br><div>+ ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf</div><br><div>+ QemuFwCfgS3Lib | OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf</div><br><div>+ QemuFwCfgLib | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf</div><br><div>+</div><br><div>+[LibraryClasses.common.UEFI_APPLICATION]</div><br><div>+ PcdLib | MdePkg/Library/DxePcdLib/DxePcdLib.inf</div><br><div>+ HobLib | MdePkg/Library/DxeHobLib/DxeHobLib.inf</div><br><div>+ MemoryAllocationLib | MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf</div><br><div>+ ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf</div><br><div>+</div><br><div>################################################################################</div><br><div>#</div><br><div># Pcd Section - list of all EDK II PCD Entries defined by this Platform.</div><br><div>#</div><br><div>################################################################################</div><br><div>+[PcdsFeatureFlag]</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport | FALSE</div><br><div>+# gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial | TRUE</div><br><div>+# gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory | TRUE</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress | TRUE</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport | TRUE</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport | FALSE</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport | FALSE</div><br><div>+ gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation | TRUE</div><br><div>+ gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation | TRUE</div><br><div>[PcdsFixedAtBuild]</div><br><div>## BaseLib ##</div><br><div>gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength | 1000000</div><br><div>gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength | 1000000</div><br><div>gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength | 1000000</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout | 10000000</div><br><br><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize | 1</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange | FALSE</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler | 0x10</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize | 0x2000</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize | 0x8000</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress | 0x0</div><br><div>+ gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize | 48</div><br><div>+ gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize | 32</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask | 0x07</div><br><div>gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel | 0x8000004F</div><br><div># DEBUG_INIT 0x00000001 // Initialization</div><br><div># DEBUG_WARN 0x00000002 // Warnings</div><br><div>@@ -158,6 +332,60 @@</div><br><div># 0x90000000 - 0xA0000000</div><br><div>#</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdUefiRamTop | 0x10000000</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions | 0x06</div><br><div>+</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile | { 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }</div><br><div>+</div><br><div>+ #</div><br><div>+ # Network Pcds</div><br><div>+ #</div><br><div>+!include NetworkPkg/NetworkPcds.dsc.inc</div><br><div>+################################################################################</div><br><div>+#</div><br><div>+# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform</div><br><div>+#</div><br><div>+################################################################################</div><br><div>+[PcdsDynamicDefault]</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved | 0</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration | FALSE</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution | 800</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution | 600</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut | 2</div><br><div>+</div><br><div>+ # Set video resolution for text setup.</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution | 640</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution | 480</div><br><div>+</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion | 0x0300</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev | 0x0</div><br><div>+</div><br><div>+ gLoongArchQemuPkgTokenSpaceGuid.PcdRamSize | 0x40000000</div><br><div>+</div><br><div>+ ## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI</div><br><div>+ # enumeration to complete before installing ACPI tables.</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration |TRUE</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation |0x0</div><br><div>+ # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this</div><br><div>+ # PCD and PcdPciDisableBusEnumeration above have not been assigned yet</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress |0xFFFFFFFFFFFFFFFF</div><br><div>+</div><br><div>+ #</div><br><div>+ # IPv4 and IPv6 PXE Boot support.</div><br><div>+ #</div><br><div>+ gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport | 0x01</div><br><div>+ gEfiNetworkPkgTokenSpaceGuid.PcdIPv6PXESupport | 0x01</div><br><div>+</div><br><div>+ #</div><br><div>+ # SMBIOS entry point version</div><br><div>+ #</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300</div><br><div>+ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0</div><br><div>+ gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|TRUE</div><br><br><br><div>[Components]</div><br><br><br><div>@@ -184,3 +412,196 @@</div><br><div><LibraryClasses></div><br><div>PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf</div><br><div>}</div><br><div>+</div><br><div>+ #</div><br><div>+ # DXE Phase modules</div><br><div>+ #</div><br><div>+ MdeModulePkg/Core/Dxe/DxeMain.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL | MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf</div><br><div>+ DevicePathLib | MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf</div><br><div>+ ExtractGuidedSectionLib | MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf</div><br><div>+ MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf</div><br><div>+ MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf</div><br><div>+ Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.inf</div><br><div>+ MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf</div><br><div>+ MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf</div><br><div>+ MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf</div><br><div>+ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf</div><br><div>+ Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/TimerDxe.inf</div><br><div>+ MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf</div><br><div>+ MdeModulePkg/Universal/Metronome/Metronome.inf</div><br><div>+ EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # Variable</div><br><div>+ #</div><br><div>+</div><br><div>+ OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf</div><br><div>+ }</div><br><div>+ MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf</div><br><div>+ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf</div><br><div>+ BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ #</div><br><div>+ # Platform Driver</div><br><div>+ #</div><br><div>+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf</div><br><div>+ OvmfPkg/VirtioScsiDxe/VirtioScsi.inf</div><br><div>+ OvmfPkg/VirtioRngDxe/VirtioRng.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # File system</div><br><div>+ #</div><br><div>+ MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf</div><br><div>+ MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf</div><br><div>+ MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf</div><br><div>+ FatPkg/EnhancedFatDxe/Fat.inf</div><br><div>+ MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf</div><br><div>+ OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ #BDS</div><br><div>+ #</div><br><div>+ MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ DevicePathLib | MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf</div><br><div>+ PcdLib | MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf</div><br><div>+ }</div><br><div>+ MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf</div><br><div>+ MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf</div><br><div>+ MdeModulePkg/Universal/BdsDxe/BdsDxe.inf</div><br><div>+ MdeModulePkg/Logo/LogoDxe.inf</div><br><div>+ MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf</div><br><div>+ MdeModulePkg/Application/UiApp/UiApp.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf</div><br><div>+ NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf</div><br><div>+ NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ #</div><br><div>+ # Network Support</div><br><div>+ #</div><br><div>+#!include NetworkPkg/NetworkComponents.dsc.inc</div><br><div>+</div><br><div>+# NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf {</div><br><div>+# <LibraryClasses></div><br><div>+# NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf</div><br><div>+# }</div><br><div>+</div><br><div>+!if $(NETWORK_TLS_ENABLE) == TRUE</div><br><div>+ NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf</div><br><div>+ }</div><br><div>+!endif</div><br><div>+ OvmfPkg/VirtioNetDxe/VirtioNet.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # IDE/SCSI</div><br><div>+ #</div><br><div>+ OvmfPkg/SataControllerDxe/SataControllerDxe.inf</div><br><div>+ MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf</div><br><div>+ MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf</div><br><div>+ MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf</div><br><div>+ MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # SMBIOS Support</div><br><div>+ #</div><br><div>+ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ NULL | OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf</div><br><div>+ }</div><br><div>+ OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # PCI</div><br><div>+ #</div><br><div>+ Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf</div><br><div>+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf</div><br><div>+ MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf</div><br><div>+ MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf</div><br><div>+ OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf</div><br><div>+ OvmfPkg/Virtio10Dxe/Virtio10.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # Console</div><br><div>+ #</div><br><div>+ MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf</div><br><div>+ MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf</div><br><div>+ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf</div><br><div>+ MdeModulePkg/Universal/PrintDxe/PrintDxe.inf</div><br><div>+ MdeModulePkg/Universal/SerialDxe/SerialDxe.inf</div><br><div>+ MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf</div><br><div>+ }</div><br><div>+</div><br><div>+ #</div><br><div>+ # Video</div><br><div>+ #</div><br><div>+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf</div><br><div>+ OvmfPkg/VirtioGpuDxe/VirtioGpu.inf</div><br><div>+ OvmfPkg/PlatformDxe/Platform.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # Usb Support</div><br><div>+ #</div><br><div>+ MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf</div><br><div>+ MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf</div><br><div>+ MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf</div><br><div>+ MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf</div><br><div>+ MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf</div><br><div>+ MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ # ACPI Support</div><br><div>+ #</div><br><div>+ MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf</div><br><div>+ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf</div><br><div>+ OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf</div><br><div>+</div><br><div>+ #</div><br><div>+ #app</div><br><div>+ #</div><br><div>+ ShellPkg/Application/Shell/Shell.inf {</div><br><div>+ <LibraryClasses></div><br><div>+ ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf</div><br><div>+ NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf</div><br><div>+ HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf</div><br><div>+ ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf</div><br><div>+ FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf</div><br><div>+ SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf</div><br><div>+ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf</div><br><div>+ BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf</div><br><div>+<PcdsFixedAtBuild></div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF</div><br><div>+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE</div><br><div>+ gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000</div><br><div>+ }</div><br><div>diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf</div><br><div>index 8e257f2392..34bcdf0d9c 100644</div><br><div>--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf</div><br><div>+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf</div><br><div>@@ -22,6 +22,14 @@ $(SECFV_OFFSET)|$(SECFV_SIZE)</div><br><div>gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvSize</div><br><div>FV = SECFV</div><br><br><br><div>+$(PEIFV_OFFSET)|$(PEIFV_SIZE)</div><br><div>+gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize</div><br><div>+FV = PEIFV</div><br><div>+</div><br><div>+$(DXEFV_OFFSET)|$(DXEFV_SIZE)</div><br><div>+gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase|gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvSize</div><br><div>+FV = FVMAIN_COMPACT</div><br><div>+</div><br><div>#####################################################################################################</div><br><div>[FV.SECFV]</div><br><div>FvNameGuid = 587d4265-5e71-41da-9c35-4258551f1e22</div><br><div>@@ -79,6 +87,181 @@ INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf</div><br><div>INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf</div><br><div>INF Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf</div><br><br><br><div>+#####################################################################################################</div><br><div>+[FV.DXEFV]</div><br><div>+FvNameGuid = 5d19a5b3-130f-459b-a292-9270a9e6bc62</div><br><div>+BlockSize = $(BLOCK_SIZE)</div><br><div>+FvAlignment = 16</div><br><div>+ERASE_POLARITY = 1</div><br><div>+MEMORY_MAPPED = TRUE</div><br><div>+STICKY_WRITE = TRUE</div><br><div>+LOCK_CAP = TRUE</div><br><div>+LOCK_STATUS = TRUE</div><br><div>+READ_DISABLED_CAP = TRUE</div><br><div>+READ_ENABLED_CAP = TRUE</div><br><div>+READ_STATUS = TRUE</div><br><div>+READ_LOCK_CAP = TRUE</div><br><div>+READ_LOCK_STATUS = TRUE</div><br><div>+WRITE_DISABLED_CAP = TRUE</div><br><div>+WRITE_ENABLED_CAP = TRUE</div><br><div>+WRITE_STATUS = TRUE</div><br><div>+WRITE_LOCK_CAP = TRUE</div><br><div>+WRITE_LOCK_STATUS = TRUE</div><br><div>+</div><br><div>+APRIORI DXE {</div><br><div>+ INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf</div><br><div>+ INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf</div><br><div>+}</div><br><div>+</div><br><div>+#</div><br><div>+# DXE Phase modules</div><br><div>+#</div><br><div>+INF MdeModulePkg/Core/Dxe/DxeMain.inf</div><br><div>+</div><br><div>+INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf</div><br><div>+INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf</div><br><div>+INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf</div><br><div>+INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf</div><br><div>+INF Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.inf</div><br><div>+INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf</div><br><div>+INF Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/TimerDxe.inf</div><br><div>+INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Metronome/Metronome.inf</div><br><div>+INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf</div><br><div>+INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf</div><br><div>+INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf</div><br><div>+INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+# Variable</div><br><div>+#</div><br><div>+INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf</div><br><div>+INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf</div><br><div>+#</div><br><div>+# PCI</div><br><div>+#</div><br><div>+INF Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf</div><br><div>+INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf</div><br><div>+INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf</div><br><div>+INF OvmfPkg/Virtio10Dxe/Virtio10.inf</div><br><div>+</div><br><div>+#</div><br><div>+# Platform Driver</div><br><div>+#</div><br><div>+INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf</div><br><div>+INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf</div><br><div>+INF OvmfPkg/VirtioRngDxe/VirtioRng.inf</div><br><div>+INF OvmfPkg/VirtioNetDxe/VirtioNet.inf</div><br><div>+</div><br><div>+#</div><br><div>+# Console</div><br><div>+#</div><br><div>+INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf</div><br><div>+INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf</div><br><div>+INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+#Video</div><br><div>+#</div><br><div>+INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf</div><br><div>+INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf</div><br><div>+INF OvmfPkg/PlatformDxe/Platform.inf</div><br><div>+</div><br><div>+#</div><br><div>+# IDE</div><br><div>+#</div><br><div>+INF OvmfPkg/SataControllerDxe/SataControllerDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf</div><br><div>+INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+# Usb Support</div><br><div>+#</div><br><div>+INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf</div><br><div>+INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+#BDS</div><br><div>+#</div><br><div>+INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf</div><br><div>+INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf</div><br><div>+INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf</div><br><div>+INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf</div><br><div>+INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf</div><br><div>+INF MdeModulePkg/Logo/LogoDxe.inf</div><br><div>+INF MdeModulePkg/Application/UiApp/UiApp.inf</div><br><div>+INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+#Smbios</div><br><div>+#</div><br><div>+INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf</div><br><div>+INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+#Acpi</div><br><div>+#</div><br><div>+INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf</div><br><div>+INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+# Network modules</div><br><div>+#!include NetworkPkg/Network.fdf.inc</div><br><div>+</div><br><div>+#</div><br><div>+# File system</div><br><div>+#</div><br><div>+INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf</div><br><div>+INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf</div><br><div>+INF FatPkg/EnhancedFatDxe/Fat.inf</div><br><div>+INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf</div><br><div>+INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf</div><br><div>+</div><br><div>+#</div><br><div>+#Boot OS</div><br><div>+#</div><br><div>+INF ShellPkg/Application/Shell/Shell.inf</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[FV.FVMAIN_COMPACT]</div><br><div>+FvNameGuid = af8c3fe8-9ce8-4548-884a-e3f4dd91f040</div><br><div>+FvAlignment = 16</div><br><div>+ERASE_POLARITY = 1</div><br><div>+MEMORY_MAPPED = TRUE</div><br><div>+STICKY_WRITE = TRUE</div><br><div>+LOCK_CAP = TRUE</div><br><div>+LOCK_STATUS = TRUE</div><br><div>+WRITE_DISABLED_CAP = TRUE</div><br><div>+WRITE_ENABLED_CAP = TRUE</div><br><div>+WRITE_STATUS = TRUE</div><br><div>+WRITE_LOCK_CAP = TRUE</div><br><div>+WRITE_LOCK_STATUS = TRUE</div><br><div>+READ_DISABLED_CAP = TRUE</div><br><div>+READ_ENABLED_CAP = TRUE</div><br><div>+READ_STATUS = TRUE</div><br><div>+READ_LOCK_CAP = TRUE</div><br><div>+READ_LOCK_STATUS = TRUE</div><br><div>+</div><br><div>+FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {</div><br><div>+ SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {</div><br><div>+ SECTION FV_IMAGE = DXEFV</div><br><div>+ }</div><br><div>+ }</div><br><div>+</div><br><div>#####################################################################################################</div><br><div>[Rule.Common.SEC]</div><br><div>FILE SEC = $(NAMED_GUID) {</div><br><div>@@ -102,3 +285,65 @@ INF Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf</div><br><div>}</div><br><br><br><div>#####################################################################################################</div><br><div>+[Rule.Common.DXE_CORE]</div><br><div>+ FILE DXE_CORE = $(NAMED_GUID) {</div><br><div>+ PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.DXE_DRIVER]</div><br><div>+ FILE DRIVER = $(NAMED_GUID) {</div><br><div>+ DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex</div><br><div>+ PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ RAW ACPI Optional |.acpi</div><br><div>+ RAW ASL Optional |.aml</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.DXE_RUNTIME_DRIVER]</div><br><div>+ FILE DRIVER = $(NAMED_GUID) {</div><br><div>+ DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex</div><br><div>+ PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.UEFI_DRIVER]</div><br><div>+ FILE DRIVER = $(NAMED_GUID) {</div><br><div>+ DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex</div><br><div>+ PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.UEFI_DRIVER.BINARY]</div><br><div>+ FILE DRIVER = $(NAMED_GUID) {</div><br><div>+ DXE_DEPEX DXE_DEPEX Optional |.depex</div><br><div>+ PE32 PE32 |.efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.UEFI_APPLICATION]</div><br><div>+ FILE APPLICATION = $(NAMED_GUID) {</div><br><div>+ PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.UEFI_APPLICATION.BINARY]</div><br><div>+ FILE APPLICATION = $(NAMED_GUID) {</div><br><div>+ PE32 PE32 |.efi</div><br><div>+ UI STRING="$(MODULE_NAME)" Optional</div><br><div>+ VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)</div><br><div>+ }</div><br><div>+</div><br><div>+#####################################################################################################</div><br><div>+[Rule.Common.USER_DEFINED.ACPITABLE]</div><br><div>+ FILE FREEFORM = $(NAMED_GUID) {</div><br><div>+ RAW ACPI |.acpi</div><br><div>+ RAW ASL |.aml</div><br><div>+ }</div><br><div>diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc</div><br><div>index 6f17909748..3530f90c67 100644</div><br><div>--- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc</div><br><div>+++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc</div><br><div>@@ -19,3 +19,45 @@ DEFINE FD_SIZE = 0x400000</div><br><div>#Set Sec base address and size in flash</div><br><div>DEFINE SECFV_OFFSET = 0x00000000</div><br><div>DEFINE SECFV_SIZE = 0x00010000</div><br><div>+</div><br><div>+#Set Pei base address and size in flash</div><br><div>+DEFINE PEIFV_OFFSET = 0x00010000</div><br><div>+DEFINE PEIFV_SIZE = 0x00040000</div><br><div>+</div><br><div>+#Set Dxe base address and size in flash</div><br><div>+DEFINE DXEFV_OFFSET = 0x00050000</div><br><div>+DEFINE DXEFV_SIZE = 0x00350000</div><br><div>+</div><br><div>+#Set Var base address and size in flash</div><br><div>+DEFINE VARIABLE_OFFSET = 0x003a0000</div><br><div>+DEFINE VAR_ALL_SIZE = 0x60000</div><br><div>+</div><br><div>+############################################################################</div><br><div>+#Set Var Flash layout</div><br><div>+DEFINE VARIABLE_SIZE = 0x00010000</div><br><div>+DEFINE VAR_ALL_BLOCKS = 0x60</div><br><div>+</div><br><div>+DEFINE RESERVE1_OFFSET = $(VARIABLE_OFFSET) + $(VARIABLE_SIZE)</div><br><div>+DEFINE RESERVE1_SIZE = 0xB000</div><br><div>+</div><br><div>+DEFINE RESERVE2_OFFSET = $(RESERVE1_OFFSET) + $(RESERVE1_SIZE)</div><br><div>+DEFINE RESERVE2_SIZE = 0x14000</div><br><div>+</div><br><div>+DEFINE SPARE_OFFSET = $(RESERVE2_OFFSET) + $(RESERVE2_SIZE)</div><br><div>+DEFINE SPARE_SIZE = 0x20000</div><br><div>+</div><br><div>+DEFINE FWTWORKING_OFFSET = $(SPARE_OFFSET) + $(SPARE_SIZE)</div><br><div>+DEFINE FWTWORKING_SIZE = 0x8000</div><br><div>+</div><br><div>+DEFINE EVENT_LOG_OFFSET = $(FWTWORKING_OFFSET) + $(FWTWORKING_SIZE)</div><br><div>+DEFINE EVENT_LOG_SIZE = 0x8000</div><br><div>+</div><br><div>+# Set Variable</div><br><div>+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = 0</div><br><div>+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARIABLE_SIZE)</div><br><div>+</div><br><div>+# Set FtwSpare</div><br><div>+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(SPARE_SIZE)</div><br><div>+</div><br><div>+# Set FtwWorking</div><br><div>+SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(FWTWORKING_SIZE)</div><br><div>--</div><br><div>2.31.1</div></div></blockquote>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/96300">View/Reply Online (#96300)</a> |    |  <a target="_blank" href="https://groups.io/mt/94955182/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>