The /boards
directory contains the physical hardware platforms
that Tock supports.
Tock divides boards into three approximate 'tiers' of support. These tiers are newly defined and are a bit informal as a result, but the approximate definitions:
-
Tier 1: The most feature-complete and thoroughly tested boards. These are boards used most regularly by core team members or other highly engaged contributors. They are used as examples in the Tock Book.
-
Tier 2: Platforms seeing reasonably regular use. These generally have broader, but still incomplete, peripheral support. They may also be 'relatives' of Tier 1 boards (e.g. a less-used varient in the nrf52 family) – likely in good shape, but not heavily tested. Some Tier 2 boards may have known issues, which are documented in release notes during release testing.
-
Tier 3: New or highly experimental. These should support the minimum platform requirements laid out in the Porting documentation, but make no promises beyond that.
-
Other: See each board for specific details.
Tock has solid support for the RISC-V architecture, but no tier 1 or 2 support for any single RISC-V board. If you are interested in running Tock on RISC-V there are a few options:
- If you would like a cheap RISC-V development board you can use the ESP32-C3-DevKitM-1. This board is under active development to move to Tier 2 support.
- For a fully virtual platform on QEMU you can use the QEMU RISC-V 32 bit
virt
platform board. This can be quickly started and run on a host computer.- For a simulation environment you can use Verilator with OpenTitan Earlgrey on CW310 or Verilated LiteX Simulation.
- For an FPGA setup you can use OpenTitan Earlgrey on CW310 or LiteX on Digilent Arty A-7.
Board | Architecture | MCU | Interface | App deployment | QEMU Support? |
---|---|---|---|---|---|
Hail | ARM Cortex-M4 | SAM4LC8BA | Bootloader | tockloader | No |
Imix | ARM Cortex-M4 | SAM4LC8CA | Bootloader | tockloader | No |
Nordic nRF52840-DK | ARM Cortex-M4 | nRF52840 | jLink | tockloader | No |
Nano 33 BLE | ARM Cortex-M4 | nRF52840 | Bootloader | tockloader | No |
BBC Micro:bit v2 | ARM Cortex-M4 | nRF52833 | openocd | tockloader | No |
Clue nRF52840 | ARM Cortex-M4 | nRF52840 | Bootloader | tockloader | No |
Board | Architecture | MCU | Interface | App deployment | QEMU Support? |
---|---|---|---|---|---|
Nordic nRF52-DK | ARM Cortex-M4 | nRF52832 | jLink | tockloader | No |
Nordic nRF52840-Dongle | ARM Cortex-M4 | nRF52840 | jLink | tockloader | No |
Particle Boron | ARM Cortex-M4 | nRF52840 | jLink | tockloader | No |
ACD52832 | ARM Cortex-M4 | nRF52832 | jLink | tockloader | No |
ST Nucleo F446RE | ARM Cortex-M4 | STM32F446 | openocd | custom | tock#1827 |
ST Nucleo F429ZI | ARM Cortex-M4 | STM32F429 | openocd | custom | tock#1827 |
STM32F3Discovery kit | ARM Cortex-M4 | STM32F303VCT6 | openocd | custom | tock#1827 |
STM32F412G Discovery kit | ARM Cortex-M4 | STM32F412G | openocd | custom | tock#1827 |
Pico Explorer Base | ARM Cortex-M0+ | RP2040 | openocd | openocd | No |
Nano RP2040 Connect | ARM Cortex-M0+ | RP2040 | custom | custom | No |
Raspberry Pi Pico | ARM Cortex-M0+ | RP2040 | openocd | openocd | No |
SparkFun RedBoard Artemis Nano | ARM Cortex-M4 | Apollo3 | custom | custom | No |
SparkFun LoRa Thing Plus - expLoRaBLE | ARM Cortex-M4 | Apollo3 | custom | custom | No |
Board | Architecture | MCU | Interface | App deployment | QEMU Support? |
---|---|---|---|---|---|
WeAct F401CCU6 Core Board | ARM Cortex-M4 | STM32F401CCU6 | openocd | custom | No |
SparkFun RedBoard Red-V | RISC-V | FE310-G002 | openocd | tockloader | Yes (5.1) |
SiFive HiFive1 Rev B | RISC-V | FE310-G002 | openocd | tockloader | Yes (5.1) |
BBC HiFive Inventor | RISC-V | FE310-G003 | tockloader | tockloader | No |
ESP32-C3-DevKitM-1 | RISC-V-ish RV32I | ESP32-C3 | custom | custom | No |
i.MX RT 1052 Evaluation Kit | ARM Cortex-M7 | i.MX RT 1052 | custom | custom | No |
Teensy 4.0 | ARM Cortex-M7 | i.MX RT 1062 | custom | custom | No |
Digilent Arty A-7 100T | RISC-V RV32IMAC | SiFive E21 | openocd | tockloader | No |
An FPGA and Verilator implementation that is well supported and is regularly tested as part of CI.
Board | Architecture | MCU | Interface | App deployment | QEMU Support? |
---|---|---|---|---|---|
OpenTitan Earlgrey on CW310 | RISC-V RV32IMC | EarlGrey | custom | custom | Yes (5.1) |
Virtual hardware platforms that are regulary tested as part of the CI.
Board | Architecture | MCU | Interface | App deployment | QEMU Support? |
---|---|---|---|---|---|
QEMU RISC-V 32 bit virt platform |
RISC-V RV32IMAC | QEMU | custom | custom | Yes (7.2.0) |
LiteX on Digilent Arty A-7 | RISC-V RV32IMC | LiteX+VexRiscV | custom | tockloader (flash-file)1 | No |
Verilated LiteX Simulation | RISC-V RV32IMC | LiteX+VexRiscv | custom | tockloader (flash-file)1 | No |
Some projects that use Tock maintain their own board definitions outside the Tock repository.
Project | Boards | Architecture | MCU | Build System |
---|---|---|---|---|
OpenSK | nRF52840-DK, nRF52840-Dongle, nRF52840-MDK | ARM Cortex-M4 | nRF52840 | Python script |
OpenTitan | OpenTitan | RISC-V RV32IMC | EarlGrey | Meson |
Tock-on-Titan | golf2, papa | ARM Cortex-M3 | H1 | Makefiles |