blob: 36e58223d6cadbefd16b68c79489138fdc645936 [file] [log] [blame] [view]
David Brown37f8afd2017-09-12 10:59:39 -06001# MCUboot Release Notes
2
3- Table of Contents
4{:toc}
5
David Brownb1d15a72019-01-22 16:22:08 -07006## Version 1.3.0
7
8The 1.3.0 release of MCUboot brings in many fixes and updates. There
9are no breaking changes in functionality. Many of the changes are
10refactorings that will make the code easier to maintain going forward.
11In addition, support has been added for encrypted images. See [the
12docs](encrypted_images.md) for more information.
13
14### About this release
15
16- Modernize the Zephyr build scripts.
17- Add a `ptest` utility to help run the simulator in different
18 configurations.
19- Migrate the simulator to Rust 2018 edition. The sim now requires at
20 least Rust 1.32 to build.
21- Simulator cleanups. The simulator code is now built the same way
22 for every configuration, and queries the MCUboot code for how it was
23 compiled.
24- Abstract logging in MCUboot. This was needed to support the new
25 logging system used in Zephyr.
26- Add multiple flash support. Allows slot1/scratch to be stored in an
27 external flash device.
28- Add support for [encrypted images](encrypted_images.md).
29- Add support for flash devices that read as '0' when erased.
30- Add support to Zephyr for the `nrf52840_pca10059`. This board
31 supports serial recovery over USB with CDC ACM.
32- imgtool is now also available as a python package on pypi.org.
33- Add an option to erase flash pages progressively during recovery to
34 avoid possible timeouts (required especially by serial recovery
35 using USB with CDC ACM).
36- imgtool: big-endian support
37- imgtool: saves in intel-hex format when output filename has `.hex`
38 extension; otherwise saves in binary format.
39
Fabio Utzig3c939012018-06-25 13:26:32 -030040## Version 1.2.0
41
42The 1.2.0 release of MCUboot brings a lot of fixes/updates, where much of the
43changes were on the boot serial functionality and imgtool utility. There are
44no breaking changes in MCUBoot functionality, but some of the CLI parameters
45in imgtool were changed (either removed or added or updated).
46
47### About this release
48
49- imgtool accepts .hex formatted input
50- Logging system is now configurable
51- Most Zephyr configuration has been switched to Kconfig
52- Build system accepts .pem files in build system to autogenerate required
53 key arrays used internally
54- Zephyr build switched to using built-in flash_map and TinyCBOR modules
55- Serial boot has substantially decreased in space usage after refactorings
56- Serial boot build doesn't require newlib-c anymore on Zephyr
57- imgtool updates:
58 + "create" subcommand can be used as an alias for "sign"
59 + To allow imgtool to always perform the check that firmware does not
60 overflow the status area, `--slot-size` was added and `--pad` was updated
61 to act as a flag parameter.
62 + `--overwrite-only` can be passed if not using swap upgrades
63 + `--max-sectors` can be used to adjust the maximum amount of sectors that
64 a swap can handle; this value must also be configured for the bootloader
65 + `--pad-header` substitutes `--included-header` with reverted semantics,
66 so it's not required for firmware built by Zephyr build system
67
68### Known issues
69
70None
71
Fabio Utzig49045cc2018-01-09 15:56:29 -020072## Version 1.1.0
73
Carles Cufi90eda802018-01-29 18:33:20 +010074The 1.1.0 release of MCUboot brings a lot of fixes/updates to its
Fabio Utzig49045cc2018-01-09 15:56:29 -020075inner workings, specially to its testing infrastructure which now
76enables a more thorough quality assurance of many of the available
77options. As expected of the 1.x.x release cycle, no breaking changes
78were made. From the tooling perpective the main addition is
79newt/imgtool support for password protected keys.
80
81### About this release
82
83- serial recovery functionality support under Zephyr
84- simulator: lots of refactors were applied, which result in the
85 simulator now leveraging the Rust testing infrastructure; testing
86 of ecdsa (secp256r1) was added
87- imgtool: removed PKCS1.5 support, added support for password
88 protected keys
89- tinycrypt 0.2.8 and the mbed-tls ASN1 parser are now bundled with
90 mcuboot (eg secp256r1 is now free of external dependencies!)
91- Overwrite-only mode was updated to erase/copy only sectors that
92 actually store firmware
93- A lot of small code and documentation fixes and updates.
94
95### Known issues
96
97None
98
David Brown37f8afd2017-09-12 10:59:39 -060099## Version 1.0.0
100
Carles Cufi90eda802018-01-29 18:33:20 +0100101The 1.0.0 release of MCUboot introduces a format change. It is
David Brown37f8afd2017-09-12 10:59:39 -0600102important to either use the `imgtool.py` also from this release, or
103pass the `-2` to recent versions of the `newt` tool in order to
104generate image headers with the new format. There should be no
105incompatible format changes throughout the 1.x.y release series.
106
107### About this release
108
109- Header format change. This change was made to move all of the
110 information about signatures out of the header and into the TLV
111 block appended to the image. This allows
112 - The signature to be replaced without changing the image.
113 - Multiple signatures to be applied. This can be used, for example,
114 to sign an image with two algorithms, to support different
115 bootloader configurations based on these image.
116 - The public key is referred to by its SHA1 hash (or a prefix of the
117 hash), instead of an index that has to be maintained with the
118 bootloader.
119 - Allow new types of signatures in the future.
120- Support for PKCS#1 v1.5 signatures has been dropped. All RSA
121 signatures should be made with PSS. The tools have been changed to
122 reflect this.
123- The source for Tinycrypt has been placed in the MCUboot tree. A
124 recent version of Tinycrypt introduced breaking API changes. To
125 allow MCUboot to work across various platforms, we stop using the
126 Tinycrypt bundled with the OS platform, and use our own version. A
127 future release of MCUboot will update the Tinycrypt version.
128- Support for some new targets:
129 - Nordic nRF51 and nRF52832 dev kits
130 - Hexiwear K64
131- Clearer sample applications have been added under `samples`.
Fabio Utzig4dce6aa2018-02-12 15:31:32 -0200132- Test plans for [zephyr](testplan-zephyr.md), and
133 [mynewt](testplan-mynewt.md).
David Brown37f8afd2017-09-12 10:59:39 -0600134- The simulator is now able to test RSA signatures.
135- There is an unimplemented `load_addr` header for future support for
136 RAM loading in the bootloader.
137- Numerous documentation.
138
139### Known issues
140
141None
142
143## Version 0.9.0
144
Carles Cufi90eda802018-01-29 18:33:20 +0100145This is the first release of MCUboot, a secure bootloader for 32-bit MCUs.
David Brown37f8afd2017-09-12 10:59:39 -0600146It is designed to be operating system-agnostic and works over any transport -
147wired or wireless. It is also hardware independent, and relies on hardware
148porting layers from the operating system it works with. For the first release,
149we have support for three open source operating systems: Apache Mynewt, Zephyr
150and RIOT.
151
152### About this release
153
154- This release supports building with and running Apache Mynewt and Zephyr
155 targets.
156- RIOT is supported as a running target.
157- Image integrity is provided with SHA256.
158- Image originator authenticity is provided supporting the following
159 signature algorithms:
160 - RSA 2048 and RSA PKCS#1 v1.5 or v2.1
161 - Elliptic curve DSA with secp224r1 and secp256r1
162- Two firmware upgrade algorithms are provided:
163 - An overwrite only which upgrades slot 0 with the image in slot 1.
164 - A swapping upgrade which enables image test, allowing for rollback to a
165 previous known good image.
166- Supports both mbed-TLS and tinycrypt as backend crypto libraries. One of them
167 must be defined and the chosen signing algorithm will require a particular
168 library according to this list:
169 - RSA 2048 needs mbed TLS
170 - ECDSA secp224r1 needs mbed TLS
171 - ECDSA secp256r1 needs tinycrypt as well as the ASN.1 code from mbed TLS
172 (so still needs that present).
173
174### Known issues
175
176- The image header and TLV formats are planned to change with release 1.0:
177 https://runtimeco.atlassian.net/browse/MCUB-66