blob: 8716e7a6ce3cb19af17acd01815a80a140f08888 [file] [log] [blame] [view]
David Brown37f8afd2017-09-12 10:59:39 -06001# MCUboot Release Notes
2
3- Table of Contents
4{:toc}
5
6## Version 1.0.0
7
8The 1.0.0 release of MCUBoot introduces a format change. It is
9important to either use the `imgtool.py` also from this release, or
10pass the `-2` to recent versions of the `newt` tool in order to
11generate image headers with the new format. There should be no
12incompatible format changes throughout the 1.x.y release series.
13
14### About this release
15
16- Header format change. This change was made to move all of the
17 information about signatures out of the header and into the TLV
18 block appended to the image. This allows
19 - The signature to be replaced without changing the image.
20 - Multiple signatures to be applied. This can be used, for example,
21 to sign an image with two algorithms, to support different
22 bootloader configurations based on these image.
23 - The public key is referred to by its SHA1 hash (or a prefix of the
24 hash), instead of an index that has to be maintained with the
25 bootloader.
26 - Allow new types of signatures in the future.
27- Support for PKCS#1 v1.5 signatures has been dropped. All RSA
28 signatures should be made with PSS. The tools have been changed to
29 reflect this.
30- The source for Tinycrypt has been placed in the MCUboot tree. A
31 recent version of Tinycrypt introduced breaking API changes. To
32 allow MCUboot to work across various platforms, we stop using the
33 Tinycrypt bundled with the OS platform, and use our own version. A
34 future release of MCUboot will update the Tinycrypt version.
35- Support for some new targets:
36 - Nordic nRF51 and nRF52832 dev kits
37 - Hexiwear K64
38- Clearer sample applications have been added under `samples`.
39- Test plans for [zephyr](%{ link testplan-zephyr.md %}), and
40 [mynewt]({% link testplan-mynewt.md %}).
41- The simulator is now able to test RSA signatures.
42- There is an unimplemented `load_addr` header for future support for
43 RAM loading in the bootloader.
44- Numerous documentation.
45
46### Known issues
47
48None
49
50## Version 0.9.0
51
52This is the first release of MCUBoot, a secure bootloader for 32-bit MCUs.
53It is designed to be operating system-agnostic and works over any transport -
54wired or wireless. It is also hardware independent, and relies on hardware
55porting layers from the operating system it works with. For the first release,
56we have support for three open source operating systems: Apache Mynewt, Zephyr
57and RIOT.
58
59### About this release
60
61- This release supports building with and running Apache Mynewt and Zephyr
62 targets.
63- RIOT is supported as a running target.
64- Image integrity is provided with SHA256.
65- Image originator authenticity is provided supporting the following
66 signature algorithms:
67 - RSA 2048 and RSA PKCS#1 v1.5 or v2.1
68 - Elliptic curve DSA with secp224r1 and secp256r1
69- Two firmware upgrade algorithms are provided:
70 - An overwrite only which upgrades slot 0 with the image in slot 1.
71 - A swapping upgrade which enables image test, allowing for rollback to a
72 previous known good image.
73- Supports both mbed-TLS and tinycrypt as backend crypto libraries. One of them
74 must be defined and the chosen signing algorithm will require a particular
75 library according to this list:
76 - RSA 2048 needs mbed TLS
77 - ECDSA secp224r1 needs mbed TLS
78 - ECDSA secp256r1 needs tinycrypt as well as the ASN.1 code from mbed TLS
79 (so still needs that present).
80
81### Known issues
82
83- The image header and TLV formats are planned to change with release 1.0:
84 https://runtimeco.atlassian.net/browse/MCUB-66