blob: e099b9320d7c17a4c6a0b53513ea71511d0ae785 [file] [log] [blame]
:orphan:
.. _zephyr_2.0:
Zephyr Kernel 2.0.0 (Working Draft)
####################################
We are pleased to announce the release of Zephyr kernel version 2.0.0.
Major enhancements with this release include:
* The kernel now supports both 32- and 64-bit architectures.
* We added support for SOCKS5 proxy. SOCKS5 is an Internet protocol that
exchanges network packets between a client and server through a proxy server.
* Introduced support for 6LoCAN, a 6Lo adaption layer for Controller Area
Networks.
* We added support for :ref:`Point-to-Point Protocol (PPP) <ppp>`. PPP is a
data link layer (layer 2) communications protocol used to establish a direct
connection between two nodes.
* We added support for UpdateHub which is an end-to-end solution for large scale
over-the-air update of devices.
* We added support for ARM Cortex-R Architecture (EXPERIMENTAL).
The following sections provide detailed lists of changes by component.
Kernel
******
* New kernel API for per-thread disabling of Floating Point Services for
ARC, ARM Cortex-M, and x86 architectures.
Architectures
*************
* ARM:
* Added initial support for ARM Cortex-R architecture (EXPERIMENTAL)
* We enhanced the support for Floating Point Services in Cortex-M
architecture, implementing and enabling lazy-stacking for FPU
capable threads and fixing stack overflow detection for FPU
capable supervisor threads
* Added Qemu support for ARMv8-M Mainline architecture
* Optimized the IRQ locking time in thread context switch
* Fixed several critical bugs in User Mode implementation
* Added test coverage for ARM-specific kernel features
* Improved support for linking TrustZone Secure Entry functions into
Non-Secure firmware
* POSIX:
* Fix race condition with terminated threads which had never been
scheduled by kernel. On very loaded systems it could cause swap errors.
Boards & SoC Support
********************
* Add native_posix_64: A 64 bit variant of native_posix
* Added support for the following ARC boards:
* emdsp
* hsdk
* Added support for the following ARM boards:
* atsamr21_xpro
* cc1352r1_launchxl
* cc26x2r1_launchxl
* holyiot_yj16019
* lpcxpresso55s69
* mec15xxevb_assy6853
* mikroe_mini_m4_for_stm32
* mimxrt1015_evk
* mps2_an521
* nrf51_pca10031
* nrf52811_pca10056
* nucleo_g071rb
* nucleo_wb55rg
* qemu_cortex_r5
* stm32h747i_disco
* stm32mp157c_dk2
* twr_ke18f
* v2m_musca_b1
* 96b_avenger96
* 96b_meerkat96
* 96b_wistrio
* Added support for the following RISC-V boards:
* hifive1_revb
* litex_vexriscv
* qemu_riscv64
* Added support for the following x86 boards:
* gpmrb
* Added support for the following shield boards:
* frdm_cr20a
* link_board_can
* sparkfun_sara_r4
* wnc_m14a2a
* x_nucleo_iks01a3
* Removed support for the following boards:
* arduino_101
* arduino_101_sss
* curie_ble
* galileo
* quark_d2000_crb
* quark_se_c1000_devboard
* quark_se_c1000_ss_devboard
* quark_se_c1000_ble
* tinytile
* x86_jailhouse
Drivers and Sensors
*******************
* ADC
* Added API to support calibration
* Enabled ADC on STM32WB
* Removed Quark D2000 ADC driver
* Added NXP ADC12 and SAM0 ADC drivers
* Added ADC shell
* Audio
* Added support for 2 microphones (stereo) in mpxxdtyy driver
* CAN
* Added support for canbus Ethernet translator
* Added 6LoCAN implementation
* Added MCP2515, NXP FlexCAN, and loopback drivers
* Added CAN shell
* Clock Control
* Added NXP Kinetis MCG, SCG, and PCC drivers
* Removed Quark SE driver
* Added STM32H7, STM32L1X, and STM32WB support
* Counter
* Added optional flags to alarm configuration structure and extended set channel alarm flags
* Added top_value setting configuration structure to API
* Enabled counter for STM32WB
* Added NXP GPT, "CMOS" RTC, SiLabs RTCC, and SAM0 drivers
* Removed Quark D2000 support from QMSI driver
* Display
* Added ST7789V based LCD driver
* Renamed ssd1673 driver to ssd16xx
* Added framebuffer driver with multiboot support
* Added support for Seeed 2.8" TFT touch shield v2.0
* DMA
* Added API to retrieve runtime status
* Added SAM0 DMAC driver
* Removed Quark SE C1000 support from QMSI driver
* Entropy
* Added TI CC13xx / CC26xx driver
* ESPI
* Added Microchip XEC driver
* Ethernet
* Added LiteEth driver
* Flash
* Removed Quark SE C1000 driver
* Removed support for Quark D2000 from QMSI driver
* Added STM32G0XX and STM32WB support to STM32 driver
* Added RV32M1 and native POSIX drivers
* GPIO
* Added stm32f1x SWJ configuration
* Removed Quark SE C1000 and D2000 support from DesignWare driver
* Added support for STM32H7, STM32L1X, and STM32WB to STM32 driver
* Added Microchip XEC and TI CC13x2 / CC26x2 drivers
* Added HT16K33 LED driver
* Added interrupt support to SAM0 driver
* Hardware Info
* Added ESP32 and SAM0 drivers
* I2C
* Added support for STM32MP1, STM32WB, and STM32L1X to STM32 driver
* Added STM32F10X slave support
* Added power management to nrf TWI and TWIM drivers
* Added TI CC13xx / CC26xx, Microchip MEC, SAM0, and RV32M1 drivers
* Rewrote DesignWare driver for PCI(e) support
* IEEE 802.15.4
* Fixed KW41z fault and dBm mapping
* Interrupt Controller
* Added initial support for ARC TCC
* Added GIC400, LiteX, and SAM0 EIC drivers
* Added support for STM32G0X, STM32H7, STM32WB, and STM32MP1 to STM32 driver
* Removed MVIC driver
* IPM
* Removed Quark SE driver
* Added MHU and STM32 drivers
* LED
* Added Holtek HT16K33 LED driver
* Modem
* Introduced socket helper layer
* Introduced command handler and UART interface driver layers
* Introduced modem context helper driver
* Added u-blox SARA-R4 modem driver
* Pinmux
* Added SPI support to STM32MP1
* Enabled ADC, PWM, I2C, and SPI pins on STM32WB
* Added Microchip XEC and TI CC13x2 / CC26x2 drivers
* PWM
* Added NXP PWM driver
* Added support for STM32G0XX to STM32 driver
* Sensor
* Added STTS751 temperature sensor driver
* Added LSM6DSO and LPS22HH drivers
* Renamed HDC1008 driver to ti_hdc and added support for 1050 version
* Added LED current, proximity pulse length, ALS, and proximity gain configurations to APDS9960 driver
* Reworked temperature and acceleration conversions, and added interrupt handling in ADXL362 driver
* Added BME680 driver and AMS ENS210 drivers
* Serial
* Added Xilinx ZynqMP PS, LiteUART, and TI CC12x2 / CC26x2 drivers
* Added support for virtual UARTS over RTT channels
* Added support for STM32H7 to STM32 driver
* Removed support for Quark D2000 from QMSI driver
* Enabled interrupts in LPC driver
* Implemented ASYNC API in SAM0 driver
* Added PCI(e) support to NS16550 driver
* SPI
* Added support for STM32MP1X and STM32WB to STM32 driver
* Removed support for Quark SE C1000 from DesignWare driver
* Added TI CC13xx / CC26xx driver
* Implemented ASYNC API in SAM0 driver
* Timer
* Added Xilinx ZynqMP PS ttc driver
* Added support for SMP to ARC V2 driver
* Added MEC1501 32 KHZ, local APIC timer, and LiteX drivers
* Replaced native POSIX system timer driver with tickless support
* Removed default selection of SYSTICK timer for ARM platforms
* USB
* Added NXP EHCI driver
* Implemented missing API functions in SAM0 driver
* WiFi
* Implemented TCP listen/accept and UDP support in eswifi driver
Networking
**********
* Add support for `SOCKS5 proxy <https://en.wikipedia.org/wiki/SOCKS>`__.
See also `RFC1928 <https://tools.ietf.org/html/rfc1928>`__ for details.
* Add support for 6LoCAN, a 6Lo adaption layer for Controller Area Networks.
* Add support for :ref:`Point-to-Point Protocol (PPP) <ppp>`.
* Add support for UpdateHub which is an end-to-end solution for large scale
over-the-air update of devices.
See `UpdateHub.io <https://updatehub.io/>`__ for details.
* Add support to automatically register network socket family.
* Add support for ``getsockname()`` function.
* Add SO_PRIORITY support to ``setsockopt()``
* Add support for VLAN tag stripping.
* Add IEEE 802.15.4 API for ACK configuration.
* Add dispatching support to SocketCAN sockets.
* Add user mode support to PTP clock API.
* Add user mode support to network interface address functions.
* Add AF_NET_MGMT socket address family support. This is for receiving network
event information in user mode application.
* Add user mode support to ``net_addr_ntop()`` and ``net_addr_pton()``
* Add support for sending network management events when DNS server is added
or deleted.
* Add LiteEth Ethernet driver.
* Add support for ``sendmsg()`` API.
* Add `civetweb <https://civetweb.github.io/civetweb/>`__ HTTP API support.
* Add LWM2M IPSO Accelerometer, Push Button, On/Off Switch and Buzzer object
support.
* Add LWM2M Location and Connection Monitoring object support.
* Add network management L4 layer. The L4 management events are used
when monitoring network connectivity.
* Allow net-mgmt API to pass information length to application.
* Remove network management L1 layer as it was never used.
* By default a network interface is set to UP when the device starts.
If this is not desired, then it is possible to disable automatic start.
* Allow collecting network packet TX throughput times in the network stack.
This information can be seen in net-shell.
* net-shell Ping command overhaul.
* Accept UDP packet with missing checksum.
* 6lo compression rework.
* Incoming connection handling refactoring.
* Network interface refactoring.
* IPv6 fragmentation fixes.
* TCP data length fixes if TCP options are present.
* SNTP client updates.
* Trickle timer re-init fixes.
* ``getaddrinfo()`` fixes.
* DHCPv4 fixes.
* LWM2M fixes.
* gPTP fixes.
* MQTT fixes.
* DNS fixes for non-compressed answers.
* mDNS resolver fixes.
* LLMNR resolver fixes.
* Ethernet ARP fixes.
* OpenThread updates and fixes.
* Network device driver enhancements:
- Ethernet e1000 fixes.
- Ethernet enc28j60 fixes.
- Ethernet mcux fixes.
- Ethernet stellaris fixes.
- Ethernet gmac fixes.
- Ethernet stm32 fixes.
- WiFi eswifi fixes.
- IEEE 802.15.4 kw41z fixes.
- IEEE 802.15.4 nrf5 fixes.
Bluetooth
*********
* Host:
* GATT: Added support for database hashes
* GATT: Added support for Ready Using Characteristic UUID
* GATT: Added support for static services
* GATT: Added support for disabling the dynamic database
* GATT: Added support for notifying and indicating by UUID
* GATT: Simplified the bt_gatt_notify_cb() API
* GATT: Added additional attributes to the Device Information Service
* GATT: Several protocol and database fixes
* Settings: Transitioned to new, optimized settings model
* Settings: Support for custom backends
* Completed support for directed advertising
* Completed support for Out-Of-Band (OOB) pairing
* Added support for fine-grained control of security establishment, including
forcing a pairing procedure in case of key loss
* Switched to separate, dedicated pools for discardable events and number of
completed packets events
* Extended and improved the Bluetooth shell with several commands
* BLE qualification up to the 5.1 specification
* BLE Mesh: Several fixes and improvements
* BLE split software Controller:
* The split software Controller is now the default
* Added support for the Data Length Update procedure
* Improved the ticker packet scheduler for improved conflict resolution
* Added documentation for the ticker packet scheduler
* Added support for out-of-tree user-defined commands and events
* Added support for Zephyr Vendor Specific Commands
* Added support for user-defined protocols
* Converted several control procedures to be queuable
* Nordic: Added support for Controller-based privacy
* Nordic: Decorrelated address generation from resolution
* Nordic: Added support for fast encryption setup
* Nordic: Added support for RSSI
* Nordic: Added support for low-latency ULL processing of messages
* Nordic: Added support for the nRF52811 IC BLE radio
* Nordic: Added support for PA/LNA on Port 1 GPIO pins
* Nordic: Added support for radio event abort
* BLE qualification up to the 5.1 specification
* Several bug fixes
* BLE legacy software Controller:
* BLE qualification up to the 5.1 specification
* Multiple control procedures fixes and improvements
Build and Infrastructure
************************
* TBD
Libraries / Subsystems
***********************
* File Systems
* Added support for littlefs
* TBD
HALs
****
* TBD
Documentation
*************
* TBD
Tests and Samples
*****************
* TBD
Issue Related Items
*******************
These GitHub issues were addressed since the previous 1.14.0 tagged
release:
.. comment List derived from GitHub Issue query: ...
* :github:`issuenumber` - issue title
* :github:`99999` - issue title