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 A0440D8094F for ; Mon, 8 Jan 2024 02:42:20 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=wmMkg7o5T1MBXLzQTVL09/e3XSyUuq4UvV4E7n6A7NQ=; c=relaxed/simple; d=groups.io; h=Message-ID:Date:MIME-Version:User-Agent:Subject:To:Cc:References:From:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type; s=20140610; t=1704681739; v=1; b=FJx8yNd2EqoCfanncoPeQsIvB7MZJaPu/5lVT1GEerEJvSj1ftXyp0bZz+BN0JFYekUtB8Gt T0fvRiNB38zEOR60rBrRv+uKqwGxG00Fxk7Niy7kJaHR7CuucbsGeu8EgIWQ44fUCSZTrAzF2G9 0HN8JpdifP3Ix+fNp3jV4jVI= X-Received: by 127.0.0.2 with SMTP id uVvFYY7687511x83Z4kGRVhx; Sun, 07 Jan 2024 18:42:19 -0800 X-Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web10.31324.1704681736701959033 for ; Sun, 07 Jan 2024 18:42:18 -0800 X-Received: from loongson.cn (unknown [10.40.24.149]) by gateway (Coremail) with SMTP id _____8DxvOj+YJtlwgIDAA--.1531S3; Mon, 08 Jan 2024 10:42:06 +0800 (CST) X-Received: from [10.40.24.149] (unknown [10.40.24.149]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Cxid3zYJtlnNkGAA--.17714S3; Mon, 08 Jan 2024 10:41:55 +0800 (CST) Message-ID: Date: Mon, 8 Jan 2024 10:41:55 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: =?UTF-8?B?UmU6IFtlZGsyLWRldmVsXSDlm57lpI06IFtQQVRDSCB2NiAwMC8zNl0gRW5hYmxlIExvb25nQXJjaCB2aXJ0dWFsIG1hY2hpbmUgaW4gZWRrMg==?= To: devel@edk2.groups.io, gaoliming@byosoft.com.cn Cc: 'Michael D Kinney' , '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' , 'Bibo Mao' References: <20240105094118.2279380-1-lichao@loongson.cn> <02b101da41d3$0376e780$0a64b680$@byosoft.com.cn> From: "Chao Li" In-Reply-To: <02b101da41d3$0376e780$0a64b680$@byosoft.com.cn> X-CM-TRANSID: AQAAf8Cxid3zYJtlnNkGAA--.17714S3 X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQAKCGWbSakCtgAAsp X-Coremail-Antispam: 1Uk129KBj9fXoWfAw18tFW3ur1kGw1DWrWfZwc_yoW5GFWDAo W8Ja1xWw4UJrn3u3sakwnxXrW7WF429r4rWr4IvayUAFs0y3WjgFs8X34Fga4rZF9xXw1U G34rKan7tFWaqrn3l-sFpf9Il3svdjkaLaAFLSUrUUUU8b8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrnUUv73VFW2AGmfu7bjvjm3AaLaJ3UjIYCTnIWjp_UUUY-7kC6x804xWl 14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwV WUXVWUAwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE 14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aV AFwI0_Cr0_Gr1UM28EF7xvwVC2z280aVCY1x0267AKxVW8JVW8Jr1ln4kS14v26r1Y6r17 M2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx1lYx0E2Ix0cI 8IcVAFwI0_JF0_Jw1lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwAC jcxG0xvEwIxGrwCjr7xvwVCIw2I0I7xG6c02F41l42xK82IYc2Ij64vIr41l4I8I3I0E4I kC6x0Yz7v_Jr0_Gr1l4IxYO2xFxVAFwI0_Jrv_JF1lx2IqxVAqx4xG67AKxVWUGVWUWwC2 0s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r4a6rW5MIIYrxkI7VAKI48JMI IF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF 0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87 Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07jbVyxUUUUU= 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: XAT9HxATZEFmn6rRoUn45FY2x7686176AA= Content-Type: multipart/alternative; boundary="------------Ov4gr3dT8cE0Fi0iJAGMg3Nc" X-Spam-Flag: yes X-Spam-Level: ************ X-GND-Spam-Score: 190 X-GND-Status: SPAM Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=FJx8yNd2; 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 --------------Ov4gr3dT8cE0Fi0iJAGMg3Nc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Liming, Thanks, Chao On 2024/1/8 09:35, gaoliming via groups.io wrote: > Chao: > Thanks for your update. The changes in MdePkg are good to me. Reviewed-by: > Liming Gao > > But, I still have one minor comment on [PATCH v6 11/36] UefiCpuPkg: Add > CPU exception library for LoongArch. > > Can you separate the change in MdePkg to another single commit? Of course, let me separate them in V7 and submit in a few days. > > Thanks > Liming >> -----邮件原件----- >> 发件人: Chao Li >> 发送时间: 2024年1月5日 17:41 >> 收件人:devel@edk2.groups.io >> 抄送: 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 >> ; Bibo Mao >> 主题: [PATCH v6 00/36] Enable LoongArch virtual machine in edk2 >> >> 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 >> >> PR:https://github.com/tianocore/edk2/pull/5208 >> >> **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. >> >> **Changes from V4 to V5:** >> Compared with V4, 1 patch adding PcdPciIoTranslationIsEnabled in MdePkg >> has been removed. >> Copy ArmPciCpuIo2Dxe to UefiCpuPkg and renamed it to CpuMmio2Dxe. >> Restore the definitions in MdePkg/Include/Protocol/DebugSupport.h, and >> just add some comments. >> >> For the review opinions: >> 1. Copy ArmPciCpuIo2Dxe to UefiCpuPkg so that more other ARCHs can use >> it easily. Questioner: Ray, Ard. >> >> 2. Restore the changes of MdePkg/Include/Protocol/DebugSupport.h. >> Questioner: Liming. >> >> 3. Ia32 X64 and LoongArch64 use a same API definition, >> InitializeFloatingPointUnits in CpuLib.h. Questioner: Liming. >> >> 4. Adjust API definition in CpuMmuLib.h. Questioner: Ray. >> >> **Changes from V5 to V6:** >> 1. Added Sunil "Reviewed-by" message to patches 20 and 21. >> 2. Added Bibo "Reviced-by" message to patches 27, 29, 32 and 34. >> 3. Added the IPI handler in SEC and PEI stage. Modified patches 11 and >> 15. >> 4. Adjust some code styles to suit CI ECC. >> 5. Adjust the way of AP wakeup from IPI. >> 6. Adjust the order between setting exceptions and copying exception >> handlers. >> >> 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 >> Cc: Bibo Mao >> >> Chao Li (36): >> 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 >> UefiCpuPkg: Add a new CPU IO 2 driver named CpuMmio2Dxe >> ArmVirtPkg: Enable CpuMmio2Dxe >> OvmfPkg/RiscVVirt: Enable CpuMmio2Dxe >> OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt >> ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg >> ArmVirtPkg: Move PcdTerminalTypeGuidBuffer and >> PcdUninstallMemAttrProtocol 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 | 4 +- >> ArmVirtPkg/ArmVirtCloudHv.fdf | 2 +- >> ArmVirtPkg/ArmVirtKvmTool.dsc | 4 +- >> ArmVirtPkg/ArmVirtKvmTool.fdf | 2 +- >> ArmVirtPkg/ArmVirtPkg.ci.yaml | 1 - >> ArmVirtPkg/ArmVirtPkg.dec | 28 - >> ArmVirtPkg/ArmVirtQemu.dsc | 8 +- >> ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 2 +- >> ArmVirtPkg/ArmVirtQemuKernel.dsc | 8 +- >> 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 | 43 +- >> .../Library/PeiServicesTablePointerLib.h | 9 +- >> MdePkg/Include/Protocol/DebugSupport.h | 14 + >> 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.dsc | 3 + >> .../Include/Library/FdtSerialPortAddressLib.h | 0 >> .../FdtSerialPortAddressLib.c | 0 >> .../FdtSerialPortAddressLib.inf | 2 +- >> .../PlatformBootManagerLibLight}/PlatformBm.c | 0 >> .../PlatformBootManagerLibLight}/PlatformBm.h | 0 >> .../PlatformBootManagerLib.inf | 7 +- >> .../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 | 327 ++++ >> .../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 | 183 ++ >> OvmfPkg/LoongArchVirt/Sec/SecMain.c | 507 ++++++ >> OvmfPkg/LoongArchVirt/Sec/SecMain.inf | 53 + >> OvmfPkg/LoongArchVirt/VarStore.fdf.inc | 67 + >> OvmfPkg/OvmfPkg.dec | 32 + >> OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc | 2 +- >> OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf | 2 +- >> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c | 414 +++++ >> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h | 288 +++ >> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf | 60 + >> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni | 15 + >> UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c | 544 ++++++ >> UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h | 469 +++++ >> UefiCpuPkg/CpuDxeLoongArch64/Exception.c | 150 ++ >> .../CpuMmio2Dxe/CpuMmio2Dxe.c | 8 +- >> .../CpuMmio2Dxe/CpuMmio2Dxe.inf | 16 +- >> UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni | 18 + >> UefiCpuPkg/Include/Library/CpuMmuLib.h | 62 + >> .../BaseLoongArch64CpuTimerLib.inf | 29 + >> .../BaseLoongArch64CpuTimerLib.uni | 15 + >> .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c | 251 +++ >> .../DxeCpuExceptionHandlerLib.inf | 45 + >> .../DxeCpuExceptionHandlerLib.uni | 15 + >> .../DxeExceptionLib.c | 198 ++ >> .../ExceptionCommon.c | 209 +++ >> .../ExceptionCommon.h | 132 ++ >> .../LoongArch64/ArchExceptionHandler.c | 213 +++ >> .../LoongArch64/ExceptionHandlerAsm.S | 320 ++++ >> .../SecPeiCpuExceptionHandlerLib.inf | 45 + >> .../SecPeiCpuExceptionHandlerLib.uni | 15 + >> .../SecPeiExceptionLib.c | 102 ++ >> .../LoongArch64CpuMmuLib/CommonMmuLib.c | 986 >> ++++++++++ >> .../LoongArch64CpuMmuLib/CommonMmuLib.h | 43 + >> .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf | 36 + >> .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni | 14 + >> .../Library/LoongArch64CpuMmuLib/Page.h | 279 +++ >> .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c | 178 ++ >> .../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 | 12 + >> 142 files changed, 16904 insertions(+), 101 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/PeiServicesTablePointerLibKs >> 0.inf >> create mode 100644 >> MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs >> 0.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.in >> f (87%) >> 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/CollectApResource >> LibNull.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResource >> LibNull.inf >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResource >> LibNull.uni >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPor >> tLib16550.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPor >> tLib16550.inf >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550Se >> rialPortHookLib.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550Se >> rialPortHookLib.inf >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP >> ortHookLib.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP >> ortHookLib.inf >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP >> ortHookLib.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.i >> nf >> 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/BaseResetSystemAcpiG >> ed.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiG >> edLib.inf >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGe >> d.c >> create mode 100644 >> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGe >> dLib.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 >> 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 >> rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c => >> UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.c (96%) >> rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf => >> UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf (61%) >> create mode 100644 UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni >> create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h >> create mode 100644 >> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTim >> erLib.inf >> create mode 100644 >> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTim >> erLib.uni >> create mode 100644 >> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuTimerLib.c >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionH >> andlerLib.inf >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionH >> andlerLib.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/Arch >> ExceptionHandler.c >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/Exce >> ptionHandlerAsm.S >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptio >> nHandlerLib.inf >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptio >> nHandlerLib.uni >> create mode 100644 >> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiExceptionLi >> b.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 (#113342): https://edk2.groups.io/g/devel/message/113342 Mute This Topic: https://groups.io/mt/103589722/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- --------------Ov4gr3dT8cE0Fi0iJAGMg3Nc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi Liming,


Thanks,
Chao
On 2024/1/8 09:35, gaoliming via groups.io wrote:
Chao:
  Thanks for your update. The changes in MdePkg are good to me. Reviewed-by:
Liming Gao <gaoliming@byosoft.com.cn>

  But, I still have one minor comment on [PATCH v6 11/36] UefiCpuPkg: Add
CPU exception library for LoongArch. 
  
  Can you separate the change in MdePkg to another single commit? 
Of course, let me separate them in V7 and submit in a few days.

Thanks
Liming
-----邮件原件-----
发件人: Chao Li <lichao@loongson.cn>
发送时间: 2024年1月5日 17:41
收件人: devel@edk2.groups.io
抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
<gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; Eric
Dong <eric.dong@intel.com>; Ray Ni <ray.ni@intel.com>; Rahul Kumar
<rahul1.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Leif
Lindholm <quic_llindhol@quicinc.com>; Ard Biesheuvel
<ardb+tianocore@kernel.org>; Abner Chang <abner.chang@amd.com>;
Daniel Schaefer <git@danielschaefer.me>; Sami Mujawar
<sami.mujawar@arm.com>; Jiewen Yao <jiewen.yao@intel.com>; Jordan
Justen <jordan.l.justen@intel.com>; Andrei Warkentin
<andrei.warkentin@intel.com>; Laszlo Ersek <lersek@redhat.com>; Sunil V L
<sunilvl@ventanamicro.com>; Bibo Mao <maobibo@loongson.cn>
主题: [PATCH v6 00/36] Enable LoongArch virtual machine in edk2

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

PR: https://github.com/tianocore/edk2/pull/5208

**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.

**Changes from V4 to V5:**
Compared with V4, 1 patch adding PcdPciIoTranslationIsEnabled in MdePkg
has been removed.
Copy ArmPciCpuIo2Dxe to UefiCpuPkg and renamed it to CpuMmio2Dxe.
Restore the definitions in MdePkg/Include/Protocol/DebugSupport.h, and
just add some comments.

For the review opinions:
1. Copy ArmPciCpuIo2Dxe to UefiCpuPkg so that more other ARCHs can use
it easily. Questioner: Ray, Ard.

2. Restore the changes of MdePkg/Include/Protocol/DebugSupport.h.
Questioner: Liming.

3. Ia32 X64 and LoongArch64 use a same API definition,
InitializeFloatingPointUnits in CpuLib.h. Questioner: Liming.

4. Adjust API definition in CpuMmuLib.h. Questioner: Ray.

**Changes from V5 to V6:**
1. Added Sunil "Reviewed-by" message to patches 20 and 21.
2. Added Bibo "Reviced-by" message to patches 27, 29, 32 and 34.
3. Added the IPI handler in SEC and PEI stage. Modified patches 11 and
15.
4. Adjust some code styles to suit CI ECC.
5. Adjust the way of AP wakeup from IPI.
6. Adjust the order between setting exceptions and copying exception
handlers.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Daniel Schaefer <git@danielschaefer.me>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: Bibo Mao <maobibo@loongson.cn>

Chao Li (36):
  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
  UefiCpuPkg: Add a new CPU IO 2 driver named CpuMmio2Dxe
  ArmVirtPkg: Enable CpuMmio2Dxe
  OvmfPkg/RiscVVirt: Enable CpuMmio2Dxe
  OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt
  ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg
  ArmVirtPkg: Move PcdTerminalTypeGuidBuffer and
    PcdUninstallMemAttrProtocol 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                 |    4 +-
 ArmVirtPkg/ArmVirtCloudHv.fdf                 |    2 +-
 ArmVirtPkg/ArmVirtKvmTool.dsc                 |    4 +-
 ArmVirtPkg/ArmVirtKvmTool.fdf                 |    2 +-
 ArmVirtPkg/ArmVirtPkg.ci.yaml                 |    1 -
 ArmVirtPkg/ArmVirtPkg.dec                     |   28 -
 ArmVirtPkg/ArmVirtQemu.dsc                    |    8 +-
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc          |    2 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc              |    8 +-
 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               |   43 +-
 .../Library/PeiServicesTablePointerLib.h      |    9 +-
 MdePkg/Include/Protocol/DebugSupport.h        |   14 +
 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.dsc                             |    3 +
 .../Include/Library/FdtSerialPortAddressLib.h |    0
 .../FdtSerialPortAddressLib.c                 |    0
 .../FdtSerialPortAddressLib.inf               |    2 +-
 .../PlatformBootManagerLibLight}/PlatformBm.c |    0
 .../PlatformBootManagerLibLight}/PlatformBm.h |    0
 .../PlatformBootManagerLib.inf                |    7 +-
 .../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                   |  327 ++++
 .../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 |  183 ++
 OvmfPkg/LoongArchVirt/Sec/SecMain.c           |  507 ++++++
 OvmfPkg/LoongArchVirt/Sec/SecMain.inf         |   53 +
 OvmfPkg/LoongArchVirt/VarStore.fdf.inc        |   67 +
 OvmfPkg/OvmfPkg.dec                           |   32 +
 OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc           |    2 +-
 OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf           |    2 +-
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c         |  414 +++++
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h         |  288 +++
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf       |   60 +
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni       |   15 +
 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c          |  544 ++++++
 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h          |  469 +++++
 UefiCpuPkg/CpuDxeLoongArch64/Exception.c      |  150 ++
 .../CpuMmio2Dxe/CpuMmio2Dxe.c                 |    8 +-
 .../CpuMmio2Dxe/CpuMmio2Dxe.inf               |   16 +-
 UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni        |   18 +
 UefiCpuPkg/Include/Library/CpuMmuLib.h        |   62 +
 .../BaseLoongArch64CpuTimerLib.inf            |   29 +
 .../BaseLoongArch64CpuTimerLib.uni            |   15 +
 .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c  |  251 +++
 .../DxeCpuExceptionHandlerLib.inf             |   45 +
 .../DxeCpuExceptionHandlerLib.uni             |   15 +
 .../DxeExceptionLib.c                         |  198 ++
 .../ExceptionCommon.c                         |  209 +++
 .../ExceptionCommon.h                         |  132 ++
 .../LoongArch64/ArchExceptionHandler.c        |  213 +++
 .../LoongArch64/ExceptionHandlerAsm.S         |  320 ++++
 .../SecPeiCpuExceptionHandlerLib.inf          |   45 +
 .../SecPeiCpuExceptionHandlerLib.uni          |   15 +
 .../SecPeiExceptionLib.c                      |  102 ++
 .../LoongArch64CpuMmuLib/CommonMmuLib.c       |  986
