Skip to content

mbed-os-6.3.0

Compare
Choose a tag to compare
@mbedmain mbedmain released this 16 Sep 15:28
· 3619 commits to master since this release

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

Summary

This release contains additional cloud connectivity integrations with examples of how to use Microsoft Azure IoT and Google Cloud IoT with Mbed OS.

We also release a new BLE integration test suite that allows both hardware vendors and developers the ability to run BLE tests as part of their development efforts.

Further changes are made to the Mbed directory structure as we prepare the code base for the new build tools we are developing.

Support is added for the Arm Musca-S1 platform, a collaboration between Arm and Samsung Foundry to create the industry’s 1st PSA Certified Arm-based Smart IoT Device demonstrator enabling secure eMRAM-enabled Root of Trust (RoT) and secure Root of Execution (RoE) IoT Device services.

Migration Guide

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

Add RADIUS configuration options to Wi-SUN

13573

Summary of changes

Added support for external RADIUS server configuration to Wi-SUN Border Router.
Added configuration functions and .json configuration options for:

  • external RADIUS server IPv6 address
  • RADIUS shared secret.
  • RADIUS client retry trickle timer configuration. This can be used to set how fast
    the RADIUS client retries Access-Request messages to RADIUS server in case reply
    from server is not received.
    This combines following RADIUS configuration pull requests from feature-wisun:
    #13412
    #13517
    #13530

Impact of changes

None

Migration actions required

None

Fix pwm out resets after suspend

13492

Summary of changes

Fixed a Problem where PwmOut resets settings after suspend.
The problem is described here: #13480

Impact of changes

Fixes: #13480

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

Tools: Error when running mbed test --compile/run list

  • Description: The error, "pkg_resources.DistributionNotFound: The 'mbed-ls==1.*,>=1.5.1' distribution was not found and is required by icetea, mbed-flasher" is observed when running the command "mbed test -m K64F -t ARM --icetea --compile-list -vv".
  • Workaround: None
  • Reported Issues: #8064
  • Priority: Major

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 test and Nightly test, we also ran a branch test on mbed-os 6.3.0-RC2

Results for the tests we run on CI (PR, Nightly, Branch):

  • Compilation tests: ARMC6 - SOME FAILS
  • Compilation tests: GCC_ARM - ALL PASSED
  • Unittest - ALL PASSED
  • Greentea Test - SOME FAILS
  • Example Test - ALL PASSED
  • Exporter Test - SOME FAILS
  • Cloud Client integration Test - ALL PASSED
  • Memory Usage Test - ALL PASSED
  • Wisun Mesh Test - ALL PASSED

We have the following issues on the test jobs:

  • IOTCORE-1717 - ARMC6 Failed to build mbed OS with LTO options
  • IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
  • IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2
  • MBOTRIAGE-2756 - CY8CPROTO_062_4343W failed at cordio-tests-cordio_hci-driver Greentea Test
  • IOTPAN-662 - NUCLEO_F303RE targets failed in nightly test with WIFI-SCAN test

Test Numbers

  • Greentea test number 1495 (+0)
  • Unittest number 735 (+0)

Toolchain Coverage

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

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

The following toolchains have been dropped since the mbed OS 5.15.0 release

  • ARM compiler 5.06 update 6
  • IAR 8.42

Targets Coverage

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

Greentea test targets have been changed slightly:

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

  • NRF52840_DK
  • DISCO_L457VG_IOT01A
  • K64F
  • K66F
  • NUCLEO_F411RE
  • NUCLEO_F429ZI
  • NUCLEO_F767ZI
  • CY8CPROTO_062_4343W

Coverity

The number of total issues increased from 92 to 108, and high impact issues increased from 35 to 49.
This is thought to be mainly caused by the restructuring of the mbed-os folders.

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

No change from mbed-os-6.2.0

Contents

Ports for Upcoming Targets

13538
Ambiq AMA3B1KK and SparkFun Artemis Boards Target Update

