# Tock OS

Tock OS is a secure embedded operating system for microcontrollers.

This directory contains OpenTitan board and chip implementation for Tock that are maintained downstream. Other OS components are pulled directly from upstream or a local Tock OS repository. See below for more details.

Tock OS documentation available at: https://www.tockos.org/ https://github.com/tock/tock

# Rationale

Upstream OpenTitan implementation is not using DIFs, which means that the peripheral drivers cannot be directly implemented upstream. Therefore it is not possible to use upstream OpenTitan board and chip implementations.

The intention is, where possible, to use upstream packages. At the moment the only excpetions are board and chip packages, which are implemented and maintained downstream.

The source files in this directory come from two sources, with slightly different copyright licences.

Some source files are copied from the upstream tock repository. The notice in COPYRIGHT in this directory applies to all source files with explicit Tock OS Developers copyright headers, or no copyright headers at all.

Where lowRISC has added additional files, these are marked with the lowRISC Copyright header, and the notice in LICENCE in the root of this repository applies.

# Directory layout

## Tock OS standard directories

boards directory contains board specific configuration. chips directory contains chip specific configuration, and peripheral driver implementations.

tock directory implements a crate that pulls in external tock dependencies (packages that are not maintained downstream). These dependencies can be either pulled directly from the upstream, or from a local Tock directory.