blob: 092a39641e7ae80b25e502d831405a35d755cbd5 [file] [log] [blame]
:orphan:
.. _zephyr_1.12:
Zephyr Kernel 1.12.0 (DRAFT)
############################
We are pleased to announce the release of Zephyr kernel version 1.12.0.
Major enhancements with this release include:
- Asymmetric multiprocessing (AMP) via integration of OpenAMP
- Persistent storage support for Bluetooth Low Energy including Mesh
- 802.1Q - Virtual Local Area Network (VLAN) traffic on an Ethernet network
- Support multiple concurrent filesystem devices, partitions, and FS types
- Ethernet network management interface
- Networking traffic prioritization on a per-connection basis
- Support for Ethernet statistical counters
- Support for TAP net device on the the native POSIX port
- Command-line Zephyr meta-tool "west"
- SPI slave support
- Runtime non-volatile configuration data storage system (settings)
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
******************************
* A suitably sized k_malloc() request can result in a smaller than
requested buffer. Use of that buffer could result in writes to
unallocated memory. Proper overflow checks were added to fix this
issue in k_malloc and k_calloc.
* kernel: mempool: Check for overflow in k_malloc()
* kernel: mempool: Always check for overflow in k_calloc()
* tests: mempool: Add overflow checks
Kernel
******
* Added k_thread_foreach API
* kernel/sched: Fix preemption logic
* kernel/sched: Fix SMP scheduling
* kernel/sched: Don't preempt cooperative threads
* kernel: Scheduler rewrite
* kernel: Fix sloppy wait queue API
* kernel/mempool: Handle transient failure condition
* kernel: handle early entropy issues
* kernel: Earliest-deadline-first scheduling policy
* kernel: Add "meta IRQ" thread priorities
* kernel: introduce initial stack randomization
* k_poll: expose to user mode
* k_queue: allow user mode access via allocators
* mempool: add API for malloc semantics
* userspace: add support for dynamic kernel objects
Architectures
*************
* arch: arc: refactor the arc stack check support
* arch: arc: add the support of STACK_SENTINEL
* arch: arc: optimize the _SysFatalErrorHandler
* arch: arc: bug fixes in irq_load
* arch: arc: bug fixes and optimization in exception handling
* arch: arm: Fix zero interrupt latency priority level
* arch: arm: refactor default _FaultDump to provide fatal error code
* arch: arm: Define & implement API for test target (Non-Secure)
* arch: arm: thread built-in stack guard implementation
* arch: arm: lpc: Added support for Cortex-M0+ on lpc54114 soc
* arch: arm: Secure fault handling for Cortex-M23
* arch: arm: SecureFault Handling for Cortex-M33A
* arch: arm: Change method of __swap processing
* arm_mpu: reduce boot MPU regions for various soc
* arm: userspace: fix initial user sp location
* arm: userspace: Rework system call arguments
* arm: syscalls: fix some register issues
* dts: nios2-qemu: add device tree support
* dts: nios2f: Add device tree support
* dts: x86: derive RAM and ROM size from dts instead of Kconfig
* dts: xtensa: Add device tree support for xtensa
* newlib: fix heap user mode access for MPU devices
* nxp_imx/mcimx7_m4: Added support for i.MX7 Cortex M4 core
* x86: minnowboard: Enable the userspace mode
* arch: x86: Unwind the stack on fatal errors
* xtensa: provide XCC compiler support for Xtensa
Boards
******
* Added support for the following Arm boards:
* 96b_argonkey
* adafruit_feather_m0_basic_proto
* colibri_imx7d_m4
* dragino_lsn50
* lpcxpresso54114_m0
* nrf51_ble400
* nrf52_pca20020
* nucleo_f070rb
* nucleo_f446re
* nucleo_l053r8
* nucleo_l073rzA
* olimex_stm32_h407
* stm32f0_disco
* Added support for the following RISC-V boards:
* hifive1
* Added support for the following Xtensa boards:
* intel_s1000_crb
* arc: Added device tree support for all ARC SoCs
* arm: Renamed lpcxpresso54114 to lpcxpresso54114_m4
* nios2: Added device tree support for qemu_nios2 and altera_max10
* Continued adding dts support for device drivers (gpio, spi, i2c, sensors, usb)
Drivers and Sensors
*******************
* can: Added CAN driver support for STM32 SoCs
* display: Added ILI9340 LCD display driver
* dma: Added dma driver for Nios-II MSGDMA core
* dma: Introduce Intel CAVS DMA
* ethernet: Added ethernet driver for native posix arch
* gpio: Added support for i.MX GPIO
* gpio: Added driver for SX1509B
* gpio: Added GPIO for SAM family
* gpio: Added GPIO driver for stm32l0x
* i2s: Introduce CAVS I2S
* ieee802154: Added OpenThread modifications to KW41Z driver
* interrupts: introduce CAVS interrupt logic
* interrupts: Introduce Designware interrupt controller
* ipm: Added mcux ipm driver for LPC SoCs
* led: Added new public API and driver support for TI LP3943
* pinmux: Added pinmux driver for stm32l0x
* rtc: Added mcux RTC driver for Kinetis SoCs
* sensor: Added sensorhub support to lsm6dsl driver
* sensor: Added trigger support to lsm6dsl
* serial: Added support for i.MX UART interface
* spi: Added shims for nrfx SPIS and SPIM drivers
* spi: Updated mcux shim driver to new SPI API
* spi: Updated sensor and radio drivers to new SPI API
* usb: Added usb device driver for Kinetis USBFSOTG controller
* usb: Added usb support for stml072/73, stm32f070/72
* usb: Enable usb2.0 on intel_s1000
* usb: Added nRF52840 USB Device Controller Driver
* watchdog: Added mcux watchdog driver for Kinetis SoCs
* watchdog: Added nrfx watchdog driver for NRF SoCs
* wifi: Added winc1500 WiFi driver
Networking
**********
* Minimal server side websocket support.
* Add network support to syslog.
* Reducing net_pkt RAM usage.
* TCP code refactoring. TCP code is now in one place in tcp.c
* Support MSG_DONTWAIT and MSG_PEEK in recvfrom() socket call.
* Support MSG_DONTWAIT in sendto() socket call.
* Add support for freeaddrinfo() API.
* Allow empty service in getaddrinfo() API.
* Add PRIORITY support to net_context. This is working same way as SO_PRIORITY
in BSD sockets API.
* Add network traffic classification support to Rx and Tx paths. This allows
prioritization of incoming or outgoing network traffic. Both Rx and Tx can
have max 8 network queues.
* Add network interface up/down command to net-shell.
* Create ethernet driver for native_posix board. The driver is enabled
automatically if networking is active when compiling for native_posix board.
* Support network packet checksum calculation offloading. This is available for
ethernet based boards.
* Add support for ethernet virtual LANs (VLAN). Following ethernet drivers
support VLANs: frdm_k64f, sam_e70_explained, native_posix and qemu.
* Allow network statistics collection / network interface.
* Add network management support to ethernet sub-system.
* Add network capabilities support to ethernet network drivers. This is used
for management purposes.
* Allow collection of ethernet statistics. Currently only native_posix ethernet
driver supports this.
* Add OpenThread support for KW41Z driver.
* Add initial WiFi management API definitions.
* Add a shell module for controlling WiFi devices.
* Add dedicated net mgmt hooks for WiFi offload devices.
* Use proper IPv4 source address when sending IPv4 packets.
* Add support for energy detection scan on IEEE 802.15.4 driver API.
* Add support for filtering source short IEEE 802.15.4 addresses.
* Add RPL border router sample application.
* LWM2M code refactoring.
* LWM2M OPTIONAL resource fixes.
* LWM2M source port fixes.
* LWM2M resource usage enhancements.
* Fixing network management event ordering.
* Fix ENC28J70 ethernet driver.
* CoAP sample application fixes.
* Network timeout fixes.
* ICMPv6 error check fixes.
* Net-app API port number fixes.
* WPAN USB driver and sample application fixes.
* BSD socket sample application fixes.
* Fix IPv4 echo-request (ping) in net-shell when having multiple network
interfaces.
* Fixing IPv6 compile error in certain configuration.
Bluetooth
*********
* settings-based persistent storage functionality for BLE (including CCC) and
Mesh
* Mesh-specific optimizations to avoid flash wear
* Added a new API to set the identity address from the application
* Old bt_storage API removed from the codebase
* Rewrote the HCI SPI driver to comply with the new API
* Added BLE support for the standard entropy driver via an ISR-friendly call
* Multiple BLE Mesh bugfixes and improvements
* Added option to use the identity address for advertising even when using
privacy
* Added support for L2CAP dynamically allocated PSM values
* GATT CCC handling fixes
* GATT attribute declaration macros reworked for clarity
* Fixed handlng of connection cancellation in the controller
* Fixed a potential assertion failure in the controller related to white list
handling
Build and Infrastructure
************************
* build: use git version and hash for boot banner
* kconfig: Drop support for CONFIG_TOOLCHAIN_VARIANT
* kconfig: Remove the C Kconfig implementation
* scripts: kconfig: Add a Python menuconfig implementation
* scripts: west: introduce common runner configuration
* scripts: debug, debugserver and flash scripts for intel_s1000
* xtensa: provide XCC compiler support for Xtensa
Libraries / Subsystems
***********************
* subsys/disk: Added support for multiple disk interfaces
* subsys/fs: Added support for multiple instances of filesystem
* subsys/fs: Added Virtual File system Switch (VFS) support
* lib/posix: Added POSIX Mutex support
* lib/posix: Added POSIX semaphore support
* crypto: Updated mbedTLS to 2.9.0
* Imported libmetal and OpenAMP for IPC
HALs
****
* altera: Add modular Scatter-Gather DMA HAL driver
* atmel: Added winc1500 driver from Atmel
* cmsis: Update ARM CMSIS headers to version 5.3.0
* nordic: Import SVD files for nRF5 SoCs
* nordic: Update nrfx to version 1.0.0
* nxp: imported i.MX7 FreeRTOS HAL
* nxp: Added dual core startup code for lpc54114 based on mcux 2.3.0
* stm32l0x: Add HAL for the STM32L0x series
Documentation
*************
* Added description for kernel test cases through extensive doxygen comments
* Discovered some API docs were missing, and fixed
* Documentation added covering system calls and userspace, kernel, and
threading APIs, POSIX compability, VLANs, network traffic
classification, and the sanitycheck script used by CI.
* Documented writing guidelines and local doc generation process
* Improved Sphinx search results output (removed markup)
* Improved configuration options auto-generated documentation
* Significantly reduced local doc regeneration time
Tests and Samples
*****************
* Added test for POSIX mutex
* Added Apple iBeacon sample application
* Enhanced threads test suite
* Added tests for memory domain
Issue Related Items
*******************
These GitHub issues were addressed since the previous 1.11.0 tagged
release:
.. comment List derived from GitHub Issue query: ...
* :github:`issuenumber` - issue title