OvmfPkg: Acked-by: Jiewen Yao <jiewen....@intel.com> > -----Original Message----- > From: Sunil V L <suni...@ventanamicro.com> > Sent: Friday, February 10, 2023 8:30 PM > To: devel@edk2.groups.io > Cc: Abner Chang <abner.ch...@amd.com>; Daniel Schaefer > <g...@danielschaefer.me>; Kinney, Michael D <michael.d.kin...@intel.com>; > Gao, Liming <gaolim...@byosoft.com.cn>; Ard Biesheuvel > <ardb+tianoc...@kernel.org>; Yao, Jiewen <jiewen....@intel.com>; Justen, > Jordan L <jordan.l.jus...@intel.com>; Gerd Hoffmann <kra...@redhat.com>; > Sami Mujawar <sami.muja...@arm.com>; Leif Lindholm > <quic_llind...@quicinc.com>; Dong, Eric <eric.d...@intel.com>; Ni, Ray > <ray...@intel.com>; Kumar, Rahul R <rahul.r.ku...@intel.com>; Liu, Zhiguang > <zhiguang....@intel.com>; Anup Patel <apa...@ventanamicro.com>; Heinrich > Schuchardt <heinrich.schucha...@canonical.com>; Warkentin, Andrei > <andrei.warken...@intel.com> > Subject: [edk2-staging/RiscV64QemuVirt PATCH V8 00/19] Add support for RISC- > V virt machine > > 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 added qemu specific libraries under OvmfPkg. > > The series has passed CI tests (https://github.com/tianocore/edk2/pull/4023) > > These changes are available at: > https://github.com/vlsunil/edk2/tree/RiscV64QemuVirt_V8 > > The series can be tested as per instructions @ > https://github.com/vlsunil/riscv-uefi-edk2-docs/wiki/RISC-V-Qemu-Virt-support > > Changes since V7: > 1) Addressed feedbacks from Mike and Ray. > 2) Added Anrdrei as another reviewer for RiscVVirt > 3) Rebased > 4) Added RB and ACK tags > > Changes since V6: > 1) Took inspiration from IntelTdx and added all RISC-V qemu related > libraries and > modules in OvmfPkg/RiscVVirt instead of directly under > OvmfPkg/Library. Hoping for > quicker review since now it shouldn't affect the existing OvmfPkg > libraries/modules. > 2) Dropped migration of NvVarStoreFormattedLib for now to avoid > MdeModulePkg changes. > Currently RISC-V Qemu doesn't support separate variable flash. So, it > can be taken > as a separate activity in future when required. > 3) Rebased and new CI test request passed > > Changes since V5: > 1) Avoided editing the existing INF files (as per feedback from Ray Ni). > This reduced > several refactor patches. > 2) Moved to PEI less design (as per suggestion from Andrei Warkentin) > 3) Added PciCpuIO2Dxe driver in OvmfPkg. > 4) Removed APRIORI requirement in DSC/FDF infrastructure files. Now > they > are very similar to ArmVirtQemu. > 5) Addressed Heinrich's feedback. > 6) Rebased and added ack tags > > Changes since V4: > 1) Rebased and added ACKs > 2) Dropped few patches related to VirtNorFlashDxe since they are > already taken care by Ard. > > 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 > 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 > > > Cc: Abner Chang <abner.ch...@amd.com> > Cc: Daniel Schaefer <g...@danielschaefer.me> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Cc: Sami Mujawar <sami.muja...@arm.com> > Cc: Leif Lindholm <quic_llind...@quicinc.com> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Rahul Kumar <rahul1.ku...@intel.com> > Cc: Zhiguang Liu <zhiguang....@intel.com> > Cc: Anup Patel <apa...@ventanamicro.com> > Cc: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > Cc: Andrei Warkentin <andrei.warken...@intel.com> > > Sunil V L (19): > MdePkg/Register: Add register definition header files for RISC-V > MdePkg/BaseLib: RISC-V: Add few more helper functions > MdePkg: Add BaseRiscVSbiLib Library for RISC-V > UefiCpuPkg: Add RISCV_EFI_BOOT_PROTOCOL related definitions > UefiCpuPkg: Add BaseRiscV64CpuExceptionHandlerLib > UefiCpuPkg: Add BaseRiscV64CpuTimerLib library > UefiCpuPkg: Add CpuTimerDxeRiscV64 module > UefiCpuPkg: Add CpuDxeRiscV64 module > UefiCpuPkg/UefiCpuPkg.ci.yaml: Ignore RISC-V file > ArmVirtPkg/PlatformHasAcpiDtDxe: Move to OvmfPkg > ArmVirtPkg: Fix up the location of PlatformHasAcpiDtDxe > OvmfPkg/RiscVVirt: Add PlatformBootManagerLib library > OvmfPkg/RiscVVirt: Add PrePiHobListPointerLib library > OvmfPkg/RiscVVirt: Add ResetSystemLib library > OvmfPkg/RiscVVirt: Add VirtNorFlashPlatformLib library > OvmfPkg/RiscVVirt: Add PciCpuIo2Dxe module > OvmfPkg/RiscVVirt: Add SEC module > OvmfPkg/RiscVVirt: Add build files for Qemu Virt platform > Maintainers.txt: Add entry for OvmfPkg/RiscVVirt > > ArmVirtPkg/ArmVirtPkg.dec > | 9 - > MdePkg/MdePkg.dec > | 4 + > OvmfPkg/OvmfPkg.dec > | 7 + > UefiCpuPkg/UefiCpuPkg.dec > | 7 + > OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc > | 336 > ++++++ > ArmVirtPkg/ArmVirtCloudHv.dsc > | 2 +- > ArmVirtPkg/ArmVirtQemu.dsc > | 4 +- > ArmVirtPkg/ArmVirtQemuKernel.dsc > | 2 +- > MdePkg/MdePkg.dsc > | 3 + > ArmVirtPkg/ArmVirtQemu.dsc => OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc > | 281 ++--- > UefiCpuPkg/UefiCpuPkg.dsc > | 6 + > OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > | 306 > ++++++ > ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf > | 2 +- > ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf > | 4 +- > MdePkg/Library/BaseLib/BaseLib.inf > | 3 + > MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf > | > 26 + > {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > | 3 +- > > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib. > inf | 75 ++ > OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf > | 23 + > OvmfPkg/RiscVVirt/Library/ResetSystemLib/BaseResetSystemLib.inf > | 38 + > OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashStaticLib.inf > | 30 + > OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf > | > 48 + > OvmfPkg/RiscVVirt/Sec/SecMain.inf > | 66 ++ > UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf > | 68 > ++ > UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf > | 51 + > > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExce > ptionHandlerLib.inf | 42 + > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.inf > | 33 + > MdePkg/Include/Library/BaseLib.h > | 50 + > MdePkg/Include/Library/BaseRiscVSbiLib.h > | 154 > +++ > MdePkg/Include/Register/RiscV64/RiscVEncoding.h > | > 119 +++ > MdePkg/Include/Register/RiscV64/RiscVImpl.h > | 25 > + > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBm.h > | 45 + > OvmfPkg/RiscVVirt/Sec/SecMain.h > | 102 ++ > UefiCpuPkg/CpuDxeRiscV64/CpuDxe.h > | 199 > ++++ > UefiCpuPkg/CpuTimerDxeRiscV64/Timer.h > | 177 > ++++ > UefiCpuPkg/Include/Protocol/RiscVBootProtocol.h > | > 34 + > > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/CpuExceptionHandler > Lib.h | 116 +++ > MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c > | > 231 +++++ > {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c > | 0 > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBm.c > | 1078 ++++++++++++++++++++ > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/QemuKernel.c > | 77 ++ > OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c > | 65 ++ > OvmfPkg/RiscVVirt/Library/ResetSystemLib/ResetSystemLib.c > | 128 +++ > OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashStaticLib.c > | 40 + > OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c > | > 557 ++++++++++ > OvmfPkg/RiscVVirt/Sec/Cpu.c > | 33 + > OvmfPkg/RiscVVirt/Sec/Memory.c > | 263 > +++++ > OvmfPkg/RiscVVirt/Sec/Platform.c > | 84 ++ > OvmfPkg/RiscVVirt/Sec/SecMain.c > | 104 ++ > UefiCpuPkg/CpuDxeRiscV64/CpuDxe.c > | 365 > +++++++ > UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c > | 294 > ++++++ > > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/CpuExceptionHandler > Lib.c | 133 +++ > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/CpuTimerLib.c > | 199 ++++ > ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc > | 2 +- > Maintainers.txt > | 5 + > MdePkg/Library/BaseLib/RiscV64/CpuScratch.S > | 31 > + > MdePkg/Library/BaseLib/RiscV64/ReadTimer.S > | 23 > + > MdePkg/Library/BaseLib/RiscV64/RiscVInterrupt.S > | 53 > +- > MdePkg/Library/BaseLib/RiscV64/RiscVMmu.S > | 23 > + > MdePkg/Library/BaseRiscVSbiLib/RiscVSbiEcall.S > | 42 + > OvmfPkg/RiscVVirt/RiscVVirt.fdf.inc > | 41 + > OvmfPkg/RiscVVirt/Sec/SecEntry.S > | 21 + > OvmfPkg/RiscVVirt/VarStore.fdf.inc > | 79 ++ > UefiCpuPkg/CpuDxeRiscV64/CpuDxe.uni > | 13 + > UefiCpuPkg/CpuDxeRiscV64/CpuDxeExtra.uni > | 14 > + > UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimer.uni > | > 14 + > UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerExtra.uni > | > 12 + > > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExce > ptionHandlerLib.uni | 13 + > > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/SupervisorTrapHandle > r.S | 105 ++ > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.uni > | 14 + > UefiCpuPkg/UefiCpuPkg.ci.yaml > | 1 + > 71 files changed, 6452 insertions(+), 205 deletions(-) > create mode 100644 OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc > copy ArmVirtPkg/ArmVirtQemu.dsc => OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc > (66%) > create mode 100644 OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf > rename {ArmVirtPkg => > OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf (89%) > create mode 100644 > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib. > inf > create mode 100644 > OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf > create mode 100644 > OvmfPkg/RiscVVirt/Library/ResetSystemLib/BaseResetSystemLib.inf > create mode 100644 > OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashStaticLib.inf > create mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf > create mode 100644 OvmfPkg/RiscVVirt/Sec/SecMain.inf > create mode 100644 UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf > create mode 100644 > UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExce > ptionHandlerLib.inf > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.inf > create mode 100644 MdePkg/Include/Library/BaseRiscVSbiLib.h > create mode 100644 MdePkg/Include/Register/RiscV64/RiscVEncoding.h > create mode 100644 MdePkg/Include/Register/RiscV64/RiscVImpl.h > create mode 100644 > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBm.h > create mode 100644 OvmfPkg/RiscVVirt/Sec/SecMain.h > create mode 100644 UefiCpuPkg/CpuDxeRiscV64/CpuDxe.h > create mode 100644 UefiCpuPkg/CpuTimerDxeRiscV64/Timer.h > create mode 100644 UefiCpuPkg/Include/Protocol/RiscVBootProtocol.h > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/CpuExceptionHandler > Lib.h > create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c > rename {ArmVirtPkg => > OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c (100%) > create mode 100644 > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBm.c > create mode 100644 > OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/QemuKernel.c > create mode 100644 > OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c > create mode 100644 > OvmfPkg/RiscVVirt/Library/ResetSystemLib/ResetSystemLib.c > create mode 100644 > OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashStaticLib.c > create mode 100644 OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c > create mode 100644 OvmfPkg/RiscVVirt/Sec/Cpu.c > create mode 100644 OvmfPkg/RiscVVirt/Sec/Memory.c > create mode 100644 OvmfPkg/RiscVVirt/Sec/Platform.c > create mode 100644 OvmfPkg/RiscVVirt/Sec/SecMain.c > create mode 100644 UefiCpuPkg/CpuDxeRiscV64/CpuDxe.c > create mode 100644 UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/CpuExceptionHandler > Lib.c > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/CpuTimerLib.c > create mode 100644 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S > create mode 100644 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S > create mode 100644 MdePkg/Library/BaseLib/RiscV64/RiscVMmu.S > create mode 100644 MdePkg/Library/BaseRiscVSbiLib/RiscVSbiEcall.S > create mode 100644 OvmfPkg/RiscVVirt/RiscVVirt.fdf.inc > create mode 100644 OvmfPkg/RiscVVirt/Sec/SecEntry.S > create mode 100644 OvmfPkg/RiscVVirt/VarStore.fdf.inc > create mode 100644 UefiCpuPkg/CpuDxeRiscV64/CpuDxe.uni > create mode 100644 UefiCpuPkg/CpuDxeRiscV64/CpuDxeExtra.uni > create mode 100644 UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimer.uni > create mode 100644 UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerExtra.uni > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExce > ptionHandlerLib.uni > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/SupervisorTrapHandle > r.S > create mode 100644 > UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.uni > > -- > 2.34.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100015): https://edk2.groups.io/g/devel/message/100015 Mute This Topic: https://groups.io/mt/96874977/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-