You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [2.0.1]
9
+
10
+
### Added
11
+
- Mentioned compatibility of libtropic 2.0.0 and 2.0.1 with FW 1.0.0 and Bootloader v2.0.1 in the main README.md compatibility table.
12
+
- Row in the compatibility table for libtropic 2.0.1.
13
+
- Section about TROPIC01 firmware in the documentation.
14
+
15
+
### Fixed
16
+
- Handling of `add` argument in the Mac-And-Destroy example (`lt_ex_macandd.c`): `NULL` can be passed, `memcpy()` will not be called with `NULL` argument and no additional data will be used in the M&D sequence.
17
+
- Set newest available FW version in CMakeLists.txt.
18
+
- CMakeLists.txt: use `set()` for string options, enhance validating of their values
Using mismatched versions of the components may result in unpredictable behavior or errors. It is strongly advised to use the latest compatible versions of all components to ensure proper functionality.
TROPIC01 contains the following FW execution engines:
3
+
4
+
-**RISC-V CPU**,
5
+
-**ECC engine** or **SPECT** (these two terms are used interchangeably).
6
+
7
+
There are multiple kinds of FW running in TROPIC01:
8
+
9
+
1.*Immutable FW (bootloader)*. Located in ROM, runs on RISC-V CPU from ROM after power-up, updates or boots the mutable FWs.
10
+
2.*RISC-V Mutable FW (CPU FW)*. Updatable, located in R-memory, runs on RISC-V CPU from RAM, processes L2/L3 communication.
11
+
3.*ECC engine mutable FW (ECC engine FW)*. Updatable, located in R-memory, runs on ECC engine from RAM, helps the RISC-V CPU FW with processing ECC commands (ECC_Key_*, ECDSA/EDDSA_Sign).
12
+
13
+
!!! tip
14
+
For more detailed information about each FW, refer to the [FW Update Application Note](https://github.com/tropicsquare/tropic01?tab=readme-ov-file#application-notes).
15
+
16
+
## TROPIC01 Firmware in Libtropic
17
+
Libtropic provides not only implementation of the FW update L2 commands, but also the necessary files for updating both the RISC-V and SPECT FW. Refer to:
18
+
19
+
1.[Firmware Update Files](#firmware-update-files) section for more information about the `TROPIC01_fw_update_files/` directory.
20
+
2.[lt_ex_fw_update.c](./examples/irreversible_examples.md#lt_ex_fw_updatec) section (in the [Irreversible Examples](./examples/irreversible_examples.md) documentation page) for a practical example, showing how to update TROPIC01's FW using Libtropic.
21
+
22
+
### Firmware Update Files
23
+
The `TROPIC01_fw_update_files/` directory provides TROPIC01 FW update files in two formats:
24
+
25
+
1.*C header files (`*.h`)*. These are designed to be included and compiled directly into the Host MCU's firmware/application. See [Compiling into Libtropic](#compiling-into-libtropic) section for more information.
26
+
2.*Binary files (`*.bin`)*. These can be stored in the Host MCU, loaded at runtime and used to update TROPIC01's FW.
27
+
28
+
The general structure of the `TROPIC01_fw_update_files/` directory is the following:
29
+
```text
30
+
TROPIC01_fw_update_files/
31
+
├── boot_v_<X_Y_Z>/
32
+
│ └── fw_v_<A_B_C>/
33
+
│ ├── fw_CPU.h
34
+
│ ├── fw_SPECT.h
35
+
│ ├── fw_v<A_B_C>.hex32_signed_chunks.bin
36
+
│ └── spect_app-v<D_E_F>_signed_chunks.bin
37
+
└── convert.py
38
+
```
39
+
40
+
-`boot_v_<X_Y_Z>/`: directories of available FW update files for a given bootloader version `<X_Y_Z>`.
41
+
-`fw_v_<A_B_C>/`: directory with RISC-V CPU and SPECT FW update files (in both formats) for a given FW version `<A_B_C>`. Note that the RISC-V CPU FW and SPECT FW versions can be different.
42
+
-`convert.py`: Python script for converting firmware binary files into C header files.
43
+
44
+
#### Compiling into Libtropic
45
+
To select which FW version will be compiled together with Libtropic, the user has to set the following CMake variables (both have a default value):
46
+
47
+
1.`LT_SILICON_REV`: Defines the TROPIC01 silicon revision (e.g. `"ACAB"`), based on which the correct bootloader version is selected. Refer to the [Available Parts](https://github.com/tropicsquare/tropic01?tab=readme-ov-file#available-parts) section (in the [TROPIC01 GitHub repository](https://github.com/tropicsquare/tropic01)) to find out the silicon revision of your TROPIC01 chip.
48
+
2.`LT_CPU_FW_VERSION`: Defines the TROPIC01 FW version (e.g. `"1_0_1"`), based on which the correct FW update files for both RISC-V CPU and SPECT are selected.
0 commit comments