Skip to content

Conversation

@nvlsianpu
Copy link

Synchronized up to:
mcu-tools/mcuboot@d2122bc

  • Added 'revert' support to direct-xip mode.

Rest of commits are for:

  • mcuboot CI
  • Mbed-OS port

Embedded codebase is same as for mcuboot v1.7.0-rc2 tag.

Merge using Merge by Create a Merge commit!

utzig and others added 30 commits October 30, 2020 12:06
After each release version will be changed to
MAJOR.MINOR.PATCH-dev.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
Update version fields for 1.7.0-rc1 release.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
The 'revert' mechanism in direct-xip is similar to the one in swap mode.
It requires the trailer magic to be added to the signed image. When a
reboot happens without the image being confirmed at runtime (without the
image_ok flag being set), the bootloader considers the image faulty and
erases it. After this it will attempt to boot the previous image
instead. The images can also be made permanent (marked as confirmed in
advance) just like in swap mode.

Change-Id: Ibde9361d4a7302dd8efbb277b691b71eca0ca877
Signed-off-by: David Vincze <[email protected]>
This patch adds comments to reserve off a portion of the available TLV range
for use by vendors for proprietary TLV types.

Signed-off-by: Andy Gross <[email protected]>
This PR provides a porting layer implementation and framework for building an mcuboot-based bootloader with Mbed-OS. Some symbols are not provided by the Mbed-OS port within mcuboot, namely:

- The secondary storage device (see below)
- The signing keys
- The encryption keys, if used

Use of this port is demonstrated by the following projects:
- https://github.com/AGlass0fMilk/mbed-mcuboot-demo (a complete mcuboot/Mbed-OS-based bootloader)
- https://github.com/AGlass0fMilk/mbed-mcuboot-blinky (example showing how to make an Mbed-OS application that is bootable by mcuboot)

Memory porting implementation:

The underlying implemenation uses Mbed's BlockDevice API as the storage backend for mcuboot's memory operations. This provides a very flexible way of configuring the location and layout of the secondary flash storage area. To build an mcuboot-based bootloader with Mbed-OS, the user must implement a hook function, mbed::BlockDevice* get_secondary_bd(), to provide the secondary BlockDevice that mcuboot will use.

The signing and encryption keys must also be provided by the user. They can be generated using the existing imgtool utility in the same manner used by Zephyr. There are no automated build steps currently provided by Mbed-OS to sign/encrypt build artifacts.

Known limitations:

The update candidate encryption features have not yet been fully tested. A truly secure implementation will require integration with Mbed's TRNG API in the future to inhibit side-channel attacks on the decryption process.

The TinyCrypt backend is currently only supported for Mbed-OS builds when building with the GCC toolchain. The new cmake-based Mbed-OS build system will fix the underlying issue (file name uniqueness).

Signed-off-by: George Beckstein <[email protected]>
Signed-off-by: Evelyne Donnaes <[email protected]>
Signed-off-by: Lingkai Dong <[email protected]>

Co-authored-by: Lingkai Dong <[email protected]>
Co-authored-by: Fabio Utzig <[email protected]>
This commit reverts the addition of an mbed-os.lib file introduced with the Mbed-OS port. Mbed-OS build tools use .lib files to pull in additional dependencies automatically with a single command. The intended usage of mcuboot with mbed-os is to clone mcuboot *next to* mbed-os, rather than mbed-os inside mcuboot.

Signed-off-by: George Beckstein <[email protected]>
TinyCrypt uses a modified version of micro-ecc that is also used by the Mbed Cordio BLE stack. When building mcuboot for a target with BLE enabled, this causes multiple-defined symbol errors during linking. Due to the nature of Mbed's current build system, it is difficult to fix this.

Mbed will soon release a more flexible cmake-based build system that will make it possible to exclude these TinyCrypt files from an application build that may also link Cordio BLE sources.

Until then, this commit temporarily disables the use of TinyCrypt with Mbed-OS and excludes its sources from the build to avoid this build error.

Signed-off-by: George Beckstein <[email protected]>
Add configuration and DTS overlays to run MCUboot + smp_svr on the
nrf52840dk using the secondary slot in the external QSPI NOR flash.

Signed-off-by: Fabio Utzig <[email protected]>
Signed-off-by: Fabio Utzig <[email protected]>
Disable imgtool publishing on Travis; update scripts to work on both
Travis and GH; add GH workflow for publishing.

Signed-off-by: Fabio Utzig <[email protected]>
This reference to the old Juul URL got missed.  Fix it as well.

Signed-off-by: David Brown <[email protected]>
Build MCUBoot with TF-M build system for AN521 platform, and run it in
QEMU. The result of the test run is not evaluated yet.

Change-Id: I5fbfef8e6d8dec99a8e3e00d659a07ccfcaf0b5b
Signed-off-by: Mate Toth-Pal <[email protected]>
Add scripts that can run instruction skip FIH tests on QEMU.

Co-authored-by: Raef Coles <[email protected]>
Change-Id: Ia6da00174115e1dabaf84fdfc0e40476dc1b7a10
Signed-off-by: Mate Toth-Pal <[email protected]>
Change-Id: I7ce96821e4af645a8d20696d02d8a09d9822b9f7
Signed-off-by: Mate Toth-Pal <[email protected]>
Change-Id: Ic975b2fa937baafe57c8c492ef889ffb292f691e
Signed-off-by: Mate Toth-Pal <[email protected]>
Change-Id: I5fbbad8cdaf829dc11543a70e419de45f07002a0
Signed-off-by: Mate Toth-Pal <[email protected]>
Change-Id: Ib0def822e9748d64fd0dd77eefaaeba4ceaf1a83
Signed-off-by: Mate Toth-Pal <[email protected]>
Update version fields for 1.7.0-rc2 release.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
Should fix the current fail trying to build a bdist_wheel.

Signed-off-by: Fabio Utzig <[email protected]>
Fix workflows names on yaml root to be able to use them to refer to the
workflow. Add badges for pypi, workflows and license.

Signed-off-by: Fabio Utzig <[email protected]>
Sim and Mynewt workflows were only running on pull requests, while they
should also run when new commits are pushed to master.

Signed-off-by: Fabio Utzig <[email protected]>
Only check signed commits for PRs.

Signed-off-by: Fabio Utzig <[email protected]>
Synchronized up to:
mcu-tools@d2122bc

- Added 'revert' support to direct-xip mode.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
@nvlsianpu nvlsianpu added the DNM DO NOT MERGE label Nov 18, 2020
@nvlsianpu nvlsianpu changed the title [DNM] Upmerge 18 11 2020 Upmerge 18 11 2020 Nov 18, 2020
@nvlsianpu nvlsianpu removed the DNM DO NOT MERGE label Nov 18, 2020
@nvlsianpu nvlsianpu requested a review from carlescufi November 18, 2020 15:44
@carlescufi
Copy link
Member

CI is passing in zephyrproject-rtos/zephyr#30111, so feel free to merge.

@nvlsianpu nvlsianpu merged commit 6e3825f into zephyrproject-rtos:master Nov 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants