From: "maobibo" <maobibo@loongson.cn>
To: Chao Li <lichao@loongson.cn>, devel@edk2.groups.io, ray.ni@intel.com
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
"Gao, Liming" <gaoliming@byosoft.com.cn>,
"Liu, Zhiguang" <zhiguang.liu@intel.com>,
"Dong, Eric" <eric.dong@intel.com>,
"Kumar, Rahul R" <rahul.r.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>,
"Yao, Jiewen" <jiewen.yao@intel.com>,
"Justen, Jordan L" <jordan.l.justen@intel.com>
Subject: Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
Date: Fri, 3 Nov 2023 16:16:58 +0800 [thread overview]
Message-ID: <c85d3d5c-2b98-6122-ddc9-1445c330ef8d@loongson.cn> (raw)
In-Reply-To: <b770b2c5-0208-42ab-af7b-a24915ebbda2@loongson.cn>
On 2023/11/3 下午4:09, Chao Li wrote:
> Hi Bibo,
>
> Yes, you are right, MpInitLib is most used on the physical machines, but
> in LoongArch, this library is a public library, so it is the minimum
> requirement that it can worke on physical machines and virtual machines.
> This library has been tested on the actual and virtual machines to
> ensure it works right.
If so, it is ok for me-:)
Regards
Bibo Mao
>
>
> Thanks,
> Chao
> 在 2023/11/3 15:51, maobibo 写道:
>>
>>
>> On 2023/11/3 下午3:08, Chao Li wrote:
>>> Hi Ray,
>>>
>>> Thanks for review.
>>>
>>>
>>> I think the MpInitLib is necessary, because this library will serve
>>> PEI and DEX phases. In LoongArch, the MP initialization function will
>>> be called first in the PEI phase. It will wake up all of AP, collect
>>> accurate online cores, and all APs will fill in their self
>>> information to prepare for next wakeup.
>>>
>>> The second time the MP initialization function is called will in DXE
>>> phase, usually located CpuDxe, I guess you are checked this code.
>>> This time the MP service HOB will be brought from PEI to DXE phase,
>>> and the MP protocal will be registered to prepare for service DXE phase.
>>>
>>> Like you saied, why not use the MP PPI? I think it's just that the
>>> code hasn't been added yet, and I think LoongArch will definitely
>>> need the MP PPI in the future, like memory trainning, configure APs
>>> local registers, etc.
>>
>> It is necessary for physical machine like memory trainning/configure
>> APs local register etc, however I doubt whether it is useful for
>> LoongArch virt-machine, I do not see the advantages for wakeup APs in
>> UEFI BIOS. ACPI FADT table is prepared in qemu side rather than BIOS
>> side.
>>
>> Regards
>> Bibo Mao
>>>
>>>
>>> Thanks,
>>> Chao
>>> 在 2023/11/3 13:10, Ni, Ray 写道:
>>>> Chao,
>>>> MpInitLib is to avoid code duplication between CpuMpPeim and CpuDxe.
>>>> If you only need MP protocol but not MP PPI, do you still need to
>>>> add MpInitLib?
>>>> Can MpInitLib code be included in CpuDxe folder?
>>>>
>>>> Thanks,
>>>> Ray
>>>> ------------------------------------------------------------------------
>>>>
>>>> *From:* Chao Li <lichao@loongson.cn>
>>>> *Sent:* Friday, November 3, 2023 9:03 AM
>>>> *To:* devel@edk2.groups.io <devel@edk2.groups.io>
>>>> *Cc:* Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming
>>>> <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com>;
>>>> Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Kumar,
>>>> Rahul R <rahul.r.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>; Yao, Jiewen <jiewen.yao@intel.com>;
>>>> Justen, Jordan L <jordan.l.justen@intel.com>
>>>> *Subject:* [PATCH v1 00/29] 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.
>>>>
>>>> Modfied modues: MdePkg, UefiCpuPkg, EmbeddedPkg, ArmVirtPkg, OvmfPkg.
>>>>
>>>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584
>>>>
>>>> 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>
>>>>
>>>> Chao Li (29):
>>>> 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
>>>> 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
>>>> OvmfPkg/LoongArchVirt: Add PciCpuIo2Dxe module
>>>> OvmfPkg/LoongArchVirt: Add stable timer driver
>>>> OvmfPkg/LoongArchVirt: Add a NULL library named
>>>> CollectApResouceLibNull
>>>> OvmfPkg/LoongArchVirt: Add serial port library
>>>> OvmfPkg/LoongArchVirt: Add real time clock library
>>>> OvmfPkg/LoongArchVirt: Add NorFlashQemuLib
>>>> OvmfPkg/LoongArchVirt: Add PeiServiceTablePointerLib
>>>> OvmfPkg/LoongArchVirt: Add platform boot manager library
>>>> 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
>>>>
>>>> ArmVirtPkg/ArmVirtCloudHv.dsc | 2 +-
>>>> ArmVirtPkg/ArmVirtKvmTool.dsc | 2 +-
>>>> ArmVirtPkg/ArmVirtPkg.dec | 14 -
>>>> ArmVirtPkg/ArmVirtQemu.dsc | 2 +-
>>>> ArmVirtPkg/ArmVirtQemuKernel.dsc | 2 +-
>>>> 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 +-
>>>> MdePkg/Include/Protocol/DebugSupport.h | 76 +-
>>>> MdePkg/Include/Register/LoongArch64/Cpucfg.h | 565 ++++++
>>>> MdePkg/Include/Register/LoongArch64/Csr.h | 221 +++
>>>> 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 +
>>>> MdePkg/MdePkg.ci.yaml | 3 +-
>>>> .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c | 547 ++++++
>>>> .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf | 45 +
>>>> .../Drivers/StableTimerDxe/Timer.c | 381 ++++
>>>> .../Drivers/StableTimerDxe/Timer.h | 127 ++
>>>> .../Drivers/StableTimerDxe/TimerDxe.inf | 41 +
>>>> .../CollectApResourceLibNull.c | 35 +
>>>> .../CollectApResourceLibNull.inf | 32 +
>>>> .../CollectApResourceLibNull.uni | 9 +
>>>> .../EarlyFdtSerialPortLib16550.c | 824 +++++++++
>>>> .../EarlyFdtSerialPortLib16550.inf | 47 +
>>>> .../EarlyFdt16550SerialPortHookLib.c | 136 ++
>>>> .../EarlyFdt16550SerialPortHookLib.inf | 36 +
>>>> .../Fdt16550SerialPortHookLib.c | 41 +
>>>> .../Fdt16550SerialPortHookLib.inf | 33 +
>>>> .../Fdt16550SerialPortHookLib.uni | 13 +
>>>> .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c | 505 ++++++
>>>> .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf | 42 +
>>>> .../FdtQemuFwCfgLib/QemuFwCfgLibInternal.h | 73 +
>>>> .../Library/FdtQemuFwCfgLib/QemuFwCfgPei.c | 117 ++
>>>> .../DxeLsRealTimeClockLib.c | 333 ++++
>>>> .../DxeLsRealTimeClockLib.inf | 42 +
>>>> .../LsRealTimeClockLib/LsRealTimeClock.h | 47 +
>>>> .../PeiLsRealTimeClockLib.c | 31 +
>>>> .../PeiLsRealTimeClockLib.inf | 29 +
>>>> .../Library/NorFlashQemuLib/NorFlashQemuLib.c | 140 ++
>>>> .../NorFlashQemuLib/NorFlashQemuLib.inf | 43 +
>>>> .../PeiServicesTablePointer.c | 75 +
>>>> .../PeiServicesTablePointerLib.inf | 31 +
>>>> .../PlatformBootManagerLib/PlatformBm.c | 829 +++++++++
>>>> .../PlatformBootManagerLib/PlatformBm.h | 112 ++
>>>> .../PlatformBootManagerLib.inf | 73 +
>>>> .../PlatformBootManagerLib/QemuKernel.c | 81 +
>>>> .../BaseResetSystemAcpiGed.c | 148 ++
>>>> .../BaseResetSystemAcpiGedLib.inf | 37 +
>>>> .../DxeResetSystemAcpiGed.c | 259 +++
>>>> .../DxeResetSystemAcpiGedLib.inf | 41 +
>>>> .../ResetSystemAcpiLib/ResetSystemAcpiGed.c | 128 ++
>>>> .../ResetSystemAcpiLib/ResetSystemAcpiGed.h | 23 +
>>>> OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc | 34 +
>>>> OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | 675 +++++++
>>>> OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf | 313 ++++
>>>> OvmfPkg/LoongArchVirt/PlatformPei/Fv.c | 40 +
>>>> OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c | 203 +++
>>>> OvmfPkg/LoongArchVirt/PlatformPei/Platform.c | 393 ++++
>>>> OvmfPkg/LoongArchVirt/PlatformPei/Platform.h | 128 ++
>>>> .../LoongArchVirt/PlatformPei/PlatformPei.inf | 72 +
>>>> 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 | 15 +
>>>> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c | 440 +++++
>>>> UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h | 261 +++
>>>> 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/Include/Library/CpuMmuLib.h | 194 ++
>>>> .../BaseLoongArch64CpuTimerLib.inf | 30 +
>>>> .../BaseLoongArch64CpuTimerLib.uni | 15 +
>>>> .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c | 226 +++
>>>> .../DxeCpuExceptionHandlerLib.inf | 45 +
>>>> .../DxeCpuExceptionHandlerLib.uni | 15 +
>>>> .../DxeExceptionLib.c | 202 +++
>>>> .../ExceptionCommon.c | 170 ++
>>>> .../ExceptionCommon.h | 111 ++
>>>> .../LoongArch64/ArchExceptionHandler.c | 214 +++
>>>> .../LoongArch64/ExceptionHandlerAsm.S | 320 ++++
>>>> .../SecPeiCpuExceptionHandlerLib.inf | 45 +
>>>> .../SecPeiCpuExceptionHandlerLib.uni | 15 +
>>>> .../SecPeiExceptionLib.c | 90 +
>>>> .../LoongArch64CpuMmuLib/CommonMmuLib.c | 963 ++++++++++
>>>> .../LoongArch64CpuMmuLib/CommonMmuLib.h | 43 +
>>>> .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf | 37 +
>>>> .../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 | 481 +++++
>>>> .../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 +
>>>> 127 files changed, 18478 insertions(+), 84 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
>>>> OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
>>>> 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/PeiServicesTablePointerLib/PeiServicesTablePointer.c
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBm.c
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBm.h
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>>>> create mode 100644
>>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/QemuKernel.c
>>>> 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/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
>>>> 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
>>>>
>>>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110617): https://edk2.groups.io/g/devel/message/110617
Mute This Topic: https://groups.io/mt/102355705/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-11-03 8:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-03 1:03 [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 Chao Li
2023-11-03 5:10 ` Ni, Ray
2023-11-03 7:08 ` Chao Li
2023-11-03 7:51 ` maobibo
2023-11-03 8:09 ` Chao Li
2023-11-03 8:16 ` maobibo [this message]
2023-11-03 7:07 ` Laszlo Ersek
2023-11-03 7:32 ` Chao Li
2023-11-03 7:40 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c85d3d5c-2b98-6122-ddc9-1445c330ef8d@loongson.cn \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox