Add RiscVEdk2Readme.md Signed-off-by: Abner Chang <abner.ch...@hpe.com> --- RiscVEdk2Readme.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 RiscVEdk2Readme.md
diff --git a/RiscVEdk2Readme.md b/RiscVEdk2Readme.md new file mode 100644 index 0000000..ec691fe --- /dev/null +++ b/RiscVEdk2Readme.md @@ -0,0 +1,34 @@ +This branch is used to contribute RISC-V architecture to EDK2 + +The branch owner:<br> +Abner Chang < abner.ch...@hpe.com > <br> +Gilbert Chen < gilbert.c...@hpe.com > + +## RISC-V EDK2 Port Introduction +RISC-V is an open ISA which was designed to support research and education of computer architecture, but now it becomes +a standard open Instruction Set Architecture for industry implementations. The RISC-V edk2 project is to create a new processor binding in UEFI spec and have the RISC-V edk2 implementation. The goal is to have RISC-V edk2 port as the firmware reference +for RISC-V platforms. + +This branch (RISC-V-V2) on edk2-staging is RISC-V edk2 port with RISC-V OpenSbi (https://github.com/riscv/opensbi) library integrated. RiscVPkg provides the generic and common modules of RISC-V prcessor. The first edk2 RISC-V platform is SiFive U500 FPGA whcih is maintained in U500Pkg under Platform/RiscV/SiFive in edk2-platform repository. + +## RISC-V EDK2 Package +``` +RiscVPkg - RISC-V processor package. This package provides RISC-V processor related protocols/libraries accroding + to UEFI specification and edk2 implementations. +``` +## Toolchain of RISC-V EDK2 port +To build edk2 RISC-V platform requires GCC RISC-V toolchain, refer to https://github.com/riscv/riscv-gnu-toolchain for the details. The commit ID 64879b24 of riscv-gnu-toolchain repository is verified to build RISC-V edk2 platform and boot to EFI SHELL successfully. You have to clone the toolchain from above link and check out commit:64879b24 for building RISC-V edk2 port. The commit later than 64879b24 causes system hangs at the PEI phase to DXE phase transition. We are still figuring out the root cause. + +## EDK2 Build Target +"RISCV64" ARCH is the RISC-V architecture which currently supported and verified. The verified RISC-V toolchain is https://github.com/riscv/riscv-gnu-toolchain @64879b24 as mentioned above, toolchain tag is "GCC5" which is declared in tools_def.txt.<br> +Below is the edk2 build options for building RISC-V RV64 platform, <br> +``` +build -a RISCV64 -p Platform/{Vendor}/{Platform}/{Platform}.dsc -t GCC5 +``` +For example, <br> +``` +build -a RISCV64 -p Platform/SiFive/U500/U500.dsc -t GCC5 +``` + +Make sure RISC-V toolchain is built succesfully and the toolchain binaries are generated in somewhere you specified when building toolchain. 'GCC5_RISCV64_PREFIX' is the cross compilation prefix to toolchain binraries. <br> +For example, set 'GCC5_RISCV64_PREFIX' to '~/RiscVToolchain/riscv64-unknown-elf-' before you build RISC-V edk2 port. -- 2.7.4 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47779): https://edk2.groups.io/g/devel/message/47779 Mute This Topic: https://groups.io/mt/34258226/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-