Skip to content

mbed-os-6.13.0

Compare
Choose a tag to compare
@mbedmain mbedmain released this 16 Jul 13:57
· 945 commits to master since this release

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

Summary

The main changes in this release are updates to existing functionality and APIs; so the addition of a RawCan class, Cortex-A5 support, changes to the BLE manual security manager functionality and greentea CMake tests refactored for supporting PSA.

Migration Guide

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

CMake: Add CMake to mbed-psa greentea tests

14828

Summary of changes

  • Changed mbed_greentea_add_test macro to require TEST_SOURCES for all files, removing assumption of main.cpp
  • Refactored all pre-existing greentea tests to add main.cpp using TEST_SOURCES
  • Added a CMakeLists.txt for each test suite in Mbed OS PSA.
  • Moved /pal and /val directories into a separate /test_abstraction_layer directory and combined them into one CMake target, which is linked to by the test suites that require them.
    Fixes #14680

Impact of changes

None.

Migration actions required

None.

BLE: Manual BLE security manager db synchronisation

14824

Summary of changes

Adds new BLE API call to manually attempt to synchronise the security manager DB.

Feature: Make changes for Cortex-A5 support

14718

Summary of changes

It's a PR that add Cortex-A5 support for mbed-os custom targets.
Unify some __CORTEX_A macros.
__MBED_CMSIS_RTOS_CM and __MBED_CMSIS_RTOS_CA9 have been removed from CMake as they're not used anymore.

drivers: Add RawCan object

14688

Summary of changes

RawCAN class (unlocked apis) is added, which can be used in case if CAN object is accessed by a single thread.

Specific for ST CAN HAL implementation:
can_read is deferred to thread context when rx interrupt is enabled.
As can_read is protected by mutex(mutex is not allowed in ISRs in Mbed) and read is only possible way to clear interrupts in bxCAN in STM controllers, reads are to be deferred to thread context.

CYW43XXX: Add generic transport layer

14227

Summary of changes

Aim of this pr is to add a generic transport layer to COMPONENT_CYW43XXX using unbuffered uart. CYW43XXX_UNBUFFERED_UART directive has been added to keep Cypress hal support available.
40fd126 Adds then CYW43XXX support to PORTENTA_H7 target.

Impact of changes

COMPONENT_CYW43XXX

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.13.0-RC1

Results for the tests we run in CI on mbed-os 6.13.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.13.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.13.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.

At the time of the mbed-os 6.13.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
  • NUMAKER_IOT_M487
  • 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 1723 (+0)
Unittest number 741 (+0)

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

Observed no significant changes from mbed-os-6.12.0

Contents

Ports for Upcoming Targets

Fixes and Changes

14915
STM32 Fix i2c_compute_timing() API

14913
802.15.4 stm-s2lp-rf-driver update to v1.0.10

14905
STM32 : README updates about custom boards

14899
STM32WL: correct CMakeLists.txt for STM32WLE5xC

14898
Fix gcc_arm linker script for stm32f407xg targets

14897
ST BLUENRG BLE: STWIN SensorTile board introduction

14896
Move connectivity nanostack libservice stub

14895
ADC: STM32H7: Skip Negative input analog channels (INN)

14890
Move connectivity mbedtls stubs

14888
Portenta: Add BLE support using CYW43XXX generic transport layer

14887
Updated can bit timing parameters as per the ISO11898-2

14884
Remove the UNITTEST macro from production code

14882
Unit tests: storage: Only use headers, sources and definitions needed by each test

14881
Standard Pin Name: LED1 issue for targets without LED

14876
CMake: greentea: Remove dependency on global MBED_PATH

14875
enable google and azure example application tests in ci

14874
CMake: Replace MBED_TEST_LINK_LIBRARIES with MBED_TEST_BAREMETAL

14873
Move connectivity netsocket stubs

14872
Add STM32WLE5 for custom targets LORA_E5 and RAK3172

14870
CMake: Remove mbed-stubs-rtos-headers library

14864
analogout: STM32: modified analogout_free api

14862
Unit tests: Move storage stubs into the storage directory

14850
PSA: Fix compile error with NV seed

14849
SPIFBlockDevice: Add mbed namespace to BD_ERROR_DEVICE_ERROR

14844
Analogout free implementation for F4/F7/H7 boards

14843
InterruptIn : STM32: Implemented error catching for multiple gpio on the same irq line

14842
Move connectivity lora stubs

14838
Eth: STM32: Updating documentation on mbed_otp_mac_address()

14837
K64F: Fix pin names and migrate to Arduino Uno form factor

14835
Move stubs cellular headers

14834
Move connectivity cellular stubs

14828
CMake: Add CMake to mbed-psa greentea tests

14827
Move hal stubs to hal directory

14826
CMake: unit-tests: Make events UNITTESTS only depend on headers it uses

14824
BLE: Manual BLE security manager db synchronisation

14823
Move events stubs to events dir

14822
STM32H7: correction for FLASH API for CM4

14820
BLE: Clarify ble event docs with crossreferences

14819
Move rtos stubs to the rtos directory

14817
Add system time read/write callbacks to mbed-mesh-api

14816
Nanostack release v14.0.0

14815
Enable PSA tests on K64F/K66F and fix missing PSA Crypto init in TLSSocketWrapper

14814
BG96: Add correct get_ip_address implementation

14813
CMake: unit-tests: Make drivers unittests only depend on headers it uses

14808
driver/i2c: STM32: I2C performance issue solved.

14807
M2354: inherit PSA_V8_M devices

14803
Use standalone greentea-client

14787
Cypress Asset Update

14786
Move mbed-stubs-drivers to the drivers directory

14783
tfm-post-build: Don't capture subprocess stdout

14780
Update python requirements

14778
CAN TxIRq callback never called -STM32G474

14776
driver/i2c: STM32: I2C memory usage and time delay in read-write solved.

14773
Move mbed-stubs-platform to the platform directory

14751
Fix for fcntl() flags definition

14718
Feature: Make changes for Cortex-A5 support

14716
Cellular: Add AT handler buffer size to configuration

14688
Solution for mutex problem in CAN read ISR

14677
Changes required in STM CAN read API

14663
Portenta: Add support to generic COMPONENT_WHD

14227
CYW43XXX: Add generic transport layer

Using this release

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

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