mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2024-12-29 17:36:26 -05:00
Clarify access behaviour of the UDS
Signed-off-by: Joachim Strömbergson <joachim@assured.se>
This commit is contained in:
parent
688910bee4
commit
909b95cdaa
@ -67,9 +67,14 @@ use the RAM during loading and measurement of the application.
|
||||
|
||||
Unique Device Secret memory.
|
||||
|
||||
A 256 bit memory implemented using separate registers. The
|
||||
registers can only be accessed once between power cycling.
|
||||
Only the firmware can access the UDS memory core.
|
||||
A 256 bit memory implemented using eight 32-bit registers. The
|
||||
registers can only be accessed once between power cycling. This means
|
||||
that the UDS **must** be read as u32. If read as u8, only the first
|
||||
byte from a given address will be correct, subsequent bytes will be
|
||||
zero.
|
||||
|
||||
The UDS can only be read in FW mode. Reading from the UDS in APP mode
|
||||
will return all zeros.
|
||||
|
||||
|
||||
#### Application RAM
|
||||
|
@ -22,12 +22,13 @@ constrained environment, the application mode.
|
||||
|
||||
The firmware and application uses a memory mapped input/output (MMIO)
|
||||
for communication with the hardware. The memory map is constrained
|
||||
when running in application mode, e.g. UDS isn't readable, and the
|
||||
`APP_{ADDR, SIZE}` are not writable for the application.
|
||||
when running in application mode, e.g. FW-RAM and UDS isn't readable,
|
||||
and several MMIO addresses are either not readable or not writable for
|
||||
the application.
|
||||
|
||||
See table in the [System
|
||||
Description](system_description.md#memory-mapped-hardware-functions)
|
||||
for details about the memory system and MMIO.
|
||||
for details about access rules control in the memory system and MMIO.
|
||||
|
||||
The firmware (and optionally all software) on the TKey can communicate
|
||||
to the host via the `UART_{RX,TX}_{STATUS,DATA}` registers, using the
|
||||
|
@ -242,15 +242,15 @@ Assigned core prefixes:
|
||||
| `TIMER_STATUS` | r | r | | | | TIMER_STATUS_RUNNING_BIT is 1 when the timer is running. |
|
||||
| `TIMER_PRESCALER` | r/w | r/w | 4B | | | Prescaler init value. Write blocked when running. |
|
||||
| `TIMER_TIMER` | r/w | r/w | 4B | | | Timer init or current value while running. Write blocked when running. |
|
||||
| `UDS_FIRST` | r[^3] | invisible | 4B | u8[32] | | First word of Unique Device Secret key. |
|
||||
| `UDS_LAST` | | invisible | | | | The last word of the UDS |
|
||||
| `UDS_FIRST` | r[^3] | invisible | 4B | u8[32] | | First word of Unique Device Secret key. Note: Read once per power up. |
|
||||
| `UDS_LAST` | | invisible | | | | The last word of the UDS. Note: Read once per power up. |
|
||||
| `UART_BITRATE` | r/w | | | | | TBD |
|
||||
| `UART_DATABITS` | r/w | | | | | TBD |
|
||||
| `UART_STOPBITS` | r/w | | | | | TBD |
|
||||
| `UART_RX_STATUS` | r | r | 1B | u8 | | Non-zero when there is data to read |
|
||||
| `UART_RX_DATA` | r | r | 1B | u8 | | Data to read. Only LSB contains data |
|
||||
| `UART_RX_BYTES` | r | r | 4B | u32 | | Number of bytes received from the host and not yet read by SW, FW. |
|
||||
| `UART_TX_STATUS` | r | r | 1B | u8 | | Non-zero when it's OK to write data |
|
||||
| `UART_TX_STATUS` | r | r | 1B | u8 | | Non-zero when it's OK to write data to send. |
|
||||
| `UART_TX_DATA` | w | w | 1B | u8 | | Data to send. Only LSB contains data |
|
||||
| `TOUCH_STATUS` | r/w | r/w | | | | TOUCH_STATUS_EVENT_BIT is 1 when touched. After detecting a touch |
|
||||
| | | | | | | event (reading a 1), write anything here to acknowledge it. |
|
||||
|
Loading…
Reference in New Issue
Block a user