blob: a631359f0ea102619e191b9947507c4acc54f982 [file] [log] [blame] [view]
David Brown37f8afd2017-09-12 10:59:39 -06001# MCUboot Release Notes
2
3- Table of Contents
4{:toc}
5
Fabio Utzig3c939012018-06-25 13:26:32 -03006## Version 1.2.0
7
8The 1.2.0 release of MCUboot brings a lot of fixes/updates, where much of the
9changes were on the boot serial functionality and imgtool utility. There are
10no breaking changes in MCUBoot functionality, but some of the CLI parameters
11in imgtool were changed (either removed or added or updated).
12
13### About this release
14
15- imgtool accepts .hex formatted input
16- Logging system is now configurable
17- Most Zephyr configuration has been switched to Kconfig
18- Build system accepts .pem files in build system to autogenerate required
19 key arrays used internally
20- Zephyr build switched to using built-in flash_map and TinyCBOR modules
21- Serial boot has substantially decreased in space usage after refactorings
22- Serial boot build doesn't require newlib-c anymore on Zephyr
23- imgtool updates:
24 + "create" subcommand can be used as an alias for "sign"
25 + To allow imgtool to always perform the check that firmware does not
26 overflow the status area, `--slot-size` was added and `--pad` was updated
27 to act as a flag parameter.
28 + `--overwrite-only` can be passed if not using swap upgrades
29 + `--max-sectors` can be used to adjust the maximum amount of sectors that
30 a swap can handle; this value must also be configured for the bootloader
31 + `--pad-header` substitutes `--included-header` with reverted semantics,
32 so it's not required for firmware built by Zephyr build system
33
34### Known issues
35
36None
37
Fabio Utzig49045cc2018-01-09 15:56:29 -020038## Version 1.1.0
39
Carles Cufi90eda802018-01-29 18:33:20 +010040The 1.1.0 release of MCUboot brings a lot of fixes/updates to its
Fabio Utzig49045cc2018-01-09 15:56:29 -020041inner workings, specially to its testing infrastructure which now
42enables a more thorough quality assurance of many of the available
43options. As expected of the 1.x.x release cycle, no breaking changes
44were made. From the tooling perpective the main addition is
45newt/imgtool support for password protected keys.
46
47### About this release
48
49- serial recovery functionality support under Zephyr
50- simulator: lots of refactors were applied, which result in the
51 simulator now leveraging the Rust testing infrastructure; testing
52 of ecdsa (secp256r1) was added
53- imgtool: removed PKCS1.5 support, added support for password
54 protected keys
55- tinycrypt 0.2.8 and the mbed-tls ASN1 parser are now bundled with
56 mcuboot (eg secp256r1 is now free of external dependencies!)
57- Overwrite-only mode was updated to erase/copy only sectors that
58 actually store firmware
59- A lot of small code and documentation fixes and updates.
60
61### Known issues
62
63None
64
David Brown37f8afd2017-09-12 10:59:39 -060065## Version 1.0.0
66
Carles Cufi90eda802018-01-29 18:33:20 +010067The 1.0.0 release of MCUboot introduces a format change. It is
David Brown37f8afd2017-09-12 10:59:39 -060068important to either use the `imgtool.py` also from this release, or
69pass the `-2` to recent versions of the `newt` tool in order to
70generate image headers with the new format. There should be no
71incompatible format changes throughout the 1.x.y release series.
72
73### About this release
74
75- Header format change. This change was made to move all of the
76 information about signatures out of the header and into the TLV
77 block appended to the image. This allows
78 - The signature to be replaced without changing the image.
79 - Multiple signatures to be applied. This can be used, for example,
80 to sign an image with two algorithms, to support different
81 bootloader configurations based on these image.
82 - The public key is referred to by its SHA1 hash (or a prefix of the
83 hash), instead of an index that has to be maintained with the
84 bootloader.
85 - Allow new types of signatures in the future.
86- Support for PKCS#1 v1.5 signatures has been dropped. All RSA
87 signatures should be made with PSS. The tools have been changed to
88 reflect this.
89- The source for Tinycrypt has been placed in the MCUboot tree. A
90 recent version of Tinycrypt introduced breaking API changes. To
91 allow MCUboot to work across various platforms, we stop using the
92 Tinycrypt bundled with the OS platform, and use our own version. A
93 future release of MCUboot will update the Tinycrypt version.
94- Support for some new targets:
95 - Nordic nRF51 and nRF52832 dev kits
96 - Hexiwear K64
97- Clearer sample applications have been added under `samples`.
Fabio Utzig4dce6aa2018-02-12 15:31:32 -020098- Test plans for [zephyr](testplan-zephyr.md), and
99 [mynewt](testplan-mynewt.md).
David Brown37f8afd2017-09-12 10:59:39 -0600100- The simulator is now able to test RSA signatures.
101- There is an unimplemented `load_addr` header for future support for
102 RAM loading in the bootloader.
103- Numerous documentation.
104
105### Known issues
106
107None
108
109## Version 0.9.0
110
Carles Cufi90eda802018-01-29 18:33:20 +0100111This is the first release of MCUboot, a secure bootloader for 32-bit MCUs.
David Brown37f8afd2017-09-12 10:59:39 -0600112It is designed to be operating system-agnostic and works over any transport -
113wired or wireless. It is also hardware independent, and relies on hardware
114porting layers from the operating system it works with. For the first release,
115we have support for three open source operating systems: Apache Mynewt, Zephyr
116and RIOT.
117
118### About this release
119
120- This release supports building with and running Apache Mynewt and Zephyr
121 targets.
122- RIOT is supported as a running target.
123- Image integrity is provided with SHA256.
124- Image originator authenticity is provided supporting the following
125 signature algorithms:
126 - RSA 2048 and RSA PKCS#1 v1.5 or v2.1
127 - Elliptic curve DSA with secp224r1 and secp256r1
128- Two firmware upgrade algorithms are provided:
129 - An overwrite only which upgrades slot 0 with the image in slot 1.
130 - A swapping upgrade which enables image test, allowing for rollback to a
131 previous known good image.
132- Supports both mbed-TLS and tinycrypt as backend crypto libraries. One of them
133 must be defined and the chosen signing algorithm will require a particular
134 library according to this list:
135 - RSA 2048 needs mbed TLS
136 - ECDSA secp224r1 needs mbed TLS
137 - ECDSA secp256r1 needs tinycrypt as well as the ASN.1 code from mbed TLS
138 (so still needs that present).
139
140### Known issues
141
142- The image header and TLV formats are planned to change with release 1.0:
143 https://runtimeco.atlassian.net/browse/MCUB-66