doc: Update Building & flashing docs

- Point out where to find tools.

- Add some description that we assume a Linux dist.

- Move the make targets around: make flash builds and flashes the
  entire thing so someone who just want to exactly that can use it
  right away.

- Explain what kind of hardware the USB controller is.

- Add a description on how to be able to use chprog without being
  root when running chprog.
This commit is contained in:
Michael Cardell Widerkrantz 2025-05-30 18:07:29 +02:00
parent ed9395c832
commit f4f8c9e6c6
No known key found for this signature in database
GPG key ID: D3DB3DDF57E704E5

View file

@ -87,35 +87,30 @@ but keep our own copy of it in the repo. See below.
## Building & flashing ## Building & flashing
These instructions assume you're using a Linux distribution. Most of
them also assume you're using our OCI image
[tkey-builder](https://ghcr.io/tillitis/tkey-builder). If you want to
run native tools, look in `contrib/Dockerfile` and
`contrib/buildtools.sh` for the tools and versions to use.
### FPGA ### FPGA
You need a [TKey You need a [TKey
Unlocked](https://shop.tillitis.se/products/tkey-not-provisioned) and Unlocked](https://shop.tillitis.se/products/tkey-not-provisioned), a
a [TKey Programmer [the TP1 TKey Programmer
Board](https://shop.tillitis.se/products/tkey-dev-kit) to use this on board](https://shop.tillitis.se/products/tkey-dev-kit), and probably a
real hardware. [Blinkinlabs CH55x Reset
Controller](https://shop-nl.blinkinlabs.com/products/ch55x-reset-controller)
to use this on real hardware.
Building is probably easiest using make and Podman. Do this to see all Building is probably easiest using make and Podman.
targets:
To build everything and then flash the resulting bitstream with the
testloadapp in app slot 0 and the partition table copies in one go,
place the TKey Unlocked in the TP1, then do:
``` ```
cd contrib cd contrib
make
```
Build the entire FPGA bitstream, which includes the firmware, using
Podman:
```
cd contrib
make run-make
```
To flash the bitstream, the testloadapp in app slot 0 and the
partition table copies in one go, place the TKey Unlocked in the TP1,
then do:
```
make flash make flash
``` ```
@ -123,11 +118,21 @@ This uses the make target `prog_flash` in
`hw/application_fpga/Makefile` behind the scenes, but mounts your TP1 `hw/application_fpga/Makefile` behind the scenes, but mounts your TP1
device into the container. device into the container.
To see all targets:
```
cd contrib
make
```
See the [Tillitis Developer Handbook](https://dev.tillitis.se) for See the [Tillitis Developer Handbook](https://dev.tillitis.se) for
more. more.
### USB Controller ### USB Controller
The TKey uses a WCH CH552 chip as a USB controller. It has its own
firmware.
Build: Build:
``` ```
@ -137,8 +142,8 @@ cd hw/usb_interface/ch552_fw
make make
``` ```
To flash the controller you need hardware like the [Blinkinlabs CH55x To flash the controller with new firmware you need hardware like the
Reset [Blinkinlabs CH55x Reset
Controller](https://shop-nl.blinkinlabs.com/products/ch55x-reset-controller) Controller](https://shop-nl.blinkinlabs.com/products/ch55x-reset-controller)
and a USB-A to USB-C converter. and a USB-A to USB-C converter.
@ -146,6 +151,12 @@ and a USB-A to USB-C converter.
You also need [chprog](https://github.com/ole00/chprog). You also need [chprog](https://github.com/ole00/chprog).
The bootloader identifies itself as USB VID 4348, PID 55e0. To be able
to access it and run `chprog` without root you need to allow your user
to access it. Place `contrib/99-tillitis.rules` in `/etc/udev/rules.d`
and run `udevadm control --reload`. Now you can add your user to the
`dialout` group and access it.
1. Connect the Reset Controller to your computer through "DUT\_IN"/"PC". 1. Connect the Reset Controller to your computer through "DUT\_IN"/"PC".
2. Connect the TKey to "DUT\_OUT"/"DUT". 2. Connect the TKey to "DUT\_OUT"/"DUT".
3. Press the "Bootloader" button. 3. Press the "Bootloader" button.