public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chao Li" <lichao@loongson.cn>
To: devel@edk2.groups.io
Cc: Ray Ni <ray.ni@intel.com>, Rahul Kumar <rahul1.kumar@intel.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Jiewen Yao <jiewen.yao@intel.com>,
	Leif Lindholm <quic_llindhol@quicinc.com>,
	Sami Mujawar <sami.mujawar@arm.com>,
	Sunil V L <sunilvl@ventanamicro.com>,
	Bibo Mao <maobibo@loongson.cn>,
	Dongyan Qian <qiandongyan@loongson.cn>
Subject: Re: [edk2-devel] [PATCH v1 00/26] Part 2 patch set to enable LoongArch virtual machine in edk2
Date: Thu, 14 Mar 2024 10:10:19 +0800	[thread overview]
Message-ID: <1b7698aa-be15-4373-abd8-8dc49e6b880e@loongson.cn> (raw)
In-Reply-To: <17BBAC320AB81FFB.17779@groups.io>

[-- Attachment #1: Type: text/plain, Size: 14370 bytes --]

Hi All,

I submitted this version a few days ago and any comments are very 
welcome, can you review this series?


Thanks,
Chao
On 2024/3/11 17:36, Chao Li wrote:
> This patch set is the part 2 of enable LoongArch virtual machine and is
> a continuation of the first patch series v8 submitted at:
> https://edk2.groups.io/g/devel/message/114526.
>
> Patch1-Patch4: Reorder some INF files located in UefiCpuPkg
> alphabetically.
>
> Patch5-Patch14: Added Timer, CpuMmuLib, CpuMmuInitLib, MpInitLib, CpuDxe
> for LoongArch, and added some PCD and header files requested by the
> above libraries and drivers.
>
> Patch15-Patch25: LoongArch QEMU virtual machine private code, include
> SEC and PEI phase, some libraries and drivers.
>
> Patch26: Added LoongArchVirt's self introduction-file.
>
> Modfied modules: UefiCpuPkg and OvmfPkg
>
> BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=4584
>
> PR:https://github.com/tianocore/edk2/pull/5208
>
> Cc: Ray Ni<ray.ni@intel.com>
> Cc: Rahul Kumar<rahul1.kumar@intel.com>
> Cc: Gerd Hoffmann<kraxel@redhat.com>
> Cc: Ard Biesheuvel<ardb+tianocore@kernel.org>
> Cc: Jiewen Yao<jiewen.yao@intel.com>
> Cc: Gerd Hoffmann<kraxel@redhat.com>
> Cc: Leif Lindholm<quic_llindhol@quicinc.com>
> Cc: Sami Mujawar<sami.mujawar@arm.com>
> Cc: Sunil V L<sunilvl@ventanamicro.com>
> Cc: Bibo Mao<maobibo@loongson.cn>
> Cc: Dongyan Qian<qiandongyan@loongson.cn>
>
> Chao Li (26):
>    UefiCpuPkg/CpuTimerLib: Reorder the INF file alphabetically
>    UefiCpuPkg/CpuExceptionHandlerLib: Reorder the INF files
>      alphabetically
>    UefiCpuPkg/MpInitLib: Reorder the INF files alphabetically
>    UefiCpuPkg/CpuDxe: Reorder the INF file alphabetically
>    UefiCpuPkg: Add LoongArch64 CPU Timer instance
>    UefiCpuPkg: Add CPU exception library for LoongArch
>    UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg
>    UefiCpuPkg: Added a new PCD named PcdCpuExceptionVectorBaseAddress
>    UefiCpuPkg: Added a new PCD named PcdCpuMmuIsEnabled
>    UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg
>    UefiCpuPkg: Add CpuMmuInitLib.h to UefiCpuPkg
>    UefiCpuPkg: Add CpuMmuInitLib to UefiCpuPkg
>    UefiCpuPkg: Add multiprocessor library for LoongArch64
>    UefiCpuPkg: Add CpuDxe driver for LoongArch64
>    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
>
>   .../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   |  680 +++++++
>   OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf   |  313 ++++
>   OvmfPkg/LoongArchVirt/PlatformPei/Fv.c        |   39 +
>   OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c |  202 ++
>   OvmfPkg/LoongArchVirt/PlatformPei/Platform.c  |  393 ++++
>   OvmfPkg/LoongArchVirt/PlatformPei/Platform.h  |  128 ++
>   .../LoongArchVirt/PlatformPei/PlatformPei.inf |   72 +
>   OvmfPkg/LoongArchVirt/Readme.md               |   69 +
>   OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S |  184 ++
>   OvmfPkg/LoongArchVirt/Sec/SecMain.c           |  506 +++++
>   OvmfPkg/LoongArchVirt/Sec/SecMain.inf         |   53 +
>   OvmfPkg/LoongArchVirt/VarStore.fdf.inc        |   67 +
>   UefiCpuPkg/CpuDxe/CpuDxe.inf                  |   37 +-
>   UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c        |  426 +++++
>   UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h        |  288 +++
>   UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c         |  544 ++++++
>   UefiCpuPkg/CpuDxe/LoongArch64/Exception.c     |  159 ++
>   UefiCpuPkg/Include/Library/CpuMmuInitLib.h    |   34 +
>   UefiCpuPkg/Include/Library/CpuMmuLib.h        |   55 +
>   .../DxeCpuExceptionHandlerLib.inf             |   37 +-
>   .../LoongArch/DxeExceptionLib.c               |  198 ++
>   .../LoongArch/ExceptionCommon.c               |  171 ++
>   .../LoongArch/ExceptionCommon.h               |  131 ++
>   .../LoongArch64/ArchExceptionHandler.c        |  268 +++
>   .../LoongArch64/ExceptionHandlerAsm.S         |  366 ++++
>   .../LoongArch/SecPeiExceptionLib.c            |  102 ++
>   .../PeiCpuExceptionHandlerLib.inf             |   16 +-
>   .../SecPeiCpuExceptionHandlerLib.inf          |   31 +-
>   .../SmmCpuExceptionHandlerLib.inf             |   16 +-
>   .../Library/CpuMmuInitLib/CpuMmuInitLib.inf   |   42 +
>   .../Library/CpuMmuInitLib/CpuMmuInitLib.uni   |   14 +
>   .../CpuMmuInitLib/LoongArch64/CpuMmuInit.c    |  242 +++
>   .../LoongArch64/TlbExceptionHandle.S          |   51 +
>   .../LoongArch64/TlbExceptionHandle.h          |   36 +
>   UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.inf    |   38 +
>   UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.uni    |   14 +
>   .../Library/CpuMmuLib/LoongArch64/CpuMmu.c    |  614 +++++++
>   .../Library/CpuMmuLib/LoongArch64/Page.h      |   24 +
>   .../CpuMmuLib/LoongArch64/TlbInvalid.S        |   24 +
>   .../CpuMmuLib/LoongArch64/TlbInvalid.h        |   24 +
>   .../Library/CpuTimerLib/BaseCpuTimerLib.inf   |   17 +-
>   .../CpuTimerLib/LoongArch64/CpuTimerLib.c     |  251 +++
>   UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf |   39 +-
>   .../Library/MpInitLib/LoongArch64/DxeMpLib.c  |  480 +++++
>   .../Library/MpInitLib/LoongArch64/MpLib.c     | 1621 +++++++++++++++++
>   .../Library/MpInitLib/LoongArch64/MpLib.h     |  361 ++++
>   .../Library/MpInitLib/LoongArch64/PeiMpLib.c  |  404 ++++
>   UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf |   37 +-
>   UefiCpuPkg/UefiCpuPkg.dec                     |   17 +
>   UefiCpuPkg/UefiCpuPkg.dsc                     |    7 +
>   81 files changed, 13586 insertions(+), 79 deletions(-)
>   create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.h
>   create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.uni
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.uni
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgLibInternal.h
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgPei.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/LsRealTimeClock.h
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGed.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGed.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.h
>   create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc
>   create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
>   create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf
>   create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Fv.c
>   create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c
>   create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c
>   create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.h
>   create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/Readme.md
>   create mode 100644 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S
>   create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.c
>   create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.inf
>   create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc
>   create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c
>   create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h
>   create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c
>   create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/Exception.c
>   create mode 100644 UefiCpuPkg/Include/Library/CpuMmuInitLib.h
>   create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/DxeExceptionLib.c
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/ExceptionCommon.c
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/ExceptionCommon.h
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/LoongArch64/ArchExceptionHandler.c
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/LoongArch64/ExceptionHandlerAsm.S
>   create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/SecPeiExceptionLib.c
>   create mode 100644 UefiCpuPkg/Library/CpuMmuInitLib/CpuMmuInitLib.inf
>   create mode 100644 UefiCpuPkg/Library/CpuMmuInitLib/CpuMmuInitLib.uni
>   create mode 100644 UefiCpuPkg/Library/CpuMmuInitLib/LoongArch64/CpuMmuInit.c
>   create mode 100644 UefiCpuPkg/Library/CpuMmuInitLib/LoongArch64/TlbExceptionHandle.S
>   create mode 100644 UefiCpuPkg/Library/CpuMmuInitLib/LoongArch64/TlbExceptionHandle.h
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.inf
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.uni
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/LoongArch64/CpuMmu.c
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/LoongArch64/Page.h
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/LoongArch64/TlbInvalid.S
>   create mode 100644 UefiCpuPkg/Library/CpuMmuLib/LoongArch64/TlbInvalid.h
>   create mode 100644 UefiCpuPkg/Library/CpuTimerLib/LoongArch64/CpuTimerLib.c
>   create mode 100644 UefiCpuPkg/Library/MpInitLib/LoongArch64/DxeMpLib.c
>   create mode 100644 UefiCpuPkg/Library/MpInitLib/LoongArch64/MpLib.c
>   create mode 100644 UefiCpuPkg/Library/MpInitLib/LoongArch64/MpLib.h
>   create mode 100644 UefiCpuPkg/Library/MpInitLib/LoongArch64/PeiMpLib.c
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116724): https://edk2.groups.io/g/devel/message/116724
Mute This Topic: https://groups.io/mt/104859849/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 16031 bytes --]

       reply	other threads:[~2024-03-14  2:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <17BBAC320AB81FFB.17779@groups.io>
2024-03-14  2:10 ` Chao Li [this message]
2024-03-11  9:36 [edk2-devel] [PATCH v1 00/26] Part 2 patch set to enable LoongArch virtual machine in edk2 Chao Li

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=1b7698aa-be15-4373-abd8-8dc49e6b880e@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