Readme.md 4.6 KB

# 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)

U500 Platform

This is a sample RISC-V EDK2 platform package used agaist SiFive Freedom U500 VC707 FPGA Dev Kit, please refer to «SiFive Freedom U500 VC707 FPGA Getting Started Guide» on https://www.sifive.com/documentation.

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 using qemu-system-riscv64 under riscv64-softmmu. Launch the binary with

-cpu sifive-u54 -machine sifive_u

Download the sources

git clone https://github.com/tianocore/edk2-staging.git
# Checkout RISC-V-V2 branch
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 abner.chang@hpe.com Chen, Gilbert gilbert.chen@hpe.com

Platform Status

Currently the binary built from U500Pkg 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

Supported Operating Systems

Only support to boot to EFI Shell so far.

Known Issues and Limitations

Only RISC-V RV64 is verified on this platform.

Related Materials

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 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.

TimerDxe

This is U5 series platform timer DXE driver whcih 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 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.

PlatformPei

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 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.

PlatformPei

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
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