Silence lint on intentional combinatinal loops
Use better instance names, and a single lint pragma for all macros
Remove unused pointer update signals
Silence lint on wires where not all bits are used
Change fw_app_mode to be an input port to allow access control
Remove redundant, unused wire mem_busy
Add lint pragma to ignore debug register only enabled by a define
Remove clk and reset_n ports from the ROM
Adding note and lint pragma for rom address width
Fix incorrect register widths in uart_core
Assign all 16 bits in LUT config
Silence lint warnings on macro instances
Correct bit extraction for core addresses to be eight bits wide
Correct the bit width of cdi_mem_we wire
Add specific output file for logging lint issues
Correct bit width of tmp_ready to match one bit ready port
|
||
|---|---|---|
| contrib | ||
| doc | ||
| hw | ||
| LICENSES | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
Tillitis Key 1
Introduction
Tillitis Key 1 is a new kind of USB security token. All of its software, FPGA logic, schematics, and PCB layout are open source, as all security software and hardware should be. This in itself makes it different, as other security tokens utilize closed source hardware for its security-critical operations.
What makes the Tillitis Key 1 security token unique is that it doesn’t verify applications, it measures them (hashes a digest over the binary), before running them on its open hardware security processor.
Each security token contains a Unique Device Secret (UDS), which together with an application measurement, and an optional user-provided seed, is used to derive key material unique to each application. This allows users to build and load their own apps, while ensuring that each app loaded will have its own cryptographic identity. The design is similar to TCG DICE. The Tillitis Key 1 platform allows for applications up to 64 KB.
The first implementation is the Tillitis Key 1:

Documentation
- System Description
- Threat Model
- Framing Protocol
- Boards
- Firmware
- Toolchain setup
- Quickstart to program the Tillitis Key 1
- Release Notes
About this repository
This repository contains hardware, software and utilities written as part of the Tillitis Key 1 project. It is structured as monolithic repository, or "monorepo", where all components live in one repository.
The repository follows the OpenTitan layout.
Licensing
See LICENSES for more information about the projects' licenses.