Update RISC-V U5SeriesPkg Readme.md to align with the latest implementation. Signed-off-by: Abner Chang Co-authored-by: Daniel Schaefer Cc: Daniel Schaefer --- Platform/SiFive/U5SeriesPkg/Readme.md | 112 +++++++++++++------------- 1 file changed, 58 insertions(+), 54 deletions(-) diff --git a/Platform/SiFive/U5SeriesPkg/Readme.md b/Platform/SiFive/U5SeriesPkg/Readme.md index 4d293e54f6..4d404efec4 100644 --- a/Platform/SiFive/U5SeriesPkg/Readme.md +++ b/Platform/SiFive/U5SeriesPkg/Readme.md @@ -1,61 +1,59 @@ -# Introduction -U5SeriesPkg provides the common EFI library and driver modules for SiFive -U5 series core platforms. Currently the supported platforms are Freedom -U500 VC707 platform and Freedom U540 HiFive Unleashed platform. - -Both platforms are built with below common packages, -- **U5SeriesPkg**, edk2 platform branch - (Currently is in edk2-platforms/devel-riscvplatforms branch) -- **RiscVPlatformPkg**, edk2 master branch - (Currently is in edk2-staging/RISC-V-V2 branch) -- **RiscVPkg**, edk2 master branch - (Currently is in edk2-staging/RISC-V-V2 branch) +# Introduction of SiFive U5 Series Platforms +U5SeriesPkg provides the common EDK2 libraries and drivers for SiFive U5 series platforms. Currently the supported +platforms are Freedom U500 VC707 platform and Freedom U540 HiFive Unleashed platform. + +Both platforms are built with below common edk2 packages under edk2-platforms repository, +- [**U5SeriesPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Platform/SiFive/U5SeriesPkg) +- [**RiscVPlatformPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Platform/RISC-V/PlatformPkg) +- [**RiscVProcessorPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Silicon/RISC-V/ProcessorPkg) ## U500 Platform -This is a sample RISC-V EDK2 platform package used agaist SiFive Freedom U500 +This is a sample RISC-V EDK2 platform package used against to SiFive Freedom U500 VC707 FPGA Dev Kit, please refer to "SiFive Freedom U500 VC707 FPGA Getting Started Guide" on https://www.sifive.com/documentation. +The binary built from Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board can run on U500 VC707 FPGA board. +``` +build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc +``` ## U540 Platform -This is a sample RISC-V EDK2 platform package used against SiFive Freedom U540 -HiFive Unleashed development board, please refer to "SiFive Freedom U540-C000 -Manual" on https://www.sifive.com. -The binary built from Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/ -can run on main stream [QEMU](https://git.qemu.org/?p=qemu.git;a=summary) -using qemu-system-riscv64 under riscv64-softmmu. Launch the binary with +This is a sample RISC-V EDK2 platform package used for the SiFive Freedom U540 HiFive Unleashed development board, please refer to "SiFive Freedom U540-C000 Manual" on https://www.sifive.com. +The binary built from Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/ can run on both hardware and +[QEMU](https://git.qemu.org/?p=qemu.git;a=summary). It is confirmed that version 5.0 of QEMU can boot the firmware. +``` +build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.dsc +``` +For running U540 edk2 binary on QEMU, use qemu-system-riscv64 under riscv64-softmmu to launch the binary with +below parameters, ``` --cpu sifive-u54 -machine sifive_u +qemu-system-riscv64 -cpu sifive-u54 -machine sifive_u -bios U540.fd -m 2048 -nographic -smp cpus=5,maxcpus=5 ``` -## Download the sources +## Download the Source Code ``` -git clone https://github.com/tianocore/edk2-staging.git -# Checkout RISC-V-V2 branch +git clone https://github.com/tianocore/edk2.git git clone https://github.com/tianocore/edk2-platforms.git -# Checkout devel-riscvplatforms branch -git clone https://github.com/tianocore/edk2-non-osi.git ``` - -## Platform Owners -Chang, Abner -Chen, Gilbert +Refer to [Readme.md](https://github.com/tianocore/edk2-platforms/blob/master/Platform/RISC-V/PlatformPkg/Readme.md) for building RISC-V platforms. ## Platform Status -Currently the binary built from U500Pkg can boot SiFive Freedom U500 VC707 +**FreedomU500VC707Board** +Currently the binary built from U500 edk2 package can boot SiFive Freedom U500 VC707 FPGA to EFI shell with console in/out enabled. -## Linux Build Instructions -You can build the RISC-V platform using below script, -`build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc` +**FreedomU540HiFiveUnleashedBoard** +Currently the binary built from U540 edk2 package can boot SiFive Freedom U540 HiFive Unleashed +to EFI shell with console in/out enabled and Linux kernel. Please refer to https://github.com/riscv/riscv-uefi-edk2-docs for booting to Linux kernel. ## Supported Operating Systems -Only support to boot to EFI Shell so far. +Please refer to https://github.com/riscv/riscv-uefi-edk2-docs. ## Known Issues and Limitations Only RISC-V RV64 is verified on this platform. ## Related Materials +- [RISC-V UEFI Documents](https://github.com/riscv/riscv-uefi-edk2-docs) - [RISC-V OpenSbi](https://github.com/riscv/opensbi) - [SiFive U500 VC707 FPGA Getting Started Guide](https://sifive.cdn.prismic.io/sifive%2Fc248fabc-5e44-4412-b1c3-6bb6aac73a2c_sifive-u500-vc707-gettingstarted-v0.2.pdf) - [SiFive Freedom U540-C000 Manual](https://sifive.cdn.prismic.io/sifive%2F834354f0-08e6-423c-bf1f-0cb58ef14061_fu540-c000-v1.0.pdf) @@ -63,48 +61,54 @@ Only RISC-V RV64 is verified on this platform. ## U5SeriesPkg Libraries and Drivers ### PeiCoreInfoHobLib -This is the library to create RISC-V core characteristics for building up -RISC-V related SMBIOS records to support the unified boot loader and OS image. +This is the library to create RISC-V core characteristics for building up RISC-V related SMBIOS records to support +the single boot loader image or OS image on the RISC-V variants This library leverage the silicon libraries provided in Silicon/SiFive. ### RiscVPlatformTimerLib -This is common U5 series platform timer library which has the -platform-specific timer implementation. +This is common U5 series platform timer library which has the platform-specific timer implementation. + +### SerialLib +This is common U5 series platform serial port library. ### TimerDxe -This is U5 series platform timer DXE driver whcih has the platform-specific -timer implementation. +This is common U5 series platform timer DXE driver which has the platform-specific timer implementation. ## U500 Platform Libraries and Drivers ### RiscVOpensbiPlatformLib -In order to reduce the dependencies with RISC-V OpenSBI project -(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the -implementation of RISC-V EDK2 platform is leveraging platform source code from +In order to reduce the dependencies with RISC-V OpenSBI project (https://github.com/riscv/opensbi) and fewer +burdens to EDK2 build process, the implementation of RISC-V EDK2 platform is leveraging platform source code from OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned from -RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 build -environment. +[RISC-V OpenSBI code tree](Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi) and built based on edk2 +build environment. ### PlatformPei -This is the platform-implementation specific library which is executed in early -PEI phase for U500 platform initialization. +This is the platform-implementation specific library which is executed in early PEI phase for U500 platform +initialization. ## U540 Platform Libraries and Drivers ### RiscVOpensbiPlatformLib -In order to reduce the dependencies with RISC-V OpenSBI project -(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the -implementation of RISC-V EDK2 platform is leveraging platform source code from +In order to reduce the dependencies with RISC-V OpenSBI project (https://github.com/riscv/opensbi) and fewer +burdens to EDK2 build process, the implementation of RISC-V EDK2 platform is leveraging platform source code from OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned from -RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 build -environment. +[RISC-V OpenSBI code tree](Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi) and built based on edk2 +build environment. ### PlatformPei -This is the platform-implementation specific library which is executed in early -PEI phase for U540 platform initialization. +This is the platform-implementation specific library which is executed in early PEI phase for U540 platform +initialization. ## U5SeriesPkg Platform PCD settings | **PCD name** |**Usage**| |----------------|----------| +|PcdU5PlatformSystemClock| U5 series platform system clock| |PcdNumberofU5Cores| Number of U5 core enabled on U5 series platform| |PcdE5MCSupported| Indicates whether the Monitor Core (E5) is supported on U5 series platform| |PcdU5UartBase|Platform serial port base address| + + +## Platform Owners +Chang, Abner +Chen, Gilbert +Schaefer, Daniel \ No newline at end of file -- 2.25.0