Commit Graph

2055 Commits

Author SHA1 Message Date
Szymon Janc 6021d60393 mynewt: Update repository.yml with latest release
newt tool uses repository.yml from main branch.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-04-26 13:08:37 +02:00
dependabot[bot] b4a0d1b7a5 build(deps): bump nokogiri from 1.14.2 to 1.14.3 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.2 to 1.14.3.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.2...v1.14.3)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 13:07:19 +02:00
Marek Pieta a95a41b3e1 boot: bootutil: loader: Let image version comparison use build number
Change allows using build number in image version comparison.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
2023-04-25 12:04:27 +02:00
David Brown 3cbb79c25f boot: Fix DOS line endings
This file made it into the repo with DOS line endings. Fix this to match
everything else.

Signed-off-by: David Brown <david.brown@linaro.org>
2023-04-24 11:47:14 +02:00
Jamie McCrae f7d8660e85 boot_serial: Fix include paths for zephyr builds
Fixes include paths for zephyr builds to use the system zcbor_*
files rather than the local files.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-24 11:34:28 +02:00
Roland Mikhel c7835371a0 bootutil: Add FIH for ED25519 sig verification
Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: If43ff9a7c3d755a32b310230e05d01235868392d
2023-04-24 08:36:14 +02:00
Roland Mikhel 186ac88583 bootutil: Fix FIH return type for EC256
For bootutil_verify_sig the declaration expects fih_ret
as the return type not fih_int, this has now been fixed.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: If5943758bebdbf401b1eb387de334fa19a3a7781
2023-04-24 08:36:14 +02:00
Dominik Ermel 5397c13d24 zephyr: serial_recovery: Fix broken CDC device selection
When using CDC only and CONFIG_SERIAL is not enabled in Zephyr,
but there is chosen zephyr,mcumgr-uart, the chosen
takes precedence over CDC and directs MCUmgr to that uart.
This causes two issues: first the CDC is ignored if chosen exists,
and makes build fail because drivers are not built.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-04-19 14:38:02 +02:00
Dominik Ermel 918da26a67 bootutil: Provide boot_set_next function
Commit provides boot_set_next function that allows to set next
application slot to boot by flash area object pointer, describing
the slot.
The function also takes active which is supposed to indicate whether
running application is being set for next boot and confirm parameter
that allows to confirm the image.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-04-14 15:51:27 +02:00
Jamie McCrae 6902abba27 zephyr: Create common boot serial enter function
Creates a common function for enterial serial recovery mode.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-13 20:07:55 +02:00
Jamie McCrae 35941feacd boot: zephyr: Add pin reset serial recovery entrance method
Adds an optional method for entering serial recovery mode by use
of a pin reset.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-13 20:07:55 +02:00
Jamie McCrae fd79db3a9f zephyr: boot: serial_recovery: Add no application entrace method
Adds a bootloader serial recovery entrance mode that will allow
recovering a module if there is no application that can be booted.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-13 20:07:55 +02:00
Jamie McCrae b3e3ce39f3 boot: zephyr: serial_recovery: Add boot mode enter ability
Adds an optional entrance method for mcuboot's serial recovery by
using Zephyr's boot mode retention system, this allows for an
application to set the retained data and reboot into the bootloader.
This also adds a selection of how to enter serial recovery mode, it
no longer requires having a GPIO entrance mechanism. Entrance
methods have been added under a new Kconfig menu.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-13 20:07:55 +02:00
Jamie McCrae e5c57dd134 boot_serial: Only have build number if non-zero
Only returns the build number in versions responses if the value
is non-zero.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-04-13 19:25:42 +02:00
Roland Mikhel 8a3b32ce6c bootutil: Refactor signature verification
The current ECDSA-P256 implementation code contains
a lot of code that is tied to a specific condition being met.
The aim of this commit is to cleanup the main verification
logic to be unified between crypto backends and move the
conditional code where it is relevant.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I06b050a263b2b88b08708defb6aa1001a08ba2ae
2023-04-12 17:58:42 +02:00
David Vincze 4e07d8f75f docs: add release note snippet for dumpinfo
Change-Id: I8f3041bff9a842edc53029ba993e21e56adde86c
Signed-off-by: David Vincze <david.vincze@arm.com>
2023-04-12 10:01:14 +02:00
David Vincze ca56135b6b imgtool: Add 'dumpinfo' command
Add new 'dumpinfo' command that can parse a signed image and
print all the available information from the header, TLV area and
trailer in the form of a basic "image map".

The --outfile option can be used to write the image information
to an output file in serialised YAML format.

