Skip to content

mbed-os-6.11.0

Compare
Choose a tag to compare
@mbedmain mbedmain released this 24 May 11:55
· 1539 commits to master since this release

We are pleased to announce the Mbed OS 6.11.0 release is now available.

Summary

This release doesn't contain any major new features, but we've made some changes to APIs to extend existing functionality, added an experimental API to our CAN APIs, and marked some APIs as deprecated, hence minor release increment.

Migration Guide

This section lists specific changes which are part of this release and may
need special attention.

Deprecate broken TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP in kv_config

14657

Summary of changes

Replaces #14490: changed from removal to deprecation due to the Mbed OS release model.
NO_RBP (no rollback protection) is intended to not require an internal TDB, however, DeviceKey, which we use to derive SecureStore's encryption key, still does. Currently, no internal TDB is created with these two configurations, meaning there's no way to store the DeviceKey and SecureStore doesn't work. The configurations TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP are broken due to this design flaw.
This PR deprecates the non-working configurations, with their documentations removed but code and configurations kept with deprecation warnings. They will be completely removed from the next major release.

Impact of changes

Existing applications that use TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP will still be able to compile for now, until we fully remove the two configurations in the future. But they have never been functional, so no application should have ever been able to use them.

Migration actions required

Applications that have storage.storage_type set to TDB_EXTERNAL_NO_RBP or FILESYSTEM_NO_RBP should switch to use TDB_INTERNAL, TDB_EXTERNAL, FILESYSTEM or default depending on their use cases.

Add API to get Wi-SUN Neighbor Table

14619

Summary of changes

Added nbr_info_get API to get Wi-SUN neighbor table information in mbed-mesh-api.
mesh_nw_statistics_t structure in mbed-mesh-api has been updated with more statistics of the Wi-SUN interface.
This is upstream of PR#14586

Added API to reset MAC statistics and Wi-SUN statistics

14553

Summary of changes

Added API to reset MAC statistics and Wi-SUN statistics.
This is copied from #14439

Implement polymorphism for CAN driver

14336

Summary of changes

This PR introduces experimental polymorphism for the CAN C++ API. This allows alternate implementations (eg: external CAN interfaces) that are compatible with the internal implementation.
See #13209 for the surrounding discussion.

Impact of changes

None, it only affects the user if they have the EXPERIMENTAL_API feature enabled.

Migration actions required

None

Known Issues

We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this section is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.

For more information about an issue, contact us on the forum.

TLS: IP addresses in the X.509 certificate subjectAltNames

  • Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a BADCERT_CN_MISMATCH error is returned.
  • Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
  • Reported Issue: Issue reported by a customer in email.
  • Priority: MAJOR

TLS: Mismatch of root CA and issuer of CRL not caught

  • Description: The x509_crt_verifycrl() function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.
  • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
  • Reported Issue: Reported by a partner.
  • Priority: MAJOR

TLS: Self Test Failure with Some Hardware Accelerators

  • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory.
    All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines.
  • Workaround: There are no known workarounds.
  • Reported Issue: Reported by the development team.
  • Priority: MAJOR

TLS: Hardware-accelerated hash creates CBC padding oracle in TLS

  • Description: The current countermeasures against CBC padding oracle attacks in Mbed TLS call a low level internal API. The implementation of this API might not be possible with the hardware accelerator API and even if it is, the timing might still have detectable differences. The lower level API is called out of sequence and accelerators that are not aware of this might crash.
  • Workaround: Keep MBEDTLS_SSL_ENCRYPT_THEN_MAC enabled in mbedtls/config.h and enable the Encrypt-then-MAC extension (RFC7366) on the peers side.
  • Reported Issue: Reported by the development team.
  • Priority: MAJOR

Crypto: Mbed OS ATECC608A example fails to build with IAR

  • Description: The current ATECC608A secure element example fails to build with the IAR toolchain. The Microchip-provided cryptoauthlib library does not build with IAR.
  • Workaround: Use a different toolchain, like GCC_ARM.
  • Reported Issue: MicrochipTech/cryptoauthlib#116
  • Priority: Minor

Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0

  • Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
  • Workaround: The workaround is to use other compilers.
  • Reported Issue: IOTTHD-3898
  • Priority: Major

Test Report

Release automated CI test

In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.11.0-RC1

