Tutorial for the v0.5 lowRISC preview release

By Jonathan Kimmitt, Wei Song and Alex Bradbury (also see acknowledgements below)

Release version 0.5 (12-2017)

Introduction

lowRISC is a not-for-profit organisation whose goal is to produce a fully open source System-on-Chip (SoC) in volume. We are building upon RISC-V processor core implementations from the RISC-V team at UC Berkeley. We will produce a SoC design to populate a low-cost community development board and to act as an ideal starting point for derivative open-source and commercial designs.

This tutorial adds further functionality towards the final SoC design:

  • A simple 100Mbps Ethernet capability.
  • Remote booting via Ethernet from a Linux server.
  • Preview of interrupt driven device drivers in Linux.
  • Optimised SD-interface
  • Console defaults to keyboard and optimised VGA-compatible text display.
  • Network filing system (NFS) support in the RISCV kernel and NFS-root support scripts.
  • Multiuser system leveraging the poky Linux build system.

The build environment and pre-built images support the same platform as the previous releases, a competitively priced Nexys™4 DDR Artix-7 FPGA Board.

Function Tagged-v0.1 Untethered-v0.2 Debug-v0.3 Minion-v0.4 Ethernet-v0.5
Rocket Priv. Spec. ? ? 1.7 nearly 1.91 nearly 1.91
Tagged memory * * *
untethered operation * * * optional
SD card tethered SPI SPI SD SD
UART console tethered standard standard/trace standard/trace/VGA standard/trace/VGA
PS/2 keyboard * *
Minion Core *
Kernel md5 boot check * *
PC-free operation * *
Remote booting *
Multiuser operation

Contents

  1. Overview of the Ethernet system
  2. Prepare the environment

  3. Demo

  4. Release notes

Work planned / In progress / TO DO

  • Interfacing Pulpino (Minion) core to on-chip trace/debug bus.
  • Programming Minion dynamically from Rocket under Linux.
  • Optimising card transfer speed / Implementing multi-block transfers.
  • GDB support under Linux.
  • Revised interrupt handling block.
  • Ethernet interfacing / booting / Linux support.
  • Fully supporting tag instructions in compiler.
  • Making tag support thread-safe / context switching safe.
  • More security demos.
  • Userland software running on the Rocket.
  • Offloading SD-card acceleration and Video scrolling to Minion.
  • Run-control debug for Rocket.

Acknowledgements

Other useful sources of information