Silvestrs Timofejevs | e6e1755 | 2020-04-29 08:04:17 +0100 | [diff] [blame] | 1 | # Tock OS |
| 2 | |
| 3 | Tock OS is a secure embedded operating system for microcontrollers. |
| 4 | |
| 5 | This directory contains OpenTitan board and chip implementation for Tock that |
| 6 | are maintained downstream. Other OS components are pulled directly from |
| 7 | upstream or a local Tock OS repository. See below for more details. |
| 8 | |
| 9 | Tock OS documentation available at: |
| 10 | https://www.tockos.org/ |
| 11 | https://github.com/tock/tock |
| 12 | |
| 13 | # Rationale |
| 14 | |
| 15 | Upstream OpenTitan implementation is not using DIFs, which means that the |
| 16 | peripheral drivers cannot be directly implemented upstream. Therefore it is not |
| 17 | possible to use upstream OpenTitan board and chip implementations. |
| 18 | |
| 19 | The intention is, where possible, to use upstream packages. At the moment the |
| 20 | only excpetions are board and chip packages, which are implemented and |
| 21 | maintained downstream. |
| 22 | |
| 23 | # Copyright |
| 24 | |
| 25 | The source files in this directory come from two sources, with slightly |
| 26 | different copyright licences. |
| 27 | |
| 28 | Some source files are copied from the upstream tock repository. The notice in |
| 29 | COPYRIGHT in this directory applies to all source files with explicit Tock OS |
| 30 | Developers copyright headers, or no copyright headers at all. |
| 31 | |
| 32 | Where lowRISC has added additional files, these are marked with the lowRISC |
| 33 | Copyright header, and the notice in LICENCE in the root of this repository |
| 34 | applies. |
| 35 | |
| 36 | # Directory layout |
| 37 | |
| 38 | ## Tock OS standard directories |
| 39 | |
| 40 | `boards` directory contains board specific configuration. |
| 41 | `chips` directory contains chip specific configuration, and peripheral driver |
| 42 | implementations. |
| 43 | |
| 44 | For more information please see Tock OS documentation and local README files. |
| 45 | |
| 46 | ## Additional directories |
| 47 | |
| 48 | `tock` directory implements a crate that pulls in external tock dependencies |
| 49 | (packages that are not maintained downstream). These dependencies can be either |
| 50 | pulled directly from the upstream, or from a local Tock directory. |