[edk2-devel] [PATCH v4 00/37] Enable LoongArch virtual machine in edk2

Chao Li posted 37 patches 4 months, 2 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
ArmVirtPkg/ArmVirt.dsc.inc                    |    2 +-
ArmVirtPkg/ArmVirtCloudHv.dsc                 |    6 +-
ArmVirtPkg/ArmVirtCloudHv.fdf                 |    2 +-
ArmVirtPkg/ArmVirtKvmTool.dsc                 |    6 +-
ArmVirtPkg/ArmVirtKvmTool.fdf                 |    2 +-
ArmVirtPkg/ArmVirtPkg.ci.yaml                 |    1 -
ArmVirtPkg/ArmVirtPkg.dec                     |   22 -
ArmVirtPkg/ArmVirtQemu.dsc                    |   10 +-
ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc          |    2 +-
ArmVirtPkg/ArmVirtQemuKernel.dsc              |   10 +-
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 +-
.../Library/PeiServicesTablePointerLib.h      |    9 +-
MdePkg/Include/Protocol/DebugSupport.h        |   76 +-
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.dec                             |    6 +
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                |    5 +-
.../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                   |  326 ++++
.../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 |  176 ++
OvmfPkg/LoongArchVirt/Sec/SecMain.c           |  507 ++++++
OvmfPkg/LoongArchVirt/Sec/SecMain.inf         |   53 +
OvmfPkg/LoongArchVirt/VarStore.fdf.inc        |   67 +
OvmfPkg/OvmfPkg.dec                           |   26 +
OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c |  557 ------
.../RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf   |   48 -
OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc           |    4 +-
OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf           |    2 +-
UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c         |  435 +++++
UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h         |  281 +++
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/CpuIo2Dxe/CpuIo2Dxe.c              |  149 +-
UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.h              |    2 +
UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf            |    8 +-
UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.uni            |    2 +
UefiCpuPkg/Include/Library/CpuMmuLib.h        |   67 +
.../BaseLoongArch64CpuTimerLib.inf            |   29 +
.../BaseLoongArch64CpuTimerLib.uni            |   15 +
.../BaseLoongArch64CpuTimerLib/CpuTimerLib.c  |  250 +++
.../DxeCpuExceptionHandlerLib.inf             |   45 +
.../DxeCpuExceptionHandlerLib.uni             |   15 +
.../DxeExceptionLib.c                         |  198 ++
.../ExceptionCommon.c                         |  170 ++
.../ExceptionCommon.h                         |  111 ++
.../LoongArch64/ArchExceptionHandler.c        |  213 +++
.../LoongArch64/ExceptionHandlerAsm.S         |  320 ++++
.../SecPeiCpuExceptionHandlerLib.inf          |   45 +
.../SecPeiCpuExceptionHandlerLib.uni          |   15 +
.../SecPeiExceptionLib.c                      |   88 +
.../LoongArch64CpuMmuLib/CommonMmuLib.c       |  971 ++++++++++
.../LoongArch64CpuMmuLib/CommonMmuLib.h       |   43 +
.../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf     |   36 +
.../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   |  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                     |   10 +
146 files changed, 16925 insertions(+), 770 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/PeiServicesTablePointerLibKs0.inf
create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.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.inf (89%)
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/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
delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c
delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
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
[edk2-devel] [PATCH v4 00/37] Enable LoongArch virtual machine in edk2
Posted by Chao Li 4 months, 2 weeks ago
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

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

**Remaining questions:**
Not sure the the LoongArch64 CpuTimerLib is called and where it should
be located. Questioner: Laszlo.

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>

Chao Li (37):
  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
  MdePkg: Add a PCD feature flag named PcdPciIoTranslationIsEnabled
  UefiCpuPkg: Add MMIO method in CpuIo2Dxe
  ArmVirtPkg: Enable UefiCpuPkg version CpuIo2Dxe
  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
  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                 |    6 +-
 ArmVirtPkg/ArmVirtCloudHv.fdf                 |    2 +-
 ArmVirtPkg/ArmVirtKvmTool.dsc                 |    6 +-
 ArmVirtPkg/ArmVirtKvmTool.fdf                 |    2 +-
 ArmVirtPkg/ArmVirtPkg.ci.yaml                 |    1 -
 ArmVirtPkg/ArmVirtPkg.dec                     |   22 -
 ArmVirtPkg/ArmVirtQemu.dsc                    |   10 +-
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc          |    2 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc              |   10 +-
 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 +-
 .../Library/PeiServicesTablePointerLib.h      |    9 +-
 MdePkg/Include/Protocol/DebugSupport.h        |   76 +-
 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.dec                             |    6 +
 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                |    5 +-
 .../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                   |  326 ++++
 .../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 |  176 ++
 OvmfPkg/LoongArchVirt/Sec/SecMain.c           |  507 ++++++
 OvmfPkg/LoongArchVirt/Sec/SecMain.inf         |   53 +
 OvmfPkg/LoongArchVirt/VarStore.fdf.inc        |   67 +
 OvmfPkg/OvmfPkg.dec                           |   26 +
 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c |  557 ------
 .../RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf   |   48 -
 OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc           |    4 +-
 OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf           |    2 +-
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c         |  435 +++++
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h         |  281 +++
 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/CpuIo2Dxe/CpuIo2Dxe.c              |  149 +-
 UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.h              |    2 +
 UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf            |    8 +-
 UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.uni            |    2 +
 UefiCpuPkg/Include/Library/CpuMmuLib.h        |   67 +
 .../BaseLoongArch64CpuTimerLib.inf            |   29 +
 .../BaseLoongArch64CpuTimerLib.uni            |   15 +
 .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c  |  250 +++
 .../DxeCpuExceptionHandlerLib.inf             |   45 +
 .../DxeCpuExceptionHandlerLib.uni             |   15 +
 .../DxeExceptionLib.c                         |  198 ++
 .../ExceptionCommon.c                         |  170 ++
 .../ExceptionCommon.h                         |  111 ++
 .../LoongArch64/ArchExceptionHandler.c        |  213 +++
 .../LoongArch64/ExceptionHandlerAsm.S         |  320 ++++
 .../SecPeiCpuExceptionHandlerLib.inf          |   45 +
 .../SecPeiCpuExceptionHandlerLib.uni          |   15 +
 .../SecPeiExceptionLib.c                      |   88 +
 .../LoongArch64CpuMmuLib/CommonMmuLib.c       |  971 ++++++++++
 .../LoongArch64CpuMmuLib/CommonMmuLib.h       |   43 +
 .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf     |   36 +
 .../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   |  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                     |   10 +
 146 files changed, 16925 insertions(+), 770 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/PeiServicesTablePointerLibKs0.inf
 create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.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.inf (89%)
 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/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
 delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c
 delete mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
 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

-- 
2.27.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112391): https://edk2.groups.io/g/devel/message/112391
Mute This Topic: https://groups.io/mt/103129048/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-