1.. _zephyr_1.8: 2 3Zephyr Kernel 1.8.0 4#################### 5 6We are pleased to announce the release of Zephyr kernel version 1.8.0. 7 8Major enhancements with this release include: 9 10* Tickless kernel 11* IP Stack improvements 12* Bluetooth 5.0 features 13* Ecosystem: Tracing, debugging support through third-party tools (openocd, 14 Segger Systemview) 15* Improved build support on Mac and Windows development environments 16* Xtensa GCC support 17* Initial implementation of MMU/MPU support 18* Expanded device support 19 20The following sections provide detailed lists of changes by component. 21 22Kernel 23****** 24 25* Use k_cycle_get_32 instead of sys_cycle_get_32 for Kernel 26* Added k_panic() and k_oops() APIs for Kernel 27* Added k_thread_create() API for Kernel 28* Added k_queue API for Kernel 29* Add tickless kernel support 30 31Architectures 32************* 33 34* arm: Update core to use struct k_thread 35* arm: Added ARM MPU support 36* dts: Added ARM CMSDK support 37* arm: Added Initial support for NXP MPU 38* arm: Added Device Tree Support for nRF52832 SoC based boards 39* arm: Fixed nRF52840-QIAA SoC support for device tree 40* arm: Added Device Tree Support for nRF52840 SoC & boards 41* arm: Added Device Tree Support for nRF51822 SoC & boards 42* dts: Introduced st/mem.h for FLASH & SRAM sizes 43* dts: Put IRQ priority into the interrupt property 44* arm: Support for MKL25Z soc 45* arm: Added FPU support 46* x86: defined MMU data structures 47* Support for ARC EM Starter Kit version 2.3 added 48 49 50 51Boards 52****** 53 54* Added qemu_xtensa board definition 55* Added a more informative page fault handler x86 board 56* xtensa: build similar to other Zephyr arches 57* Define MMU data structures for x86 board 58* Added support for board disco_l475_iot1 59* Added STM32F413 Nucleo board 60* Added support for the CC3220SF_LAUNCHXL board 61* Support for new ARM board FRDM-KL25Z 62* arduino_101 board enable GPIO by default 63* boards: convert to using newly introduced integer sized types 64* arm: Added support for Nucleo L432KC board 65* arm: Added support for STM32L496G Discovery board 66* arm: Added support for STM32F469I-DISCO board 67* BBC micro:bit: Added driver & API for the 5x5 LED display 68 69Drivers and Sensors 70******************* 71 72* UART interrupt-driver API is better defined 73* Support for pull-style console API 74* nRF5 IEEE 802.15.4 radio driver added 75* KW41Z IEEE 802.15.4 radio driver added 76* Added MCUX TRNG driver 77* Added support for the SiFive Freedom E310 pinmux driver 78* drivers/sensor: Convert formatter strings to use PRI defines 79* Added lps22hb sensor driver 80* Added lsm6dsl sensor driver 81* Added heart rate sensor driver 82* Added support for max30101 heart rate sensor 83* Added support for lis2dh accelerometer 84 85Networking 86********** 87 88* HTTPS server support added 89* HTTP Basic-Auth support added 90* IPv6 fragmentation support added 91* Add block wise support to CoAP for well-known response 92* Big refactoring of network buffer handling 93* Start to collect TCP statistics if enabled in config 94* IEEE 802.15.4 security support added 95* DNS resolver sample application added 96* IPv6 multicast listener (MLDv2) support added 97* NATS protocol sample application added 98* HTTP client and server connectivity fixes 99* Network samples Coverity fixes 100* Network samples llvm compiler warning fixes 101* MQTT publisher connectivity fixes 102* 6lo IPv6 header compression fixes 103* CoAP connectivity fixes 104* DHCPv4 connectivity fixes 105* TCP connectivity fixes 106* DNS documentation and connectivity fixes 107* IPv6 connectivity fixes 108* IPv4 ARP fixes 109* IEEE 802.15.4 configuration tweaking fixes 110* Remove ORFD (Overly Reduced Function Device) 802.15.4 support 111* Network offloading driver fixes 112* Fix various memory leaks 113* Properly check TCP and UDP checksum before accepting packet 114* Start RX and TX network threads in proper order 115* Network samples documentation fixes and clarifications 116* RPL mesh routing fixes 117* Network link (MAC) address fixes 118 119Bluetooth 120********* 121 122* Host: Added ATT and SMP packet tracking for flow control enforcement 123* Host: GATT database changed to a linked list in preparation for dynamic allocation 124* Bluetooth 5.0: The Controller reports itself as 5.0-capable 125* Bluetooth 5.0: Introduced Channel Selection Algorithm #2 support 126* Bluetooth 5.0: Added Multiple PHY support, both 2Mbit/s and long-range coded 127* Bluetooth 5.0: Integrated Scan Request notifications 128* Controller: Added Low Duty Cycle Directed Advertising support 129* Controller: Added Scan duplicate filtering support 130* Controller: Enforced complete role separation in the controller for smaller builds 131* Controller: Introduced Advanced Controller configuration with several new Kconfig options 132* Controller: Changed the radio interrupts to direct ISRs to reduce interrupt latency 133* Added HCI Controller to Host flow control support in both Host and Controller 134* BR/EDR: Added HFP (e)SCO audio channel establishment support 135* BR/EDR: Added support for a functional SDP server 136 137Build and Infrastructure 138************************ 139 140* Support building host tools 141* Added separate DTS target 142* Added support for MSYS2 143* Use -O2 instead of -Os for ARC with SDK 0.9 144 145Libraries 146********* 147 148* Added library for software driven I2C 149* Created a HTTP library 150* Added HTTP server library support 151* Added minimal JSON library 152* Update TinyCrypt to version 0.2.6 153* Added minimal JSON library 154 155HALs 156**** 157 158* Added Atmel SAM family I2C (TWIHS) driver 159* Added Atmel SAM serial (UART) driver 160* Added WDT driver for Atmel SAM SoCs 161* Added Atmel SAM4S SoC support 162* Imported Nordic 802.15.4 radio driver 163* Added Initial support for NXP MPU 164* Updated QMSI to 1.4 RC4 165* Added FPU support 166* Added basic support for STM32F413 167* Introduced STM32F4x DMA driver 168* pinmux: stm32: Added support for Nucleo L432KC 169* Added support for STM32L496G Discovery board 170* Added dts for STM32F407 171* Added support for STM32F4DISCOVERY Board 172* Added support for STM32F469XI 173* Added support for STM32F469I-DISCO 174 175Documentation 176************* 177 178* Board documentation added for new board ports 179* Added a board porting guide 180* Added security sections to porting and user guides 181* Continued migration of wiki.zephyrproject.org material to website and github wiki 182* Improved CSS formatting and appearance of generated documents 183* Added breadcrumb navigation header with kernel version number 184* Updated getting started setup guides for Linux, Windows, and macOS 185* Updates and additions to follow new and updated kernel features 186* Broken link and spelling check scans 187* Removed deprecated kernel documentation (pre 1.6 release) from website (still available in git repo if needed) 188 189Tests and Samples 190***************** 191 192* Added test to verify same tick timeout expiry order 193* Added clock_test for kernel 194* Added tickless tests 195* Added a simple CC2520 crypto dev test 196* Added combined observer & broadcaster app for Bluetooth samples 197* Added support to wait both IPv4 and IPv6 198* Enabled tickless kernel option in some apps 199 200JIRA Related Items 201****************** 202 203.. comment List derived from Jira query: ... 204 205* ``ZEP-248`` - Add a BOARD/SOC porting guide 206* ``ZEP-339`` - Tickless Kernel 207* ``ZEP-540`` - add APIs for asynchronous transfer callbacks 208* ``ZEP-628`` - Validate RPL Routing node support 209* ``ZEP-638`` - feature to consider: flag missing functionality at build time when possible 210* ``ZEP-720`` - Add MAX30101 heart rate sensor driver 211* ``ZEP-828`` - IPv6 - Multicast Join/Leave Support 212* ``ZEP-843`` - Unified assert/unrecoverable error infrastructure 213* ``ZEP-888`` - 802.15.4 - Security support 214* ``ZEP-932`` - Adapt kernel sample & test projects 215* ``ZEP-948`` - Revisit the timeslicing algorithm 216* ``ZEP-973`` - Remove deprecated API related to device PM functions and DEVICE\_ and SYS\_* macros 217* ``ZEP-1028`` - shrink k_block struct size 218* ``ZEP-1032`` - IPSP router role support 219* ``ZEP-1169`` - Sample mbedDTLS DTLS client stability on ethernet driver 220* ``ZEP-1171`` - Event group kernel APIs 221* ``ZEP-1280`` - Provide Event Queues Object 222* ``ZEP-1313`` - porting and user guides must include a security section 223* ``ZEP-1326`` - Clean up _THREAD_xxx APIs 224* ``ZEP-1388`` - Add support for KW40 SoC 225* ``ZEP-1391`` - Add support for Hexiwear KW40 226* ``ZEP-1392`` - Add FXAS21002 gyroscope sensor driver 227* ``ZEP-1435`` - Improve Quark SE C1000 ARC Floating Point Performance 228* ``ZEP-1438`` - AIO: AIO Comparator is not stable on D2000 and Arduino101 229* ``ZEP-1463`` - Add Zephyr Support in segger SystemView 230* ``ZEP-1500`` - net/mqtt: Test case for the MQTT high-level API 231* ``ZEP-1528`` - Provide template for multi-core applications 232* ``ZEP-1529`` - Unable to exit menuconfig 233* ``ZEP-1530`` - Hotkeys for the menu at the bottom of menuconfig sometimes doesn't work 234* ``ZEP-1568`` - Replace arm cortex_m scs and scb functionality with direct CMSIS-core calls 235* ``ZEP-1586`` - menuconfig: Backspace is broken 236* ``ZEP-1599`` - printk() support for the '-' indicator in format string (left justifier) 237* ``ZEP-1607`` - JSON encoding/decoding library 238* ``ZEP-1621`` - Stack Monitoring 239* ``ZEP-1631`` - Ability to use k_mem_pool_alloc (or similar API) from ISR 240* ``ZEP-1684`` - Add Atmel SAM family watchdog (WDT) driver 241* ``ZEP-1695`` - Support ADXL362 sensor 242* ``ZEP-1698`` - BME280 support for SPI communication 243* ``ZEP-1711`` - xtensa build defines Kconfigs with lowercase names 244* ``ZEP-1718`` - support for IPv6 fragmentation 245* ``ZEP-1719`` - TCP does not work with 6lo 246* ``ZEP-1721`` - many TinyCrypt test cases only run on ARM and x86 247* ``ZEP-1722`` - xtensa: TinyCrypt does not build 248* ``ZEP-1735`` - Controller to Host flow control 249* ``ZEP-1759`` - All python scripts needed for build should be moved to python 3 to minimize dependencies 250* ``ZEP-1761`` - K_MEM_POOL_DEFINE build error "invalid register name" when built with llvm/icx from ISSM toolchain 251* ``ZEP-1769`` - Implement Set Event Mask and LE Set Event Mask commands 252* ``ZEP-1772`` - re-introduce controller to host flow control 253* ``ZEP-1776`` - sending LE COC data from RX thread can lead to deadlock 254* ``ZEP-1785`` - Tinytile: Flashing not supported with this board 255* ``ZEP-1788`` - [REG] bt_enable: No HCI driver registered 256* ``ZEP-1800`` - Update external mbed TLS library to latest version (2.4.2) 257* ``ZEP-1812`` - Add tickless kernel support in HPET timer 258* ``ZEP-1816`` - Add tickless kernel support in LOAPIC timer 259* ``ZEP-1817`` - Add tickless kernel support in ARCV2 timer 260* ``ZEP-1818`` - Add tickless kernel support in cortex_m_systick timer 261* ``ZEP-1821`` - Update PM apps to use mili/micro seconds instead of ticks 262* ``ZEP-1823`` - Improved Benchmarks 263* ``ZEP-1825`` - Context Switching KPI 264* ``ZEP-1836`` - Expose current ecb_encrypt() as bt_encrypt() so host can directly access it 265* ``ZEP-1856`` - remove legacy micro/nano kernel APIs 266* ``ZEP-1857`` - Build warnings [-Wpointer-sign] with LLVM/icx (bluetooth_handsfree) 267* ``ZEP-1866`` - Add Atmel SAM family I2C (TWIHS) driver 268* ``ZEP-1880`` - "samples/grove/temperature": warning raised when generating configure file 269* ``ZEP-1886`` - Build warnings [-Wpointer-sign] with LLVM/icx (tests/net/nbuf) 270* ``ZEP-1887`` - Build warnings [-Wpointer-sign] with LLVM/icx (tests/drivers/spi/spi_basic_api) 271* ``ZEP-1893`` - openocd: 'make flash' works with Zephyr SDK only and fails for all other toolchains 272* ``ZEP-1896`` - [PTS] L2CAP/LE/CFC/BV-06-C 273* ``ZEP-1899`` - Missing board documentation for xtensa/xt-sim 274* ``ZEP-1908`` - Missing board documentation for arm/nucleo_96b_nitrogen 275* ``ZEP-1910`` - Missing board documentation for arm/96b_carbon 276* ``ZEP-1927`` - AIO: AIO_CMP_POL_FALL is triggered immediately after aio_cmp_configure 277* ``ZEP-1935`` - Packet loss make RPL mesh more vulnerable 278* ``ZEP-1936`` - tests/drivers/spi/spi_basic_api/testcase.ini#test_spi - Assertion Fail 279* ``ZEP-1946`` - Time to Next Event 280* ``ZEP-1955`` - Nested interrupts crash on Xtensa architecture 281* ``ZEP-1959`` - Add Atmel SAM family serial (UART) driver 282* ``ZEP-1965`` - net-tools HEAD is broken for QEMU/TAP 283* ``ZEP-1966`` - Doesn't seem to be able to both send and receive locally via local address 284* ``ZEP-1968`` - "make mrproper" removes top-level dts/ dir, makes ARM builds fail afterwards 285* ``ZEP-1980`` - Move app_kernel benchmark to unified kernel 286* ``ZEP-1984`` - net_nbuf_append(), net_nbuf_append_bytes() have data integrity problems 287* ``ZEP-1990`` - Basic support for the BBC micro:bit LED display 288* ``ZEP-1993`` - Flowcontrol Required for CDC_ACM 289* ``ZEP-1995`` - samples/subsys/console breaks xtensa build 290* ``ZEP-1997`` - Crash during startup if co-processors are present 291* ``ZEP-2008`` - Port tickless idle test to unified kernel and cleanup 292* ``ZEP-2009`` - Port test_sleep test to unified kernel and cleanup 293* ``ZEP-2011`` - Retrieve RPL node information through CoAP requests 294* ``ZEP-2012`` - Fault in networking stack for cores that can't access unaligned memory 295* ``ZEP-2013`` - dead object monitor code 296* ``ZEP-2014`` - Default samples/subsys/shell/shell fails to build on QEMU RISCv32 / NIOS2 297* ``ZEP-2019`` - Xtensa port does not compile if CONFIG_TICKLESS_IDLE is enabled 298* ``ZEP-2027`` - Bluetooth Peripheral Sample won't pair with certain Android devices 299* ``ZEP-2029`` - xtensa: irq_offload() doesn't work on XRC_D2PM 300* ``ZEP-2033`` - Channel Selection Algorithm #2 301* ``ZEP-2034`` - High Duty Cycle Non-Connectable Advertising 302* ``ZEP-2037`` - Malformed echo response 303* ``ZEP-2048`` - Change UART "baud-rate" property to "current-speed" 304* ``ZEP-2051`` - Move away from C99 types to zephyr defined types 305* ``ZEP-2052`` - arm: unhandled exceptions in thread take down entire system 306* ``ZEP-2055`` - Add README.rst in the root of the project for github 307* ``ZEP-2057`` - crash in tests/net/rpl on qemu_x86 causing intermittent sanitycheck failure 308* ``ZEP-2061`` - samples/net/dns_resolve networking setup/README is confusing 309* ``ZEP-2064`` - RFC: Making net_shell command handlers reusable 310* ``ZEP-2065`` - struct dns_addrinfo has unused fields 311* ``ZEP-2066`` - nitpick: SOCK_STREAM/SOCK_DGRAM values swapped compared to most OSes 312* ``ZEP-2069`` - samples: net: dhcpv4_client: runs failed on frdm k64f board 313* ``ZEP-2070`` - net pkt doesn't full unref after send a data form bluetooth's ipsp 314* ``ZEP-2076`` - samples: net: coaps_server: build failed 315* ``ZEP-2077`` - Fix IID when using CONFIG_NET_L2_BLUETOOTH_ZEP1656 316* ``ZEP-2080`` - No reply from RPL node after 20-30 minutes. 317* ``ZEP-2092`` - [NRF][BT] Makefile:946: recipe for target 'include/generated/generated_dts_board.h' failed 318* ``ZEP-2114`` - tests/kernel/fatal : Fail for QC1000/arc 319* ``ZEP-2125`` - Compilation error when UART1 port is enabled via menuconfig 320* ``ZEP-2132`` - Build samples/bluetooth/hci_uart fail 321* ``ZEP-2138`` - Static code scan (coverity) issues seen 322* ``ZEP-2143`` - Compilation Error on Windows 10 with MSYS2 323* ``ZEP-2152`` - Xtensa crashes on startup for cores with coprocessors 324* ``ZEP-2178`` - Static code scan (coverity) issues seen 325