Rename to TK1

This commit is contained in:
Daniel Lublin 2022-10-20 14:50:21 +02:00
parent 5e80b4ae15
commit 4b4f014d38
No known key found for this signature in database
GPG key ID: 75BD0FEB8D3E7830
27 changed files with 281 additions and 284 deletions

View file

@ -184,7 +184,7 @@ Available commands/reponses:
#### `FW_{CMD,RSP}_VERIFY_DEVICE`
Verification that the device is an authentic Mullvad
Verification that the device is an authentic Tillitis
device. Implemented using challenge/response.
#### `FW_{CMD,RSP}_GET_APP_DIGEST`
@ -305,8 +305,7 @@ v v
The memory exposes SoC functionality to the software when in firmware
mode. It is a set of memory mapped registers (MMIO), starting at base
address `0xc000_0000`. For specific offsets/bitmasks, see the file
[mta1_mkdf_mem.h](../../hw/application_fpga/fw/mta1_mkdf_mem.h) (in
this repo).
[tk1_mem.h](../../hw/application_fpga/fw/tk1_mem.h) (in this repo).
Assigned core prefixes:
@ -320,7 +319,7 @@ Assigned core prefixes:
| UART | 0xc3 |
| TOUCH | 0xc4 |
| FW_RAM | 0xd0 |
| MTA1 | 0xff |
| TK1 | 0xff |
*Nota bene*: MMIO accesses should be 32 bit wide, e.g use `lw` and
`sw`. Exceptions are `FW_RAM` and `QEMU_DEBUG`.
@ -349,7 +348,7 @@ Assigned core prefixes:
| `UDA` | r | invisible | 16B | u8[16] | | Unique Device Authentication key. |
| `UDI` | r | r | 8B | u64 | | Unique Device ID (UDI). |
| `QEMU_DEBUG` | w | w | | u8 | | Debug console (only in QEMU) |
| `NAME0` | r | r | 4B | char[4] | "mta1" | ID of core/stick |
| `NAME0` | r | r | 4B | char[4] | "tk1 " | ID of core/stick |
| `NAME1` | r | r | 4B | char[4] | "mkdf" | ID of core/stick |
| `VERSION` | r | r | 4B | u32 | 1 | Current version. |
| `SWITCH_APP` | w | invisible? | 1B | u8 | | Switch to application mode. Write non-zero to trigger. |

View file

@ -2,9 +2,9 @@
## Purpose and Revision
The purpose of this document is to provide a description of the
Tillitis Key 1 (TK1). What it is, what is supposed to be used for, by whom,
where and possible use cases. The document also provides a functional level
description of features and components of the mta1_mkdf.
Tillitis Key 1 (TK1). What it is, what is supposed to be used for, by
whom, where and possible use cases. The document also provides a
functional level description of features and components of the TK1.
Finally, the document acts as a requirement description. For the
requirements, the document follows
@ -60,7 +60,7 @@ The TK1 store and use the following assets internally:
- UDS - Unique Device Secret. Provisioned and stored during
device manufacturing. Never to be replaced during the life time of
a given device. Used to derive application secrets. Must never leave
the device. Mullvad must NOT store a copy of the UDS.
the device. Tillitis must NOT store a copy of the UDS.
- UDI - Unique Device ID. Provisioned and stored during
device manufacturing. Never to be replaced or altered during the life
@ -69,7 +69,7 @@ The TK1 store and use the following assets internally:
- UDA - Unique Device Authentication Secret. Provisioned and stored during
device manufacturing. Never to be replaced during the life time of
a given device. Used to authenticate a specific device. Must never
leave the device. Mullvad MUST have a copy of the UDA.
leave the device. Tillitis MUST have a copy of the UDA.
Additionally the following asset could be provided from the host:
@ -100,8 +100,8 @@ libraries etc. Roughly these can be divided into:
- host side application loader. Software that talks to the FW in the
application_fpga to load a secure application
- host side boot, management. Support software to boot, authenticate the
mta1_mkdf board connected to a host
- host side boot, management. Support software to boot, authenticate
the TK1 board connected to a host
- host side secure application. Software that communicates with the
secure application running in the application_fpga as needed to solve
@ -125,27 +125,27 @@ The Application FPGA hardware should provide the following:
- Unique Device ID (UDI)
- 64 bits
- Readable via API before application start
- Generated and stored by Mullvad
- Generated and stored by Tillitis
- Unique Device Authentication key (UDA)
- At least 128 bits number
- Readable by FW before application start
- Generated and stored by Mullvad
- Generated and stored by Tillitis
- Unique Device Secret (UDS)
- 256 bits
- Readable by HW before application start
- Generated but NOT stored by Mullvad
- Generated but NOT stored by Tillitis
- NAME
- 64 bits. ASCII string. "mta1_mkdf"
- 64 bits. ASCII string. "TK1 MKDF"
- Readable via API before application start
- Set by Mullvad as part of FPGA design
- Set by Tillitis as part of FPGA design
- VERSION: version
- 32 bits. 32 bit data, for example 1
- Readable via API before application start
- Set by Mullvad as part of FPGA design
- Set by Tillitis as part of FPGA design
2. Communication
- Rx-FIFO with status (data_available)