Updates the UDS core README to reflect that:
- ADDR_UDS_FIRST and ADDR_UDS_LAST params have been removed
- The address range has been lowered to 8 words.
Add support for an app in slot 1 and a signature for the same app.
- App digest and app signature is stored in the partition table
- The app is stored in app slot 1
- Two new flags are introduced: -app1 and -app1sig.
- app1: The app binary
- app1sig: A .sig file on a format similar the the files produced by
tkey-sign. Signing algorithm is not checked, it is left to the app
that will validate the signature to specify what algorithm to use.
- sigfile.go is imported from tkey-boot-verifier
Co-authored-by: Mikael Ågren <mikael@tillitis.se>
Terminate all 64-byte frames with a zero-length packet. Handle incoming
zero-byte frames by ignoring them. This fix addresses issues related to
transfers of an exact length of 64 bytes (or multiples thereof) on all
platforms. For simplicity, all 64-byte frames are terminated, regardless
of whether they are the last or not.
- Checks the stop bit, if it is not valid the data is discarded and
enters a error state. Only checks first stop bit.
- Adds an error state to the RX FSM. The core starts in this state to
not assume a valid idle rx line on start up. Prevents accepting
frames on a constant low rx line and filling the fifo.
- bugfix: always reset bitrate_ctr when leaving state ERX_BITS and
remove unused bitrate_ctr counter in ERX_STOP
- Create a flash image in flash_image.bin, useful for both a real TKey
and QEMU.
- Use flash_image.bin directly in prog_flash for a real TKey, which
also flashes the bitstream.
- Remove building of tools/default_partition.bin.
- Update documentation about the tool use.
- We keep the load_preloaded_app.sh for development purposes,
but it's no longer used in the build.
Introduce the Makefile variable DEFAULT_APP which should be the path
to the device app binary to include in the obliagory slot 0.
Build automatically: the default app, the new digest file
mgmt_app_digest.h for the firmware which contains the digest of
DEFAULT_APP, the default partition table, and all the tools necessary
to generate this.
This app takes data coming in on any of the normal USB endpoints
like CDC and FIDO (or CCID) and outputs the data on the DEBUG
endpoint.
Using the scripts (tkey_to_udp_linux.py, tkey_to_udp_win.py) in
QEMU (tk1 branch) under tools/tk1, the data from the DEBUG
endpoint can be read and sent over the network to the script
udp_to_qemu_linux.py that feeds it to QEMU.
- 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.
Changes make targets:
- prog_flash in hw/application/Makefile which flashes only the
bitstream is renamed to prog_flash_bs.
- prog_flash in hw/application/Makefile is modified to flash the
bitstream, the testloadapp.bin in app slot 0, and the partition table.
- flash in contrib/Makefile is modified to use prog_flash from
hw/application/Makefile
- Point out licensing terms in docs.
- Add missing SPDX tags
- Update the SPDX checker to check all the files we want to check.
- Include spdx-ensure in CI.