In this updated version I addressed Leif's comments and made the following changes:
- Refactor sbi_call* to SbiCall* (EDKII style) - Use OpenSBI constants if possible - Include Base.h in OpensbiTypes.h - Only use __builtin_expect with Clang and GCC (not MSVC) I'm sorry, I hadn't explained the new branches properly. Previously we had all code going to EDK2 via the RISC-V-V2 branch. Now we're only making the least amount of necessary changes in edk2 and everything else in edk2-platforms. Those changes to edk2 can be grouped into different categories: - Patches for RISC-V EDK2 CI enablement - Patches for edk2 modules other than RISC-V ones, to allow building them with the RISC-V toolchain - Other RISC-V enablement like PE/COFF relocation Those have all been reviewed and merged to edk2 master. Previously we had two packages just for RISC-V on our edk2 branch: RiscVPkg and RiscVPlatformPkg They are now under Platform/RISC-V/PlatformPkg and Silicon/RISC-V/ProcessorPkg in edk2-platforms. You, Leif, have previously reviewed those. In addition to this old code, which was moved, we need some more patches to allow running PEI in S-Mode and building in edk2-platforms. That's what this patch series is about. In the previous version of this patchseries I forgot to attach the biggest new commit, which adds RiscVEdk2SbiLib. It wraps the ecall interface for calling SBI in a C API and lets PEI and DXE call SBI interfaces. Because we need more M-Mode capabilities in PEI and DXE than SBI gives us, we register another SBI extension, that gives us access to the mscratch register. I hope now it makes more sense. - Daniel Cc: Abner Chang <abner.ch...@hpe.com> Cc: Gilbert Chen <gilbert.c...@hpe.com> Cc: Michael D Kinney <michael.k.kin...@intel.com> Cc: Leif Lindholm <l...@nuviainc.com> Abner Chang (1): ProcessorPkg/Library: Add RiscVOpensbiLib Daniel Schaefer (2): ProcessorPkg/RiscVOpensbLib: Add opensbi submodule ProcessorPkg/Library: Add RiscVEdk2SbiLib Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.inf | 28 + Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/RiscVOpensbiLib.inf | 60 ++ Silicon/RISC-V/ProcessorPkg/Include/IndustryStandard/RiscVOpensbi.h | 72 ++ Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h | 631 ++++++++++++++++ Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h | 73 ++ Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c | 789 ++++++++++++++++++++ .gitmodules | 3 + Readme.md | 36 + Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi | 1 + 9 files changed, 1693 insertions(+) create mode 100644 Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.inf create mode 100644 Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/RiscVOpensbiLib.inf create mode 100644 Silicon/RISC-V/ProcessorPkg/Include/IndustryStandard/RiscVOpensbi.h create mode 100644 Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h create mode 100644 Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h create mode 100644 Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c create mode 100644 .gitmodules create mode 160000 Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi -- 2.26.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#59682): https://edk2.groups.io/g/devel/message/59682 Mute This Topic: https://groups.io/mt/74227138/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-