++++++++++
 .../LoongArch64CpuMmuLib/CommonMmuLib.h       |   43 +
 .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf     |   36 +
 .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni     |   14 +
 .../Library/LoongArch64CpuMmuLib/Page.h       |  279 +++
 .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c       |  178 ++
 .../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                     |   12 +
 142 files changed, 16904 insertions(+), 101 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/PeiServicesTablePointerLibKs
0.inf
 create mode 100644
MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs
0.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.in
f (87%)
 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/CollectApResource
LibNull.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResource
LibNull.inf
 create mode 100644
OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResource
LibNull.uni
 create mode 100644
OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPor
tLib16550.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPor
tLib16550.inf
 create mode 100644
OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550Se
rialPortHookLib.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550Se
rialPortHookLib.inf
 create mode 100644
OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP
ortHookLib.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP
ortHookLib.inf
 create mode 100644
OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialP
ortHookLib.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.i
nf
 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/BaseResetSystemAcpiG
ed.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiG
edLib.inf
 create mode 100644
OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGe
d.c
 create mode 100644
OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGe
dLib.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
 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
 rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c =>
UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.c (96%)
 rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf =>
UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf (61%)
 create mode 100644 UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni
 create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h
 create mode 100644
UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTim
erLib.inf
 create mode 100644
UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTim
erLib.uni
 create mode 100644
UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuTimerLib.c
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionH
andlerLib.inf
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionH
andlerLib.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/Arch
ExceptionHandler.c
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/Exce
ptionHandlerAsm.S
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptio
nHandlerLib.inf
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptio
nHandlerLib.uni
 create mode 100644
UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiExceptionLi
b.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 (#113342) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_
--------------Ov4gr3dT8cE0Fi0iJAGMg3Nc--