Updated Yocto support for SiFive RISC-V platforms

SiFive logoA few months ago, we started supporting SiFive in their effort to maintain and improve the Yocto support for their RISC-V processors and platforms. The Yocto support for SiFive platforms is divided into two layers:

These layers allow to build ready-to-use Yocto images for the Qemu RISC-V 64-bit emulation, the HiFive Unleashed and HiFive Unmatched development boards.

As part of our work on the Yocto support for SiFive platofrms, we have already published three new releases of these layers: 2022.06, 2022.08 and 2022.10. In this blog post, we review the main highlights of those releases.

2022.06

The first changes arrived with the FUSDK release 2022.06 to which we contributed:

  • Introduction of Kas as the tool to download the layers and configure the build.
  • Big clean-up of the layers, fixing of various issues and update of the BSP for SiFive platforms.
  • All layers as well as Bitbake have been updated.
  • OpenSBI has been updated to a few commits on top of the 1.0.
  • U-Boot has been updated from 2022.01 to 2022.04.
  • SBI PMU support has been added to U-Boot.
  • Linux has been updated from 5.18.2 to 5.18.6.
  • LLVM updated from 13.0.1 to 14.0.5.
  • Mesa updated from 22.0.0 to 22.0.3.

2022.08

Then, we have published the FUSDK release 2022.08 which contains several updates:

  • All layers as well as Bitbake have been updated.
  • OpenSBI has been updated from 1.0 to 1.1.
  • U-Boot has been updated from 2022.04 to 2022.07.
  • Linux has been updated from 5.18.6 to 5.18.14.
  • LLVM has been updated from 14.0.5 to 14.0.6.
  • Mesa has been updated from 22.0.3 to 22.1.3.

In addition, this release also contains some fixes for building the Freedom U540 (SiFive HiFive Unleashed) images.

The BSP of this release mainly adds support for various RISC-V ISA extensions ratified in December 2021 along with other improvements:

  • SBI PMU improvements.
  • RISC-V AIA v0.3.0 draft support.
  • Simple external interrupt handling framework.
  • RISC-V privilege specification v1.12 support.
  • RISC-V Svpbmt extension support.
  • RISC-V Smstateen extension support.
  • RISC-V Sstc extension support.
  • RISC-V privilege specification version detection.
  • Platform callback to populate HART extensions.
  • Compile time C arrays support.
  • Probing FDT based drivers using compile time C arrays.
  • SBI HSM improvements.
  • Trap redirection improvements related to [m|h]tinst CSR.
  • SBI v1.0 specification support.

2022.10

Finally, the FUSDK release 2022.10 has been published recently and contains many updated packages, especially:

  • All layers as well as Bitbake have been updated.
  • GCC has been updated from 12.1.0 to 12.2.0.
  • LLVM has been updated from 14.0.6 to 15.0.3.
  • Mesa has been updated from 22.1.3 to 22.2.0.

Future work

In the next releases, we plan to continue to update BSP parts, as well as the layers, in order to stick as close as possible to the mainline. In addition, we are working to improve CI/CD in order to increase the quality and the tests coverage.