Zephyr Kernel 1.11.0

We are pleased to announce the release of Zephyr kernel version 1.11.0.

Major enhancements with this release include:

  • Thread-level memory protection on x86, ARC and Arm, userspace and memory domains
  • Symmetric Multi Processing (SMP) support on the Xtensa architecture.
  • Initial Armv8-M architecture support.
  • Native development environment on Microsoft Windows.
  • Native build target on POSIX platforms.
  • POSIX PSE52 partial support.
  • Thread support via integration with OpenThread.
  • Firmware over-the-air (FOTA) updates over BLE using MCUmgr.
  • Lightweight flash storage layer for constrained devices.
  • Additional SoC, platform and driver support for many of the already supported platforms.

The following sections provide detailed lists of changes by component.

Kernel

  • Initial Symmetric Multi Processing (SMP) support added:
    • SMP-aware scheduler
    • SMP timer and idling support
    • Available on the Xtensa architecture
  • POSIX PSE52 support:
    • Timer, clock, scheduler and pthread APIs

Architectures

  • User space and system call related changes:
    • Added ARC user space implementation
    • Added Arm user space implementation
    • Fixed a few MPU related issues with stack guards
  • Armv8-M initial architecture support, including the following cores:
    • Arm Cortex-M23
    • Arm Cortex-M33
  • New POSIX architecture for native GNU/Linux and macOS build targets:
    • Targets native executables that can be run on the host operating system

Boards

  • New native_posix board for the POSIX architecture:
    • Includes a template for hardware models
    • Adds support for console and logging
    • Interrupts and timers are simulated in several different configurations
  • Added support for the following Arm boards:
    • adafruit_trinket_m0
    • arduino_zero
    • lpcxpresso54114
    • nrf52_sparkfun
    • nucleo_f429zi
    • stm32f072_eval
    • stm32f072b_disco
  • Removed Panther board support, which included boards/x86/panther and boards/arc/panther_ss
  • Refactored dts.fixup so common SoC-related fixes are in arch/<*>/soc and board dts.fixup is only used for board-specific items.

Drivers and Sensors

  • New LED PWM driver for ESP32 SoC
  • Fixed ESP32 I2C driver
  • Added I2C master, QSPI flash, and GPIO drivers for nios-II
  • Added PinMux, GPIO, serial drivers for LPC54114
  • Added PinMux, GPIO, serial, SPI, and watchdog drivers for sam0
  • Added APA102 and WS2821B led_strip drivers
  • Added native entropy driver
  • Moved some sensors to dts
  • Added AMG88xx, CCS811, and VL53L0x sensor drivers
  • Redefined SENSOR_CHAN_HUMIDITY in percent

Networking

  • Generic OpenThread support added
  • OpenThread support to nRF5 IEEE 802.15.4 driver added
  • NXP MCUX ethernet driver IPv6 multicast join/leave enhancements
  • Ethernet STM32 fixes
  • IEEE 802.15.4 Sub-GHz TI CC1200 chip support added
  • IEEE 802.15.4 test driver (upipe) hw filtering support added
  • IEEE 802.15.4 radio API enhancements
  • Net loopback driver fixes
  • Net management API event enhancements
  • IPv6 neighbor addition and removal can be monitored
  • Static IPv4 and DHCPv4 configuration enhancements
  • Bluetooth IPSP disconnect fix
  • Network buffer enhancements
  • ICMPv4 and ICMPv6 error checking fixes
  • Network interface address handling enhancements
  • Add routing support between network interfaces
  • LWM2M fixes and enhancements
  • Old legacy HTTP API removed
  • Old legacy ZoAP API removed
  • CoAP fixes
  • TCP fixes
  • HTTP fixes
  • RPL fixes
  • Net-app API fixes
  • Net-shell fixes
  • BSD socket API fixes

Bluetooth

  • Multiple fixes to the controller
  • Fixed potential connection transmission deadlock issue with the help of a dedicated fragment pool
  • Multiple fixes to Mesh support
  • Added test automation for Mesh (for tests/bluetooth/tester)

Build and Infrastructure

  • Native development environment on Microsoft Windows:
    • Uses CMake and Kconfiglib to avoid requiring an emulation layer
    • Package management support with Chocolatey for simple setup
    • Build time now comparable to Linux and macOS using Ninja

Libraries / Subsystems

  • New management subsystem based on the cross-RTOS MCUmgr:
    • Secure Firmware Updates over BLE and serial
    • Support for file system access and statistics
    • mcumgr cross-platform command-line tool
  • FCB (File Circular Buffer) lightweight storage layer:
    • Wear-leveling support for NOR flashes
    • Suitable for memory constrained devices

HALs

  • Updated Arm CMSIS from version 4.5.0 to 5.2.0
  • Updated stm32cube stm32l4xx from version 1.9.0 to 1.10.0
  • Updated stm32cube stm32f4xx from version 1.16.0 to 1.18.0
  • Added Atmel SAMD21 HAL
  • Added mcux 2.2.1 for LPC54114
  • Added HAL for VL53L0x sensor from STM
  • Imported and moved to nRFx 0.8.0 on Nordic SoCs
  • Added QSPI Controller HAL driver

Documentation

  • Added MPU specific stack and userspace documentation
  • Improved docs for Native (POSIX) support
  • Docs for new samples and supported board
  • General documentation clarifications and improvements
  • Identify daily-built master-branch docs as “Latest” version
  • Addressed Sphinx-generated intra-page link issues
  • Updated doc generation tools (Doxygen, Sphinx, Breathe, Docutils)

Tests and Samples

  • Added additional tests and test improvements for user space testing