13509
Adding STM32L071xx target

13196
Add ARM_MUSCA_S1 as a new target platform

13006
NUCLEO_G031K8: Add new target

Fixes and Changes

13594
PSA - Generate root of trust before accessing kvstore

13592
Add test examples.json config for Azure and Google Cloud

13587
MCU_STM32G031xx : decrease boot-stack-size

13584
Revert "Always build both .hex and .bin files"

13583
STM32: correct few Arduino pins value

13580
TEST: Update example scripts for cmake feature

13579
double negation fixed and ifs normalised

13574
Fix a typo in PeripheralPins.c for EFM32GG11

13573
Add RADIUS configuration options to Wi-SUN

13572
STM32H7 ADC: clock selection lost after deepsleep

13564
STM32Gx: LSI clock selection when LSE is not available

13562
Nanostack release v12.5.0

13558
STM32L4+ : SRAM3 is powered off in deepsleep

13552
general_block_device test: support non-uniform erase sizes

13547
Nuvoton: Fixed NUC472 SD buffer alignment

13546
Remove duplicate mbed-os/TESTS/host_tests scripts

13544
TEST: remove MUSCA_B1 from attestation example test

13542
B_L4S5I_IOT01A: new ST target

13538
Ambiq AMA3B1KK and SparkFun Artemis Boards Target Update

13536
Nuvoton: Fix degrading QSPI to SPI

13533
Update test examples.json AWS config

13531
Nuvoton: Set M252 Flash internal size for kv store test

13524
device_management.py supports application access keys

13523
STM32H7 ADC: No MultiMode configuration needed for ADC2

13522
STM32 USB connect procedure update

13518
add option for a custom cert in connectivity-netsocket-netsocket-tls

13516
Cypress: Rename CY8CKIT_064B0S2_4343W to CY8CKIT064B0S2_4343W

13514
STM32 USB: use SNG_BUF

13513
STM32 readme update

13509
Adding STM32L071xx target

13502
Targets: Add default "supported_form_factors" for all targets

13501
USB-DEVICE tests: move host scripts

13497
Updating mbed-mesh-api

13494
Add WiSun network size configs in JSON

13493
Fix SSID bug on Cypress Targets

13492
Fix pwm out resets after suspend

13489
Refactor hal directory

13486
Fix heap stats overhead_size calculation

13484
KVSTORE tests: move directories

13481
STM32G0 compilation warning

13476
Fix trivial compiler Warnings

13475
Ble remove user facing abstraction

13473
Nanostack release v12.4.0

13472
Fix for targets where DEVICE_SPI or DEVICE_INTERRUPTIN are defined but not both

13470
Update dragonfly linkers

13469
Support ignore list for spell checks

13468
Add ccache to travis

13467
Cypress: Update psoc6cm0p library to 1.2.1.676

13464
adr: Recommend CMSIS component source structure

13462
BLE remove address from API to cancel connect

13460
Move PSA FEATURE_EXPERIMENTAL_API directory to platform

13459
platform: fix internal platform headers

13456
USBPhyHw: remove mbed.h inclusion

13452
Use boot stack size from config system

13449
BLE: Fix writing attributes larger than MTU size

13445
Refactor storage COMPONENT_xx directory

13443
Update mbed-client-cli from v0.5.0

13435
ci: Update arm-none-eabi- version

13434
Move Callback tests to platform, USB tests to drivers

13433
Refactor device_key

13430
Relocated libraries in features/frameworks

13425
Fix bare metal support on Cypress targets

13416
Update CYSBSYSKIT_01

13400
Call mbed_tfm_init before mbed_toolchain_init

13399
QSPIF: options to preset reset sequence for legacy SFDP

13397
Provide enablement of nrf52840 SPIM

13375
Add GR_MANGO as a new target

13196
Add ARM_MUSCA_S1 as a new target platform

13006
NUCLEO_G031K8: Add new target

Using this release

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

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