Change-Id: I99e61078946b02eefd4ac2e682583476d53e8d4f
Signed-off-by: David Vincze <david.vincze@arm.com>
2023-04-12 10:01:14 +02:00
Roland Mikhel c050573dd9 docs: Add release note for p224 removal
Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I63d8b38e1d7a15fdc20e36daf768ffd26ac6469c
2023-04-11 07:05:38 +02:00
Roland Mikhel 75c7c310dc sim: Remove P224 curve references
MCUBoot dropped P224 curve support as
there is little interest in using it.
The simulator threw an error as P224
was never supported, this was removed.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I96011e9b00dbc3a6f7590db365a5f480d85394e1
2023-04-11 07:05:38 +02:00
Roland Mikhel 3d92a6cb59 imgtool: Remove P224 curve references
Imgtool does not provide support for P224
curve, just a placeholder function that
says it's not currently implemented.
This has now been removed as P224 support
had been removed from the boot code too.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I477d8e273085f38f35eaf9a591584f3e937d748d
2023-04-11 07:05:38 +02:00
Roland Mikhel 206b914852 bootutil: Remove P224 curve
Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I49fad7ede202de4e3c710bf4aa1df195a310b037
2023-04-11 07:05:38 +02:00
David Brown a97f009d20 Update readme for next dev version
Signed-off-by: David Brown <david.brown@linaro.org>
2023-04-06 07:43:42 -06:00
David Brown 23d28832f0 Update to version 1.10.0
Signed-off-by: David Brown <david.brown@linaro.org>
2023-04-06 07:38:04 -06:00
Andrzej Puzdrowski cdf9de094e doc/readme-zephyr: document the serial recovery
Added description on serial recovery mode features and
its configuration.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Anna Kielar <anna.kielar@nordicsemi.no>
2023-03-24 13:11:30 +01:00
Andrzej Puzdrowski 4e9d86aa08 doc: Added serial recovery documentation
Added description on what is the serial recovery protocol
in general.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Anna Kielar <anna.kielar@nordicsemi.no>

fix
2023-03-24 13:11:30 +01:00
Jamie McCrae 827118f2e4 boot: serial_recovery: Add image hash support
Adds support for outputting the image hash TLV in serial recovery
mode, which is needed to comply with the img_mgmt MCUmgr group
requirements.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-03-23 10:25:38 +01:00
Piotr Dymacz f5e7753b9e boot_serial: support fragmentation for outgoing SMP packets
The mcumgr packet sent over serial should be fragmented into frames of
up to 127 bytes, including 2-bytes frame start header and 1-byte for
terminating newline [1], resulting in up to 124 bytes for the base64
encoded payload.

Current implementation doesn't fulfill above requirement and transmits
single frames, without considering their length. This change introduces
support for fragmenting as defined in 'SMP over console' specification.

[1] github.com/apache/mynewt-mcumgr/blob/master/transport/smp-console.md

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2023-03-21 15:10:12 +01:00
David Brown 569b1d6393 Update to version 1.10.0-rc1
Signed-off-by: David Brown <david.brown@linaro.org>
2023-03-20 14:02:12 -06:00
David Brown d2dfa1bd20 docs: Create release notes for 1.10.0 release
Signed-off-by: David Brown <david.brown@linaro.org>
2023-03-20 13:50:47 -06:00
David Brown 4337feed06 docs: Describe the release note snippet requirement
Add mention of the release note requirements to the SubmittingPatches
file so that developers are more likely to see and comply.

Signed-off-by: David Brown <david.brown@linaro.org>
2023-03-20 13:49:38 -06:00
David Brown d4184ebdb9 docs: Setup template for release note process
Add some guidelines for release notes that developers can use to create
release note snippets as features and fixes are implemented.  This will
greatly reduce the work needed at release time.

Signed-off-by: David Brown <david.brown@linaro.org>
2023-03-20 13:49:38 -06:00
Dominik Ermel 1090d8ffc0 zephyr: Check zephyr,uart-mcumgr as candidate for serial recovery
The commit modifies selection of boot serial UART by first checking
the Zephyr chosen zephyr,uart-mcumgr and then reverting to the
zephyr,console, as a secondary candidate.
In case when both nodes are present and point to the same device,
error will be reported.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-20 17:16:42 +01:00
Dominik Ermel 143485e35b zephyr: Add missing Kconfig dependencies for USB DFU
USB DFU depends on MULTITHREADING and STREAM_FLASH, and these
should be explicitly selected.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-17 15:30:58 +01:00
Szymon Janc 22096886a6 ci: mynewt: Enable Mynewt specific tests
This allows to run Mynewt bootserial tests in CI.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-17 11:14:24 -03:00
Szymon Janc 874a0ab4d5 boot_serial: Fix Mynewt tests build
__packed may not be available in all environments. In such
case just fallback to  __attribute__((__packed__)).

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-17 07:53:19 -03:00
Raphael Dupont 16f3de5660 imgtool: fix boot_magic when -e big and max-align > 8
Currently if max-align > 8, magic_boot only works in little endian

For example :
With max-align = 16 and endian = big, boot_magic starts with 0x10 0x00,
but it should be 0x00 0x10

