blob: bbc5ed4c05a4a48579dc3efe7c08bd943d7fc815 [file] [log] [blame]
:orphan:
.. _zephyr_1.10:
Zephyr Kernel 1.10.0
#####################
DRAFT: We are pleased to announce the release of Zephyr kernel version 1.10.0.
Major enhancements with this release include:
* Integration with MCUBOOT Bootloader
* Additional implementation of MMU/MPU support
* Build and Configuration System (CMake)
* Newtron Flash Filesystem (NFFS) Support
* Increased testsuite coverage
The following sections provide detailed lists of changes by component.
Kernel
******
* Remove deprecated k_mem_pool_defrag code
* Add the following application-facing memory domain APIs:
* k_mem_domain_init() - to initialize a memory domain
* k_mem_domain_destroy() - to destroy a memory domain
* k_mem_domain_add_partition() - to add a partition into a domain
* k_mem_domain_remove_partition() - to remove a partition from a domain
* k_mem_domain_add_thread() - to add a thread into a domain
* k_mem_domain_remove_thread() - to remove a thread from a domain
* add k_calloc() which uses kernel heap to implement traditional calloc()
semantics.
* Introduce object validation mechanism: All system calls made from userspace
which involve pointers to kernel objects (including device drivers) will need
to have those pointers validated; userspace must never be able to crash the
kernel by passing it garbage.
Architectures
*************
* nrf52: Add support for LOW_POWER state and SYSTEM_OFF
* Architecture specific memory domain APIs added
* Added support for the following ARM SoCs:
* NXP i.MX RT1052
* Silabs EFM32WG
* STM F0
* TI MSP432P4xx
Boards
******
* Power Management for nrf52 series SOC
* Added support for the following ARM boards:
* 96b_neonkey
* efm32wg_stk3800
* mimxrt1050_evk
* msp_exp432p401r_launchxl
* nucleo_f030r8
* nucleo_f091rc
* stm32f411e_disco
* stm32f412g_disco
* stm32l476g_disco
* usb_kw24d512
Drivers and Sensors
*******************
* timer: Add Support for TICKLESS KERNEL in xtensa_sys_timer
* Rename `random` to `entropy`
Networking
**********
* HTTP API changed to use net-app API. Old HTTP API is deprecated.
* Loopback network interface support added. This is used in testing only.
* LWM2M multi-fragment network packet support added.
* New CoAP library implementation which supports longer network packets.
* Old ZoAP library deprecated.
* mDNS (multicast DNS) support added.
* SNTP (Simple Network Time Protocol) client library added.
* Various fixes for: TCP, RPL, ARP, DNS, LWM2M, Ethernet, net-app API, Network
shell, BSD socket API
* Network management API fixes.
* Networking sample application fixes.
* 6lo IPv6 header compression fixes.
* IEEE 802.15.4 generic fixes.
* IEEE 802.15.4 mcr20a driver fixes.
* IEEE 802.15.4 kw41z driver fixes.
* IEEE 802.15.4 nrf5 driver fixes.
Bluetooth
*********
* Multiple qualification-related fixes for Bluetooth Mesh
* Support for Bluetooth Mesh Friend Node role
* Support for Bluetooth Mesh Foundation Client Models
* New Bluetooth Mesh shell module and test application
* Support for PA/LNA amplifiers in the BLE Controller
* Support for additional VS commands in the BLE Controller
* Multiple stability fixes for the BLE Controller
Build and Infrastructure
************************
* The Zephyr project has migrated to CMake, an important step in a
larger effort to make Zephyr easier to use for application developers
working on different platforms with different development environment
needs. This change retains Kconfig as-is, and replaces all Makefiles
with corresponding CMakeLists.txt. The DSL-like Make language that
KBuild offers is replaced by a set of CMake extensions that provide
either simple one-to-one translations of KBuild features or introduce
new concepts that replace KBuild concepts. Please re-read the Getting
Started guide
(http://docs.zephyrproject.org/getting_started/getting_started.html)
with updated instructions for setting up and developing on your host-OS.
You *will* need to port your own out-of-tree scripts and Makefiles to
CMake.
Libraries / Subsystems
***********************
* The implementation for sys_rand32_get() function has been moved to a new
"random" subsystem. There are new implementations for this function, one based
in the Xoroshift128+ PRNG (using a hardware number generator to seed), and
another that obtains random numbers directly from a hardware number generator
driver. Hardware number generator drivers have been moved to a
"drivers/entropy" directory; these drivers only expose the interface provided
by include/entropy.h.
* TinyCrypt updated to version 0.2.8
HALs
****
* Add Altera HAL for support NIOS-II boards
* Add mcux 2.3.0 for mimxrt1051 and mimxrt1052
* stm32cube: HAL/LL static library for stm32f0xx v.1.9.
* Add support for STM32 family USB driver
* Add Silabs Gecko SDK for EFM32WG SoCs
* Simplelink: Update cc32xx SDK to version 1.50.00.06
Documentation
*************
* Missing API documentation caused by doxygen subgroups and missing
Sphinx directives now included.
* Note added to release doc pages mentioning more current content could
be available from the master branch version of the documentation.
* Documentation updated to use CMake (vs. Make) in all examples.
* Getting Started Guide material updated to include CMake dependencies
and build instructions.
* Instead of hiding all expected warnings from the document build
process (there are some known doxygen/sphinx issues), the build
now outputs all warnings, and then reports
if any new/unexpected warnings or errors were detected.
* Obsolete V1 to V2 porting material removed.
* Continued updates to documentation for new board support, new samples,
and new features.
* Integration of documentation with new zephyrproject.org website
Tests and Samples
*****************
* Benchmarking: cleanup of the benchmarking code
* Add userspace protection tests
* Move all tests to ztest and cleanup coding style and formatting
Issue Related Items
*******************
.. comment List derived from Jira/GitHub Issue query: ...
* :jira:`ZEP-248` - reference a (public) Jira issue
* :github:`1234` - reference a GitHub issue