Results for the tests we run in CI on mbed-os 6.11.0-RC1 (nightly):

  • Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
  • Build Greentea GCC_ARM - ALL PASSED
  • Build Examples ARMC6 - ALL PASSED
  • Build Examples GCC_ARM - ALL PASSED
  • Build Cloud Examples ARMC6 - ALL PASSED
  • Build Cloud Examples GCC_ARM - ALL PASSED
  • Build CMAKE Examples ARMC6 - ALL PASSED
  • Build CMAKE Examples GCC_ARM - ALL PASSED
  • Build CMAKE Cloud Examples ARMC6 - ALL PASSED
  • Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
  • Unittest Test matrix - ALL PASSED
  • GreenTea test matrix - ALL PASSED
  • Examples test matrix - ALL PASSED
  • CMAKE Examples test matrix - ALL PASSED
  • Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
  • Cloud Client integration Test - ALL PASSED
  • Memory Usage Test - ALL PASSED

Toolchain Coverage

In the mbed OS 6.11.0 release. we are testing the following toolchains:

  • ARM compiler 6.15.0
  • GCC_ARM 9-2019-q4-major

Targets Coverage

In mbed OS 6.11.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.

At the time of the mbed-os 6.11.0 release, we run the greentea tests on the following targets:

  • ARM_MUSCA_S1
  • DISCO_L457VG_IOT01A
  • K64F
  • K66F
  • NRF52840_DK
  • NUCLEO_F429ZI
  • NUCLEO_F767ZI
  • NUCLEO_WB55RG
  • FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A

We have the following issues on the test jobs:

  • MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
  • IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler

Test Numbers

Greentea test number 1721 (+0)
Unittest number 742 (+0)

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

Observed no significant changes from mbed-os-6.10.0

Contents

Ports for Upcoming Targets

14578
STM32 : new DISCO_WB5MMG target

14505
Adding NXP TARGET- MIMXRT1170_EVK

Fixes and Changes

14661
Delete STM32F401XE.ld

14657
Deprecate broken TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP in kv_config

14656
CMake: Only force Ninja response files on Windows

14655
mbedtls_stub: Add missing include

14653
requirements: Relax Click version requirement

14651
STM32L4 update drivers version to CUBE V1.17.0

14631
driver/I2C: STm32: Updated HAL_I2C_ErrorCallback function to store information about error reason in obj_s->event

14628
ARDUINO_UNO form factor and new PinNames for MIMXRT1050 target

14627
Dispatch Gap::stopPeriodicAdvertising to the right function.

14626
STM32WB update drivers version to CUBE V1.11.1

14625
BLE: Fix overwriting attribute data from read auth callback

14624
error: use __INITIAL_SP from cmsis instead of RTX one

14623
Updated SDK 2.9.1 and added Flash Support for MIMXRT1170_EVK

14619
Add API to get Wi-SUN Neighbor Table

14612
CAN: fix slave CAN start filter bank setup

14609
STM32L0 update drivers version to CUBE V1.12.0

14605
BLE: Fix traces

14603
Avoid init class definition for compatibility

14602
Deprecate indications event onConfirmationReceived

14599
STM32WL: enable lora with baremetal

14594
STM32_gen_PeripheralPins.py : TargetName correction

14589
fix(docs): corrects various typos in project documentation

14588
Add v8.1-M architecture awareness

14587
create symlink for all sub examples which has mbed-os.lib

14585
add #include "wsf_os.h" into hci_drv_apollo3.h

14583
musca: Add detect_code for MUSCA B1

14582
Update TF-M to v1.3.0

14581
STM32G4 : serial issue with LP_UART1

14578
STM32 : new DISCO_WB5MMG target

14576
Trace: Change tr_debug color from gray to bright blue

14573
Nanostack release v13.0.0

14571
CMake: STM32: Add missing emac init files

14569
remove cmake specific example list

14567
M487: Resolve WDT reset H/W limit

14561
Add bare metal support to Renesas targets

14555
Nuvoton: Fix hal_watchdog_kick() with WDT stopped

14554
HAL ticker tests update

14553
Added API to reset MAC statistics and Wi-SUN statistics

14551
Travis: update to focal dist

14550
Fix DeviceKey documentation regarding RoT

14548
STM32F4 update drivers version to CUBE V1.26.1

14542
STM32F3 update drivers version to CUBE V1.11.2

14540
Improve condition for declaring struct timeval

14539
STM32G0 update drivers version to CUBE V1.4.1

14538
Cmake: Add MBED_TEST_MODE macro

14537
Better document MemoryPool behaviour

14505
Adding NXP TARGET- MIMXRT1170_EVK

14497
Check for duplicate status callbacks before adding to the list

14451
STM32 : enable PinMap_GPIO table

14336
Implement polymorphism for CAN driver

13791
mbedtls: Don't attempt to use default_random_seed

Using this release

You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.11.0".

If you need any help with this release please visit our support page, which provides reference links and details of our support channels.