Signed-off-by: Raphael Dupont <raphael7dup@gmail.com>
2023-03-16 10:03:24 -03:00
Dominik Ermel c89a94f120 mynewt: Add flash_area_get_sector
Simple stub of flash_area_get_sector using system provided
flash_area_sector_from_off.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-15 20:15:58 +01:00
Stephane Le Roy 259d989f2e bootutil: Fix erase of trailer when located in scratch area
Trailer is temporary located in scratch when data of image goes up to last
sector of primary slot. At the end of the swap procedure, the temporary
trailer in scratch must be erased to prevent mcuboot from reading a stale
status from the scratch area. The erase tentative was not correct, this
is fixed.Issue is easily reproduced with an image size of one sector.

Signed-off-by: Stephane Le Roy <stephane.leroy@st.com>
Signed-off-by: Michel Jaouen <michel.jaouen@st.com>
2023-03-15 15:12:24 -03:00
Jamie McCrae e8294b2af5 boot_serial: Add packed to struct
Adds a packed attribute to the nmgr struct to avoid issues on
architectures that do not support unaligned memory access.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-03-15 09:23:04 +01:00
Fabio Utzig 9c5d14ae67 ci: Update signed commit check to accept a SHA
Try a merge commit if no parameters are passed, otherwise accept the
first parameter as the oldest SHA to check.

Signed-off-by: Fabio Utzig <utzig@apache.org>
2023-03-14 08:18:52 -06:00
Dominik Ermel 68dcc0ee10 zephyr: single_loader: Switch to flash_area_get_sector
Use flash_area_get_sector instead of flash_area_sector_from_off.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-14 08:13:20 -06:00
Dominik Ermel 2476988309 boot: Switch to flash_area_get_sector.
Replace flash_area_sector_from_off calls with flash_area_get_sector.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-14 08:13:20 -06:00
Dominik Ermel bd0d94ce4b espressif: Add flash_area_get_sector
Commits adds implementation of flash_area_get_sector that
is supposed to replace flash_area_sector_from_off.
The flash_area_get_sector gets additional parameter of flash_area
type, while flash_area_sector_from_off uses hardcoded flash_area.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-14 08:13:20 -06:00
Dominik Ermel b1d4e00186 sim: Add flash_area_get_sector
Commits adds implementation of flash_area_get_sector that
is supposed to replace flash_area_sector_from_off.
The flash_area_get_sector gets additional parameter of flash_area
type, while flash_area_sector_from_off uses hardcoded flash_area.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-14 08:13:20 -06:00
Dominik Ermel 069aea48a2 zephry: Add flash_area_get_sector
Commits adds implementation of flash_area_get_sector that
is supposed to replace flash_area_sector_from_off.
The flash_area_get_sector gets additional parameter of flash_area
type, while flash_area_sector_from_off uses hardcoded flash_area.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-03-14 08:13:20 -06:00
Jamie McCrae 9551b6ef03 boot: zephyr: Remove deprecated GPIO Kconfig entries
Removes the old deprecated Kconfig items for configuring GPIO ports
and pins for entering serial recovery/USB DFU mode. These were
deprecated almost a year ago and should not be used as device tree
has long replaced them.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-03-13 13:22:37 +01:00
Jamie McCrae dc8ef87932 zephyr: serial_recovery: Use Zephyr manifest zcbor files
Switches from using the zcbor files in-tree to using the ones that
are part of the zephyr manifest, this prevents using old and
potentially buggy versions of the zcbor library.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-03-13 13:19:27 +01:00
Piotr Dymacz e026c3679b imgtool: sign: allow using 16-bit custom TLVs from valid range
The TLV type field in trailer TLV struct is defined as unsigned 16-bit
(in LE byte order). Currently, due to Python's struct format specified
as 'BBH', the 'imgtool' accepts only single byte for this field.

This results in error when trying to use 16-bit TLV type with option
'--custom-tlv':

  struct.error: ubyte format requires 0 <= number <= 255

This changes format to 'HH' which allows using 16-bit TLV types and
while at it, adds also simple range validation for custom TLV type.
As defined in image.h header, the vendor reserved TLVs value should
be from 0x00a0 to 0xfffe range.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2023-03-10 17:30:38 -03:00
Roland Mikhel 4d51038cd5 workflow: Split configs and disable fail-fast
Split RELEASE configs to match MINSIZEREL configs and
disable auto cancel upon one of the configs exiting with an error.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: I32225ecd1316e0a7067513cfa417e00cdcf660c4
2023-03-02 14:24:25 -07:00
Roland Mikhel 9f4ef83dc0 ci: Improve FIH job result assesment
Modify the FIH CI job to fail in case successful boot happens
below a certain treshold. CI should fail if a successful boot
is achieved by bypassing one or two instructions as it would
defeat the purpose of the FIH mechanisms.

Signed-off-by: Roland Mikhel <roland.mikhel@arm.com>
Change-Id: If1703d57e3ba87e5fd73d4ba954bfd38ed1c0cc6
2023-03-02 14:24:25 -07:00