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 37628D80860 for ; Tue, 12 Dec 2023 13:09:49 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=ip+8eka5MNvNCRvcHpfh0kSIWiCmigVclwytGobBJK0=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1702386587; v=1; b=X80fNzhK9oXCnnBdc90ZCN9XeI49aJSRhrcDt2jvFz8Djm2jQ0s87i9fs+A7xahvtTmypJxW o+kf8jDAwPPL3fFZXtK1gsA9o/KF4mL8sWMToPPmV55ARpOwOZAXpV7yj4ZdlK5NtrMaYZ0UlCy om1y5LQCHpAj+c4DIEGWttss= X-Received: by 127.0.0.2 with SMTP id 5HW5YY7687511x2ViqHFCyHB; Tue, 12 Dec 2023 05:09:47 -0800 X-Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.1135.1702386585774252946 for ; Tue, 12 Dec 2023 05:09:46 -0800 X-Received: from loongson.cn (unknown [10.2.9.245]) by gateway (Coremail) with SMTP id _____8CxRPCUW3hlHlkAAA--.2151S3; Tue, 12 Dec 2023 21:09:40 +0800 (CST) X-Received: from code-server.gen (unknown [10.2.9.245]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Ax_OCPW3hl3qIAAA--.4312S2; Tue, 12 Dec 2023 21:09:35 +0800 (CST) From: "Chao Li" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Eric Dong , Ray Ni , Rahul Kumar , Gerd Hoffmann , Leif Lindholm , Ard Biesheuvel , Abner Chang , Daniel Schaefer , Sami Mujawar , Jiewen Yao , Jordan Justen , Andrei Warkentin , Laszlo Ersek , Sunil V L Subject: [edk2-devel] [PATCH v4 00/37] Enable LoongArch virtual machine in edk2 Date: Tue, 12 Dec 2023 21:09:32 +0800 Message-Id: <20231212130932.2467028-1-lichao@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8Ax_OCPW3hl3qIAAA--.4312S2 X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQADCGV3wy0H6gAAsb X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== 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,lichao@loongson.cn List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: CKPUTorpOEv5WsIlFBqHLC5Xx7686176AA= 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=X80fNzhK; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=none This patch set will enable LoongArch virtual machine in edk2, the new LoongArch virtual machine is located in OvmfPkg/LoongArchVirt/, it is a generic platform that dose not require any actual hardware. Patch1-Patch14: Submit the common library and driver for LoongArch virtual machine and real hardware. Such as base help functions, exception handel, MMU library, multiprocessor library etc. Patch15-Patch16: Add PrePiCpuIoSize for LoongArch64. and move ArmVirtPkg two PCDs into OvmfPkg for easier use by other architectures. Patch17-Patch29: LoongArch virtual machine private code, include SEC and PEI phase code, some library and drivers. Patch30: Add LoongArchVirt's self introduction-file. Modfied modues: MdePkg, UefiCpuPkg, EmbeddedPkg, ArmVirtPkg, OvmfPkg. BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 **Changes from V1 to V2:** 1. Add Ray's Ack signature to patch 13. 2. Add LoongArchVirt's self introduction-file. And made a standalone patch for this change. **Changes from V2 to V3:** Compared with V2, there are 9 more patches, removed 2 libraries and 1 driver from OvmfPkg/LoongArchVrt. New patches: MdePkg: Add a new library named PeiServicesTablePointerLibReg MdePkg: Add method of LoongArch64 to PeiServicesTablePointerLibReg MdePkg: Add a PCD feature flag named PcdPciIoTranslationIsEnabled UefiCpuPkg: Add MMIO method in CpuIo2Dxe ArmVirtPkg: Enable UefiCpuPkg version CpuIo2Dxe ArmPkg: Remove ArmPciCpuIo2Dxe from ArmPkg OvmfPkg/RiscVVirt: Enable UefiCpuPkg version CpuIo2Dxe OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg ArmVirtPkg: Move the PcdTerminalTypeGuidBuffer into OvmfPkg ArmVirtPkg: Move PlatformBootManagerLib to OvmfPkg For the review opinions: 1. Add MMIO method to CpuIo2Dxe driver to accommodate more ARCH that require MMIO method, enable it on ARM, RISCV64 and LOONGARCH64. Questioner: Gerd, Sunil. 2. Move the FdtSerialProtAddressLib to OvmfPkg and enabled it on ARM and LOONGARCH64. Questioner: Gerd, Laszlo. 3. Add a new library in MdePkg named PeiServiceTablePointerLibReg for the Register Mechanism and enabled it on LOONGARCH64. Questioner: Laszlo. 4. Moved the ARM version of PlatformBootManagerLib to OvmfPkg/Library, and enabled it on ARM and LOONGARCH64. Questioner: Laszlo, Gerd. 5. Adjust the order of some inf file in ArmVirtPkg. Questioner: Sami. 6. Move the CpuMmuLib.h some architecture-specific PTE #defines into Csr.h. Questioner: Andrei. **Changes from V3 to V4:** Compared with V3, 1 patch moving ArmPciCpuIo2Dxe has been removed. Adjusted the code of the LoongArch64 CPU timer library. Rename PeiServiceTablePointerLibReg to PeiServiceTablePointerLibKs0. Fixed some typos. Remove some APIs of CpuMmuLib. For the review opinions: 1. Removed the patch that removed ArmPciCpuIo2Dxe, there are 15 platforms in edk2-platforms were affected, so wait for this patch series to be merged, then submit a patch to remove it. Questioner: Leif. 2. Renamed the PeiServiceTablePointLibReg to PeiServiceTablePointLibKs0. Currently, this library is specific to LoongArch architecture. Questioner: Laszlo, Liming. 3. Adjust some logic of LoongArch64 CPU timer library. Using the safe INT library and adjust the bit width of stable counter. Questioner: Laszlo. 4. Removed some APIs from CpuMmuLib. Change some APIs to private. Questioner: Ray. **Remaining questions:** Not sure the the LoongArch64 CpuTimerLib is called and where it should be located. Questioner: Laszlo. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Eric Dong Cc: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Abner Chang Cc: Daniel Schaefer Cc: Sami Mujawar Cc: Jiewen Yao Cc: Jordan Justen Cc: Andrei Warkentin Cc: Laszlo Ersek Cc: Sunil V L Chao Li (37): MdePkg: Add the header file named Csr.h for LoongArch64 MdePkg: Add LoongArch64 FPU function set into BaseCpuLib MdePkg: Add LoongArch64 exception function set into BaseLib MdePkg: Add LoongArch64 local interrupt function set into BaseLib MdePkg: Add LoongArch Cpucfg function MdePkg: Add read stable counter operation for LoongArch MdePkg: Add CSR operation for LoongArch MdePkg: Add IOCSR operation for LoongArch MdePkg: Add a new library named PeiServicesTablePointerLibKs0 UefiCpuPkg: Add LoongArch64 CPU Timer library UefiCpuPkg: Add CPU exception library for LoongArch UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg UefiCpuPkg: Add LoongArch64CpuMmuLib to UefiCpuPkg UefiCpuPkg: Add multiprocessor library for LoongArch64 UefiCpuPkg: Add CpuDxe driver for LoongArch64 EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64 ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg MdePkg: Add a PCD feature flag named PcdPciIoTranslationIsEnabled UefiCpuPkg: Add MMIO method in CpuIo2Dxe ArmVirtPkg: Enable UefiCpuPkg version CpuIo2Dxe OvmfPkg/RiscVVirt: Enable UefiCpuPkg version CpuIo2Dxe OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg ArmVirtPkg: Move the PcdTerminalTypeGuidBuffer into OvmfPkg ArmVirtPkg: Move PlatformBootManagerLib to OvmfPkg OvmfPkg/LoongArchVirt: Add stable timer driver OvmfPkg/LoongArchVirt: Add a NULL library named CollectApResouceLibNull OvmfPkg/LoongArchVirt: Add serial port hook library OvmfPkg/LoongArchVirt: Add the early serial port output library OvmfPkg/LoongArchVirt: Add real time clock library OvmfPkg/LoongArchVirt: Add NorFlashQemuLib OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib OvmfPkg/LoongArchVirt: Add reset system library OvmfPkg/LoongArchVirt: Support SEC phase OvmfPkg/LoongArchVirt: Support PEI phase OvmfPkg/LoongArchVirt: Add build file OvmfPkg/LoongArchVirt: Add self introduction file ArmVirtPkg/ArmVirt.dsc.inc | 2 +- ArmVirtPkg/ArmVirtCloudHv.dsc | 6 +- ArmVirtPkg/ArmVirtCloudHv.fdf | 2 +- ArmVirtPkg/ArmVirtKvmTool.dsc | 6 +- ArmVirtPkg/ArmVirtKvmTool.fdf | 2 +- ArmVirtPkg/ArmVirtPkg.ci.yaml | 1 - ArmVirtPkg/ArmVirtPkg.dec | 22 - ArmVirtPkg/ArmVirtQemu.dsc | 10 +- ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 2 +- ArmVirtPkg/ArmVirtQemuKernel.dsc | 10 +- ArmVirtPkg/ArmVirtXen.dsc | 2 +- .../ArmVirtPsciResetSystemPeiLib.inf | 3 +- .../CloudHvVirtMemInfoPeiLib.inf | 3 +- .../DebugLibFdtPL011UartFlash.inf | 3 +- .../EarlyFdt16550SerialPortHookLib.inf | 3 +- .../EarlyFdtPL011SerialPortLib.inf | 3 +- .../KvmtoolPlatformPeiLib.inf | 5 +- .../Library/PlatformPeiLib/PlatformPeiLib.inf | 10 +- .../QemuVirtMemInfoPeiLib.inf | 3 +- .../PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 3 +- EmbeddedPkg/EmbeddedPkg.dec | 3 + MdePkg/Include/Library/BaseLib.h | 221 +++ MdePkg/Include/Library/CpuLib.h | 37 +- .../Library/PeiServicesTablePointerLib.h | 9 +- MdePkg/Include/Protocol/DebugSupport.h | 76 +- MdePkg/Include/Register/LoongArch64/Cpucfg.h | 565 ++++++ MdePkg/Include/Register/LoongArch64/Csr.h | 263 +++ MdePkg/Library/BaseCpuLib/BaseCpuLib.inf | 7 +- .../Library/BaseCpuLib/LoongArch/DisableFpu.S | 17 + .../Library/BaseCpuLib/LoongArch/EnableFpu.S | 17 + .../BaseCpuLib/LoongArch/InitializeFpu.S | 51 + MdePkg/Library/BaseLib/BaseLib.inf | 6 + MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S | 422 +++++ MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S | 26 + MdePkg/Library/BaseLib/LoongArch64/Csr.c | 81 + .../BaseLib/LoongArch64/DisableInterrupts.S | 22 +- .../BaseLib/LoongArch64/EnableInterrupts.S | 22 +- .../BaseLib/LoongArch64/ExceptionBase.S | 41 + MdePkg/Library/BaseLib/LoongArch64/IoCsr.S | 120 ++ .../BaseLib/LoongArch64/ReadStableCounter.S | 24 + .../PeiServicesTablePointer.c | 87 + .../PeiServicesTablePointerLibKs0.inf | 37 + .../PeiServicesTablePointerLibKs0.uni | 20 + MdePkg/MdePkg.ci.yaml | 3 +- MdePkg/MdePkg.dec | 6 + MdePkg/MdePkg.dsc | 3 + .../Include/Library/FdtSerialPortAddressLib.h | 0 .../FdtSerialPortAddressLib.c | 0 .../FdtSerialPortAddressLib.inf | 2 +- .../PlatformBootManagerLibLight}/PlatformBm.c | 0 .../PlatformBootManagerLibLight}/PlatformBm.h | 0 .../PlatformBootManagerLib.inf | 5 +- .../PlatformBootManagerLibLight}/QemuKernel.c | 0 .../Drivers/StableTimerDxe/Timer.c | 381 ++++ .../Drivers/StableTimerDxe/Timer.h | 127 ++ .../Drivers/StableTimerDxe/TimerDxe.inf | 41 + .../CollectApResourceLibNull.c | 38 + .../CollectApResourceLibNull.inf | 31 + .../CollectApResourceLibNull.uni | 9 + .../EarlyFdtSerialPortLib16550.c | 815 +++++++++ .../EarlyFdtSerialPortLib16550.inf | 46 + .../EarlyFdt16550SerialPortHookLib.c | 52 + .../EarlyFdt16550SerialPortHookLib.inf | 37 + .../Fdt16550SerialPortHookLib.c | 39 + .../Fdt16550SerialPortHookLib.inf | 33 + .../Fdt16550SerialPortHookLib.uni | 14 + .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c | 504 ++++++ .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf | 42 + .../FdtQemuFwCfgLib/QemuFwCfgLibInternal.h | 73 + .../Library/FdtQemuFwCfgLib/QemuFwCfgPei.c | 117 ++ .../DxeLsRealTimeClockLib.c | 326 ++++ .../DxeLsRealTimeClockLib.inf | 41 + .../LsRealTimeClockLib/LsRealTimeClock.h | 47 + .../PeiLsRealTimeClockLib.c | 31 + .../PeiLsRealTimeClockLib.inf | 29 + .../Library/NorFlashQemuLib/NorFlashQemuLib.c | 140 ++ .../NorFlashQemuLib/NorFlashQemuLib.inf | 43 + .../BaseResetSystemAcpiGed.c | 148 ++ .../BaseResetSystemAcpiGedLib.inf | 36 + .../DxeResetSystemAcpiGed.c | 259 +++ .../DxeResetSystemAcpiGedLib.inf | 41 + .../ResetSystemAcpiLib/ResetSystemAcpiGed.c | 125 ++ .../ResetSystemAcpiLib/ResetSystemAcpiGed.h | 23 + OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc | 34 + OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | 679 +++++++ OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf | 313 ++++ OvmfPkg/LoongArchVirt/PlatformPei/Fv.c | 39 + OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c | 201 +++ OvmfPkg/LoongArchVirt/PlatformPei/Platform.c | 393 ++++ OvmfPkg/LoongArchVirt/PlatformPei/Platform.h | 146 ++ .../LoongArchVirt/PlatformPei/PlatformPei.inf | 72 + OvmfPkg/LoongArchVirt/Readme.md | 67 + OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S | 176 ++ OvmfPkg/LoongArchVirt/Sec/SecMain.c | 507 ++++++ OvmfPkg/LoongArchVirt/Sec/SecMain.inf | 53 + OvmfPkg/LoongArchVirt/VarStore.fdf.inc | 67 + OvmfPkg/OvmfPkg.dec | 26 + OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c | 557 ------ .../RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf | 48 - OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc | 4 +- OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf | 2 +- UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c | 435 +++++ UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h | 281 +++ UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf | 60 + UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni | 15 + UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c | 544 ++++++ UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h | 471 +++++ UefiCpuPkg/CpuDxeLoongArch64/Exception.c | 150 ++ UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.c | 149 +- UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.h | 2 + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf | 8 +- UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.uni | 2 + UefiCpuPkg/Include/Library/CpuMmuLib.h | 67 + .../BaseLoongArch64CpuTimerLib.inf | 29 + .../BaseLoongArch64CpuTimerLib.uni | 15 + .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c | 250 +++ .../DxeCpuExceptionHandlerLib.inf | 45 + .../DxeCpuExceptionHandlerLib.uni | 15 + .../DxeExceptionLib.c | 198 ++ .../ExceptionCommon.c | 170 ++ .../ExceptionCommon.h | 111 ++ .../LoongArch64/ArchExceptionHandler.c | 213 +++ .../LoongArch64/ExceptionHandlerAsm.S | 320 ++++ .../SecPeiCpuExceptionHandlerLib.inf | 45 + .../SecPeiCpuExceptionHandlerLib.uni | 15 + .../SecPeiExceptionLib.c | 88 + .../LoongArch64CpuMmuLib/CommonMmuLib.c | 971 ++++++++++ .../LoongArch64CpuMmuLib/CommonMmuLib.h | 43 + .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf | 36 + .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni | 14 + .../Library/LoongArch64CpuMmuLib/Page.h | 279 +++ .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c | 165 ++ .../LoongArch64CpuMmuLib/PeiCpuMmuLib.inf | 44 + .../LoongArch64CpuMmuLib/PeiCpuMmuLib.uni | 14 + UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h | 48 + .../LoongArch64CpuMmuLib/TlbOperation.S | 44 + .../LoongArch64MpInitLib/DxeMpInitLib.inf | 45 + .../LoongArch64MpInitLib/DxeMpInitLib.uni | 15 + .../Library/LoongArch64MpInitLib/DxeMpLib.c | 480 +++++ .../Library/LoongArch64MpInitLib/MpLib.c | 1596 +++++++++++++++++ .../Library/LoongArch64MpInitLib/MpLib.h | 361 ++++ .../LoongArch64MpInitLib/PeiMpInitLib.inf | 37 + .../LoongArch64MpInitLib/PeiMpInitLib.uni | 15 + .../Library/LoongArch64MpInitLib/PeiMpLib.c | 404 +++++ UefiCpuPkg/UefiCpuPkg.dec | 10 + UefiCpuPkg/UefiCpuPkg.dsc | 10 + 146 files changed, 16925 insertions(+), 770 deletions(-) create mode 100644 MdePkg/Include/Register/LoongArch64/Cpucfg.h create mode 100644 MdePkg/Include/Register/LoongArch64/Csr.h create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/DisableFpu.S create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/EnableFpu.S create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/InitializeFpu.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Csr.c create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ExceptionBase.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/IoCsr.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ReadStableCounter.S create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointer.c create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.inf create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.uni rename {ArmVirtPkg => OvmfPkg}/Include/Library/FdtSerialPortAddressLib.h (100%) rename {ArmVirtPkg => OvmfPkg}/Library/FdtSerialPortAddressLib/FdtSerialPortAddressLib.c (100%) rename {ArmVirtPkg => OvmfPkg}/Library/FdtSerialPortAddressLib/FdtSerialPortAddressLib.inf (90%) rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBm.c (100%) rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBm.h (100%) rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBootManagerLib.inf (89%) rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/QemuKernel.c (100%) create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.c create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.h create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.c create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.uni create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.c create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.uni create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgLibInternal.h create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgPei.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/LsRealTimeClock.h create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.h 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/PlatformPei/Fv.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.h create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf create mode 100644 OvmfPkg/LoongArchVirt/Readme.md create mode 100644 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.c create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.inf create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/Exception.c create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTimerLib.inf create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTimerLib.uni create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuTimerLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeExceptionLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/ExceptionCommon.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/ExceptionCommon.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/ArchExceptionHandler.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/ExceptionHandlerAsm.S create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiExceptionLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Page.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/TlbOperation.S create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.h create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpLib.c -- 2.27.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112391): https://edk2.groups.io/g/devel/message/112391 Mute This Topic: https://groups.io/mt/103129048/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-