Skip to content

mbed-os-6.12.0

Compare
Choose a tag to compare
@mbedmain mbedmain released this 23 Jun 12:40
· 1256 commits to master since this release

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

Summary

The main changes in this release are further enhancements to connectivity with changes to socket APIs and to the Mesh support for Wi-SUN.

Support for one new target is added too:

Migration Guide

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

LWIP Broadcast socket option added

14752

Summary of changes

This PR adds Broadcast socket option

Impact of changes

No impact

Migration actions required

Not needed

Fix 'netsocket: several dynamic allocation results not checked' (#14210)

14740

Summary of changes

This changes adds std::nowthrow and the checks for allocation failure to all places in the netsocket portion that lacked it. This change addresses #14210.

Impact of changes

add_event_listener in NetworkInterface now returns an error if the method fails. Previous attempts to add the event listener would attempt to use an unchecked standard dynamically allocated ns_list_* item.
In other cases, the dynamically allocated items will now be checked, and if unsuccessful, will return after cleaning up any outstanding issues.
TCPSocket::accept will now check that its own internally allocated new TCPSocket call will succeed, and if not, will clean up the stack resources. This should help when memory is low but an incoming connection requests a connection when the TCPSocket is listening.

Migration actions required

As new calls are now handled, code that did not check against this failure may now check for failure and handle it at the application layer.
add_event_listener now returns nsapi_error_t instead of void. The two return values possible are NSAPI_ERROR_OK and NSAPI_ERROR_NO_MEMORY in the case of memory allocation failure.

Mesh api: Added PHY mode, channel plan IDs and configuration functions

14629

Summary of changes

Support for Wi-SUN FAN v1.1 PHY mode ID and channel plan ID in Mesh API.

  • Enables using OFDM modulation with Wi-SUN stack.
  • This change is copied from PR: #14161
    Implemented domain configuration functions in mesh API:
  • Functions will set, get and validate the parameters using corresponding Nanostack API.
  • This change is copied from PR: #14251

Enable the RWW function of Macronix Flash MX25LW51245G in OSPI block device driver

14221

Summary of changes

Update PR #12644.
Add source code about RWW(read while write) in OSPI block device driver for using the RWW function Macronix octaflash MX25LW51245G to improve performance.

Impact of changes

Enable the RWW function of MX25LW51245G.

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

Contents

Ports for Upcoming Targets

14746
STM32WB: introduce STM32WB15CC NUCLEO

14441
M2354: Support Nuvoton's new target

Fixes and Changes

14801
BKE: fix statements outside correct feature guard blocks

14797
run example-tls on faster K64F board (than K66F)

14772
Improve implementation of Mbed TLS timing

14768
Update mbed-coap to version v5.1.11

14767
connectivity tests: early skip fix

14765
Fix unittest check

14760
mbedtls: Rename Mbed timing implementation

14756
mbedtls: Add an alt implementation of timing

14753
Add mbed prefix into atomic

14752
LWIP Broadcast socket option added

14750
Increase SPI stack size to 2048 for BlueNrg driver

14749
Fcntl setting improvement,

14748
Correct ufsi timing calculation

14747
BLE: fix advertising set termination event

14746
STM32WB: introduce STM32WB15CC NUCLEO

14743
Nuvoton: Support watchdog on M251/M261 series

14741
MbedTLS: Add definition checks for TRNG

14740
Fix 'netsocket: several dynamic allocation results not checked' (#14210)

14739
M2354: Substitute HIRC for HXT to clock PLL

14738
Gate ticker (timer0) clock on deepsleep for MAX32620FTHR

14737
BLE: Add cmake unittest fakes for BLE and events

14736
STM32 USB: update init

14734
STM32WL LORA: HW specific out of STM32WL_LoRaRadio class

14733
STM32H7 ADC : dual pad feature update

14729
tools/STM32 Modified Python script generates Peripheral Pins

14724
STM32G0: correct voltage scaling control

14722
STM32 TRNG: update init to match all configs

14721
Nuvoton: Enable no HXT/LXT configurability

14720
STM32L5: corrected voltage scaling when using MSI

14713
lgtm: Add initial LGTM configuration file

14710
BLE: support non-low power devices

14709
CMake: Remove forgotten debug message

14708
test: Fix function does not return a value warnings

14705
Fix frozen tools check never failing

14704
Pin name tests update

14702
Silence expansion-to-defined for nrfx

14701
Add Travis test to make sure text files are UTF-8 encoded

14699
STM32 astyle format

14698
STM32: Fixed I2C Bug

14697
TESTS: rename variable interface to fix broken tests

14693
Fix compilation errors with kvstore - TDB_INTERNAL option to store BLE bonding info

14692
STM32WB: improve FLASH size

14691
Add GitHub action for issue triaging script

14689
Information on Asynchronous SPI limitation on High Speeds

14687
STM32L5 update drivers version to CUBE V1.4.0

14686
STM32: correct __cplusplus brackets

14684
Fix missing as_entry method in KVStoreSecurityDb

14683
Baremetal tests: enable BLE tests with NUCLEO_WB55RG

14678
Serial: remove shadowing member variables

14675
i2c: start() should aquire the bus

14674
Update mbed-coap to version v5.1.10

14672
BLE: Fix advertising start and stop

14671
enable aws example test in CI

14670
STM32: add information in README for SLEEP feature

14669
STM32L152: Added ADC Bank_B functionality

14668
Driver: I2C: STM32F2/STM32F4/STM32L1: Fix alternate i2c read.

14667
Update GCC except.S to support ARMC6 and use GCC assembly with ARM toolchain in CMake

14665
Travis: Move frozen tools check to the end

14664
Enable FlashIAP for MCU_NRF52832

14662
Add CANMessage deep comparison operators

14659
STM32: make i2c_salve_read return the number of bytes read

14652
tls: Upgrade to Mbed TLS v2.25.0

14629
Mesh api: Added PHY mode, channel plan IDs and configuration functions

14617
Add legacy I2C/SPI pin aliases

14608
STM32H7 update drivers version to CUBE V1.9.0

14593
STM32F7 update drivers version to CUBE V1.16.1

14592
STM32G4 update drivers version to CUBE V1.4.0

14574
Fix string buffer length in UUID trace helper

14547
CMake: Remove all unittest.cmake script from test suite

14536
STM32: Add LP_TICKER and US_TICKER optimisation macro

14471
COMPONENT_WHD: make reusable code available for other targets

14441
M2354: Support Nuvoton's new target

14221
Enable the RWW function of Macronix Flash MX25LW51245G in OSPI block device driver

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

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

At the time of the mbed-os 6.12.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 1723 (+2)
Unittest number 741 (-1)

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

Observed no significant changes from mbed-os-6.11.0

Using this release

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

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