Zephyr Kernel 1.13.0
We are pleased to announce the release of Zephyr kernel version 1.13.0.
Major enhancements with this release include:
Extensible and Pluggable Tracing Support
Compartmentalized application memory organization
Logging System Overhaul
Introduce system calls for BSD socket APIs
Support for IEEE 802.1AS-2011 generalized Precision Time Protocol (gPTP)
Link Layer Discovery Protocol (LLDP) TX support
Support for TLS and DTLS using BSD socket API
Support for Link Layer Multicast Name Resolution (LLMNR)
Introduced reworked ADC API and updated Nordic, NXP, Atmel, and Synopsys DesignWare drivers
Support OS driven Power Management framework
Basic support for Arm TrustZone in Armv8-M
The following sections provide detailed lists of changes by component.
Remove kernel event manager, replaced by generic tracing interface
Enhanced Timeout and Tick handling in kernel
Compartmentalized application memory organization
Fix errno access for user mode
arch: arc: improve the reset code
arch: arc: use a separate stack for exception handling
arch: arc: refactor the arc stack check support
arch: arm: stm32: enable instruction and data caches on STM32F7
arch: arm: implement ARMv8-M MPU driver
irq: Fix irq_lock api usage
arch: arm: macro API for defining non-secure entry functions
arch: arm: allow processor to ignore/recover from faults
arm: nxp: mpu: Consolidate k64 mpu regions
arm: Print NXP MPU error information in BusFault dump
arch: ARM: Change the march used by cortex-m0 and cortex-m0plus
arch: arm: integrate ARM CMSE with CMake
arch: arm: basic Arm TrustZone-M functionality for Cortex-M23 and Cortex-M33
arch: arm: built-in stack protection using Armv8-M SPLIM registers
arch: arm: API for using TT intrinsics in Secure/Non-Secure Armv8-M firmware
arch: arm: clean up MPU code for ARM and NXP
arch: arm: Set Zero Latency IRQ to priority level zero
arch/arm: Fix locking in __pendsv
Boards & SoC Support
x86: add SoC configuration for Apollo Lake
x86: add support for UP Squared (Pentium/Celeron)
arc: Support Synopsys ARC nSim instruction set simulator
riscv32: riscv-privilege: Microsemi Mi-V support
Added support for the following Arm boards:
Drivers and Sensors
adc: Introduced reworked API and updated Nordic, NXP, Atmel, and Synopsys DesignWare drivers
audio: Added TLV320DAC310x audio DAC driver
can: Added can support for STM32L432
clock_control: Added STM32F7 family clock control
entropy: Added support for STM32F7
eth: Enabled gPTP support in mcux and gmac drivers
eth: Added promiscuous mode support to native_posix
eth: mcux: Added an option for randomized, but stable MAC address
gpio: Added STM32F7 GPIO support
interrupt_controller: Added STM32F7 EXTI support
i2c: Added support for STM32F7
i2c: Added i.MX shim driver
i2c: Implemented slave support for stm32_v2
i2c: Added EEPROM I2C slave driver
i2c: Added shims for nrfx TWI and TWIM drivers
i2s: Exposed i2s APIs to user mode
led: Added TI LP5562 and NXP PCA9633 drivers
modem: Added Wistron WNC-M14A2A LTE-M Modem driver
modem: Added modem receiver (tty) driver
pinmux: Added STM32F7 pinmux support
pwm: Added i.MX shim driver
pwm: Added shim for nrfx PWM HW driver
serial: Added power management to nRF UART driver
serial: Added STM32F7 UART support
serial: Allow to pass arbitrary user data to irq callback
serial: Added UARTE driver for the nRFx family
sensor: Added adxl372, mma8451q, adt7420 drivers
sensor: lis2dh: Fix I2C burst read/write operations
rtc: Added support for STM32
usb: Added support for OTG FS on STM32F2 and STM32F7
usb: Added High Speed support for DesignWare USB
wifi: Added SimpleLink WiFi Offload Driver (wifi_mgmt only)
Introduce system calls for BSD socket APIs.
Add IPv4 autoconf support. This adds support for IPv4 link-local addresses (169.254.*.*)
Add TLS and DTLS support to BSD socket API. They are configured via setsockopt() API.
Add support for IEEE 802.1AS-2011 generalized Precision Time Protocol (gPTP) for ethernet networks. A sample application is created to show how to interact with gPTP code.
Add support for PTP clock driver. This driver will be used by gPTP supported ethernet drivers.
Add Link Layer Discovery Protocol (LLDP) TX support.
Add support for managing Qav credit-based shaper algorithm.
Add generic TX timestamping support.
Add carrier detection support to ethernet L2 driver.
Add support for having vendor specific ethernet statistics.
Add getter support to ethernet management interface.
Add promiscuous mode support to network interface. A sample application is created that shows how to use the user API for getting all network packets. The native_posix ethernet driver supports promiscuous mode at this point.
Add support for Link Layer Multicast Name Resolution (LLMNR). LLMNR is used in Microsoft Windows networks for local name resolution.
Add API to net_pkt to prefill a network packet to a pre-defined value.
Add IEEE 802.1Qav support to Atmel GMAC ethernet driver.
Add hardware TX timestamping support to Atmel GMAC ethernet driver.
Add multiple hardware queue support to Atmel GMAC ethernet driver.
Add gPTP support to Atmel GMAC ethernet driver.
Add support for TI SimpleLink WiFI offload driver.
Add support for randomized but stable MAC address in NXP MCUX ethernet driver.
Add extra prints to net-shell for ethernet based network interfaces. The supported features and priority queue information is printed.
Add and fix string to integer conversions in net-shell.
Allow user to configure MAC address filters into ethernet devices.
Catch network interface ON and OFF events in DHCPv4 and renew address lease if we re-connected.
Remove forever timeouts when waiting a new network buffer to be available.
Relay network interface up/down command from net-shell to Linux host for native_posix ethernet driver.
No need to join IPv6 solicited node multicast group for Bluetooth IPSP supported nodes.
Allow external program to be started for native_posix ethernet driver. This allows for example startup of wireshark when zeth is created.
Network packet priority and traffic class fixes and clarifications.
Lower memory consumption in net by using packed enums when applicable.
Correctly notify net_app server when TCP is disconnected.
Register OpenThread used unicast and multicast IPv6 addresses for network interface.
Enable Fast Connect policy for TI SimpleLink ethernet driver.
Fix ieee802154 simulator driver channel/tx power settings.
Handle large IPv6 packets properly.
Enable gPTP support in native_posix, NXP mcux and Atmel GMAC ethernet drivers. The native_posix ethernet driver gPTP support is only for testing purposes.
Network configuration (net_config) library split from the net_app library. (This change requires updating application configs to refer to corresponding NET_CONFIG_* options instead of NET_APP_*).
Moving all layer 2 (L2) network code into subsys/net/l2 directory.
Add MSS option on sending TCP SYN request.
Fix TCP by processing zero window probes when our receive window is 0.
IPv4, IPv6, ICMPv6, ARP code refactoring and cleanup.
IPv6 address lifetime fixes.
IPv6 fragmentation fixes.
ARP fixes when using VLAN.
Timeout too long lasting ARP requests.
DHCPv4 fixes and timeout management refactoring.
TCP retry, RST packet handling, and memory leak fixes.
IP address print function enhancements.
HTTP fix when sending the last chunk.
LWM2M cleanups and fixes.
Fix cache support in Atmel GMAC ethernet driver.
Fix NXP MCUX ethernet driver to detect carrier lost event.
Port native API echo-server/echo-client samples to BSD sockets API, with TLS/DTLS support.
Handle out-of-buf situations gracefully in echo-client and echo-server sample applications.
New user-friendly service population using a refreshed BT_GATT_CHARACTERISTIC macro.
Added support for Bluetooth hardware in the native_posix board, allowing developers to use the native POSIX architecture with Bluetooth.
Added a new helper API to parse advertising data.
Added a new flag, BT_LE_ADV_OPT_USE_NAME, to include the Bluetooth Device Name in the advertising data.
Added support for fixed passkeys to use in bonding procedures.
Added a new Bluetooth shell command to send arbitrary HCI commands to the controller.
Added a new feature to support multiple local identities using a single controller.
Added a new, board-specific mesh sample for the nRF52x series that implements the following models:
Generic OnOff client and server.
Generic Level client and server.
Generic Power OnOff client and server.
Light Lightness client and server.
Light CTL client and server.
Controller: Added a TX Power Kconfig option.
Controller: Use the newly available nrfx utility functions to access the nRF5x hardware.
Controller: Multiple bug fixes.
Controller: Added support for the nRF52810 SoC from Nordic Semiconductor.
New HCI driver quirks API to support controllers that need uncommon reset sequences.
Host: Multiple bug fixes for GATT and SMP.
Mesh: Multiple bug fixes.
Build and Infrastructure
Kconfig: Remove redundant ‘default n’ properties
cmake: replace PROJECT_SOURCE_DIR with ZEPHYR_BASE
Kconfig: Switch to improved globbing statements
Libraries / Subsystems
Tracing: Basic support SEGGER systemview
Logging: Introduce a new logging subsystem
fs/nvs: Improved nvs for larger blocksizes
subsys: console: Refactor code to allow per-UART “tty” wrapper
ext/hal: stm32cube: STM32L4: Enable legacy CAN API
ext: Import Atmel SAMD20 header files from ASF library
ext: gecko: Add Silabs Gecko SDK for EFR32FG1P SoCs
drivers: add i.MX I2C driver shim
hal: stm32f2x: Add HAL for the STM32F2x series
ext: stm32cube: update stm32l4xx cube version
ext: stm32cube: update stm32f7xx cube version
ext: stm32cube: update stm32f4xx cube version
ext: stm32cube: update stm32f3xx cube version
ext: stm32cube: update stm32f1xx cube version
ext: hal: nordic: Update nrfx to version 1.1.0
net: drivers: wifi: SimpleLink WiFi Offload Driver (wifi_mgmt only)
ext/hal/nxp/imx: Import the nxp imx6 freertos bsp
Simplified and more maintainable theme applied to documentation. Latest and previous four releases regenerated and published to https://docs.zephyrproject.org
Updated contributing guidelines
General organization cleanup and spell check on docs including content generated from Kconfig files and doxygen API comments.
General improvements to documentation following code, implementation changes, and in support of new features, boards, and samples.
Documentation generation now supported on Windows host systems (previously only linux doc generation was supported).
PDF version of documentation can now be created
Tests and Samples
Enhanced benchmarks to support userspace
Improve test coverage for the kernel