microPlatform update 36

Posted on Dec 7, 2018

5 min read

Summary

Zephyr microPlatform changes for 36

Busy portion of the Zephyr v1.14 development cycle, with some regressions needing to be weeded out. No changes to MCUboot, but the samples saw adjustments for API movement, progressive erase addition and Kconfig changes to allow for OpenThread and 802.15.4 configurations.

Linux microPlatform changes for 36

Core layer updates based on the latest OE/Yocto master changes.

Zephyr microPlatform

Highlights

  • Zephyr v1.14 development snapshot with fixes for a regression and a build break
  • Samples have progressive erase functionality added for nRF52840 HW

Components

MCUboot

Features

Not addressed in this update

Bugs

Not addressed in this update

Zephyr

Features

MQTT library receives socket support

A new socket-based MQTT implementation was added to Zephyr including support for TLS transport.

The existing netbuf-based implementation was marked as legacy. Part of this transition changed the net_pkt-related MQTT Kconfig options from CONFIG_MQTT_ to CONFIGMQTT_LEGACY_. This will affect out-of-tree samples.

The in-tree MQTT publisher sample and related tests were transitioned to the socket-based implementation.

CoAP library plays nice with sockets

The CoAP library was split into 2 implementations chosen via Kconfig for net_pkt and socket-friendly (flat buffers are used) support. The net_pkt support was marked as deprecated which causes all sorts of warnings during the build. Samples continuing to use net_pkt support must explicitly choose the CONFIG_COAP_NET_PKT=y config.

New CoAP samples demonstrating socket support were added to samples/net/sockets/*.

So long RPL and thanks for all the fish

RPL support has been deprecated due to the maintainer being unable to continue supporting the protocol. It's possible that another maintainer can be found in the future, in which case, the protocol will be ... un-deprecated.

CMake support for images without gaps

User can now specify a Kconfig variable CONFIG_BUILD_NO_GAP_FILL to eliminate gaps in any generated hex/bin/s19 files.

This is done to support building in a multi image context, where several image files will be merged together.

Additional SoC and board support

ST's STM32L471xG SoC is now supported in Zephyr as well as Silicon Labs EFM32PG12B. The EFM32PG-STK3402A board demonstrates the EFM32PG12B SoC.

Bugs

Kernel clock timeout race condition and regression fix

Near the end of this cycle, a patch was merged to fix a race condition in the clock timeout code. This introduced a regression for some Nordic HW. We've taken an upstream patch to fix this regression.

nRF I2C speed configuration from dts and build break fix for newlibc

Another patch near the end of the cycle added DTS configuration of I2C speed for nRF. However, the use of static_assert fails when compiling with NEWLIBC. We pulled an upstream patch to fix this issue.

Python version detection on Windows fixed

When a Windows-user had both Python2 and Python3 in their path, and Python2 was earlier, the wrong python would be detected.

To fix this until CMake 3.13 release, Zephyr now has a copy of 'FindPythonInterp' which has been fixed.

shell support still evolving

Several shell-related issues were addressed in this cycle:

  • Handle RX ring buffer full case
  • Add initial log level for rtt and uart backends
  • fix RTT backend not returning TX amount
  • Fix log messages queueing for multiple instances
  • migrate tests to the new shell

hawkBit and MQTT sample application

Features

introduce ERASE_PROGRESSIVELY config

Some hardware may have very long flash erase times, and this affects the stability of many samples which perform large erases. This can be fixed by progressively erasing blocks as needed. Currently, this config is enabled for nRF52840 HW.

Bugs

Only enable Bluetooth if 802.15.4 and OpenThread aren't

Allow for OpenThread and 802.15.4 configuration by not enabling Bluetooth unconditionally.

fix MQTT config selections

The netpkt-based MQTT APIs are now deprecated and moved to MQTT_LEGACY* style config settings. Adjust our sample to match that upstream change.

LWM2M sample application

Features

introduce ERASE_PROGRESSIVELY config

Some hardware may have very long flash erase times, and this affects the stability of many samples which perform large erases. This can be fixed by progressively erasing blocks as needed. Currently, this config is enabled for nRF52840 HW.

Bugs

Only enable Bluetooth if 802.15.4 and OpenThread aren't

Allow for OpenThread and 802.15.4 configuration by not enabling Bluetooth unconditionally.

Make sure we disable BT_CTLR when 802.15.4 is used

Many of the nRF52 boards automatically enable BT_CTLR. This conflicts directly with 802.15.4, so we need to disable it explicitly in the 802.15.4 sample overlay.

Fix legacy CoAP API selection

Due to the way CoAP now works, the sample needs to explicitly select it and choose what kind of support (net_pkt or sockets).

Linux microPlatform

Highlights

  • U-Boot updated to the 2018.11 release.
  • U-Boot-Fslc updated to the 2018.11-based release.
  • Docker Compose updated to the 1.23.2 release.
  • Core layer updates based on the latest OE/Yocto master changes.

Components

Meta Freescale

Features

Layer Update

Linux-fslc updated to the 4.19-based fork. U-boot-fslc updated to the 2018.11-based fork.

Bugs

Not addressed in this update

Meta Freescale 3rdparty

Features

Layer Update

Baseboard support for PICO-Pi and PICO-Hobbit.

Bugs

Not addressed in this update

Meta Intel

Features

Layer Update

Ixgbe updated to 5.5.2.

Bugs

Not addressed in this update

Meta RISC-V

Features

Layer Update

Gdb updated to use the mainline tree. Machine support for qemuriscv32.

Bugs

Not addressed in this update

Meta Updater Layer

Features

Layer Update

Sota.conf now requires usrmerge.

Bugs

Not addressed in this update

Meta 96boards

Features

Layer Update

Ptable generation fixed for HiKey.

Bugs

Not addressed in this update

Meta Virtualization

Features

Layer Update

Lxc updated to 3.0.3. Libvirt updated to v4.9.0. Openvswitch updated to 2.10.1.

Bugs

Not addressed in this update

OpenEmbedded-Core Layer

Features

Layer Update

Gstreamer1.0 updated to 1.14.4. Libva-utils updated to 2.3.0. Openssl updated to 1.1.1a. U-Boot updated to the 2018.11 release.

Bugs

Not addressed in this update

Meta LMP Layer

Features

Layer Update

Python3-docker updated to 3.6.0. Python3-docker-compose updated to 1.23.2. Python3-docker-pycreds updated to 0.4.0. Python3-requests updated to 2.20.1.

Bugs

Not addressed in this update

Related posts