FoundriesFactory

microPlatform update 0.23

Summary

Zephyr microPlatform changes for 0.23

Zephyr's first batch of v1.13 patches; code cleanups to the sample applications.

Linux microPlatform changes for 0.23

OSF Unified Linux Kernel updated to the 4.16.18 stable release. Default GCC version was updated to the latest upstream 8.1 release.

Zephyr microPlatform

Summary

Zephyr's first batch of v1.13 patches; code cleanups to the sample applications.

Highlights

Components

MCUboot

Features

Bugs

Zephyr

Features

CONF_FILE can now be a CMake list:

A longstanding but lesser-known feature is that CONF_FILE can also be a whitespace-separated list of fragments; these will all be merged into the final configuration. Some samples use this feature to add board-specific "mix-ins" to the top-level prj.conf; see the led_ws2812 CMakeLists.txt for an example.

The "whitespace-separated" part of this feature is a holdover from when Zephyr used the Linux kernel's Makefile build system, Kbuild. Since moving to CMake, the whitespace separation has been a little bit less convenient, as CMake uses semicolon-separated strings as its internal "list" data type.

To make this feature cleaner in the new world order, CONF_FILE now also supports separation via semicolons. The old whitespace separation behavior is not affected to keep backwards compatibility. For example, setting the following at the CMake command line would merge the three fragments hello.conf, world.conf, and zephyr.conf into the final .config:

  -DCONF_FILE="hello.conf;world.conf zephyr.conf"
PWM on STM32:

The old Kconfig options (CONFIG_PWM_STM32_x_DEV_NAME, etc.) have been removed. Applications using PWM on STM32 may need updates to reflect this switch to device tree.

UART on nRF:

Applications using this driver may need updates.

Many Kconfig warnings are now errors:
Arches:

The native POSIX "architecture" now supports -rt and -no-rt command line options, which allow deferring the decision for whether execution should be slowed down to real time to runtime. (The option CONFIG_NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME now determines the default value.)

Bluetooth:

On Linux hosts, the native POSIX target can now access the kernel Bluetooth stack via a new HCI driver, which can be enabled with CONFIG_BT_USERCHAN.

The Bluetooth mesh sample application samples/boards/nrf52/mesh/onoff-app now supports the persistent storage API introduced in v1.12. This allows the application to rejoin the same network if the board is reset.

The host stack now supports more flexible choices for how to pass attributes to bt_gatt_notify().

Boards:

Nordic board Kconfig files can now select CONFIG_BOARD_HAS_DCDC, which will enable the DC/DC converter.

Build:

The warning output for when the value a user sets for a Kconfig option differs from the actual value has been improved.

Documentation:
Device Tree:

nRF52 SoCs now have device tree support for GPIO.

Drivers:

The nRF PWM driver now has prescaler support.

The mcux Ethernet driver now uses the carrier detection API calls described below in the new networking features.

A new driver for the TI SimpleLink WiFi offload chip was merged; so far, this only supports the network management commands related to WiFi which were introduced for v1.12 (see include/net/wifi_mgmt.h for details).

A variety of USB-related changes were merged.

The USB subsystem now sports new USBD_DESCR_xxx_DEFINE macros for declaring descriptors of various types; behind the scenes, these use linker magic to ensure that the defined descriptors end up in contiguous memory. This allowed migrating descriptors formerly defined in an increasingly large subsys/usb/usb_descriptor.c into the files for the individual USB classes, etc. that defined them.

As all Zephyr USB controllers support USB v2.0, the USB protocol version reported in the device descriptor has been updated to that value, increasing it from its former setting of v1.1.

The HID interrupt endpoint size configuration option CONFIG_HID_INTERRUPT_EP_MPS is now visible and thus configurable by applications.

Interface descriptors are now configurable at runtime.

Networking:

The DHCP implementation uses these events to obtain new addresses when a network interface reappears after going down.

The network shell's conn command now unconditionally prints the state of each TCP connection.

A variety of performance improvements were merged into the networking layer; these speed things up by avoiding unnecessary work, like duplicated filling in of packet headers and checksums. Better management of some internal caches when multiple networking interfaces are running on board was also merged.

Samples:
Scripts:
Testing:

Bugs

Arches:
Bluetooth:
Build:

Numerous fixes and updates were merged affecting usage of Kconfig options throughout the tree.

The "minimal" C library that ships with Zephyr is no longer built as part of the "app" target, which is reserved as much as possible for user applications. Any applications that may have been relying on this behavior may need updates, as the C library is now part of its own Zephyr library.

Drivers:

The Nordic RTC timer driver saw a fix for the number of hardware cycles per tick; the PWM driver also has improved accuracy after a clock frequency fix.

A build issue in the Bluetooth HCI implementation using SPI as a transport was fixed.

The lis2dh accelerometer driver seems to be working again, after seeing build breakage and I2C protocol usage fixes.

Kernel:

A race condition which could cause k_poll() to return NULL when a timeout is set has been fixed.

Networking:

Some use-after free bugs in network statistics calculations were fixed.

IPv4 and UDP checksums are now calculated only when needed in the DHCPv4 core.

Samples:

hawkBit and MQTT sample application

Features

Bugs

Kconfig fixes:
Removal of old include path:

LWM2M sample application

Features

Bugs

Kconfig fixes:
Removal of old include path:

Linux microPlatform

Summary

OSF Unified Linux Kernel updated to the 4.16.18 stable release. Default GCC version was updated to the latest upstream 8.1 release.

Highlights

Components

OpenEmbedded-Core Layer

Features

Layer Update:

Bugs

cpio:
glibc:

Meta RISC-V

Features

Layer Update:

Bugs

Meta OSF Layer

Features

Layer Update:

Bugs

Related posts

Keep up to date with Foundries.io