microPlatform update 35

Posted on Nov 29, 2018

6 min read

Summary

Zephyr microPlatform changes for 35

A very active snapshot from Zephyr as part of the v1.14 development cycle. Tree-wide refactoring for DTS, board.h include removal and more logging changes. MCUboot and sample applications updated as a result.

Linux microPlatform changes for 35

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

Zephyr microPlatform

Highlights

  • Zephyr v1.14 development snapshot with tree-wide refactoring
  • MCUboot merge from JuulLabs-OSS with updates due to upstream Zephyr changes
  • Sample applications get some updates due to upstream Zephyr changes

Components

MCUboot

Features

MbedTLS changes to support versions > 2.6.1

RSA image handling was changed so that MbedTLS versions greater than 2.6.1 would be compatible.

Bugs

Zephyr build fixed due to DTS changes

Due to Zephyr upstream changing the way dts_fixup.h defines the fixup definitions, MCUboot needed a patch to alter FLASH_DEV_NAME -> DT_FLASH_DEV_NAME.

Zephyr

Features

Use DT_ prefix in all defined labels not related to Kconfig

Several tree wide-patches hit this merge-up, and the first is a refactoring of all dtsfixup defines which pretended to be Kconfig settings due to their naming of CONFIG_. This was causing some confusion when attempting to figure out where various settings were generated. Instead of CONFIG__, all of these settings are now generated as DT_*. Enter quite a few patches and follow-up cleanup patches to make all of this happen.

Refactor LOG_MODULE_REGISTER and LOG_MODULE_DECLARE macros

The LOG_MODULE_REGISTER and LOG_MODULE_DECLARE macros now take log level as optional parameter. LOG_MODULE_DECLARE can now also be used in static inline functions in headers. This was another tree-wide set of patches which affected every file with Logger configuration.

Remove board.h from boards that don't need it

Last of the tree-wide patches that might might affect external code, was a removal of unneeded board.h files. These typically only included <soc.h>. If you see a "file not found: board.h" error during your next compile, hopefully you'll remember what you saw here and just remove the offending "#include <board.h>" and replace it with "#include <soc.h>" if needed.

Dynamic interrupt API for the kernel

Zephyr wants to support hypervisor applications such as ACRN which presents virtual devices via PCI enumeration. In this case, the interrupt configuration is not known at build time. To support this and other use-cases, dynamic interrupt APIs were added to the kernel.

Additional SoC and board support

The STM32F143xG SoC and ST B-L072Z-LRWAN1 board were added to to Zephyr.

Bugs

Scheduler race condition fixed in k_sched_time_slice_set()

If k_sched_time_slice_set() was interrupted by a timeslice event, the slicing state could be corrupted. Fixed by using the existing lock sched_lock around the operations.

Fix DTS fixup file location for external SoCs

If you were wondering why the dts_fixup.h file in your external SoC wasn't automatically being included like the dts_fixup.h files in the SoCs inside Zephyr, then wonder no more! It was a bug. And now it's fixed.

hawkBit and MQTT sample application

Features

Not addressed in this update

Bugs

DT_* prefix naming update

This affected some FLASH_DEV_NAME references in our sample.

Remove board.h references

Upstream Zephyr removed the board.h file for many boards that didn't actually need them. In our case, we need to remove the left-over board.h references in our samples.

LWM2M sample application

Features

Not addressed in this update

Bugs

DT_* prefix naming update

This affected some FLASH_DEV_NAME references in our sample.

Remove board.h references

Upstream Zephyr removed the board.h file for many boards that didn't actually need them. In our case, we need to remove the left-over board.h references in our samples.

Fix WNC-M14A2A modem support

Upstream Zephyr is moving all of the generic settings belonging to "shield" type hardware out of the board and SoC files. This eliminates copy/paste errors as well as duplicated settings. Instead, these should be configured as Zephyr "shields" which have their own directory and settings per board. However, the WNC-M14A2A cannot be configured just yet as a shield due to on-going discussion regarding exposure of GPIO pins in a standard way. So the settings were all moved to the upstream LwM2M client sample for now.

Following along with that change, we've introduced the same files to the Foundries.io LwM2M sample so that the modem functionality is not lost.

Linux microPlatform

Highlights

  • NetworkManager updated to the 1.14.4 release.
  • Core layer updates based on the latest OE/Yocto master changes.

Components

Meta RaspberryPi

Features

Layer Update

Bcm sdio.txt linux-firmware files updated based on latest from raspbian. Firmware updated to 20180924. Userland updated to the latest master (d574b51a60).

Bugs

Not addressed in this update

Meta Freescale

Features

Layer Update

Imx-dpu-g2d updated to 1.4.8. Imx-gpu-g2d updated to 6.2.4.p1.8. Imx-gpu-viv updated to 6.2.4.p1.8. Kernel-module-imx-gpu-viv updated to 6.2.4.p1.8.

Bugs

Not addressed in this update

Meta Freescale 3rdparty

Features

Layer Update

Linux-boundary updated to a141bcc8. U-boot-boundary updated to ca185fc7.

Bugs

Not addressed in this update

Meta RISC-V

Features

Layer Update

Riscv-fesvr updated to 8d108a0a64. Riscv-pk updated to 6ebd0f2a46. Riscv-spike updated to 65c8ac48af.

Bugs

Not addressed in this update

Meta Updater Layer

Features

Layer Update

Aktualizr updated to the 348822d914 revision. Selftest qemu KVM support via QEMU_USE_KVM.

Bugs

Not addressed in this update

OpenEmbedded-Core Layer

Features

Layer Update

Bind updated to latest lts 9.11.5. Dmidecode updated to 3.2. Elfutils updated to 0.175. Ethtool updated to 4.19. Gnupg updated to 2.2.11. Gnutls updated to 3.6.4. Gobject-introspection updated to 1.58.1. Gpgme updated to 1.12.0. Gstreamer1.0 updated to 1.14.3. Harfbuzz updated to 2.1.3. Iproute2 updated to 4.19.0 Libgcrypt updated to 1.8.4. Libpcre2 updated to 10.32. Libsolv updated to 0.7.1. Libva updated to 2.3.0. Ltp updated to 20180926. Man-db updated 2.8.4. Mtools updated to 4.0.19. Nasm updated to 2.14. Ncurses updated to 6.1+20181013. Nspr updated to 4.20. Openssh updated to 7.9p1. Openssl10 updated to 1.0.2q. Rng-tools updated to 6.6. Rpcbind updated to 1.2.5. Sqlite3 updated to 3.25.3. Strace updated to 4.25. Tiff updated to 4.0.10. Vala updated to 0.42.3.

Bugs

bind

A denial of service flaw was discovered in bind versions that include the "deny-answer-aliases" feature. This flaw may allow a remote attacker to trigger an INSIST assert in named leading to termination of the process and a denial of service condition.

gettext

Double free in default_add_message in read-catalog.c.

Meta OpenEmbedded Layer

Features

Layer Update

NetworkManager updated to 1.14.4.

Bugs

Not addressed in this update

Meta LMP Layer

Features

Layer Update

Aktualizr-runtime-prov removed as it is not required anymore. Pi-bluetooth changed to force hciattach with noflow on RaspberryPi.

Bugs

Not addressed in this update

Related posts