FoundriesFactory

microPlatform update 0.20

Summary

Zephyr microPlatform changes for 0.20

Zephyr v1.12 rc2, sample support for nRF52832 DK.

Linux microPlatform changes for 0.20

OSF Unified Linux Kernel updated to the 4.16.12 stable release. Initial support for QEMU RISC-V 64 and SiFive Freedom Unleashed U540 targets. New image lmp-mini-image for minimal OTA+ compatible images, currently used by RISC-V targets due lack of Golang support. Core layer updates based on the latest changes for the Yocto Thud (2.6) release.

Zephyr microPlatform

Summary

Zephyr v1.12 rc2, sample support for nRF52832 DK.

Highlights

Components

MCUboot

Features

Bugs

Zephyr

Features

Schedule(r) wrangling:

The dust appears to be settling for v1.12, but more changes are in the works for v1.13. Hold on to your hats.

CONFIG_TOOLCHAIN_VARIANT removed:

http://docs.zephyrproject.org/getting_started/getting_started.html

Kconfig cleanup:
zephyr_library_ifdef() removed:
Architectures:

Precious, precious MPU regions were freed up on various ARM SoCs by deleting existing entries for memory-mapped peripheral buses and other such areas in SoC configuration files. Access privileges for these areas are now determined by the special "background region", or default configuration, which allows RWX access for supervisor mode, and prevents user mode access. This frees up these scarce resources for use defining restrictions on other areas of memory, such as thread stacks.

Boards:
Drivers:

In order to address issues with entropy gathering, a new interrupt-safe source of entropy, entropy_get_entropy_isr(), was added to the API in include/entropy.h. An implementation is provided for nRF devices. This was aided by other initialization order changes which collectively allow the kernel to safely collect entropy earlier in its initialization.

Users of the w25qxxdv SPI flash driver have new Kconfig options allowing them to control chip select pins, which can be enabled and set using CONFIG_SPI_FLASH_W25QXXDV_GPIO_SPI_CS.

A new status_cb field was added to struct netusb_function, allowing such functions to define status callbacks. This new API was needed to fix some issues causing kernel crashes.

Driver support was added for STM32 low power UARTs (LPUARTs); this can be enabled with CONFIG_UART_STM32_LPUART_1.

Kernel:

http://docs.zephyrproject.org/kernel/threads/scheduling.html#meta-irq-priorities

A patch was merged which enables ongoing work producing a requirements traceability matrix from requirements to test cases in APIs exposed by the main include/kernel.h. This adds Doxygen comments with requirement IDs to individual APIs, so it's technically documentation.

A simple deadline scheduling policy was implemented. See CONFIG_SCHED_DEADLINE for details.

Scripts:

Kconfiglib now warns if a string symbol's default value is not quoted.

Bugs

Arches:

Optional mitigation was added for Spectre variant v4 on Intel chips; see CONFIG_DISABLE_SSBD for details.

Bluetooth:

Beyond the Kconfig cleanup, a small number of fixes were merged, including a compiler-version specific fix for Mesh and a fix for non-priority event handling in the core controller code. Missing checks were also added for settings value reads.

The Bluetooth subsystem is one of Zephyr's best tested, and the small size of the change list in this period reflects this.

Boards:
Continuous Integration:

External libraries are no longer tracked in code coverage measurements, improving the accuracy of the code coverage output for Zephyr-specific code.

Device Tree:
Documentation:

Missing documentation was added covering system calls and userspace, kernel and threading APIs, POSIX compatibility, VLANs, network traffic classification, the sanitycheck script used by CI, and more.

Numerous spelling errors were corrected in a series of commits, each targeting specific areas.

Drivers:

Apart from the Kconfig cleanup, STM32-specific driver fixes featured prominently, affecting SPI, UART, Ethernet, and GPIO. Fixes for drivers needed by the new intel_s1000_crb board were merged affecting I2S and DMA.

External:

mbedTLS was updated to version 2.9.0 from 2.8.0; this brings security fixes along with other improvements.

A subtle power-related USB fix for STM32 was merged, adding a patch to Zephyr's copy of the STM32L4 HAL.

Kernel:

A race was fixed in the mempool allocator. Some architecture-specific fixes were made that the meta- IRQ addition exposed. The kernel now uses the new ISR- safe entropy source during early initialization, before threads are available, and uses the entropy API directly to initialize stack canaries.

Libraries:
Networking:

Fixes went in around the subsystem addressing problems where incorrect timeouts were set due to use of MSEC() or raw numbers instead of K_MSEC(), and other related issues.

A boot hang related to invalid use of a receive queue was fixed.

A security session initialization bug affecting 802.15.4 was fixed.

Most of the other fixes appear to be of the usual variety: a null pointer dereference, packet management and checksumming issues, edge cases and error handling, etc.

Samples:

The coap_server sample properly handles the case where the client no longer wishes to receive notifications following an initial observe operation. The coap_client application also saw general improvements and fixes.

The OpenAMP sample has improved documentation and comments.

Scripts:

The elf_helper.py library used by the build system to manipulate Zephyr binaries got some cleanup and an architecture-specific corner case fix.

Issues in west preventing "make flash" etc. from working on certain boards, as well as running as root on Unix, were fixed.

Fixes were made to genrest.py, which generates Zephyr's Kconfig symbol documentation.

Storage:

As might be expected with new code, a variety of bug fixes went in to the non-volatile storage (NVS) layer. These are mostly related to buffer management and padding, and also include a fix related to device addressing.

A pile of issues in the disk subsystem discovered by Coverity were fixed with extra NULL pointer checks.

Some misleading menuconfig prompts related to flash parameters were fixed.

Testing:

hawkBit and MQTT sample application

Features

Network shell enabled for nRF52840 DK:
Support for nRF52832 DK:

Bugs

Work queue fix:
Don't force Bluetooth just because it is available:

LWM2M sample application

Features

Network shell enabled for nRF52840 DK:
Support for nRF52832 DK:

Bugs

nRF52840 LED polarity fix:
Work queue fix:
Don't force Bluetooth just because it is available:
Remove obsolete Kconfig:

Linux microPlatform

Summary

OSF Unified Linux Kernel updated to the 4.16.12 stable release. Initial support for QEMU RISC-V 64 and SiFive Freedom Unleashed U540 targets. New image lmp-mini-image for minimal OTA+ compatible images, currently used by RISC-V targets due lack of Golang support. Core layer updates based on the latest changes for the Yocto Thud (2.6) release.

Highlights

Components

OpenEmbedded-Core Layer

Features

Layer Update:

Bugs

qemu:
util-linux:

Meta OpenEmbedded Layer

Features

Layer Update:

Bugs

Meta Intel

Features

Layer Update:

Bugs

Meta 96boards

Features

Layer Update:

Bugs

Meta Freescale

Features

Layer Update:

Bugs

Meta RaspberryPi

Features

Layer Update:

Bugs

Meta OSF Layer

Features

Layer Update:

Bugs

linux-osf:

Meta Updater Layer

Features

Layer Update:

Bugs

Related posts

Keep up to date with Foundries.io