Drew Barbier, Sr. Product Marketing ManagerJune 25, 2019

Freedom in Software and in the Metal

With the move to a quarterly release program (see: Silicon At Speed Of Software), SiFive is innovating in the hardware space at an unprecedented pace. In the SiFive Core Designer update and the Core IP update we learned about new features being added to SiFive Core IP and the ability to quickly access those features via SiFive Core Designer, SiFive's Software-as-a Service (SaaS) application. We have also been hard at work making sure that our software enablement is just as configurable, and easy to access, as our hardware.

Freedom Metal is a portable, bare-metal environment which exposes convenient software interfaces for controlling SiFive Core IP features and SiFive peripheral devices. We first released the beta of Freedom Metal in Q1 and have since been hard at work improving the interfaces and adding the necessary new feature support for the Q2 update. Some examples of the new features in Freedom Metal are:

  • Multicore Boot - Freedom Metal is now multi-core aware to support the new SiFive Core Designer ability to generate multi-core embedded devices.
  • RV32E support - Freedom Metal also supports the RV32E extension added to the E2 Series, extending SiFive core market reach to extremely area constrained design points requiring the use of reduced integer register count microarchitectures.
  • User Mode and PMP API - SiFive’s embedded devices can be configured to support RISC-V’s User Mode. Freedom Metal now supports the ability to create and enter a User Mode context via a Freedom Metal API calls along with driver support for programming PMP regions.

What makes Freedom Metal so special is that any software written against its API will work on any device which has a Freedom Metal Board Support Package (BSP). SiFive offers a tool which automatically generate BSPs based on Device Tree Files. Using this tool, we are able to automatically generate Freedom Metal BSPs for all SiFive Core IP created with SiFive Core Designer. With the Q2 2019 update, we will be packaging Freedom Metal BSPs with all SiFive Core IP products ensuring software compatibility with Freedom Metal.

Building on top of Freedom Metal is Freedom E SDK, our command-line based software development kit. The Freedom E SDK is intended to make software development on SiFive devices as simple as possible by featuring a collection of Freedom Metal-based examples, Freedom Metal BSPs for SiFive development boards, scripts, utilities, and makefiles. In the Q2 2019 Freedom E SDK release we have updated the bundled Freedom Metal BSPs and added a number of new examples including:

  • Benchmarks - Dhrystone and Coremark examples for easy replication of SiFive benchmark scores
  • Multicore Hello - Demonstrates booting a multicore SiFive target
  • User Mode - Demonstrates dropping down into user-mode via Freedom Metal API calls
  • Many more

Freedom Metal BSPs included with SiFive Core IP deliverables feature Freedom E SDK examples tailored to a given design. For example, if a Core IP design doesn’t have User Mode, then the bundled Freedom E SDK will not include the User Mode example. Focusing SDK examples on the capabilities of the Core IP speeds understanding of capabilities and saves time.

Freedom Studio coherently encompasses the entire software experience together, building on top of Freedom Metal and Freedom E SDK. Freedom Studio provides an Eclipse based IDE along with all of the necessary toolchains and utilities pre-built for your OS of choice. As part of the Q2 2019 update SiFive has developed single-click access to the Freedom E SDK new project wizard.

Getting starting writing code for SiFive devices is simple with the included QEMU based simulator with 32-bit and 64-bit target. Freedom Studio is your one-stop download for software development for SiFive devices be it core IP, FPGA, and/or develop board targets. SiFive offers access to all toolchains and utilities from source in the Freedom Tools repository on Github along with all of the necessary build scripts.

For the Q2 2019 engineering update SiFive focused on the end-user and out-of-the-box experience which resulted in a strong focus on software for SiFive products. The Q2 2019 software update will result in a great user experience and allow for our partners to make some truly incredible products!