[edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine

Sunil V L posted 34 patches 1 year, 6 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
ArmPlatformPkg/ArmPlatformPkg.dec                                                                                    |   4 -
ArmVirtPkg/ArmVirtPkg.dec                                                                                            |   9 -
EmbeddedPkg/EmbeddedPkg.dec                                                                                          |   3 -
MdeModulePkg/MdeModulePkg.dec                                                                                        |   3 +
MdePkg/MdePkg.dec                                                                                                    |  13 +
OvmfPkg/OvmfPkg.dec                                                                                                  |  18 +
ArmVirtPkg/ArmVirtCloudHv.dsc                                                                                        |   2 +-
ArmVirtPkg/ArmVirtKvmTool.dsc                                                                                        |   2 +-
ArmVirtPkg/ArmVirtQemu.dsc                                                                                           |  10 +-
ArmVirtPkg/ArmVirtQemuKernel.dsc                                                                                     |   8 +-
MdeModulePkg/MdeModulePkg.dsc                                                                                        |   2 +
MdePkg/MdePkg.dsc                                                                                                    |   4 +
OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc                                                                            | 726 ++++++++++++++++
UefiCpuPkg/UefiCpuPkg.dsc                                                                                            |  15 +-
OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf                                                                            | 406 +++++++++
ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf                                                       |   2 +-
ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf                                                                 |   2 +-
{EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf                              |   1 -
MdePkg/Library/BaseLib/BaseLib.inf                                                                                   |   2 +
MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf                                                                   |  25 +
MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf                                                   |  22 +
OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf                                                                          |  67 ++
OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf                                                                 |  61 ++
OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf                                                                  |  40 +
OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf                                                           |  30 +
{ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf |   3 +-
OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf                                                                  |  31 +-
OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf                                                                |  12 +-
OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibBhyve.inf                                                           |   4 +-
OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibMicrovm.inf                                                         |   2 +-
OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf                                                                 |  15 +-
OvmfPkg/Library/ResetSystemLib/DxeResetSystemLibMicrovm.inf                                                          |   4 +-
{ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf                                                |   3 +-
OvmfPkg/PlatformPei/PlatformPei.inf                                                                                  |  43 +-
OvmfPkg/Sec/SecMain.inf                                                                                              |  34 +-
UefiCpuPkg/CpuDxe/CpuDxe.inf                                                                                         |  39 +-
UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf                                                                               |  51 ++
UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf                                              |  21 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf                                              |   8 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf                                           |  19 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf                                              |   8 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf                                     |   6 +-
UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf                                                                   |   9 +-
{EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h                                                     |   0
MdePkg/Include/Library/BaseLib.h                                                                                     |  50 ++
MdePkg/Include/Library/BaseRiscVSbiLib.h                                                                             | 127 +++
{ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h                                                     |   0
MdePkg/Include/Protocol/RiscVBootProtocol.h                                                                          |  34 +
MdePkg/Include/Register/RiscV64/RiscVEncoding.h                                                                      | 119 +++
MdePkg/Include/Register/RiscV64/RiscVImpl.h                                                                          |  25 +
OvmfPkg/Drivers/NorFlashDxe/NorFlash.h                                                                               | 422 +++++++++
OvmfPkg/Include/Library/PlatformInitLib.h                                                                            |   6 +
{ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h               |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h                                                                         |   0
OvmfPkg/PlatformPei/RiscV64/Platform.h                                                                               |  97 +++
OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h                                                                                   |   0
OvmfPkg/Sec/RiscV64/SecMain.h                                                                                        |  65 ++
OvmfPkg/Sec/SecMainCommon.h                                                                                          |  73 ++
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h                                                                             |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h                                                                             |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h                                                                              |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h                                                                       |   0
UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h                                                                             | 122 +--
UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h                                                                               | 177 ++++
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h                                         |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h                                           | 116 +++
{EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c                                |   0
MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c                                                                     | 227 +++++
MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c                                                     |  26 +
OvmfPkg/Drivers/NorFlashDxe/NorFlash.c                                                                               | 908 ++++++++++++++++++++
OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c                                                                     | 123 +++
OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c                                                                            | 509 +++++++++++
OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c                                                                            | 777 +++++++++++++++++
OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c                                                                   | 386 +++++++++
OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c                                                                    | 136 +++
OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c                                                             |  40 +
{ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c               |   0
{ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c               |   0
OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c                                                                 |   0
OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c                                                             |   0
OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c                                                         |   0
OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c                                                            |   0
OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c                                                             |   0
OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c                                                             |  72 ++
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c                                                     |   0
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c                                                |   0
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c                                                      |   0
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c                                              |   0
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c                                                        |   0
OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c                                                 |   0
OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c                                                            |  20 +
OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c                                                              | 128 +++
{ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c                                                  |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c                                                                           |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c                                                                       |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c                                                                   |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c                                                                               |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c                                                                         |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c                                                                        |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c                                                                      |   0
OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c                                                                         |   0
OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c                                                                               |  43 +-
OvmfPkg/PlatformPei/RiscV64/MemDetect.c                                                                              | 212 +++++
OvmfPkg/PlatformPei/RiscV64/Platform.c                                                                               | 372 ++++++++
OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c                                                                                   |   0
OvmfPkg/Sec/{ => Ia32X64}/SecMain.c                                                                                  | 227 +----
OvmfPkg/Sec/RiscV64/SecMain.c                                                                                        | 573 ++++++++++++
OvmfPkg/Sec/SecMainCommon.c                                                                                          | 238 +++++
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c                                                                             |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c                                                                             |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c                                                                              |   0
UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c                                                                       |   0
UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c                                                                                   | 365 ++++++++
UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c                                                                               | 294 +++++++
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c                                         |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c                                               |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c                                            |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c                                      |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c                                         |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c                                               |   0
UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c}                       |  83 +-
UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c                                                       |   0
UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c                                                           |   0
UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c                                                                 | 199 +++++
ArmVirtPkg/ArmVirtPkg.ci.yaml                                                                                        |   1 -
ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc                                                                                 |   2 +-
Maintainers.txt                                                                                                      |   4 +
MdePkg/Library/BaseLib/RiscV64/CpuScratch.S                                                                          |  31 +
MdePkg/Library/BaseLib/RiscV64/ReadTimer.S                                                                           |  23 +
MdePkg/Library/BaseLib/RiscV64/RiscVInterrupt.S                                                                      |  53 +-
OvmfPkg/OvmfPkg.ci.yaml                                                                                              |   1 +
OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc                                                                        |  66 ++
OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc                                                                         |  79 ++
OvmfPkg/Sec/RiscV64/SecEntry.S                                                                                       |  23 +
UefiCpuPkg/CpuTimerDxe/CpuTimer.uni                                                                                  |  14 +
UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni                                                                             |  12 +
UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S                                            | 105 +++
UefiCpuPkg/UefiCpuPkg.ci.yaml                                                                                        |   1 +
138 files changed, 9064 insertions(+), 531 deletions(-)
create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc
create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf
rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf (96%)
create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf
create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf
create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf
rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf (92%)
rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf (89%)
create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf
rename {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h (100%)
create mode 100644 MdePkg/Include/Library/BaseRiscVSbiLib.h
rename {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h (100%)
create mode 100644 MdePkg/Include/Protocol/RiscVBootProtocol.h
create mode 100644 MdePkg/Include/Register/RiscV64/RiscVEncoding.h
create mode 100644 MdePkg/Include/Register/RiscV64/RiscVImpl.h
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.h
rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h (100%)
create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.h
rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h (100%)
create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.h
create mode 100644 OvmfPkg/Sec/SecMainCommon.h
copy UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h (100%)
rename UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h (69%)
create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h (100%)
create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h
rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c (100%)
create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c
create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.c
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c
create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c
create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c
create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c
rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c (100%)
rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c (100%)
rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c (100%)
rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c (100%)
rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c (100%)
rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c (100%)
rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c (100%)
create mode 100644 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c (100%)
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c (100%)
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c (100%)
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c (100%)
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c (100%)
rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c (100%)
create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c
create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c
rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c (100%)
copy OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c (100%)
rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c (100%)
rename OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c (63%)
create mode 100644 OvmfPkg/PlatformPei/RiscV64/MemDetect.c
create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.c
rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c (100%)
rename OvmfPkg/Sec/{ => Ia32X64}/SecMain.c (75%)
create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.c
create mode 100644 OvmfPkg/Sec/SecMainCommon.c
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c (100%)
rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c (100%)
create mode 100644 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c
create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c (100%)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c (100%)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c (100%)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c (100%)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c (100%)
copy UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c (100%)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c} (67%)
rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c (100%)
rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c (100%)
create mode 100644 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c
create mode 100644 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S
create mode 100644 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S
create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc
create mode 100644 OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc
create mode 100644 OvmfPkg/Sec/RiscV64/SecEntry.S
create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimer.uni
create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni
create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S
[edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine
Posted by Sunil V L 1 year, 6 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4076

Add support for RISC-V qemu virt machine. Most of the changes are migrated from
edk2-platforms repo and followed the latest guidelines for EDK2 code structuring.

The changes at a high level are,

1) MdePkg:
	- Add RISC-V register definitions
	- Add RISCV_EFI_BOOT_PROTOCOL related definitions
	- Add BaseRiscVSbiLib library to make ecall to machine mode firmware
	- Created Null instance of the NorFlashPlatformLib library class
	- Moved NorFlashPlatformLib.h from ArmPlatformPkg

2) UefiCpuPkg:
	- Refactor modules/libraries as per latest guidelines
	- Add RISC-V support in below modules/libraries.
		- CpuTimerLib, CpuExceptionHandlerLib, CpuDxe
	- Add new CpuTimerDxe module

3) ArmVirtPkg:
	- Migrate below libraries/modules to OvmfPkg
		- PlatformBootManagerLib, PlatformHasAcpiDtDxe
	- Fix up the consumers of these modules

4) OvmfPkg:
	- Refactor the libraries/modules as per latest guidelines
	- Add RISC-V support for below libraries/modules.
		- Sec, ResetSystemLib, PlatformInitLib, PlatformPei
	- Add optimized version of NorFlashDxe driver
	- Add NorFlashQemuLib (Copied from ArmVirtPkg and SbsaQemu)
	- Add new DSC/FDF files to build for RISC-V virt machine

5) MdeModulePkg/EmbeddedPkg:
	- Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg
	- Fix up the consumers of NvVarStoreFormattedLib
 
Changes since V3:
	1) Addressed Abner's comments
	2) Changed folder name from Ia32_X64 to Ia32X64 as per latest guidelines.
	2) Rebased

Changes since V2:
	1) Fixed issues detected by CI (https://github.com/tianocore/edk2/pull/3471)
	2) Added an extra patch to fix up the consumers of NvVarStoreFormattedLib

Changes since V1:
	1) Added couple of patches from Ard to optimize the NorFlashDxe in Ovmf.
	   Note: There will be a separate patch series in future to update existing
	   consumers of NorFlashDxe driver.
	2) Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg
	3) Created Null instance of the NorFlashPlatformLib library class
	4) Moved NorFlashPlatformLib.h from ArmPlatformPkg

