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...@intel.com>
Cc: Rahul Kumar<rahul1.ku...@intel.com>
Cc: Gerd Hoffmann<kra...@redhat.com>
Cc: Ard Biesheuvel<ardb+tianoc...@kernel.org>
Cc: Jiewen Yao<jiewen....@intel.com>
Cc: Gerd Hoffmann<kra...@redhat.com>
Cc: Leif Lindholm<quic_llind...@quicinc.com>
Cc: Sami Mujawar<sami.muja...@arm.com>
Cc: Sunil V L<suni...@ventanamicro.com>
Cc: Bibo Mao<maob...@loongson.cn>
Cc: Dongyan Qian<qiandong...@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/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to