mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2024-12-18 12:24:31 -05:00
fw: Clarify and correct doc
This commit is contained in:
parent
a14662c622
commit
254a384181
@ -20,7 +20,8 @@ ensuring that each app loaded will have its own cryptographic
|
||||
identity. The design is similar to TCG DICE. The Tillitis Key 1
|
||||
platform has 128 KB of RAM. The current firmware is designed to load
|
||||
an app that is up to 100 KB in size, and gives it a stack of 28 KB. A
|
||||
smaller ap may move itself in memory, in order to have a larger stack.
|
||||
smaller app may want to move itself in memory to get larger continuous
|
||||
memory.
|
||||
|
||||
![Tillitis Key 1 PCB, first implementation](doc/images/mta1-usb-v1.jpg)
|
||||
*Tillitis Key 1 PCB, first implementation*
|
||||
|
@ -64,8 +64,8 @@ between the host and the device.
|
||||
|
||||
The device has 128 KB RAM. The current firmware loads the app at the
|
||||
upper 100 KB. The lower 28 KB is set up as stack for the app. A
|
||||
smaller app that wants a larger stack could relocate itself on
|
||||
startup.
|
||||
smaller app that wants continuous memory may want to relocate itself
|
||||
when starting.
|
||||
|
||||
The firmware is part of FPGA bitstream (ROM), and is loaded at
|
||||
`0x0000_0000`.
|
||||
@ -83,7 +83,7 @@ read, the firmware executes the command.
|
||||
### Loading an application
|
||||
|
||||
The purpose of the firmware is to bootstrap an application. The host
|
||||
will send a raw binary targeted to be loaded at `0x4001_0000` in the
|
||||
will send a raw binary targeted to be loaded at `0x4000_7000` in the
|
||||
device.
|
||||
|
||||
1. The host sends the User Supplied Secret (USS) by using the
|
||||
@ -98,7 +98,7 @@ device.
|
||||
multiple `FW_CMD_LOAD_APP_DATA` commands, together containing the
|
||||
full application.
|
||||
5. For each received `FW_CMD_LOAD_APP_DATA` command the firmware
|
||||
places the data into `0x4001_0000` and upwards. The firmware
|
||||
places the data into `0x4000_7000` and upwards. The firmware
|
||||
replies with a `FW_RSP_LOAD_APP_DATA` response to the host for
|
||||
each received block.
|
||||
6. When the final block of the application image is received, we
|
||||
@ -107,7 +107,7 @@ device.
|
||||
|
||||
The Compound Device Identifier is computed by using the `UDS`,
|
||||
the measurement of the application, and the `USS`, and placed in
|
||||
the `CDI` register. Then `0x4001_0000` is written to `APP_ADDR`.
|
||||
the `CDI` register. Then `0x4000_7000` is written to `APP_ADDR`.
|
||||
The final `FW_RSP_LOAD_APP_DATA` response is sent to the host,
|
||||
completing the loading.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user