These changes are available at: https://github.com/vlsunil/edk2/tree/RiscV64QemuVirt

The changes are tested on risc-v qemu with an additional patch series to
enable pflash available at https://github.com/vlsunil/qemu/tree/pflash_v3

Sunil V L (34):
  MdePkg/Register: Add register definition header files for RISC-V
  MdePkg: Add RISCV_EFI_BOOT_PROTOCOL related definitions
  MdePkg/BaseLib: RISC-V: Add few more helper functions
  MdePkg: Add BaseRiscVSbiLib Library for RISC-V
  OvmfPkg/PlatformInitLib: Refactor to allow other architectures
  OvmfPkg/PlatformInitLib: Add support for RISC-V
  OvmfPkg/ResetSystemLib: Refactor to allow other architectures.
  OvmfPkg/ResetSystemLib: Add support for RISC-V
  OvmfPkg/Sec: Refactor to allow other architectures
  OvmfPkg/Sec: Add RISC-V support
  OvmfPkg/PlatformPei: Refactor to allow other architectures
  OvmfPkg/PlatformPei: Add support for RISC-V
  UefiCpuPkg/CpuTimerLib: Refactor to allow other architectures
  UefiCpuPkg/CpuTimerLib: Add support for RISC-V
  UefiCpuPkg/CpuExceptionHandlerLib: Refactor to allow other
    architectures
  UefiCpuPkg/CpuExceptionHandlerLib: Add support for RISC-V
  UefiCpuPkg/CpuDxe: Refactor to allow other architectures
  UefiCpuPkg/CpuDxe: Add support for RISC-V
  UefiCpuPkg/CpuDxe: Add RISCV_EFI_BOOT_PROTOCOL support
  UefiCpuPkg: Add CpuTimerDxe module
  ArmVirtPkg/PlatformHasAcpiDtDxe: Move to OvmfPkg
  ArmVirtPkg: Fix up the location of PlatformHasAcpiDtDxe
  ArmVirtPkg/PlatformBootManagerLib: Move to OvmfPkg
  ArmVirtPkg: Fix up the paths to PlatformBootManagerLib
  ArmPlatformPkg/NorFlashPlatformLib.h:Move to MdePkg
  EmbeddedPkg/NvVarStoreFormattedLib: Migrate to MdeModulePkg
  ArmVirtPkg: Update the references to NvVarStoreFormattedLib
  OvmfPkg: Add NorFlashQemuLib library
  OvmfPkg: Add Qemu NOR flash DXE driver
  OvmfPkg/NorFlashDxe: Avoid switching to array mode during writes
  OvmfPkg/NorFlashDxe: Avoid switching between modes in a tight loop
  OvmfPkg: RiscVVirt: Add Qemu Virt platform support
  Maintainers.txt: Add entry for OvmfPkg/RiscVVirt
  UefiCpuPkg/UefiCpuPkg.ci.yaml: Ignore RISC-V file

 ArmPlatformPkg/ArmPlatformPkg.dec                                                                                    |   4 -
 ArmVirtPkg/ArmVirtPkg.dec                                                                                            |   9 -
 EmbeddedPkg/EmbeddedPkg.dec                                                                                          |   3 -
 MdeModulePkg/MdeModulePkg.dec                                                                                        |   3 +
 MdePkg/MdePkg.dec                                                                                                    |  13 +
 OvmfPkg/OvmfPkg.dec                                                                                                  |  18 +
 ArmVirtPkg/ArmVirtCloudHv.dsc                                                                                        |   2 +-
 ArmVirtPkg/ArmVirtKvmTool.dsc                                                                                        |   2 +-
 ArmVirtPkg/ArmVirtQemu.dsc                                                                                           |  10 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc                                                                                     |   8 +-
 MdeModulePkg/MdeModulePkg.dsc                                                                                        |   2 +
 MdePkg/MdePkg.dsc                                                                                                    |   4 +
 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc                                                                            | 726 ++++++++++++++++
 UefiCpuPkg/UefiCpuPkg.dsc                                                                                            |  15 +-
 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf                                                                            | 406 +++++++++
 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf                                                       |   2 +-
 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf                                                                 |   2 +-
 {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf                              |   1 -
 MdePkg/Library/BaseLib/BaseLib.inf                                                                                   |   2 +
 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf                                                                   |  25 +
 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf                                                   |  22 +
 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf                                                                          |  67 ++
 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf                                                                 |  61 ++
 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf                                                                  |  40 +
 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf                                                           |  30 +
 {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf |   3 +-
 OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf                                                                  |  31 +-
 OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf                                                                |  12 +-
 OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibBhyve.inf                                                           |   4 +-
 OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibMicrovm.inf                                                         |   2 +-
 OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf                                                                 |  15 +-
 OvmfPkg/Library/ResetSystemLib/DxeResetSystemLibMicrovm.inf                                                          |   4 +-
 {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf                                                |   3 +-
 OvmfPkg/PlatformPei/PlatformPei.inf                                                                                  |  43 +-
 OvmfPkg/Sec/SecMain.inf                                                                                              |  34 +-
 UefiCpuPkg/CpuDxe/CpuDxe.inf                                                                                         |  39 +-
 UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf                                                                               |  51 ++
 UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf                                              |  21 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf                                              |   8 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf                                           |  19 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf                                              |   8 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf                                     |   6 +-
 UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf                                                                   |   9 +-
 {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h                                                     |   0
 MdePkg/Include/Library/BaseLib.h                                                                                     |  50 ++
 MdePkg/Include/Library/BaseRiscVSbiLib.h                                                                             | 127 +++
 {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h                                                     |   0
 MdePkg/Include/Protocol/RiscVBootProtocol.h                                                                          |  34 +
 MdePkg/Include/Register/RiscV64/RiscVEncoding.h                                                                      | 119 +++
 MdePkg/Include/Register/RiscV64/RiscVImpl.h                                                                          |  25 +
 OvmfPkg/Drivers/NorFlashDxe/NorFlash.h                                                                               | 422 +++++++++
 OvmfPkg/Include/Library/PlatformInitLib.h                                                                            |   6 +
 {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h               |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h                                                                         |   0
 OvmfPkg/PlatformPei/RiscV64/Platform.h                                                                               |  97 +++
 OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h                                                                                   |   0
 OvmfPkg/Sec/RiscV64/SecMain.h                                                                                        |  65 ++
 OvmfPkg/Sec/SecMainCommon.h                                                                                          |  73 ++
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h                                                                             |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h                                                                             |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h                                                                              |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h                                                                       |   0
 UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h                                                                             | 122 +--
 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h                                                                               | 177 ++++
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h                                         |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h                                           | 116 +++
 {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c                                |   0
 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c                                                                     | 227 +++++
 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c                                                     |  26 +
 OvmfPkg/Drivers/NorFlashDxe/NorFlash.c                                                                               | 908 ++++++++++++++++++++
 OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c                                                                     | 123 +++
 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c                                                                            | 509 +++++++++++
 OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c                                                                            | 777 +++++++++++++++++
 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c                                                                   | 386 +++++++++
 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c                                                                    | 136 +++
 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c                                                             |  40 +
 {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c               |   0
 {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c               |   0
 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c                                                                 |   0
 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c                                                             |   0
 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c                                                         |   0
 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c                                                            |   0
 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c                                                             |   0
 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c                                                             |  72 ++
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c                                                     |   0
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c                                                |   0
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c                                                      |   0
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c                                              |   0
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c                                                        |   0
 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c                                                 |   0
 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c                                                            |  20 +
 OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c                                                              | 128 +++
 {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c                                                  |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c                                                                           |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c                                                                       |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c                                                                   |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c                                                                               |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c                                                                         |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c                                                                        |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c                                                                      |   0
 OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c                                                                         |   0
 OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c                                                                               |  43 +-
 OvmfPkg/PlatformPei/RiscV64/MemDetect.c                                                                              | 212 +++++
 OvmfPkg/PlatformPei/RiscV64/Platform.c                                                                               | 372 ++++++++
 OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c                                                                                   |   0
 OvmfPkg/Sec/{ => Ia32X64}/SecMain.c                                                                                  | 227 +----
 OvmfPkg/Sec/RiscV64/SecMain.c                                                                                        | 573 ++++++++++++
 OvmfPkg/Sec/SecMainCommon.c                                                                                          | 238 +++++
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c                                                                             |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c                                                                             |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c                                                                              |   0
 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c                                                                       |   0
 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c                                                                                   | 365 ++++++++
 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c                                                                               | 294 +++++++
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c                                         |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c                                               |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c                                            |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c                                      |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c                                         |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c                                               |   0
 UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c}                       |  83 +-
 UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c                                                       |   0
 UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c                                                           |   0
 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c                                                                 | 199 +++++
 ArmVirtPkg/ArmVirtPkg.ci.yaml                                                                                        |   1 -
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc                                                                                 |   2 +-
 Maintainers.txt                                                                                                      |   4 +
 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S                                                                          |  31 +
 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S                                                                           |  23 +
 MdePkg/Library/BaseLib/RiscV64/RiscVInterrupt.S                                                                      |  53 +-
 OvmfPkg/OvmfPkg.ci.yaml                                                                                              |   1 +
 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc                                                                        |  66 ++
 OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc                                                                         |  79 ++
 OvmfPkg/Sec/RiscV64/SecEntry.S                                                                                       |  23 +
 UefiCpuPkg/CpuTimerDxe/CpuTimer.uni                                                                                  |  14 +
 UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni                                                                             |  12 +
 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S                                            | 105 +++
 UefiCpuPkg/UefiCpuPkg.ci.yaml                                                                                        |   1 +
 138 files changed, 9064 insertions(+), 531 deletions(-)
 create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc
 create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf
 rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf (96%)
 create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf
 create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf
 create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
 create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf (92%)
 rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf (89%)
 create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf
 rename {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h (100%)
 create mode 100644 MdePkg/Include/Library/BaseRiscVSbiLib.h
 rename {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h (100%)
 create mode 100644 MdePkg/Include/Protocol/RiscVBootProtocol.h
 create mode 100644 MdePkg/Include/Register/RiscV64/RiscVEncoding.h
 create mode 100644 MdePkg/Include/Register/RiscV64/RiscVImpl.h
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.h
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h (100%)
 create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.h
 rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h (100%)
 create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.h
 create mode 100644 OvmfPkg/Sec/SecMainCommon.h
 copy UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h (100%)
 rename UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h (69%)
 create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h (100%)
 create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h
 rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c (100%)
 create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c
 create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.c
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c
 create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c
 create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c
 create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c (100%)
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c (100%)
 rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c (100%)
 rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c (100%)
 rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c (100%)
 rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c (100%)
 rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c (100%)
 create mode 100644 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c (100%)
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c (100%)
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c (100%)
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c (100%)
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c (100%)
 rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c (100%)
 create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c
 create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c
 rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c (100%)
 copy OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c (100%)
 rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c (100%)
 rename OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c (63%)
 create mode 100644 OvmfPkg/PlatformPei/RiscV64/MemDetect.c
 create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.c
 rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c (100%)
 rename OvmfPkg/Sec/{ => Ia32X64}/SecMain.c (75%)
 create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.c
 create mode 100644 OvmfPkg/Sec/SecMainCommon.c
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c (100%)
 rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c (100%)
 create mode 100644 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c
 create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c (100%)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c (100%)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c (100%)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c (100%)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c (100%)
 copy UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c (100%)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c} (67%)
 rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c (100%)
 rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c (100%)
 create mode 100644 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c
 create mode 100644 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S
 create mode 100644 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S
 create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc
 create mode 100644 OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc
 create mode 100644 OvmfPkg/Sec/RiscV64/SecEntry.S
 create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimer.uni
 create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni
 create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S

-- 
2.38.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95214): https://edk2.groups.io/g/devel/message/95214
Mute This Topic: https://groups.io/mt/94330818/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine
Posted by Ard Biesheuvel 1 year, 6 months ago
Can you please stop spamming me and the list with two versions of this
series per day?


On Fri, 14 Oct 2022 at 18:48, Sunil V L <sunilvl@ventanamicro.com> wrote:
>
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4076
>
> Add support for RISC-V qemu virt machine. Most of the changes are migrated from
> edk2-platforms repo and followed the latest guidelines for EDK2 code structuring.
>
> The changes at a high level are,
>
> 1) MdePkg:
>         - Add RISC-V register definitions
>         - Add RISCV_EFI_BOOT_PROTOCOL related definitions
>         - Add BaseRiscVSbiLib library to make ecall to machine mode firmware
>         - Created Null instance of the NorFlashPlatformLib library class
>         - Moved NorFlashPlatformLib.h from ArmPlatformPkg
>
> 2) UefiCpuPkg:
>         - Refactor modules/libraries as per latest guidelines
>         - Add RISC-V support in below modules/libraries.
>                 - CpuTimerLib, CpuExceptionHandlerLib, CpuDxe
>         - Add new CpuTimerDxe module
>
> 3) ArmVirtPkg:
>         - Migrate below libraries/modules to OvmfPkg
>                 - PlatformBootManagerLib, PlatformHasAcpiDtDxe
>         - Fix up the consumers of these modules
>
> 4) OvmfPkg:
>         - Refactor the libraries/modules as per latest guidelines
>         - Add RISC-V support for below libraries/modules.
>                 - Sec, ResetSystemLib, PlatformInitLib, PlatformPei
>         - Add optimized version of NorFlashDxe driver
>         - Add NorFlashQemuLib (Copied from ArmVirtPkg and SbsaQemu)
>         - Add new DSC/FDF files to build for RISC-V virt machine
>
> 5) MdeModulePkg/EmbeddedPkg:
>         - Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg
>         - Fix up the consumers of NvVarStoreFormattedLib
>
> Changes since V3:
>         1) Addressed Abner's comments
>         2) Changed folder name from Ia32_X64 to Ia32X64 as per latest guidelines.
>         2) Rebased
>
> Changes since V2:
>         1) Fixed issues detected by CI (https://github.com/tianocore/edk2/pull/3471)
>         2) Added an extra patch to fix up the consumers of NvVarStoreFormattedLib
>
> Changes since V1:
>         1) Added couple of patches from Ard to optimize the NorFlashDxe in Ovmf.
>            Note: There will be a separate patch series in future to update existing
>            consumers of NorFlashDxe driver.
>         2) Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg
>         3) Created Null instance of the NorFlashPlatformLib library class
>         4) Moved NorFlashPlatformLib.h from ArmPlatformPkg
>
> These changes are available at: https://github.com/vlsunil/edk2/tree/RiscV64QemuVirt
>
> The changes are tested on risc-v qemu with an additional patch series to
> enable pflash available at https://github.com/vlsunil/qemu/tree/pflash_v3
>
> Sunil V L (34):
>   MdePkg/Register: Add register definition header files for RISC-V
>   MdePkg: Add RISCV_EFI_BOOT_PROTOCOL related definitions
>   MdePkg/BaseLib: RISC-V: Add few more helper functions
>   MdePkg: Add BaseRiscVSbiLib Library for RISC-V
>   OvmfPkg/PlatformInitLib: Refactor to allow other architectures
>   OvmfPkg/PlatformInitLib: Add support for RISC-V
>   OvmfPkg/ResetSystemLib: Refactor to allow other architectures.
>   OvmfPkg/ResetSystemLib: Add support for RISC-V
>   OvmfPkg/Sec: Refactor to allow other architectures
>   OvmfPkg/Sec: Add RISC-V support
>   OvmfPkg/PlatformPei: Refactor to allow other architectures
>   OvmfPkg/PlatformPei: Add support for RISC-V
>   UefiCpuPkg/CpuTimerLib: Refactor to allow other architectures
>   UefiCpuPkg/CpuTimerLib: Add support for RISC-V
>   UefiCpuPkg/CpuExceptionHandlerLib: Refactor to allow other
>     architectures
>   UefiCpuPkg/CpuExceptionHandlerLib: Add support for RISC-V
>   UefiCpuPkg/CpuDxe: Refactor to allow other architectures
>   UefiCpuPkg/CpuDxe: Add support for RISC-V
>   UefiCpuPkg/CpuDxe: Add RISCV_EFI_BOOT_PROTOCOL support
>   UefiCpuPkg: Add CpuTimerDxe module
>   ArmVirtPkg/PlatformHasAcpiDtDxe: Move to OvmfPkg
>   ArmVirtPkg: Fix up the location of PlatformHasAcpiDtDxe
>   ArmVirtPkg/PlatformBootManagerLib: Move to OvmfPkg
>   ArmVirtPkg: Fix up the paths to PlatformBootManagerLib
>   ArmPlatformPkg/NorFlashPlatformLib.h:Move to MdePkg
>   EmbeddedPkg/NvVarStoreFormattedLib: Migrate to MdeModulePkg
>   ArmVirtPkg: Update the references to NvVarStoreFormattedLib
>   OvmfPkg: Add NorFlashQemuLib library
>   OvmfPkg: Add Qemu NOR flash DXE driver
>   OvmfPkg/NorFlashDxe: Avoid switching to array mode during writes
>   OvmfPkg/NorFlashDxe: Avoid switching between modes in a tight loop
>   OvmfPkg: RiscVVirt: Add Qemu Virt platform support
>   Maintainers.txt: Add entry for OvmfPkg/RiscVVirt
>   UefiCpuPkg/UefiCpuPkg.ci.yaml: Ignore RISC-V file
>
>  ArmPlatformPkg/ArmPlatformPkg.dec                                                                                    |   4 -
>  ArmVirtPkg/ArmVirtPkg.dec                                                                                            |   9 -
>  EmbeddedPkg/EmbeddedPkg.dec                                                                                          |   3 -
>  MdeModulePkg/MdeModulePkg.dec                                                                                        |   3 +
>  MdePkg/MdePkg.dec                                                                                                    |  13 +
>  OvmfPkg/OvmfPkg.dec                                                                                                  |  18 +
>  ArmVirtPkg/ArmVirtCloudHv.dsc                                                                                        |   2 +-
>  ArmVirtPkg/ArmVirtKvmTool.dsc                                                                                        |   2 +-
>  ArmVirtPkg/ArmVirtQemu.dsc                                                                                           |  10 +-
>  ArmVirtPkg/ArmVirtQemuKernel.dsc                                                                                     |   8 +-
>  MdeModulePkg/MdeModulePkg.dsc                                                                                        |   2 +
>  MdePkg/MdePkg.dsc                                                                                                    |   4 +
>  OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc                                                                            | 726 ++++++++++++++++
>  UefiCpuPkg/UefiCpuPkg.dsc                                                                                            |  15 +-
>  OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf                                                                            | 406 +++++++++
>  ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf                                                       |   2 +-
>  ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf                                                                 |   2 +-
>  {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf                              |   1 -
>  MdePkg/Library/BaseLib/BaseLib.inf                                                                                   |   2 +
>  MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf                                                                   |  25 +
>  MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf                                                   |  22 +
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf                                                                          |  67 ++
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf                                                                 |  61 ++
>  OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf                                                                  |  40 +
>  OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf                                                           |  30 +
>  {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf |   3 +-
>  OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf                                                                  |  31 +-
>  OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf                                                                |  12 +-
>  OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibBhyve.inf                                                           |   4 +-
>  OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibMicrovm.inf                                                         |   2 +-
>  OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf                                                                 |  15 +-
>  OvmfPkg/Library/ResetSystemLib/DxeResetSystemLibMicrovm.inf                                                          |   4 +-
>  {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf                                                |   3 +-
>  OvmfPkg/PlatformPei/PlatformPei.inf                                                                                  |  43 +-
>  OvmfPkg/Sec/SecMain.inf                                                                                              |  34 +-
>  UefiCpuPkg/CpuDxe/CpuDxe.inf                                                                                         |  39 +-
>  UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf                                                                               |  51 ++
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf                                              |  21 +-
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf                                              |   8 +-
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf                                           |  19 +-
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf                                              |   8 +-
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf                                     |   6 +-
>  UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf                                                                   |   9 +-
>  {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h                                                     |   0
>  MdePkg/Include/Library/BaseLib.h                                                                                     |  50 ++
>  MdePkg/Include/Library/BaseRiscVSbiLib.h                                                                             | 127 +++
>  {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h                                                     |   0
>  MdePkg/Include/Protocol/RiscVBootProtocol.h                                                                          |  34 +
>  MdePkg/Include/Register/RiscV64/RiscVEncoding.h                                                                      | 119 +++
>  MdePkg/Include/Register/RiscV64/RiscVImpl.h                                                                          |  25 +
>  OvmfPkg/Drivers/NorFlashDxe/NorFlash.h                                                                               | 422 +++++++++
>  OvmfPkg/Include/Library/PlatformInitLib.h                                                                            |   6 +
>  {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h               |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h                                                                         |   0
>  OvmfPkg/PlatformPei/RiscV64/Platform.h                                                                               |  97 +++
>  OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h                                                                                   |   0
>  OvmfPkg/Sec/RiscV64/SecMain.h                                                                                        |  65 ++
>  OvmfPkg/Sec/SecMainCommon.h                                                                                          |  73 ++
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h                                                                             |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h                                                                             |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h                                                                              |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h                                                                       |   0
>  UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h                                                                             | 122 +--
>  UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h                                                                               | 177 ++++
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h                                         |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h                                           | 116 +++
>  {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c                                |   0
>  MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c                                                                     | 227 +++++
>  MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c                                                     |  26 +
>  OvmfPkg/Drivers/NorFlashDxe/NorFlash.c                                                                               | 908 ++++++++++++++++++++
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c                                                                     | 123 +++
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c                                                                            | 509 +++++++++++
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c                                                                            | 777 +++++++++++++++++
>  OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c                                                                   | 386 +++++++++
>  OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c                                                                    | 136 +++
>  OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c                                                             |  40 +
>  {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c               |   0
>  {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c               |   0
>  OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c                                                                 |   0
>  OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c                                                             |   0
>  OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c                                                         |   0
>  OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c                                                            |   0
>  OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c                                                             |   0
>  OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c                                                             |  72 ++
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c                                                     |   0
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c                                                |   0
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c                                                      |   0
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c                                              |   0
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c                                                        |   0
>  OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c                                                 |   0
>  OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c                                                            |  20 +
>  OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c                                                              | 128 +++
>  {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c                                                  |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c                                                                           |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c                                                                       |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c                                                                   |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c                                                                               |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c                                                                         |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c                                                                        |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c                                                                      |   0
>  OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c                                                                         |   0
>  OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c                                                                               |  43 +-
>  OvmfPkg/PlatformPei/RiscV64/MemDetect.c                                                                              | 212 +++++
>  OvmfPkg/PlatformPei/RiscV64/Platform.c                                                                               | 372 ++++++++
>  OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c                                                                                   |   0
>  OvmfPkg/Sec/{ => Ia32X64}/SecMain.c                                                                                  | 227 +----
>  OvmfPkg/Sec/RiscV64/SecMain.c                                                                                        | 573 ++++++++++++
>  OvmfPkg/Sec/SecMainCommon.c                                                                                          | 238 +++++
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c                                                                             |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c                                                                             |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c                                                                              |   0
>  UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c                                                                       |   0
>  UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c                                                                                   | 365 ++++++++
>  UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c                                                                               | 294 +++++++
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c                                         |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c                                               |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c                                            |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c                                      |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c                                         |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c                                               |   0
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c}                       |  83 +-
>  UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c                                                       |   0
>  UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c                                                           |   0
>  UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c                                                                 | 199 +++++
>  ArmVirtPkg/ArmVirtPkg.ci.yaml                                                                                        |   1 -
>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc                                                                                 |   2 +-
>  Maintainers.txt                                                                                                      |   4 +
>  MdePkg/Library/BaseLib/RiscV64/CpuScratch.S                                                                          |  31 +
>  MdePkg/Library/BaseLib/RiscV64/ReadTimer.S                                                                           |  23 +
>  MdePkg/Library/BaseLib/RiscV64/RiscVInterrupt.S                                                                      |  53 +-
>  OvmfPkg/OvmfPkg.ci.yaml                                                                                              |   1 +
>  OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc                                                                        |  66 ++
>  OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc                                                                         |  79 ++
>  OvmfPkg/Sec/RiscV64/SecEntry.S                                                                                       |  23 +
>  UefiCpuPkg/CpuTimerDxe/CpuTimer.uni                                                                                  |  14 +
>  UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni                                                                             |  12 +
>  UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S                                            | 105 +++
>  UefiCpuPkg/UefiCpuPkg.ci.yaml                                                                                        |   1 +
>  138 files changed, 9064 insertions(+), 531 deletions(-)
>  create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc
>  create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf
>  rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf (96%)
>  create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf
>  create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf
>  create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
>  create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf
>  rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf (92%)
>  rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf (89%)
>  create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf
>  rename {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h (100%)
>  create mode 100644 MdePkg/Include/Library/BaseRiscVSbiLib.h
>  rename {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h (100%)
>  create mode 100644 MdePkg/Include/Protocol/RiscVBootProtocol.h
>  create mode 100644 MdePkg/Include/Register/RiscV64/RiscVEncoding.h
>  create mode 100644 MdePkg/Include/Register/RiscV64/RiscVImpl.h
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.h
>  rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h (100%)
>  create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.h
>  rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h (100%)
>  create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.h
>  create mode 100644 OvmfPkg/Sec/SecMainCommon.h
>  copy UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h (100%)
>  rename UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h (69%)
>  create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h (100%)
>  create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h
>  rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c (100%)
>  create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c
>  create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.c
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c
>  create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c
>  create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c
>  create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c
>  rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c (100%)
>  rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c (100%)
>  rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c (100%)
>  rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c (100%)
>  rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c (100%)
>  rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c (100%)
>  rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c (100%)
>  create mode 100644 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c (100%)
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c (100%)
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c (100%)
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c (100%)
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c (100%)
>  rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c (100%)
>  create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c
>  create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c
>  rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c (100%)
>  copy OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c (100%)
>  rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c (100%)
>  rename OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c (63%)
>  create mode 100644 OvmfPkg/PlatformPei/RiscV64/MemDetect.c
>  create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.c
>  rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c (100%)
>  rename OvmfPkg/Sec/{ => Ia32X64}/SecMain.c (75%)
>  create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.c
>  create mode 100644 OvmfPkg/Sec/SecMainCommon.c
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c (100%)
>  rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c (100%)
>  create mode 100644 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c
>  create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c (100%)
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c (100%)
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c (100%)
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c (100%)
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c (100%)
>  copy UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c (100%)
>  rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c} (67%)
>  rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c (100%)
>  rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c (100%)
>  create mode 100644 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c
>  create mode 100644 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S
>  create mode 100644 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S
>  create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc
>  create mode 100644 OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc
>  create mode 100644 OvmfPkg/Sec/RiscV64/SecEntry.S
>  create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimer.uni
>  create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni
>  create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S
>
> --
> 2.38.0
>
>
>
> 
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95249): https://edk2.groups.io/g/devel/message/95249
Mute This Topic: https://groups.io/mt/94330818/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine
Posted by Sunil V L 1 year, 6 months ago
On Fri, Oct 14, 2022 at 06:50:35PM +0200, Ard Biesheuvel wrote:
> Can you please stop spamming me and the list with two versions of this
> series per day?
> 
Very sorry Ard. I thought it was important to fix CI found issues and
folder name before others start reviewing. But I understand the pain.
Will remember this input in future.

Sincere apologies,
Sunil


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95250): https://edk2.groups.io/g/devel/message/95250
Mute This Topic: https://groups.io/mt/94330818/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine
Posted by Chang, Abner via groups.io 1 year, 6 months ago
[AMD Official Use Only - General]

Hi Sunil,
I think you don't have to address the CI issues at the moment, however you can run the minimum check such as PatchCheck and Uncrustify locally before sending patches.
This is a big series of patch set, I will help to go through all patches. You can address the comments and send V5 after I sending me feedback on patch 34/34.

Thanks
Abner

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sunil V L
> via groups.io
> Sent: Saturday, October 15, 2022 1:15 AM
> To: Ard Biesheuvel <ardb@kernel.org>
> Cc: devel@edk2.groups.io
> Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 00/34]
> Add support for RISC-V virt machine
> 
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
> 
> 
> On Fri, Oct 14, 2022 at 06:50:35PM +0200, Ard Biesheuvel wrote:
> > Can you please stop spamming me and the list with two versions of this
> > series per day?
> >
> Very sorry Ard. I thought it was important to fix CI found issues and folder
> name before others start reviewing. But I understand the pain.
> Will remember this input in future.
> 
> Sincere apologies,
> Sunil
> 
> 
> 
> 


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