Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
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 *Sent:* Friday, November 3, 2023 9:03 AM *To:* devel@edk2.groups.io *Cc:* Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L *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 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 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 +-
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
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. 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 *Sent:* Friday, November 3, 2023 9:03 AM *To:* devel@edk2.groups.io *Cc:* Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L *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 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 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
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
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 *Sent:* Friday, November 3, 2023 9:03 AM *To:* devel@edk2.groups.io *Cc:* Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L *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 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 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 +- ...
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
On 11/3/23 08:32, Chao Li wrote: > Hi Laszlo, > > Sorry, the reason of some mail is not under cover letter is found, I > will fix it at the V2. > > I don't think the code is **duplicated** since most code is architecture > related, and maybe some code is referenced from others ARCH. As the > cover letter saied, most code is distributed in MdePkg, UefiCpuPkg, > OvmfPkg. MdePkg is added some help functions for LoongArch. UefCpuPkg is > added CpuTimerLib, CpuExceptionLib, CpuMmuLib, MpInitLib, CpuDxe. Each > library and driver is not small. OvmfPkg adds the private code for > LoongArch QEMU virtual machine instances, it override some architecture > related library that cannot use the publice libraries, mostly for the > PEI phase. Thanks for the explanation! Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110614): https://edk2.groups.io/g/devel/message/110614 Mute This Topic: https://groups.io/mt/102355705/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
Hi Laszlo, Sorry, the reason of some mail is not under cover letter is found, I will fix it at the V2. I don't think the code is **duplicated** since most code is architecture related, and maybe some code is referenced from others ARCH. As the cover letter saied, most code is distributed in MdePkg, UefiCpuPkg, OvmfPkg. MdePkg is added some help functions for LoongArch. UefCpuPkg is added CpuTimerLib, CpuExceptionLib, CpuMmuLib, MpInitLib, CpuDxe. Each library and driver is not small. OvmfPkg adds the private code for LoongArch QEMU virtual machine instances, it override some architecture related library that cannot use the publice libraries, mostly for the PEI phase. Thanks, Chao 在 2023/11/3 15:07, Laszlo Ersek 写道: On 11/3/23 02:03, Chao Li wrote: 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 [...] 127 files changed, 18478 insertions(+), 84 deletions(-) 18478 lines seem overkill... Probably too much code added / duplicated under UefiCpuPkg, as Ray says. Also: - Please make sure you post the patches with the "sendemail.thread" git config item set to "true". "BaseTools/Scripts/SetupGit.py" takes care of that. Otherwise, just as it has now happened, your patches are not threaded under the cover letter; they fly apart as independent messages. - Whenever you post a (new or initial) version of a patch set, please link the URL of the cover letter (from the mailing list archive) into the Bugzilla ticket, in a new comment. Thanks Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110613): https://edk2.groups.io/g/devel/message/110613 Mute This Topic: https://groups.io/mt/102355705/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
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. 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 *Sent:* Friday, November 3, 2023 9:03 AM *To:* devel@edk2.groups.io *Cc:* Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L *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 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 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 +- Embe
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
On 11/3/23 02:03, Chao Li wrote: > 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 > [...] > 127 files changed, 18478 insertions(+), 84 deletions(-) 18478 lines seem overkill... Probably too much code added / duplicated under UefiCpuPkg, as Ray says. Also: - Please make sure you post the patches with the "sendemail.thread" git config item set to "true". "BaseTools/Scripts/SetupGit.py" takes care of that. Otherwise, just as it has now happened, your patches are not threaded under the cover letter; they fly apart as independent messages. - Whenever you post a (new or initial) version of a patch set, please link the URL of the cover letter (from the mailing list archive) into the Bugzilla ticket, in a new comment. Thanks Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110610): https://edk2.groups.io/g/devel/message/110610 Mute This Topic: https://groups.io/mt/102355705/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
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 Sent: Friday, November 3, 2023 9:03 AM To: devel@edk2.groups.io Cc: Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L 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 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 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
[edk2-devel] [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 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 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