blob: 662f3ff72c5b4855b5f662fec3bc8134da89a3e7 [file] [log] [blame] [view]
Francesco Servidio5bc98322021-11-03 13:19:22 +01001# MCUboot release notes
David Brown37f8afd2017-09-12 10:59:39 -06002
3- Table of Contents
4{:toc}
5
David Brown9bbe0a02024-04-22 12:37:29 -06006## Version 2.1.0
7
8- Boot serial: Add response to echo command if support is not
9 enabled, previously the command would have been accepted but no
10 response indicating that the command is not supported would have
11 been sent.
12- Added support for using builtin keys for image validation
13 (available with the PSA Crypto API based crypto backend for ECDSA signatures).
14- Enforce that TLV entries that should be protected are.
15 This can be disabled by defining `ALLOW_ROGUE_TLVS`
16- bootutil: Fixed issue with comparing sector sizes for
17 compatibility, this now also checks against the number of usable
18 sectors (which is the slot size minus the swap status and moved
19 up by one sector).
20- bootutil: Added debug logging to show write location of swap status
21 and details on sectors including if slot sizes are not optimal for
22 a given board.
23- Update ptest to support test selection. Ptest can now be invoked with `list`
24 to show the available tests and `run` to run them. The `-t` argument will
25 select specific tests to run.
26- Allow sim tests to skip slow tests. By setting `MCUBOOT_SKIP_SLOW_TESTS` in
27 the environment, the sim will skip two tests that are very slow. In one
28 instance this reduces the test time from 2 hours to about 5 minutes. These
29 slow tests are useful, in that they test bad powerdown recovery, but are
30 inconvenient when testing other areas.
31- Zephyr: Fixes support for disabling instruction/data caches prior
32 to chain-loading an application, this will be automatically
33 enabled if one or both of these caches are present. This feature
34 can be disabled by setting `CONFIG_BOOT_DISABLE_CACHES` to `n`.
35- Zephyr: Fix issue with single application slot mode, serial
36 recovery and encryption whereby an encrypted image is loaded
37 and being wrongly treated as encrypted after decryption.
38- Zephyr: Add estimated image footer size to cache in sysbuild.
39- Added firmware loader configuration type support for Zephyr, this
40 allows for a single application slot and firmware loader image in
41 the secondary slot which is used to update the primary image
42 (loading it in any way it sees fit e.g. via Bluetooth).
43- Zephyr: Remove deprecated ZEPHYR_TRY_MASS_ERASE Kconfig option.
44- Zephyr: Prevent MBEDTLS Kconfig selection when tinycrypt is used.
45- Zephyr: Add USB CDC serial recovery check that now causes a build
46 failure if console is enabled and device is the same as the USB
47 CDC device.
48- Zephyr: Add USB CDC serial recovery check that now causes a build
49 failure if the main thread priority is below 0 (cooperative
50 thread), this would prevent USB CDC from working as the driver
51 would not have been able to fire callbacks.
52
David Brown62e2b4d2023-09-28 11:39:14 -060053## Version 2.0.0
54
55Note that this release, 2.0.0 is a new major number, and contains a small API
56change in the interface between mcuboot and the platform. All platforms
57contained within the MCUboot tree have been updated, but any external platforms
58will have to be adjusted. The following commit makes the API change, in the
59function `boot_save_shared_data`.
60
61 commit 3016d00cd765e7c09a14af55fb4dcad945e4b982
62 Author: Jamie McCrae <jamie.mccrae@nordicsemi.no>
63 Date: Tue Mar 14 12:35:51 2023 +0000
64
65 bootutil: Add active slot number and max app size to shared data
66
67### About this release
68
69- Add error when flash device fails to open.
70- Panic bootloader when flash device fails to open.
71- Fixed issue with serial recovery not showing image details for
72 decrypted images.
73- Fixes issue with serial recovery in single slot mode wrongly
74 iterating over 2 image slots.
75- CDDL auto-generated function code has been replaced with zcbor function
76 calls, this now allows the parameters to be supplied in any order.
77- Added currently running slot ID and maximum application size to
78 shared data function definition.
79- Make the ECDSA256 TLV curve agnostic and rename it to ECDSA_SIG.
80- imgtool: add P384 support along with SHA384.
81- espressif: refactor after removing IDF submodule
82- espressif: add ESP32-C6, ESP32-C2 and ESP32-H2 new chips support
83- espressif: adjustments after IDF v5.1 compatibility, secure boot build and memory map organization
84- Serial recovery image state and image set state optional commands added
85- imgtool: add 'dumpinfo' command for signed image parsing.
86- imgtool: add 'getpubhash' command to dump the sha256 hash of the public key
87- imgtool's getpub can print the output to a file
88- imgtool can dump the raw versions of the public keys
89- Drop ECDSA P224 support
90- Fixed an issue with boot_serial repeats not being processed when
91 output was sent, this would lead to a divergence of commands
92 whereby later commands being sent would have the previous command
93 output sent instead.
94- Fixed an issue with the boot_serial zcbor setup encoder function
95 wrongly including the buffer address in the size which caused
96 serial recovery to fail on some platforms.
97- zcbor library files have been updated to version 0.7.0
98- Reworked boot serial extensions so that they can be used by modules
99 or from user repositories by switching to iterable sections.
100- Removed Zephyr custom img list boot serial extension support.
101- (Zephyr) Adds support for sharing boot information with
102 application via retention subsystem
103- Zephyr no longer builds in optimize for debug mode, this saves a
104 significant amount of flash space.
105- Reworked image encryption support for Zephyr, static dummy key files
106 are no longer in the code, a pem file must be supplied to extract
107 the private and public keys. The Kconfig menu has changed to only
108 show a single option for enabling encryption and selecting the key
109 file.
110- Serial recovery can now read and handle encrypted seondary slot
111 partitions.
112- Serial recovery with MBEDTLS no longer has undefined operations which
113 led to usage faults when the secondary slot image was encrypted.
David Browne0bdcde2023-10-18 14:23:59 -0600114- espressif: allow the use of a different toolchain for building
David Brown62e2b4d2023-09-28 11:39:14 -0600115
David Brownd2dfa1b2023-03-17 10:50:43 -0600116## Version 1.10.0
117
118The 1.10.0 release of MCUboot contains...
119
120### About this release
121
122- Various fixes to boot serial.
123- Various fixes to the mbed target.
124- Various fixes to the Espressif native target.
125- Various fixes to the Zephyr target.
126- Workflow improvements with Zephyr CI.
127- Add multi image support to the espressif esp32 target.
128- Improvements and corrections to the simulator.
129- Improve imgtool, including adding 3rd party signing support.
130- Various fixes to the mynewt target.
131- Various fixes to the nuttx target.
132- Dates to dependencies for doc generation.
133- Add downgrade prevention for modes using swap.
134- Various general fixes to the boot code.
135- Prefer swap move on zephyr if the scratch partition is not enabled.
136- Upgrade fault-injection hardening, improving cases injections are detected.
137- Add a new flash api `flash_area_get_sector`, along with support for each
138 target, that replaces `flash_area_sector_from_off`. This is a step in cleaning
139 up the flash API used by MCUboot.
140
141### Security fixes
142
143There are no security vulnerabilities reported on the MCUboot code for this
144release. There have been several updates to the dependencies in the Ruby code
145used to generate the documentation. This should only affect users that generate
146their own documentation.
147
David Browneaa8b312022-01-19 10:46:01 -0700148## Version 1.9.0
149
150The 1.9.0 release of MCUboot contains various bug fixes, improves
151support on some recent targets, and adds support for devices with a
152write alignment larger than 8.
153
154This change introduces a potentially incompatible change to the format
155of the image trailer. If `BOOT_MAX_ALIGN` is kept at 8, the trailer
156format does not change. However, to support larger write alignments,
157this value can be increased, which will result in a different magic
158number value. These targets were previously unsupported in MCUboot,
159so this change should not affect any existing targets. The change has
160been tested with a `BOOT_MAX_ALIGN` up to 32 bytes.
161
162### About this release
163
164- Add native flash encryption to Espressif targets
165- Numerous documentation improvements
166- Increase coverage of large images in the simulator
167- Add stm32 watchdog support
168- Add support for the `mimxrt685_evk` board
169- Add support for "partial multi-image booting"
170- Add support for clear image generation with encryption capability to
171 imgtool
David Brownb32ff6d2022-02-09 23:18:19 -0700172- Fix Zephyr when `CONFIG_BOOT_ENCRYPTION_KEY_FILE` is not defined
173- Remove zephyr example test running in shell. The Go version is
174 primary and much more featureful.
175- imgtool: make `--max-align` default reasonable in most cases.
David Brownc657cbe2022-03-01 14:17:19 -0700176- Implement the mcumgr echo command in serial boot mode
David Browneaa8b312022-01-19 10:46:01 -0700177
178### Security fixes
179
David Brownae355102021-08-27 13:15:16 -0600180## Version 1.8.0
181
182The 1.8.0 release of MCUboot contains numerous fixes, and adds support
183for the NuttX RTOS, and the Espressif ESP32 SDK.
184
185### About this release
186
187- Add support for the NuttX RTOS.
188- Add support for the Espressif ESP32 SDK.
189- `boot_serial` changed to use cddl-gen, which removes the dependency
190 on tinycbor.
191- Add various hooks to be able to change how image data is accessed.
192- Cypress supports Mbed TLS for encryption.
193- Support using Mbed TLS for ECDSA. This can be useful if Mbed TLS is
194 brought in for another reason.
195- Add simulator support for testing direct-XIP and ramload.
196- Support Mbed TLS 3.0. Updates the submodule for Mbed TLS to 3.0.
Francesco Servidio582367c2021-10-20 15:36:45 +0200197- Enable direct-xip mode in Mbed-OS port.
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200198- extract `bootutil_public` library, a common interface for MCUboot
David Brownae355102021-08-27 13:15:16 -0600199 and the application.
200- Allow to boot primary image if secondary one is unreachable.
201- Add AES256 image encryption support.
202- Add Multiimage boot for direct-xip and ram-load mode.
David Brown0779f4f2021-08-27 13:15:16 -0600203- Cargo files moved to top level, now `cargo test` can be run from the
204 top level directory.
205- Fault injection tests use updated TF-M.
206- Thingy:53 now supports multi-image DFU.
David Brown29099e12021-10-12 09:52:18 -0600207- ram load and image encryption can be used together, allowing the
208 entire contents of flash to always remain encrypted.
David Brownae355102021-08-27 13:15:16 -0600209
210### Security fixes
211
212- [GHSA-gcxh-546h-phg4](https://github.com/mcu-tools/mcuboot/security/advisories/GHSA-gcxh-546h-phg4)
213 has been published. There is not a fix at this time, but a caution
214 to be sure to follow the instructions carefully, and make sure that
215 the development keys in the repo are never used in a production
216 system.
217
Andrzej Puzdrowski69344632020-10-30 15:36:49 +0100218## Version 1.7.0
219
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200220The 1.7.0 release of MCUboot adds support for the Mbed-OS platform,
Andrzej Puzdrowskie7596612020-11-10 14:54:41 +0100221Equal slots (direct-xip) upgrade mode, RAM loading upgrade mode,
222hardening against hardware level fault injection and timing attacks
223and single image mode.
Andrzej Puzdrowski69344632020-10-30 15:36:49 +0100224There are bug fixes, and associated imgtool updates as well.
225
226### About this release
227
Andrzej Puzdrowskie7596612020-11-10 14:54:41 +0100228- Initial support for the Mbed-OS platform.
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200229- Added possibility to enter deep sleep mode after MCUboot app execution
Andrzej Puzdrowski69344632020-10-30 15:36:49 +0100230 for cypress platform.
231- Added hardening against hardware level fault injection and timing attacks.
232- Introduced Abstract crypto primitives to simplify porting.
233- Added RAM-load upgrade mode.
234- Renamed single-image mode to single-slot mode.
235- Allow larger primary slot in swap-move
236- Fixed boostrapping in swap-move mode.
237- Fixed issue causing that interrupted swap-move operation might brick device
238 if the primary image was padded.
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200239- Abstracting MCUboot crypto functions for cleaner porting
Andrzej Puzdrowski69344632020-10-30 15:36:49 +0100240- Droped flash_area_read_is_empty() porting API.
241- boot/zephyr: Added watchdog feed on nRF devices.
242 See `CONFIG_BOOT_WATCHDOG_FEED` option.
243- boot/zephyr: Added patch for turning off cache for Cortex M7 before
244 chain-loading.
245- boot/zephyr: added option to relocate interrupts to application
246- boot/zephyr: clean ARM core configuration only when selected by user
247- boot/boot_serial: allow nonaligned last image data chunk
248- imgtool: added custom TLV support.
249- imgtool: added possibility to set confirm flag for hex files as well.
250- imgtool: Print image digest during verify.
251
Francesco Servidio5bc98322021-11-03 13:19:22 +0100252### Zephyr-RTOS compatibility
Andrzej Puzdrowskia8e12da2020-11-25 15:59:22 +0100253
David Brownfe0bfcf2021-05-14 10:12:10 -0600254This release of MCUboot works with the Zephyr "main" at the time of the
Andrzej Puzdrowskia8e12da2020-11-25 15:59:22 +0100255release. It was tested as of has 7a3b253ce. This version of MCUboot also
256works with the Zephyr v2.4.0, however it is recommended to enable
257`CONFIG_MCUBOOT_CLEANUP_ARM_CORE` while using that version.
258
David Brown342e8752020-04-15 10:57:28 -0600259## Version 1.6.0
260
261The 1.6.0 release of MCUboot adds support for the PSOC6 platform,
262X25519 encrypted images, rollback protection, hardware keys, and a
263shared boot record to communicate boot attestation information to
264later boot stages. There are bug fixes, and associated imgtool
265updates as well.
266
267### About this release
268
269- Initial support for the Cypress PSOC6 plaformt. This platform
270 builds using the Cypress SDK, which has been added as submodules.
271- CBOR decoding in serial recovery replaced by code generated from a
272 CDDL description.
273- Add support for X25519 encrypted images.
274- Add rollback protection. There is support for a HW rollback counter
275 (which must be provided as part of the platform), as well as a SW
276 solution that protects against some types of rollback.
277- Add an optional boot record in shared memory to communicate boot
278 attributes to later-run code.
279- Add support for hardware keys.
280- Various fixes to work with the latest Zephyr version.
281
282### Security issues addressed
283
284- CVE-2020-7595 "xmlStringLenDecodeEntities in parser.c in libxml2
285 2.9.10 has an infinite loop in a certain end-of-file situation." Fix
286 by updating a dependency in documentation generation.
287
Francesco Servidio5bc98322021-11-03 13:19:22 +0100288### Zephyr-RTOS compatibility
David Brown82c5f7c2020-05-05 15:47:30 -0600289
David Brownfe0bfcf2021-05-14 10:12:10 -0600290This release of MCUboot works the Zephyr "main" at the time of the
David Brown50d24a52020-05-22 10:23:42 -0600291release. It was tested as of has 1a89ca1238. When Zephyr v2.3.0 is
292released, there will be a possible 1.6.1 or similar release of Zephyr
David Brown82c5f7c2020-05-05 15:47:30 -0600293if needed to address any issues. There also may be branch releases of
294MCUboot specifically for the current version of Zephyr, e.g.
295v1.6.0-zephyr-2.2.1.
296
Fabio Utzigef7fbd72020-02-05 12:43:23 -0300297## Version 1.5.0
298
299The 1.5.0 release of MCUboot adds support for encrypted images using
300ECIES with secp256r1 as an Elliptic Curve alternative to RSA-OAEP. A
301new swap method was added which allows for upgrades without using a
302scratch partition. There are also lots of bug fixes, extra simulator
303testing coverage and some imgtool updates.
304
305### About this release
306
307- TLVs were updated to use 16-bit lengths (from previous 8). This
308 should work with no changes for little-endian targets, but will
309 break compatibility with big-endian targets.
310- A benchmark framework was added to Zephyr
Francesco Servidio582367c2021-10-20 15:36:45 +0200311- ed25519 signature validation can now build without using Mbed TLS
Fabio Utzigef7fbd72020-02-05 12:43:23 -0300312 by relying on a bundled tinycrypt based sha-512 implementation.
313- imgtool was updated to correctly detect trailer overruns by image.
314- Encrypted image TLVs can be saved in swap metadata during a swap
315 upgrade instead of the plain AES key.
316- imgtool can dump private keys in C format (getpriv command), which
317 can be added as decryption keys. Optionally can remove superfluous
318 fields from the ASN1 by passing it `--minimal`.
319- Lots of other smaller bugs fixes.
320- Added downgrade prevention feature (available when the overwrite-based
321 image update strategy is used)
322
323### Known issues
324
325- TLV size change breaks compatibility with big-endian targets.
326
David Brown4d0c5fa2019-10-08 09:57:31 -0600327## Version 1.4.0
328
329The 1.4.0 release of MCUboot primarily adds support for multi-image
330booting. With this release, MCUboot can manage two images that can be
331updated independently. With this, it also supports additions to the
332TLV that allow these dependencies to be specified.
333
334Multi-image support adds backward-incompatible changes to the format
335of the images: specifically adding support for protected TLV entries.
336If multiple images and dependencies are not used, the images will be
337compatible with previous releases of MCUboot.
338
339### About this release
340
David Brownd7581772019-10-15 12:00:25 -0600341- Fixed CVE-2019-5477, and CVE-2019-16892. These fix issue with
342 dependencies used in the generation of the documentation on github.
David Brown4d0c5fa2019-10-08 09:57:31 -0600343- Numerous code cleanups and refactorings
344- Documentation updates for multi-image features
345- Update imgtool.py to support the new features
Francesco Servidio582367c2021-10-20 15:36:45 +0200346- Updated the Mbed TLS submodule to current stable version 2.16.3
347- Moved the Mbed TLS submodule from within sim/mcuboot-sys to ext.
David Brownd7581772019-10-15 12:00:25 -0600348 This will make it easier for other board supports to use this code.
349- Added some additional overflow and bound checks to data in the image
350 header, and TLV data.
351- Add a `-x` (or `--hex_addr`) flag to imgtool to set the base address
352 written to a hex-format image. This allows the image to be flashed
353 at an offset, without having to use additional tools to modify the
354 image.
David Brown4d0c5fa2019-10-08 09:57:31 -0600355
Szymon Janc7fea8462019-07-04 14:45:52 +0200356## Version 1.3.1
357
358The 1.3.1 release of MCUboot consists mostly of small bug fixes and updates.
359There are no breaking changes in functionality. This release should work with
David Brownfe0bfcf2021-05-14 10:12:10 -0600360Mynewt 1.6.0 and up, and any Zephyr `main` after sha
Szymon Janc7fea8462019-07-04 14:45:52 +0200361f51e3c296040f73bca0e8fe1051d5ee63ce18e0d.
362
363### About this release
364
365- Fixed a revert interruption bug
366- Added ed25519 signing support
367- Added RSA-3072 signing support
368- Allow ec256 to run on CC310 interface
369- Some preparation work was done to allow for multi image support, which
370 should land in 1.4.0. This includes a simulator update for testing
371 multi-images, and a new name for slot0/slot1 which are now called
372 "primary slot" and "secondary slot".
373- Other minor bugfixes and improvements
374
David Brownb1d15a72019-01-22 16:22:08 -0700375## Version 1.3.0
376
377The 1.3.0 release of MCUboot brings in many fixes and updates. There
378are no breaking changes in functionality. Many of the changes are
379refactorings that will make the code easier to maintain going forward.
380In addition, support has been added for encrypted images. See [the
381docs](encrypted_images.md) for more information.
382
383### About this release
384
385- Modernize the Zephyr build scripts.
386- Add a `ptest` utility to help run the simulator in different
387 configurations.
388- Migrate the simulator to Rust 2018 edition. The sim now requires at
389 least Rust 1.32 to build.
390- Simulator cleanups. The simulator code is now built the same way
391 for every configuration, and queries the MCUboot code for how it was
392 compiled.
393- Abstract logging in MCUboot. This was needed to support the new
394 logging system used in Zephyr.
395- Add multiple flash support. Allows slot1/scratch to be stored in an
396 external flash device.
397- Add support for [encrypted images](encrypted_images.md).
398- Add support for flash devices that read as '0' when erased.
399- Add support to Zephyr for the `nrf52840_pca10059`. This board
400 supports serial recovery over USB with CDC ACM.
401- imgtool is now also available as a python package on pypi.org.
402- Add an option to erase flash pages progressively during recovery to
403 avoid possible timeouts (required especially by serial recovery
404 using USB with CDC ACM).
405- imgtool: big-endian support
406- imgtool: saves in intel-hex format when output filename has `.hex`
407 extension; otherwise saves in binary format.
408
Fabio Utzig3c939012018-06-25 13:26:32 -0300409## Version 1.2.0
410
411The 1.2.0 release of MCUboot brings a lot of fixes/updates, where much of the
412changes were on the boot serial functionality and imgtool utility. There are
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200413no breaking changes in MCUboot functionality, but some of the CLI parameters
Fabio Utzig3c939012018-06-25 13:26:32 -0300414in imgtool were changed (either removed or added or updated).
415
416### About this release
417
418- imgtool accepts .hex formatted input
419- Logging system is now configurable
420- Most Zephyr configuration has been switched to Kconfig
421- Build system accepts .pem files in build system to autogenerate required
422 key arrays used internally
423- Zephyr build switched to using built-in flash_map and TinyCBOR modules
424- Serial boot has substantially decreased in space usage after refactorings
425- Serial boot build doesn't require newlib-c anymore on Zephyr
426- imgtool updates:
427 + "create" subcommand can be used as an alias for "sign"
428 + To allow imgtool to always perform the check that firmware does not
429 overflow the status area, `--slot-size` was added and `--pad` was updated
430 to act as a flag parameter.
431 + `--overwrite-only` can be passed if not using swap upgrades
432 + `--max-sectors` can be used to adjust the maximum amount of sectors that
433 a swap can handle; this value must also be configured for the bootloader
434 + `--pad-header` substitutes `--included-header` with reverted semantics,
435 so it's not required for firmware built by Zephyr build system
436
437### Known issues
438
439None
440
Fabio Utzig49045cc2018-01-09 15:56:29 -0200441## Version 1.1.0
442
Carles Cufi90eda802018-01-29 18:33:20 +0100443The 1.1.0 release of MCUboot brings a lot of fixes/updates to its
Fabio Utzig49045cc2018-01-09 15:56:29 -0200444inner workings, specially to its testing infrastructure which now
445enables a more thorough quality assurance of many of the available
446options. As expected of the 1.x.x release cycle, no breaking changes
447were made. From the tooling perpective the main addition is
448newt/imgtool support for password protected keys.
449
450### About this release
451
452- serial recovery functionality support under Zephyr
453- simulator: lots of refactors were applied, which result in the
454 simulator now leveraging the Rust testing infrastructure; testing
455 of ecdsa (secp256r1) was added
456- imgtool: removed PKCS1.5 support, added support for password
457 protected keys
Francesco Servidio582367c2021-10-20 15:36:45 +0200458- tinycrypt 0.2.8 and the Mbed TLS ASN1 parser are now bundled with
Francesco Servidio4ff0c182021-10-20 15:27:16 +0200459 MCUboot (eg secp256r1 is now free of external dependencies!)
Fabio Utzig49045cc2018-01-09 15:56:29 -0200460- Overwrite-only mode was updated to erase/copy only sectors that
461 actually store firmware
462- A lot of small code and documentation fixes and updates.
463
464### Known issues
465
466None
467
David Brown37f8afd2017-09-12 10:59:39 -0600468## Version 1.0.0
469
Carles Cufi90eda802018-01-29 18:33:20 +0100470The 1.0.0 release of MCUboot introduces a format change. It is
David Brown37f8afd2017-09-12 10:59:39 -0600471important to either use the `imgtool.py` also from this release, or
472pass the `-2` to recent versions of the `newt` tool in order to
473generate image headers with the new format. There should be no
474incompatible format changes throughout the 1.x.y release series.
475
476### About this release
477
478- Header format change. This change was made to move all of the
479 information about signatures out of the header and into the TLV
480 block appended to the image. This allows
481 - The signature to be replaced without changing the image.
482 - Multiple signatures to be applied. This can be used, for example,
483 to sign an image with two algorithms, to support different
484 bootloader configurations based on these image.
485 - The public key is referred to by its SHA1 hash (or a prefix of the
486 hash), instead of an index that has to be maintained with the
487 bootloader.
488 - Allow new types of signatures in the future.
489- Support for PKCS#1 v1.5 signatures has been dropped. All RSA
490 signatures should be made with PSS. The tools have been changed to
491 reflect this.
492- The source for Tinycrypt has been placed in the MCUboot tree. A
493 recent version of Tinycrypt introduced breaking API changes. To
494 allow MCUboot to work across various platforms, we stop using the
495 Tinycrypt bundled with the OS platform, and use our own version. A
496 future release of MCUboot will update the Tinycrypt version.
497- Support for some new targets:
498 - Nordic nRF51 and nRF52832 dev kits
499 - Hexiwear K64
500- Clearer sample applications have been added under `samples`.
Fabio Utzig4dce6aa2018-02-12 15:31:32 -0200501- Test plans for [zephyr](testplan-zephyr.md), and
502 [mynewt](testplan-mynewt.md).
David Brown37f8afd2017-09-12 10:59:39 -0600503- The simulator is now able to test RSA signatures.
504- There is an unimplemented `load_addr` header for future support for
505 RAM loading in the bootloader.
506- Numerous documentation.
507
508### Known issues
509
510None
511
512## Version 0.9.0
513
Carles Cufi90eda802018-01-29 18:33:20 +0100514This is the first release of MCUboot, a secure bootloader for 32-bit MCUs.
David Brown37f8afd2017-09-12 10:59:39 -0600515It is designed to be operating system-agnostic and works over any transport -
516wired or wireless. It is also hardware independent, and relies on hardware
517porting layers from the operating system it works with. For the first release,
518we have support for three open source operating systems: Apache Mynewt, Zephyr
519and RIOT.
520
521### About this release
522
523- This release supports building with and running Apache Mynewt and Zephyr
524 targets.
525- RIOT is supported as a running target.
526- Image integrity is provided with SHA256.
527- Image originator authenticity is provided supporting the following
528 signature algorithms:
529 - RSA 2048 and RSA PKCS#1 v1.5 or v2.1
530 - Elliptic curve DSA with secp224r1 and secp256r1
531- Two firmware upgrade algorithms are provided:
532 - An overwrite only which upgrades slot 0 with the image in slot 1.
533 - A swapping upgrade which enables image test, allowing for rollback to a
534 previous known good image.
Francesco Servidio582367c2021-10-20 15:36:45 +0200535- Supports both Mbed TLS and tinycrypt as backend crypto libraries. One of them
David Brown37f8afd2017-09-12 10:59:39 -0600536 must be defined and the chosen signing algorithm will require a particular
537 library according to this list:
Francesco Servidio582367c2021-10-20 15:36:45 +0200538 - RSA 2048 needs Mbed TLS
539 - ECDSA secp224r1 needs Mbed TLS
540 - ECDSA secp256r1 needs tinycrypt as well as the ASN.1 code from Mbed TLS
David Brown37f8afd2017-09-12 10:59:39 -0600541 (so still needs that present).
542
543### Known issues
544
545- The image header and TLV formats are planned to change with release 1.0:
546 https://runtimeco.atlassian.net/browse/MCUB-66