Releases: zephyrproject-rtos/zephyr
Zephyr 2.1.0-rc1
Adam Kondraciuk (1):
drivers: flash: nrfx: Modify flash address validation
Alberto Escolar Piedras (12):
native_posix & nrf52_bsim: Add z_arch_irq_connect_dynamic()
Kconfig: Correct COVERAGE help msg
sanitycheck: Use system gcov for unit testing by default
doc: contribution guidelines: Clarify use of uncrustify
nrf52_bsim: Require v1.8 of the HW models
toolchain: Fix for off-tree toolchains
arch: posix: isolate arch-soc/board IF from kernel-arch IF
lvgl: Suppress memory leak errors detected by valgrind
CODEOWNERS: Add owner for valgrind suppression file
posix arch: Untangle headers
nrf52_bsim: Fix: shell return code should be != 0 on ASSERT
nrf52_bsim: Update the NRF52 HW models revision
Alex Porosanu (7):
ext: hal: openisa: sync with updates for BLE SW LL
dts: bindings: add modem binding for RV32M1 Generic FSK node
dts: riscv: add Generic FSK node
doc: riscv: rv32m1_vega: add BLE software link layer info
samples: bluetooth: add overlays for RV32M1 SoC for BLW SW LL
bluetooth: kconfig: disable some options for openisa/RV32M1
samples: bluetooth: peripheral_hr: add VEGABoard sanity testing
Alex Tsamakos (2):
boards: arm: add support for Actinius Icarus board (uC: Nordic nRF9160)
boards: actinius_icarus: change defaults to use new kconfig functions
Alexander Wachter (12):
drivers: can: mcux: Persuade the driver to send in chronological order
doc: CAN: Extend CAN doc and moved it to networking
include: drivers: CAN: changed return parameter description
shields: link_board_can: Fix bus-speed and SPI definition
drivers: CAN: MCP2515: Move OSC frequency definition to device-tree
drivers: sensors: ens210: fix fractional part calculation
drivers: can: Extend CAN API for bus-state management.
samples: driver: Extend CAN sample
include: drivers: can: Fix zframe to frame conversion
samples: basic: Remove disco sample
drivers: CAN: Limit the DLC to 8
tests: can: api: Add MCP2515 DT label to the device name list
Alexey Brodkin (2):
arch: arc: Implement z_arch_system_halt()
Samples: Add SMP Pi
Anas Nashif (77):
ci: do not export BSIM env vars if bsim is not available
doc: link-roles: convert bytes to string
doc: tracing: add figure for tracing with systemview
doc: tracing: move ctf docs into index
doc: tracing: include API docs into documentation
doc: c library: document which c functions are implemented.
doc: tracing: link kconfig options using :option:
drivers: gpio: remove sch gpio driver
drivers: gpio: remove qmsi gpio driver
drivers: pwm: remove qmsi pwm driver
drivers: flash: remove qmsi flash driver
drivers: watchdog: remove qmsi watchdog driver
drivers: dma: remove qmsi DMA driver
drivers: uart: remove qmsi UART driver
drivers: i2c: remove qmsi I2C driver
drivers: counter: remove qmsi counter driver
drivers: pinmux: remove qmsi pinmux driver
CODEOWNERS: remove qmsi drivers
usb: remove QMSI include
west: remove qmsi module
dts: remove unused QMSI bindings
tests: timer_api: exclude qemu_x86_coverage
disk: sdhc: fix command name sdhc_cmd_r1
doc: move cmsis rtos API docs to portability/
docs: cleanup cmsis RTOS api docs
docs: add posix OS abstraction layer section
docs: kernel: K_FP_REGS is not x86 only
docs: kernel: thread documentation enhancements and cleanup
docs: remove deprecated doxygen options
tests: build kernel/common on all platforms, always
tests: ztest: no smp support in unit tests
tests: tracing: add tests for tracing features
tests: remove useless stub test
toolchain: check if __deprecated is defined
tests: unit: do not build with -m32 on macOS
tests: move base64 to a unit test
tests: move crc to a unit test
tests: make rbtree tests unit tests
tests: move cmsis_rtos_v1 into portability
tests: move cmsis_rtos_v2 into portability
tests: move xtensa_asm2 tests to tests/arch
tests: cleanup test_build
tests: move list test to be unit tests
tests: move intmath test to be unit tests
tests: move util test to be unit tests
tests: move Bluetooth at tests under tests/bluetooth
tests: convert util test to a unit test
arch: posix: fix function name in comment
tracing: remove useless ifdefing for CONFIG_TRACING
tracing: add missing end_call for k_mutex_unlock
tests: fix identifiers
tests: board_shell: rename test.yaml to testcase.yaml
tests: rtc: rename test.yaml to testcase.yaml
tests: tinycrypt: build only on native_posix
drivers: espi: move header to include/drivers
west: openocd: support pre init command option
tests: smp: do not whitelist, use filter
scripts: remove obsolete conversion script ini2yaml.py
scripts: remove unused waitpid script
sanitycheck: Complete overhaul and job handling rework
benchmarks: capture benchmark data in a file
ci: adapt ci script for new sanitycheck
doc: sanitycheck: document all new features
ci: cleanup test manifests
sanitycheck: fix error handling with host binaries
scripts: add script for listing closed bugs
sanitycheck: fail on warnings
ztest: add missing headers
sanitycheck: enable valgrind checking using an option
updatehub: move header to library
arch: doxygen: group architecture interfaces
sanitycheck: get environment regardless of option specified
sanitycheck: exit thread executor on exceptions
sanitycheck: deal with board that have no DTS
tests: benchmarks: parse output on passing benchmark
drivers: gpio: remove altera gpio driver
Bluetooth: controller: openisa: do not use instances for openisa IRQs
Andrei Emeltchenko (24):
usb: device: Allow limited amount of tries for write
boards: mec15xxevb_assy6853: Correct jumper settings
doc: mec15xxevb_assy6853: Correct socket name
drivers: watchdog: Trivial style cleanup
drivers: counters: Fix coding style issues
boards: mec15xxevb_assy6853: Add PWM alias for tests
boards: mec15xxevb_assy6853: Enable pwm sanitycheck
drivers: pwm: Fix wrong dc calculation for pwm tests
drivers: pwm: pwm_mchp_xec: Fix spelling
tests: pwm: Fix missing unit test
boards: mec15xxevb_assy6853: Include counter, adc, watchdog to tests
tests: adc: Correct tags
drivers: adc: adc_mchp_xec: Fix incorrect channel mask check
drivers: adc: adc_mchp_xec: Add error logs
adc: Trivial style cleanup
usb: Remove extra logs
samples: usb: webusb: Update README and sample link
samples: net: dumb_http_server: Add netusb configuration
samples: net: dumb_http_server: Add zero configuration
net: llmnr_responder: Fix implicit declaration error
samples: net: Clean up netusb overlay configuration
drivers: pwm: pwm_mchp_xec: Fix u32_t overflow for freq calculation
samples: usb: wpanusb: Update documentation
samples: usb: webusb: Update sample README
Andrei Gansari (4):
drivers: remove arm's qemu systick workaround
boards: MPS2 targets enabled icount
tests: scheduler_api removed MPS2 workaround
tests: schedule_api adapt to slow ticks
Andrew Boie (100):
kernel: fix default z_arch_cpu_halt()
x86: fix XIP SOC support and defaults
xtensa: remove legacy arch implementation
log_core: always build stubs when !userspace
board: qemu_nios2: set yaml RAM/ROM size
tests: profiling_api: increase idle stack size
tests: bluetooth: mesh: adjust microbit config
tests: increase min_ram for two tests
tests: enable log in immediate mode by default
kernel: remove z_fatal_print()
doc: add more details about memory domains
tests: net: stop whitelisting
doc: provide error handling documentation
timing_info: rename globals
kernel: rename z_new_thread()
kernel: renamespace z_is_in_isr()
kernel: renamespace arch_nop()
kernel: add arch interface for idle functions
kernel: rename thread return value functions
kernel: rename kernel_arch_init()
x86: remove redunant idle timestamp setting
kernel: rename boot time globals
kernel: rename main/idle thread/stacks
kernel: rename __swap
arc: rename k_cpu_sleep_mode
kernel: rename z_is_idle_thread()
tracing: simplify idle thread detection
kernel: add arch abstraction for irq_offload()
logging: abstract log_core_init()
log: remove duplicate log_printk() definition
logging: remove return value from log_printk()
shell: fix configuration issue
bluetooth: monitor: don't build backend if minimal
logging: add minimal implementation
kernel: use logging for userspace errors
kernel: remove vestigal printk references
x86: fix EXCEPTION_DEBUG dependency
arm: arch code naming cleanup
x86: abstract toplevel page table pointer
sys_io: pull in toolchain.h
kernel_includes: add irq.h
posix: expose z_arch_irq_lock/unlock as inlines
arches: fix z_arch_is_in_isr() defintion
arm: move z_arch_switch_to_main_thread to C code
xtensa: fix z_arch_switch()
arches: fix z_arch_k_cycle_get_32() definitions
drivers: hpet: fix includes
intel64: add inline definition of z_arch_switch()
x86_64: fix arch headers
x86: intel64: enable no-execute
x86: ...
Zephyr 1.14.1 RC3
Changes since 1.14.1-rc2
Anas Nashif (2):
doc: link-roles: convert bytes to string
release: bump version to 1.14.1-rc3
Andrzej Puzdrowski (2):
tests/subsys/settings/fcb: deletion test
nvs: Fix deletion of the last entry added
David B. Kinder (1):
doc: update link from released doc to master
Declan Traill (1):
Settings: Fix incorrect return of -EINVAL for deleted entries
Erwin Rol (1):
spinlock: Make sure C and C++ have the same sizeof(k_spinlock) value
Faisal Saleem (1):
Settings: Improve error handling of settings load
Jan Van Winkel (1):
fs: fcb: Increase temporary buffer in fcb_append
Joakim Andersson (1):
Bluetooth: Host: Fix invalid pointer in bt_smp_pkey_ready
Johan Hedberg (5):
Bluetooth: Mesh: Fix publication period timestamp initialization
Bluetooth: Host: Fix failure handling with security level change
Bluetooth: Host: Fix checking for sufficient encryption key size
doc: Add skeleton for 1.14.1 release notes
Bluetooth: Mesh: Fix matching for "All Proxies" group address
Jukka Rissanen (10):
net: ipv6: Check sub-option length
net: gptp: Avoid memcpy to same buffer
net: socket: The socket flags need to use uintptr_t
net: sockets: Store socket private data into its own variable
net: socket: Init net_context when taken into use
net: tcp: Cleanup context if connection is not established
tests: net: tcp: Test connection cleanup after receiving SYN
net: Add IPPROTO_RAW as it was missing
net: socket: Set default protocol if proto == 0
net: socket: Return 0 in recvfrom() if buffer size is 0
Lucas Peixoto (1):
disk: fixing the sending of commands with r1 response
Peter A. Bigot (2):
drivers/spi_nor: fix writes across page boundaries
drivers/spi_nor: de-pessimize reads
Peter Bigot (4):
subsys/testsuite: rearrange for standard use of extern "C"
lib/newlib: revert treatment of libc files as system includes
tests: add C++ 17 standard library test
kernel: reimplement k_uptime_get_32()
Piotr Zięcik (4):
syscalls: Export _is_user_context() regardless of CONFIG_USERSPACE
logging: Add basic userspace support
samples: logging: Add usermode showcase
CODEOWNERS: Add code owner for subsys/testsuite
Ravi kumar Veeramally (2):
net: tcp: Accept connections only in LISTENING state
samples: net: coap_client: Fix coverity issue
Vinayak Kariappa Chettimada (11):
Bluetooth: controller: Fix Enc setup reset on rejection
Bluetooth: controller: Fix DLE event on PHY update
Bluetooth: controller: Fix to reject invalid enable command
Bluetooth: controller: Fix cmd disallowed and collision disconnects
Bluetooth: controller: Add data length procedure queueing
Bluetooth: controller: Defer encryption setup if in conn update
Bluetooth: controller: Fix control tx queue handling
Bluetooth: controller: Fix ENC_REQ PDU retransmission
Bluetooth: controller: Fix Re-encryption procedure
Bluetooth: controller: Fix start encryption in progress check
Bluetooth: controller: Fix data PDU leak during ctrl PDU defer
Wentong Wu (4):
linker: add custom align size to reduce alignment memory wasting
scripts: gen_relocate_app.py: add custom align size for relocation
scripts: elf_helper.py: add analyze for DW_TAG_typedef
scripts: elf_helper.py: fix stack declared K_THREAD_STACK_EXTERN
Zephyr 1.14.1
This is an LTS maintenance release with fixes, as well as Bluetooth
qualification listings for the Bluetooth protocol stack included in Zephyr.
Security Vulnerability Related
The following security vulnerability (CVE) was addressed in this
release:
- Fixes CVE-2019-9506: The Bluetooth BR/EDR specification up to and
including version 5.1 permits sufficiently low encryption key length
and does not prevent an attacker from influencing the key length
negotiation. This allows practical brute-force attacks (aka "KNOB")
that can decrypt traffic and inject arbitrary ciphertext without the
victim noticing.
Bluetooth
-
Qualification:
- 1.14.x Host subsystem qualified with QDID 139258
- 1.14.x Mesh subsystem qualified with QDID 139259
- 1.14.x Controller component qualified on Nordic nRF52 with QDID 135679
Issues Fixed
These GitHub issues were addressed since the previous 1.14.0 tagged
release:
- #11617 - net: ipv4: udp: broadcast delivery not supported
- #11743 - logging: add user mode access
- #14459 - usb: samples: mass: doesn't build with FLASH overlay
- #15279 - mempool alignment might cause a memory block allocated twice
- #15339 - RISC-V: RV32M1: Load access fault when accessing GPIO port E
- #15354 - counter: stm32: Issue with LSE clock source selection
- #15373 - IPv4 link local packets are not sent with ARP ethernet type
- #15443 - usb_dc_stm32: Missing semaphore initialization and missing pin remapping configuration
- #15444 - Error initiating sdhc disk
- #15497 - USB DFU: STM32: usb dfu mode doesn't work
- #15507 - NRF52840: usb composite MSC + HID (with CONFIG_ENABLE_HID_INT_OUT_EP)
- #15526 - Unhandled identity in bt_conn_create_slave_le
- #15558 - support for power-of-two MPUs on non-XIP systems
- #15601 - pwm: nRF default prescalar value is wrong
- #15603 - Unable to use C++ Standard Library
- #15605 - Unaligned memory access by ldrd
- #15606 - trickle.c can't work for multiple triggerings
- #15678 - Watchdog peripheral api docs aren't generated correctly.
- #15698 - bluetooth: bt_conn: No proper ID handling
- #15733 - Bluetooth: controller: Central Encryption setup overlaps Length Request procedure
- #15794 - mps2_an385 crashes if CONFIG_INIT_STACKS=y and CONFIG_COVERAGE=y
- #15817 - nrf52: HFXO is not turned off as expected
- #15904 - concerns with use of CONFIG_BT_MESH_RPL_STORE_TIMEOUT in examples
- #15911 - Stack size is smaller than it should be
- #15975 - Openthread - fault with dual network interfaces
- #16001 - ARC iotdk supports MPU and fpu in hardware but not enabled in kconfig
- #16002 - the spi base reg address in arc_iot.dtsi has an error
- #16010 - Coverage reporting fails on many tests
- #16012 - Source IP address for DHCP renewal messages is unset
- #16027 - support for no-flash systems
- #16046 - modules are being processed too late.
- #16090 - mpu align support for code relocation on non-XIP system
- #16107 - Using bt_gatt_read() with 'by_uuid' method returns 3 extra bytes
- #16143 - posix: clock_settime calculates the base time incorrectly
- #16155 - drivers: can: wrong value used for filter mode set
- #16257 - net: icmpv4: Zephyr sends echo reply with multicast source address
- #16307 - cannot move location counter backwards error happen
- #16323 - net: ipv6: tcp: unexpected reply to malformed HBH in TCP/IPv6 SYN
- #16339 - openthread: off-by-one error when calculating ot_flash_offset for settings
- #16354 - net: ipv6: Zephyr does not reply to fragmented packet
- #16375 - net: ipv4: udp: Zephyr does not reply to a valid datagram with checksum zero
- #16379 - net: ipv6: udp: Zephyr replies with illegal UDP checksum zero
- #16411 - bad regex for west version check in host-tools.cmake
- #16412 - on reel_board the consumption increases because TX pin is floating
- #16413 - Missing dependency in cmake
- #16414 - Backport west build --pristine
- #16415 - Build errors with C++
- #16416 - sram size for RT1015 and RT1020 needs to be update.
- #16417 - issues with can filter mode set
- #16418 - drivers: watchdog: sam0: check if timeout is valid
- #16419 - Bluetooth: XTAL feature regression
- #16478 - Bluetooth: Improper bonded peers handling
- #16570 - [Coverity CID :198877]Null pointer dereferences in /subsys/net/ip/net_if.c
- #16577 - [Coverity CID :198870]Error handling issues in /subsys/net/lib/lwm2m/lwm2m_obj_firmware_pu
ll.c - #16581 - [Coverity CID :198866]Null pointer dereferences in /subsys/net/lib/dns/llmnr_responder.c
- #16584 - [Coverity CID :198863]Error handling issues in /subsys/net/lib/sntp/sntp.c
- #16594 - net: dns: Zephyr is unable to unpack mDNS answers produced by another Zephyr node
- #16600 - Bluetooth: Mesh: Proxy SAR timeout is not implemented
- #16602 - Bluetooth: GATT Discovery: Descriptor Discovery by range Seg Fault
- #16639 - eth: pinging frdm k64f eventually leads to unresponsive ethernet device
- #16678 - LPN establishment of Friendship never completes if there is no response to the initial Fri
end Poll - #16711 - Settings reworked to const char processing
- #16734 - Bluetooth: GATT: Writing 1 byte to a CCC access invalid memory
- #16745 - PTHREAD_MUTEX_DEFINE(): don't store into the _k_mutex section
- #16746 - boards: nrf52840_pca10059: Configure NFC pins as GPIOs by default
- #16749 - IRQ_CONNECT and irq_enable calls in the SiFive UART driver is misconfigured
- #16750 - counter: lack of interrupt when CC=0
- #16760 - K_THREAD_STACK_EXTERN() confuses gen_kobject_list.py
- #16779 - [Zephyr v1.14] ARM: fix the start address of MPU guard in stack-fail checking (when building with no user mode)
- #16799 - Bluetooth: L2CAP: Interpretation of SCID and DCID in Disconnect is wrong
- #16864 - Bluetooth: Mesh: Rx buffer exhaustion causes deadlock
- #16893 - Bluetooth: Multiple local IDs, privacy problem
- #16943 - Missing test coverage for lib/os/crc*.c
- #16944 - Insufficient test coverage for lib/os/json.c
- #17031 - Compiler warnings in settings module in Zephyr 1.14
- #17038 - code relocation generating different memory lay...
Zephyr 2.0.0
We are pleased to announce the release of Zephyr RTOS 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, an end-to-end solution for large scale
over-the-air device updates. - We added support for ARM Cortex-R Architecture (Experimental).
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
The following security vulnerability (CVE) was addressed in this
release:
- Fixes CVE-2019-9506: The Bluetooth BR/EDR specification up to and
including version 5.1 permits sufficiently low encryption key length
and does not prevent an attacker from influencing the key length
negotiation. This allows practical brute-force attacks (aka "KNOB")
that can decrypt traffic and inject arbitrary ciphertext without the
victim noticing.
Kernel
- New kernel API for per-thread disabling of Floating Point Services for
ARC, ARM Cortex-M, and x86 architectures. - New system call to set the clock frequency at runtime.
- Additional support for compatibility with 64-bit architectures.
- Userspace mutexes are now supported through the new k_futex primitive.
- Improvements to the slab allocator.
- Fixed the implementation of k_thread_name_set() with userspace enabled.
- Boosted the default tick rate for tickless kernels to improve the
precision of timeouts.
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
-
ARC:
- Added support for ARC HS architecture
- Added SMP support for ARC HS architecture
- Added support for ARC SecureShield based TEE (Experimental)
- Fixed several critical bugs in interrupt and exception handling
- Enhance the support for Floating Point Services
-
POSIX:
- Fixed race condition with terminated threads which had never been
scheduled by kernel. On very loaded systems it could cause swap errors.
- Fixed race condition with terminated threads which had never been
-
x86:
- Dropped support for the Intel Quark microcontroller family.
- A new lightweight PCI implementation has been introduced which supports
MSI and other features required for PCIe devices. The previous PCI
implementation has been deprecated and will be removed in 2.1.
-
RISC-V:
- Added support for the SiFive HiFive1 Rev B development board.
- Added support for LiteX VexRiscv soft core.
- Added support for 64-bit RISC-V, renaming the architecture from "riscv32"
to "riscv". - Added 64-bit QEMU support.
- Added DeviceTree bindings for RISC-V memory devices, CPU interrupt
controllers, and platform-local interrupt controllers.
Boards & SoC Support
-
Added native_posix_64: A 64 bit variant of native_posix
-
Added support for these ARC boards:
- emsdp
- hsdk
- nsim for hs
-
Added support for these 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 these RISC-V boards:
- hifive1_revb
- litex_vexriscv
- qemu_riscv64
-
Added support for the gpmrb x86 board
-
Added support for these following shields:
- frdm_cr20a
- link_board_can
- sparkfun_sara_r4
- wnc_m14a2a
- x_nucleo_iks01a3
-
Removed support for these 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 two microphones (stereo) in the 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
- Added STM32H7, STM32L1X, and STM32WB support
- Removed Quark SE driver
-
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
- Added support for
SOCKS5 proxy <https://en.wikipedia.org/wiki/SOCKS>
.
See alsoRFC1928 <https://tools.ietf.org/html/rfc1928>
for details. - Added support for 6LoCAN, a 6Lo adaption layer for Controller Area Networks.
- Added support for :ref:
Point-to-Point Protocol (PPP) <ppp>
. - Added su...
Zephyr 2.0.0-rc3
Aaron Tsui (7):
doc: sample: mpu Update documentation
samples: bluetooth: ibeacon: change to ADV_NONCONN_IND type
samples: shields: x_nucleo_iks01a1
samples: sensor: bme280: add README.rst
samples: sensor: bme280: add arduino_101_sss.overlay
samples: servo_motor: add HW PWM choice for NRF52 family
samples: bluetooth: peripheral_ht: Health Thermometer sample
Akshatha Harishchandra (1):
bluetooth: host: Replaced bt_uuid_create_le with bt_uuid_create
Alberto Escolar Piedras (27):
doc: labels: Add links to feature process
native_posix: cmdline: Hint user about wrong options
nrf52_bsim: Add header to allow reusing native_posix drivers
CODEOWNERS: remove use of commas
native_posix: Run in real time by default with host BT
doc: Remove API labels
CODEOWNERS: Add reviewer for native_posix docs and flash driver
CODEOWNERS: Clarify behaviour
sanitycheck: Record time used in BinaryHandler
sanitycheck: Minor optimization in BinaryHandler
CODEWONERS: syntax fix: Remove comma
nrf52_bsim: Add nrfx path to include path
arch: POSIX: Do not assume 32bit pointers
sanitycheck: update sections whitelist
sanitycheck: Add missing section to whitelist
native_posix: Replace system timer driver
arch: POSIX: Fix race with unused threads
nrf52_bsim: doc: Clarify how to fetch and compile BabbleSim
native_posix: Fix undefined macro warning
logging: Fix undefined macro warning
shell: Fix undefined macro warnings
nrf52_bsim: Minor fix in time coversion
POSIX arch: Fixe issues related to extern "C"
nrf52_bsim: Add missing header guard and extern C block
native_posix: Move include out of extern "C" block
doc: Add native_posix information to 2.0 release note
native_posix: Check pointer before de-referencing it
Alex Porosanu (2):
soc: riscv32: fix zero-riscy zephyr,flash node
west.yml: update nxp_hal SHA to latest commit
Alexander Mihajlovic (1):
posix: Fix calculation of clock base in clock_settime
Alexander Svensen (9):
Bluetooth: controller: ull/lll: Workaround CPR procedure collision
Bluetooth: controller: ull/lll: Do not feature exc more than once
Bluetooth: controller: split: Fix Conn Param Req procedure stall issue
Bluetooth: controller: split: Fix master role RSSI measurement
Bluetooth: controller: split: Refactor the lll_clock_wait() function
Bluetooth: controller: split: Refactor if_defines to is_enabled in lll.c
Bluetooth: controller: split: Refactor if defines in lll_adv.c
Bluetooth: controller: split: Refactor if defines in lll_scan.c
Drivers: led: lp5562: Add delay when writing to enable register
Alexander Wachter (55):
boards: arm: nucleo_f746zg: Activate CAN on nucleo F746zg
drivers: sensor: ams_iAQcore: Implemented ASM Indoor Air Quality Sensor
samples: sensor: ams_iAQcore: Implement sample for AMS iAQ-core
drivers: sensor: ens210: Implement AMS ens210 Sensor
samples: sensor: ens210: Implement sample for ens210
tests: drivers: build_all: Add AMS IAQcore and ENS210 to build all
CODEOWNERS: Add codeowner for ams iAQcore and ENS210
drivers: can: stm32: fix filter mode set
drivers: can: Extend attach_isr with void *arg and pass to the isr cb
drivers: can: Extend can_send with void *arg and pass it to the isr cb
drivers: can: rework can_attach_msgq
drivers: can: Implement can_attach_workq
tests: drivers: can: api: define DT_CAN_1_NAME if not defined
tests: drivers: can: Add testcases for attach_workq
tests: drivers: can: Make CAN dev global
drivers: can: Add loopback driver
drivers: can: rename drivers to can_<dev name>
drivers: can: mcux_flexcan: Add support for MK64
soc: nxp: k6x: Add CAN support
boards: frdm-k64f: Enable CAN support
samples: CAN: Add FRDM-K64F defconfig
drivers: can: stm32: Remove STM CAN_Init
drivers: can: stm32: Change TX priority to chronological order
drivers: can: stm32 Add error message for buffer overflow
drivers: can: stm32: Update enable driver help message
linker: Add dtcm section for Cortex M7 MCUs
dts: stm32f7: Add Device Tightly Coupled Memory
drivers: ethernet: stm32: Put DMA buffer to DTCM section
boards: arm: Activate DTCM for STM32F7 boards with Ethernet
net: ip: 6lo compression rework
net: ip: net_pkt: Add pkt_cursor_advance before contiguous check
net: ip: 6lo (IPHC) uncompression rework
net: ip: 6lo: Remove unnecessary net_buf allocation and memmove
tests: net: 6lo: Adapt tests to deal with headers in multiple frames
tests: net: 6Lo: Add test criterion HDR diff
drivers: can: Add CAN shell
samples: drivers: CAN: enable can shell for the sample
tests: boards: board_shell: Activate CAN shell
can: Add RX timestamp to zcan_frame
drivers: can: stm32: Implement timestamp for RX frames
net: canbus: Rename canbus to canbus_raw
net: l2: 6LoCAN implementation
net: l2: canbus: Add support for pkt reception from translator
net: ip: net_pkt: Implement net_pkt_shallow_clone
net: ip: ipv6_nbr: take TLLAO length from src lladdres
net: l2: canbus: Add support for canbus Ethernet translator
net: ip: ipv6_nbr: use temp variables for ntoh conversion
samples: net: echo_client and echo_server: Add 6LoCAN config
net: ip: ipv6_nbr: Make LLAO length calculation more universal
drivers: can: mcux: Fix set can_send callbacks
drivers: can: mcux: Fix can_detach
boards: frdm_k64f: Enable pullup for CAN0_RX pin
samples: drivers: CAN: reworked sample code
baords: shields: Add reel_board CANbus shield
tests: drivers: can: Add test for TX callback
Alexandre Bourdiol (4):
boards: Set pinmux.c compilation under switch CONFIG_PINMUX
samples: basic minimal: add nucleo_f429zi, disco_l475_iot1 to whitelist
board: add call to zephyr_library() for stm32mp157c_dk2
board: use ${ZEPHYR_BASE} instead of ${PROJECT_SOURCE_DIR}
Alexey Brodkin (14):
soc/nsim: Minor clean-up
simulation: ARC EM in nSIM to use nsim_em.props
board/nsim: Make it CPU-family independent
board/nsim: Move CPU selection in defconfigs
board/nsim: Refactor device tree description
ARC: Mention ARC EM family instead of EM4 template
arc: Preserve STATUS32 flags while resetting AE flag
arc: Add support for unaligned access
boards/nsim: Enable unaligned data acess for nSIM with simple ARC EM
board/nsim: Add support of ARC HS cores in nSIM
board/nsim: Add support of multi-core ARC HS platform in nSIM
arch: arc: _rirq_exit: Comment clean-up
arch: arc: threads: Comment clean-up
arc: interrupts: Explain return from interrupt to cooperative thread
Anas Nashif (210):
ci: only build on specified branches
boards: v2m_musca_b1_nonsecure: add flash to yaml
boards: v2m_musca_b1_nonsecure: disable sanitycheck [REVERT ME]
flash_map: fix test names
flash_map: add function to iterate over areas
flash_map: add shell interface
ci: detect changes to sub-board definitions
sanitycheck: add timestamps to messages
sanitycheck: fix reporting: build vs. run
sanitycheck: handle pid file not being present
sanitycheck: show handler in verbose mode
CODEOWNERS: update code owners
tests: ipm: disable on qemu_x86_64
CODEOWNERS: minor cleanup
CODEOWNERS: remove use of commas
crc: remove deprecated crc headers
ci: send email to builds@ mailing list if master fails
CODEOWNERS: address some unowned files/dirs
doc: guide for optimizing zephyr
doc: move module related doc to guides
doc: document submitting changes to modules
qmsi: move to a zephyr module
qmsi: set type to boolean when selecting QMSI
esp: move HAL to external repo
fatfs: move fatfs filesystem to a module
mcumgr: move to an external module
nffs: move to an external module
segger: move to an external module
CODEOWNERS: remove ext/fs entry
kconfig: enclose module Kconfigs into a menu
cmake: build modules under /modules
gitlint: match max title length restriction with checkpatch
modules: move module kconfig to main tree
manifest: update with module state
silabs: move HAL to external repo
cypress: move HAL to external repo
ext: move libmetal to an external module
ext: move open-amp to an external module
modules: move kconfig into tree
mcumgr: move Kconfig to main tree
CODEOWNERS: Update owners for subsys/mgmt/
manifest: update to latest MCUMGR head
x86: remove unused and x86 only latency benchmark
compiler: no warnings on address-of-packed-member
include: arch: move bits_portable.h to arch/common
include: arch: move addr_types to common location
include: arch: remove empty nios2 asm.h
include: arch: rename xtensa_irq.h to irq.h
CODEOWNERS: update file for include/arch/common/
cmake: no-address-of-packed-member is not supported in older compilers
logging: use os as a domain for low level system debugging
tests: mesh: fix function prototype and match declaration
style: add braces around if/while statements
style: samples/tests: add braces around if/while statements
doc: redirect old board pages to new location
doc: remove .html from redirect entries
doc: generate documentation of ifdef`ed APIs
mbedt...
Zephyr v2.0.0-rc2
Aaron Tsui (7):
doc: sample: mpu Update documentation
samples: bluetooth: ibeacon: change to ADV_NONCONN_IND type
samples: shields: x_nucleo_iks01a1
samples: sensor: bme280: add README.rst
samples: sensor: bme280: add arduino_101_sss.overlay
samples: servo_motor: add HW PWM choice for NRF52 family
samples: bluetooth: peripheral_ht: Health Thermometer sample
Alberto Escolar Piedras (27):
doc: labels: Add links to feature process
native_posix: cmdline: Hint user about wrong options
nrf52_bsim: Add header to allow reusing native_posix drivers
CODEOWNERS: remove use of commas
native_posix: Run in real time by default with host BT
doc: Remove API labels
CODEOWNERS: Add reviewer for native_posix docs and flash driver
CODEOWNERS: Clarify behaviour
sanitycheck: Record time used in BinaryHandler
sanitycheck: Minor optimization in BinaryHandler
CODEWONERS: syntax fix: Remove comma
nrf52_bsim: Add nrfx path to include path
arch: POSIX: Do not assume 32bit pointers
sanitycheck: update sections whitelist
sanitycheck: Add missing section to whitelist
native_posix: Replace system timer driver
arch: POSIX: Fix race with unused threads
nrf52_bsim: doc: Clarify how to fetch and compile BabbleSim
native_posix: Fix undefined macro warning
logging: Fix undefined macro warning
shell: Fix undefined macro warnings
nrf52_bsim: Minor fix in time coversion
POSIX arch: Fixe issues related to extern "C"
nrf52_bsim: Add missing header guard and extern C block
native_posix: Move include out of extern "C" block
doc: Add native_posix information to 2.0 release note
native_posix: Check pointer before de-referencing it
Alex Porosanu (1):
soc: riscv32: fix zero-riscy zephyr,flash node
Alexander Mihajlovic (1):
posix: Fix calculation of clock base in clock_settime
Alexander Svensen (9):
Bluetooth: controller: ull/lll: Workaround CPR procedure collision
Bluetooth: controller: ull/lll: Do not feature exc more than once
Bluetooth: controller: split: Fix Conn Param Req procedure stall issue
Bluetooth: controller: split: Fix master role RSSI measurement
Bluetooth: controller: split: Refactor the lll_clock_wait() function
Bluetooth: controller: split: Refactor if_defines to is_enabled in lll.c
Bluetooth: controller: split: Refactor if defines in lll_adv.c
Bluetooth: controller: split: Refactor if defines in lll_scan.c
Drivers: led: lp5562: Add delay when writing to enable register
Alexander Wachter (55):
boards: arm: nucleo_f746zg: Activate CAN on nucleo F746zg
drivers: sensor: ams_iAQcore: Implemented ASM Indoor Air Quality Sensor
samples: sensor: ams_iAQcore: Implement sample for AMS iAQ-core
drivers: sensor: ens210: Implement AMS ens210 Sensor
samples: sensor: ens210: Implement sample for ens210
tests: drivers: build_all: Add AMS IAQcore and ENS210 to build all
CODEOWNERS: Add codeowner for ams iAQcore and ENS210
drivers: can: stm32: fix filter mode set
drivers: can: Extend attach_isr with void *arg and pass to the isr cb
drivers: can: Extend can_send with void *arg and pass it to the isr cb
drivers: can: rework can_attach_msgq
drivers: can: Implement can_attach_workq
tests: drivers: can: api: define DT_CAN_1_NAME if not defined
tests: drivers: can: Add testcases for attach_workq
tests: drivers: can: Make CAN dev global
drivers: can: Add loopback driver
drivers: can: rename drivers to can_<dev name>
drivers: can: mcux_flexcan: Add support for MK64
soc: nxp: k6x: Add CAN support
boards: frdm-k64f: Enable CAN support
samples: CAN: Add FRDM-K64F defconfig
drivers: can: stm32: Remove STM CAN_Init
drivers: can: stm32: Change TX priority to chronological order
drivers: can: stm32 Add error message for buffer overflow
drivers: can: stm32: Update enable driver help message
linker: Add dtcm section for Cortex M7 MCUs
dts: stm32f7: Add Device Tightly Coupled Memory
drivers: ethernet: stm32: Put DMA buffer to DTCM section
boards: arm: Activate DTCM for STM32F7 boards with Ethernet
net: ip: 6lo compression rework
net: ip: net_pkt: Add pkt_cursor_advance before contiguous check
net: ip: 6lo (IPHC) uncompression rework
net: ip: 6lo: Remove unnecessary net_buf allocation and memmove
tests: net: 6lo: Adapt tests to deal with headers in multiple frames
tests: net: 6Lo: Add test criterion HDR diff
drivers: can: Add CAN shell
samples: drivers: CAN: enable can shell for the sample
tests: boards: board_shell: Activate CAN shell
can: Add RX timestamp to zcan_frame
drivers: can: stm32: Implement timestamp for RX frames
net: canbus: Rename canbus to canbus_raw
net: l2: 6LoCAN implementation
net: l2: canbus: Add support for pkt reception from translator
net: ip: net_pkt: Implement net_pkt_shallow_clone
net: ip: ipv6_nbr: take TLLAO length from src lladdres
net: l2: canbus: Add support for canbus Ethernet translator
net: ip: ipv6_nbr: use temp variables for ntoh conversion
samples: net: echo_client and echo_server: Add 6LoCAN config
net: ip: ipv6_nbr: Make LLAO length calculation more universal
drivers: can: mcux: Fix set can_send callbacks
drivers: can: mcux: Fix can_detach
boards: frdm_k64f: Enable pullup for CAN0_RX pin
samples: drivers: CAN: reworked sample code
baords: shields: Add reel_board CANbus shield
tests: drivers: can: Add test for TX callback
Alexandre Bourdiol (4):
boards: Set pinmux.c compilation under switch CONFIG_PINMUX
samples: basic minimal: add nucleo_f429zi, disco_l475_iot1 to whitelist
board: add call to zephyr_library() for stm32mp157c_dk2
board: use ${ZEPHYR_BASE} instead of ${PROJECT_SOURCE_DIR}
Alexey Brodkin (13):
soc/nsim: Minor clean-up
simulation: ARC EM in nSIM to use nsim_em.props
board/nsim: Make it CPU-family independent
board/nsim: Move CPU selection in defconfigs
board/nsim: Refactor device tree description
ARC: Mention ARC EM family instead of EM4 template
arc: Preserve STATUS32 flags while resetting AE flag
arc: Add support for unaligned access
boards/nsim: Enable unaligned data acess for nSIM with simple ARC EM
board/nsim: Add support of ARC HS cores in nSIM
board/nsim: Add support of multi-core ARC HS platform in nSIM
arch: arc: _rirq_exit: Comment clean-up
arch: arc: threads: Comment clean-up
Anas Nashif (210):
ci: only build on specified branches
boards: v2m_musca_b1_nonsecure: add flash to yaml
boards: v2m_musca_b1_nonsecure: disable sanitycheck [REVERT ME]
flash_map: fix test names
flash_map: add function to iterate over areas
flash_map: add shell interface
ci: detect changes to sub-board definitions
sanitycheck: add timestamps to messages
sanitycheck: fix reporting: build vs. run
sanitycheck: handle pid file not being present
sanitycheck: show handler in verbose mode
CODEOWNERS: update code owners
tests: ipm: disable on qemu_x86_64
CODEOWNERS: minor cleanup
CODEOWNERS: remove use of commas
crc: remove deprecated crc headers
ci: send email to builds@ mailing list if master fails
CODEOWNERS: address some unowned files/dirs
doc: guide for optimizing zephyr
doc: move module related doc to guides
doc: document submitting changes to modules
qmsi: move to a zephyr module
qmsi: set type to boolean when selecting QMSI
esp: move HAL to external repo
fatfs: move fatfs filesystem to a module
mcumgr: move to an external module
nffs: move to an external module
segger: move to an external module
CODEOWNERS: remove ext/fs entry
kconfig: enclose module Kconfigs into a menu
cmake: build modules under /modules
gitlint: match max title length restriction with checkpatch
modules: move module kconfig to main tree
manifest: update with module state
silabs: move HAL to external repo
cypress: move HAL to external repo
ext: move libmetal to an external module
ext: move open-amp to an external module
modules: move kconfig into tree
mcumgr: move Kconfig to main tree
CODEOWNERS: Update owners for subsys/mgmt/
manifest: update to latest MCUMGR head
x86: remove unused and x86 only latency benchmark
compiler: no warnings on address-of-packed-member
include: arch: move bits_portable.h to arch/common
include: arch: move addr_types to common location
include: arch: remove empty nios2 asm.h
include: arch: rename xtensa_irq.h to irq.h
CODEOWNERS: update file for include/arch/common/
cmake: no-address-of-packed-member is not supported in older compilers
logging: use os as a domain for low level system debugging
tests: mesh: fix function prototype and match declaration
style: add braces around if/while statements
style: samples/tests: add braces around if/while statements
doc: redirect old board pages to new location
doc: remove .html from redirect entries
doc: generate documentation of ifdef`ed APIs
mbedtls: move to external module
sdk: add support for 0.10.1 and remove 0.9.5
doc: fix path to gdb in documentation
doc: samples: cleanup board reference and layout
samples: grove_light: remove whitelisting
...
Zephyr 1.14.1-rc2
Alberto Escolar Piedras (1):
arch: POSIX: Fix race with unused threads
Alexander Mihajlovic (1):
posix: Fix calculation of clock base in clock_settime
Alexander Wachter (1):
drivers: can: stm32: fix filter mode set
Anas Nashif (6):
ci: only build on specified branches
manifest: add ci-tools
ci: add v1.14-branch to email integration
CODEOWNERS: remove non-existing path
release: bump version to 1.14.1-rc1
release: bump release to 1.14.0-rc2
Andrei Gansari (1):
soc: k64f MPU configured to always allow ENET
Andrew Boie (50):
arc: arm: fix support for MPUs on non-XIP systems
newlib: fix user mode calls to _sbrk
tests: pipe: fix error with optimization disabled
tests: cmsis_v2: don't hard-code stack sizes
lib: cmsis_v2: set default dynamic stack size
lib: cmsis_v2: increase stack sizes if coverage
tests: cmsis_v1: properly set stack size
lib: cmsis_v1: set stack size larger if coverage
kernel: increase workq sizes if COVERAGE=y
testsuite: fix memory access
tests: timer_api: run in user mode
tests: stackprot: don't set main stack size
kernel: adjust default main stack for riscv
kernel: fix k_stack_alloc_init()
tests: mutex_api: run in user mode
kernel: init: exclude some funcs from coverage
kernel: init: fix coverage gap
kernel: init: exclude unreachable code
kernel: allow k_sleep(K_FOREVER)
tests: queue: test k_queue_alloc_*pend()
kernel: idle: exclude no-op funcs from coverage
lib: os: remove dead code
tests: poll: expand userspace coverage
tests: schedule_api: fix extern tstacks
tests: schedule_api: exercise SCHED_MULTIQ
tests: schedule_api: test syscalls from usermode
tests: schedule_api: skip test assert if COVERAGE
tests: userspace: cover missing/bad syscalls
tests: dynamic_thread: cover thread_idx_free()
tests: userspace: cover z_object_recycle()
kernel: exclude stubs from code coverage
tests: common: cover k_cycle_get_32() syscall
tests: device: cover device_get_binding()
tests: thread_apis: exercise some system calls
tests: sys_mutex: improve code coverage
kernel: offsets: exclude from coverage
lib: os: fix vsnprintk coverage
lib: os: exclude z_arch_printk_char_out()
lib: os: fix slist code coverage
kernel: test coverage for sflist
tests: common: add tests for extra sflist APIs
tests: schedule_api: cover priority checks
arc: use different load instruction
kernel: fix CONFIG_THREAD_NAME from user mode.
tests: json: improve code coverage
tests: fatal: test failed assertion
tests: mem_alloc: don't set main thread size
tests: crc: convert to regular test case
toolchain: allow 0.10.1 SDK
tests: force stack canaries off for two user tests
Andrzej Głąbek (2):
boards: nrf52840_pca10059: Configure NFC pins as GPIOs by default
drivers: pwm_nrfx: Correct prescaler value for undivided clock
Andrzej Puzdrowski (7):
fs/nvs: fix startup for 2-sectors configuration
fs/fcb: add API documentation to the header
doc/reference: add FCB page
fs/nvs: fix delete ate accommodation
fs/nvs: fix initialization hang if sector is full
fs/nvs: skip deletion on non existing entry
fs/nvs: preserve the previous ate searching
Andy Ross (1):
lib/os/mempool: Fix corruption case with block splitting
Armando Visconti (2):
boards: 96b_argonkey: upgrade documentation using official info
drivers/i2s_ll_stm32.c: (FIX) Avoid warning in LOG_ERR
Arthur Crepin-Leblond (2):
Bluetooth: gatt: Fix DB corruption when adding/removing service
Bluetooth: gatt: Reuse existing handles from a previously added service
Benjamin Valentin (3):
usb: sam0: Ensure API arguments are valid
usb: sam0: Implement missing API functions
drivers: watchdog: sam0: Check if timeout is valid
Benoit Leforestier (2):
C++: Fix compilation error "invalid conversion"
codeowner: add codeowners for /test/lib
Bradley Bolen (1):
cmake: Fix missing dependency
Brett Witherspoon (1):
net: fix errno returned without promiscuous mode support
Bub Wei (1):
samples: net: zperf: Add __packed for zperf_udp_datagram
Cami Carballo (1):
tests: base64: add tests for error paths
Carles Cufi (4):
west: build: Use officially documented CMake options
west: build: Add new pristine cmd-line and config option
scripts: west: Run pristine.cmake directly instead of the target
doc: west: Backport moving the build config opts doc
Daniel Leung (1):
tests/kernel/device: extends test for code coverage
David B. Kinder (1):
doc: fix watchdog API documentation
Declan Traill (1):
Settings: Fixes for compiler warnings
Derek Hageman (1):
soc: sam0: Fix SAMD20 IRQ assignments
Findlay Feng (1):
bluetooth: Fix an undefined behavior
Georgij Cernysiov (2):
drivers: counter: stm32: fix LSE clock source for not F4 SoC
drivers: rtc: stm32: correct tm_mon conversion
Greg S. Woods (1):
entropy: fix C++ compiler warnings
Henrik Brix Andersen (1):
gpio: rv32m1: enable GPIO port clocks
Ioannis Glaropoulos (4):
arch: arm: fix start of MPU guard in stack-fail check (no user mode)
arch: arm: userspace: correct inline comment for bad syscalls
userspace: minor typo fixes in various places
arch: arm: userspace: don't use the default stack in z_arm_do_syscall
Ioannis Konstantelias (1):
drivers: flash: stm32: Fix insufficient wait time
Joakim Andersson (15):
Bluetooth: controller: Fix assert in RPA timeout for advertiser
Bluetooth: Host: Fix wrong init address when controller resolved address
Bluetooth: Controller: Fix privacy advertiser connect peer address type
Bluetooth: Host: Fix bug in creating connection with wrong own address.
Bluetooth: SMP: Fix SMP identity distributing IRK for ID 0 always
Bluetooth: host: Fix gatt indicate when conn is NULL
Bluetooth: Host: Fix advertiser state flags
Bluetooth: GATT: Fix segfault discover descriptors all UUIDs
Bluetooth: Settings: Fix generated identity not persistently stored.
Bluetooth: SMP: Fix peripheral security request with authenticated keys
Bluetooth: controller: Fix assert in RPA timeout for advertiser
Bluetooth: Host: fix missing interval_min copy
Bluetooth: Host: Fix RPA timer not running
Bluetooth: Host: Set Kconfig RPA timeout in controller
Bluetooth: Host: Fix unable to connect using host resolution
Joao Cordeiro (1):
samples: bluetooth: peripheral: Fix RX buffer size
Johan Hedberg (30):
Bluetooth: Mesh: Fix RPL storage timeout handling
Bluetooth: Mesh: Fix postponing storage deadline indefinitely
Bluetooth: Mesh: Fix missing implementation of Proxy SAR timeout
Bluetooth: Mesh: Fix segmented message RPL behavior
Bluetooth: Fix expiring RPA when different local identities are used
Bluetooth: Add dedicated pool for HCI_Num_Completed_Packets HCI event
Bluetooth: Introduce separate pool for discardable events
Bluetooth: Mesh: Fix missing protocol error timeout
Bluetooth: Mesh: Fix Public Key mismatch error handling
Bluetooth: Mesh: Rename reset_link() to reset_adv_link()
Bluetooth: SMP: Make public key handling more robust
Bluetooth: Fix public key callback management
Bluetooth: Mesh: Generate new public key for each provisioning session
Bluetooth: Mesh: Fix rejecting invalid remote public key
Bluetooth: Mesh: Fix provisioning send error handling
Bluetooth: Mesh: Move heartbeat sending to transport layer
Bluetooth: Mesh: Fix checking for active heartbeat publication
Bluetooth: Mesh: Fix heartbeat sending on Friendship established/lost
Bluetooth: Mesh: Fix canceled buffer memory leak
Bluetooth: Mesh: Fix not sending all segments through the Friend Queue
Bluetooth: Mesh: Fix resending segments on correct bearer
Bluetooth: Mesh: Fix canceling publication retransmission timer
Bluetooth: Mesh: Fix starting IV Update when not on primary subnet
Bluetooth: Mesh: Introduce a helper for send callback finalization
Bluetooth: Mesh: Fix reference count imbalance in bt_mesh_net_resend()
Bluetooth: Remove bogus files
Bluetooth: Mesh: Fix missing call to send_cb_finalize
Bluetooth: Mesh: Remove unused code
Bluetooth: Mesh: Fix adhering to the configured Friend Queue size
Bluetooth: Mesh: Fix discarding messages with many segments
Johann Fischer (2):
boards: reel_board: enable pull-up on UART TX pin
usb: usb_dfu: do not set bwPollTimeout dynamically
Josef Gajdusek (2):
drivers: usb_dc_stm32: Make pin remapping part of the device tree
drivers: usb_dc_stm32: Reinitialize the write semaphores on bus reset
Jukka Rissanen (21):
samples: net: dumb_http_server: Add net_pkt.h file inclusion
samples: net: dumb_http_server: Check EOF while skipping headers
net: ipv4: Allow UDP packets with broadcast dst address
net: ipv4: Send multicast ICMPv4 reply with correct src address
net: if: Select global IPv4 address if needed
net: llmnr: Check that UDP header can be accessed
net: if: Fix null pointer deref when selecting IPv4 address
net: sntp: Ignore return value from close
net: mgmt: Add info length to event wait API
net: mgmt: Send event with info when applicaple
tests: net: mgmt: Verify that info_length is...
Zephyr v2.0.0-rc1
Aaron Tsui (7):
doc: sample: mpu Update documentation
samples: bluetooth: ibeacon: change to ADV_NONCONN_IND type
samples: shields: x_nucleo_iks01a1
samples: sensor: bme280: add README.rst
samples: sensor: bme280: add arduino_101_sss.overlay
samples: servo_motor: add HW PWM choice for NRF52 family
samples: bluetooth: peripheral_ht: Health Thermometer sample`
Alberto Escolar Piedras (22):
doc: labels: Add links to feature process
native_posix: cmdline: Hint user about wrong options
nrf52_bsim: Add header to allow reusing native_posix drivers
CODEOWNERS: remove use of commas
native_posix: Run in real time by default with host BT
doc: Remove API labels
CODEOWNERS: Add reviewer for native_posix docs and flash driver
CODEOWNERS: Clarify behaviour
sanitycheck: Record time used in BinaryHandler
sanitycheck: Minor optimization in BinaryHandler
CODEWONERS: syntax fix: Remove comma
nrf52_bsim: Add nrfx path to include path
arch: POSIX: Do not assume 32bit pointers
sanitycheck: update sections whitelist
sanitycheck: Add missing section to whitelist
native_posix: Replace system timer driver
arch: POSIX: Fix race with unused threads
nrf52_bsim: doc: Clarify how to fetch and compile BabbleSim
native_posix: Fix undefined macro warning
logging: Fix undefined macro warning
shell: Fix undefined macro warnings
nrf52_bsim: Minor fix in time coversion
Alex Porosanu (1):
soc: riscv32: fix zero-riscy zephyr,flash node
Alexander Mihajlovic (1):
posix: Fix calculation of clock base in clock_settime
Alexander Svensen (9):
Bluetooth: controller: ull/lll: Workaround CPR procedure collision
Bluetooth: controller: ull/lll: Do not feature exc more than once
Bluetooth: controller: split: Fix Conn Param Req procedure stall issue
Bluetooth: controller: split: Fix master role RSSI measurement
Bluetooth: controller: split: Refactor the lll_clock_wait() function
Bluetooth: controller: split: Refactor if_defines to is_enabled in lll.c
Bluetooth: controller: split: Refactor if defines in lll_adv.c
Bluetooth: controller: split: Refactor if defines in lll_scan.c
Drivers: led: lp5562: Add delay when writing to enable register
Alexander Wachter (49):
boards: arm: nucleo_f746zg: Activate CAN on nucleo F746zg
drivers: sensor: ams_iAQcore: Implemented ASM Indoor Air Quality Sensor
samples: sensor: ams_iAQcore: Implement sample for AMS iAQ-core
drivers: sensor: ens210: Implement AMS ens210 Sensor
samples: sensor: ens210: Implement sample for ens210
tests: drivers: build_all: Add AMS IAQcore and ENS210 to build all
CODEOWNERS: Add codeowner for ams iAQcore and ENS210
drivers: can: stm32: fix filter mode set
drivers: can: Extend attach_isr with void *arg and pass to the isr cb
drivers: can: Extend can_send with void *arg and pass it to the isr cb
drivers: can: rework can_attach_msgq
drivers: can: Implement can_attach_workq
tests: drivers: can: api: define DT_CAN_1_NAME if not defined
tests: drivers: can: Add testcases for attach_workq
tests: drivers: can: Make CAN dev global
drivers: can: Add loopback driver
drivers: can: rename drivers to can_<dev name>
drivers: can: mcux_flexcan: Add support for MK64
soc: nxp: k6x: Add CAN support
boards: frdm-k64f: Enable CAN support
samples: CAN: Add FRDM-K64F defconfig
drivers: can: stm32: Remove STM CAN_Init
drivers: can: stm32: Change TX priority to chronological order
drivers: can: stm32 Add error message for buffer overflow
drivers: can: stm32: Update enable driver help message
linker: Add dtcm section for Cortex M7 MCUs
dts: stm32f7: Add Device Tightly Coupled Memory
drivers: ethernet: stm32: Put DMA buffer to DTCM section
boards: arm: Activate DTCM for STM32F7 boards with Ethernet
net: ip: 6lo compression rework
net: ip: net_pkt: Add pkt_cursor_advance before contiguous check
net: ip: 6lo (IPHC) uncompression rework
net: ip: 6lo: Remove unnecessary net_buf allocation and memmove
tests: net: 6lo: Adapt tests to deal with headers in multiple frames
tests: net: 6Lo: Add test criterion HDR diff
drivers: can: Add CAN shell
samples: drivers: CAN: enable can shell for the sample
tests: boards: board_shell: Activate CAN shell
can: Add RX timestamp to zcan_frame
drivers: can: stm32: Implement timestamp for RX frames
net: canbus: Rename canbus to canbus_raw
net: l2: 6LoCAN implementation
net: l2: canbus: Add support for pkt reception from translator
net: ip: net_pkt: Implement net_pkt_shallow_clone
net: ip: ipv6_nbr: take TLLAO length from src lladdres
net: l2: canbus: Add support for canbus Ethernet translator
net: ip: ipv6_nbr: use temp variables for ntoh conversion
samples: net: echo_client and echo_server: Add 6LoCAN config
net: ip: ipv6_nbr: Make LLAO length calculation more universal
Alexandre Bourdiol (4):
boards: Set pinmux.c compilation under switch CONFIG_PINMUX
samples: basic minimal: add nucleo_f429zi, disco_l475_iot1 to whitelist
board: add call to zephyr_library() for stm32mp157c_dk2
board: use ${ZEPHYR_BASE} instead of ${PROJECT_SOURCE_DIR}
Alexey Brodkin (11):
soc/nsim: Minor clean-up
simulation: ARC EM in nSIM to use nsim_em.props
board/nsim: Make it CPU-family independent
board/nsim: Move CPU selection in defconfigs
board/nsim: Refactor device tree description
ARC: Mention ARC EM family instead of EM4 template
arc: Preserve STATUS32 flags while resetting AE flag
arc: Add support for unaligned access
boards/nsim: Enable unaligned data acess for nSIM with simple ARC EM
board/nsim: Add support of ARC HS cores in nSIM
board/nsim: Add support of multi-core ARC HS platform in nSIM
Anas Nashif (198):
ci: only build on specified branches
boards: v2m_musca_b1_nonsecure: add flash to yaml
boards: v2m_musca_b1_nonsecure: disable sanitycheck [REVERT ME]
flash_map: fix test names
flash_map: add function to iterate over areas
flash_map: add shell interface
ci: detect changes to sub-board definitions
sanitycheck: add timestamps to messages
sanitycheck: fix reporting: build vs. run
sanitycheck: handle pid file not being present
sanitycheck: show handler in verbose mode
CODEOWNERS: update code owners
tests: ipm: disable on qemu_x86_64
CODEOWNERS: minor cleanup
CODEOWNERS: remove use of commas
crc: remove deprecated crc headers
ci: send email to builds@ mailing list if master fails
CODEOWNERS: address some unowned files/dirs
doc: guide for optimizing zephyr
doc: move module related doc to guides
doc: document submitting changes to modules
qmsi: move to a zephyr module
qmsi: set type to boolean when selecting QMSI
esp: move HAL to external repo
fatfs: move fatfs filesystem to a module
mcumgr: move to an external module
nffs: move to an external module
segger: move to an external module
CODEOWNERS: remove ext/fs entry
kconfig: enclose module Kconfigs into a menu
cmake: build modules under /modules
gitlint: match max title length restriction with checkpatch
modules: move module kconfig to main tree
manifest: update with module state
silabs: move HAL to external repo
cypress: move HAL to external repo
ext: move libmetal to an external module
ext: move open-amp to an external module
modules: move kconfig into tree
mcumgr: move Kconfig to main tree
CODEOWNERS: Update owners for subsys/mgmt/
manifest: update to latest MCUMGR head
x86: remove unused and x86 only latency benchmark
compiler: no warnings on address-of-packed-member
include: arch: move bits_portable.h to arch/common
include: arch: move addr_types to common location
include: arch: remove empty nios2 asm.h
include: arch: rename xtensa_irq.h to irq.h
CODEOWNERS: update file for include/arch/common/
cmake: no-address-of-packed-member is not supported in older compilers
logging: use os as a domain for low level system debugging
tests: mesh: fix function prototype and match declaration
style: add braces around if/while statements
style: samples/tests: add braces around if/while statements
doc: redirect old board pages to new location
doc: remove .html from redirect entries
doc: generate documentation of ifdef`ed APIs
mbedtls: move to external module
sdk: add support for 0.10.1 and remove 0.9.5
doc: fix path to gdb in documentation
doc: samples: cleanup board reference and layout
samples: grove_light: remove whitelisting
soc: nxp: ke1xf: add DTS SPI definitions
samples: spi_fujitsu_fram: remove whitelisting
manifest: order modules alphabetically
manifest: add ci-tools to manifest
manifest: remove out-dated comment
manifest: move net-tools to tools/net-tools
ci: move to new docker with new SDK
ci: skip handling coverage data
sanitycheck: report tests that never build/run
ext: hal: st: move to modules
docs: fix misspelling across the tree
ci: increase sleep time between sanitycheck runs
drivers: uart_console: include correct path
drivers: uart_console: do not include arch/cpu.h directly
drivers: uart_c...
Zephyr v1.14.1-rc1
This is the first release candidate from the 1.14 branch (LTS) with many bug fixes and and test enhancements increasing coverage of testing. Highlights of this release:
- Bluetooth bugfixes needed for host and controller qualification
- Increase coverage of kernel and core OS tests and fixed issues uncovered by the newly added tests
- Various build system enhancements keeping 1.14 compatible with development branch
- Support for out-of-tree configurations
- Fixes for issues uncovered by static analysis
Below is the list of all commits since v1.14.0:
Alexander Mihajlovic (1):
posix: Fix calculation of clock base in clock_settime
Alexander Wachter (1):
drivers: can: stm32: fix filter mode set
Anas Nashif (5):
ci: only build on specified branches
manifest: add ci-tools
ci: add v1.14-branch to email integration
CODEOWNERS: remove non-existing path
release: bump version to 1.14.1-rc1
Andrew Boie (46):
arc: arm: fix support for MPUs on non-XIP systems
newlib: fix user mode calls to _sbrk
tests: pipe: fix error with optimization disabled
tests: cmsis_v2: don't hard-code stack sizes
lib: cmsis_v2: set default dynamic stack size
lib: cmsis_v2: increase stack sizes if coverage
tests: cmsis_v1: properly set stack size
lib: cmsis_v1: set stack size larger if coverage
kernel: increase workq sizes if COVERAGE=y
testsuite: fix memory access
tests: timer_api: run in user mode
tests: stackprot: don't set main stack size
kernel: adjust default main stack for riscv
kernel: fix k_stack_alloc_init()
tests: mutex_api: run in user mode
kernel: init: exclude some funcs from coverage
kernel: init: fix coverage gap
kernel: init: exclude unreachable code
kernel: allow k_sleep(K_FOREVER)
tests: queue: test k_queue_alloc_*pend()
kernel: idle: exclude no-op funcs from coverage
lib: os: remove dead code
tests: poll: expand userspace coverage
tests: schedule_api: fix extern tstacks
tests: schedule_api: exercise SCHED_MULTIQ
tests: schedule_api: test syscalls from usermode
tests: schedule_api: skip test assert if COVERAGE
tests: userspace: cover missing/bad syscalls
tests: dynamic_thread: cover thread_idx_free()
tests: userspace: cover z_object_recycle()
kernel: exclude stubs from code coverage
tests: common: cover k_cycle_get_32() syscall
tests: device: cover device_get_binding()
tests: thread_apis: exercise some system calls
tests: sys_mutex: improve code coverage
kernel: offsets: exclude from coverage
lib: os: fix vsnprintk coverage
lib: os: exclude z_arch_printk_char_out()
lib: os: fix slist code coverage
kernel: test coverage for sflist
tests: common: add tests for extra sflist APIs
tests: schedule_api: cover priority checks
arc: use different load instruction
kernel: fix CONFIG_THREAD_NAME from user mode.
tests: json: improve code coverage
tests: fatal: test failed assertion
Andrzej Głąbek (2):
boards: nrf52840_pca10059: Configure NFC pins as GPIOs by default
drivers: pwm_nrfx: Correct prescaler value for undivided clock
Andrzej Puzdrowski (1):
fs/nvs: fix startup for 2-sectors configuration
Armando Visconti (2):
boards: 96b_argonkey: upgrade documentation using official info
drivers/i2s_ll_stm32.c: (FIX) Avoid warning in LOG_ERR
Benjamin Valentin (3):
usb: sam0: Ensure API arguments are valid
usb: sam0: Implement missing API functions
drivers: watchdog: sam0: Check if timeout is valid
Benoit Leforestier (1):
C++: Fix compilation error "invalid conversion"
Bradley Bolen (1):
cmake: Fix missing dependency
Brett Witherspoon (1):
net: fix errno returned without promiscuous mode support
Bub Wei (1):
samples: net: zperf: Add __packed for zperf_udp_datagram
Carles Cufi (4):
west: build: Use officially documented CMake options
west: build: Add new pristine cmd-line and config option
scripts: west: Run pristine.cmake directly instead of the target
doc: west: Backport moving the build config opts doc
David B. Kinder (1):
doc: fix watchdog API documentation
Derek Hageman (1):
soc: sam0: Fix SAMD20 IRQ assignments
Georgij Cernysiov (2):
drivers: counter: stm32: fix LSE clock source for not F4 SoC
drivers: rtc: stm32: correct tm_mon conversion
Greg S. Woods (1):
entropy: fix C++ compiler warnings
Henrik Brix Andersen (1):
gpio: rv32m1: enable GPIO port clocks
Ioannis Glaropoulos (1):
arch: arm: fix start of MPU guard in stack-fail check (no user mode)
Joao Cordeiro (1):
samples: bluetooth: peripheral: Fix RX buffer size
Johan Hedberg (15):
Bluetooth: Mesh: Fix RPL storage timeout handling
Bluetooth: Mesh: Fix postponing storage deadline indefinitely
Bluetooth: Mesh: Fix missing implementation of Proxy SAR timeout
Bluetooth: Mesh: Fix segmented message RPL behavior
Bluetooth: Fix expiring RPA when different local identities are used
Bluetooth: Add dedicated pool for HCI_Num_Completed_Packets HCI event
Bluetooth: Introduce separate pool for discardable events
Bluetooth: Mesh: Fix missing protocol error timeout
Bluetooth: Mesh: Fix Public Key mismatch error handling
Bluetooth: Mesh: Rename reset_link() to reset_adv_link()
Bluetooth: SMP: Make public key handling more robust
Bluetooth: Fix public key callback management
Bluetooth: Mesh: Generate new public key for each provisioning session
Bluetooth: Mesh: Fix rejecting invalid remote public key
Bluetooth: Mesh: Fix provisioning send error handling
Johann Fischer (2):
boards: reel_board: enable pull-up on UART TX pin
usb: usb_dfu: do not set bwPollTimeout dynamically
Josef Gajdusek (2):
drivers: usb_dc_stm32: Make pin remapping part of the device tree
drivers: usb_dc_stm32: Reinitialize the write semaphores on bus reset
Jukka Rissanen (13):
samples: net: dumb_http_server: Add net_pkt.h file inclusion
samples: net: dumb_http_server: Check EOF while skipping headers
net: ipv4: Allow UDP packets with broadcast dst address
net: ipv4: Send multicast ICMPv4 reply with correct src address
net: if: Select global IPv4 address if needed
net: llmnr: Check that UDP header can be accessed
net: if: Fix null pointer deref when selecting IPv4 address
net: sntp: Ignore return value from close
net: mgmt: Add info length to event wait API
net: mgmt: Send event with info when applicaple
tests: net: mgmt: Verify that info_length is correct
net: dns: Make dns_unpack_answer() to check non-compressed answers
tests: net: dns: Add tests for dns_unpack_answer()
Krzysztof Chruscinski (4):
logging: Allow logger usage in C++ files
lib: os: ring_buffer: Fix C++ compilation warning
drivers: clock_control: nrf: Fix lfclk source settings for nrf9160
drivers: counter: nrfx_rtc: Fix lack of interrupt when CC=0
Kwon Tae-young (1):
boards: stm32f4_disco: Fix yaml ram size
Loic Poulain (2):
ext: mcux: csi: Fix wrong circular queue delta calculation
net: ethernet: Fix build issue with C++
Luiz Augusto von Dentz (5):
Bluetooth: GATT: Fix assuming writes to CCC will always contain 2 bytes
Bluetooth: L2CAP: Fix inverting of SCID and DCID on disconnect
Bluetooth: GATT: Fix bt_gatt_discovery with BT_GATT_DISCOVER_DESCRIPTOR
Bluetooth: shell: gatt: Add discover command
Bluetooth: GATT: Fix not parsing result of Read by Type
Marcin Szymczyk (2):
cmake: fix support for out of tree shields
usb: add zero-length packet after MPS-sized IN transaction
Marek Pieta (2):
bluetooth: Fix bt_conn->id handling
Bluetooth: host: Fix bt_keys_get_addr()
Mariusz Skamra (2):
Bluetooth: controller: Workaround CPR procedure collision at CPU instant
Bluetooth: gatt: Fix infinite read_by_uuid procedure
Marti Bolivar (2):
scripts: flake8 cleanup for west build
scripts: fix pyocd runner --flash-opt help
Michael Scott (1):
net: openthread: fix off-by-one error in settings offset calculation
Nicolas Pitre (1):
PTHREAD_MUTEX_DEFINE(): don't store into the _k_mutex section
Patrik Flykt (3):
net: ethernet: Set NET_ETH_PTYPE_ARP for IPv4 link local packet type
net: ethernet: Send sender IP address in ARP announce packets
net/ip/dhcpv4: Set source IP address in DHCP Request
Pawel Dunaj (2):
bluetooth: host: Use correct identity when direct advertising
bluetooth: host: Unref conn on direct adv start error
Phil Erwin (1):
cmake: Fix missing dependency
Ravi kumar Veeramally (1):
net: sockets: Add timeout to socket connect call
Rich Barlow (1):
Bluetooth: Mesh: LPN: Clear sent_req on failure
Ryan C Johnson (1):
drivers: flash: w25q: erase operations must be erase-size aligned
Ryan QIAN (2):
dts: arm: nxp: Add dtsi for RT1020
boards: arm: mimxrt1020_evk: update board dts
Sebastian Bøe (3):
cmake: Don't have users call zephyr_link_interface on mbedTLS
cmake: DT: Change from -Idts/common to -isystem dts/common
cmake: DT: Add support for out-of-tree binding root directories
Sören Tempel (4):
soc/riscv32-fe310: add label for uart1
net: slip: allow compilation without CONFIG_NET_LLDP
net: slip: fix compilation without NET_L2_ETHERNET
drivers: serial: sifive: Fix UART extern interrupts
Tedd Ho-Jeong An (2):
Blue...
Zephyr 1.14.0
We are pleased to announce the release of Zephyr kernel version 1.14.0.
Major enhancements with this release include:
-
The Zephyr project now supports over 160 different board configurations
spanning 8 architectures. All architectures are rigorously tested and
validated using one of the many simulation platforms supported by the
project: QEMU, Renode, ARC Simulator, and the native POSIX configuration. -
The timing subsystem has been reworked and reimplemented, greatly
simplifying the resulting drivers, removing thousands of lines
of code, and reducing a typical kernel build size by hundreds of bytes.
TICKLESS_KERNEL mode is now the default on all architectures. -
The Symmetric Multi-Processing (SMP) subsystem continues to evolve
with the addition of a new CPU affinity API that can "pin" threads to
specific cores or sets of cores. The core kernel no longer uses the
global irq_lock on SMP systems, and exclusively uses the spinlock API
(which on uniprocessor systems reduces to the same code). -
Zephyr now has support for the x86_64 architecture. It is currently
implemented only for QEMU targets, supports arbitrary numbers of CPUs,
and runs in SMP mode by default, our first platform to do so. -
We've overhauled the Network packet net-pkt
API and moved the majority of components and protocols to use the
BSD socket API, including MQTT, CoAP,
LWM2M, and SNTP. -
We enhanced the native POSIX port by adding UART, USB, and display
drivers. Based on this port, we added a simulated NRF52832 SoC which enables
running full system, multi-node simulations, without the need of real
hardware. -
We added an experimental BLE split software Controller with Upper Link Layer
and Lower Link Layer for supporting multiple BLE radio hardware
architectures. -
The power management subsystem has been overhauled to support device idle
power management and move most of the power management logic from the
application back to the BSP. -
We introduced major updates and an overhaul to both the logging and
shell subsystems, supporting multiple back-ends, integration
of logging into the shell, and delayed log processing. -
Introduced the
west
tool for management of multiple repositories and
enhanced support for flashing and debugging. -
Added support for application user mode, application memory
partitions, and hardware stack protection in ARMv8m -
Applied MISRA-C code guideline on the kernel and core components of Zephyr.
MISRA-C is a well established code guideline focused on embedded systems and
aims to improve code safety, security and portability.
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
The following security vulnerabilities (CVEs) were addressed in this release:
-
Tinycrypt HMAC-PRNG implementation doesn't take the HMAC state
clearing into account as it performs the HMAC operations, thereby using a
incorrect HMAC key for some of the HMAC operations.
(CVE-2017-14200) -
The shell DNS command can cause unpredictable results due to misuse of stack
variables.
(CVE-2017-14201) -
The shell implementation does not protect against buffer overruns resulting
in unpredictable behavior.
(CVE-2017-14202) -
We introduced Kernel Page Table Isolation, a technique for
mitigating the Meltdown security vulnerability on x86 systems. This
technique helps isolate user and kernel space memory by ensuring
non-essential kernel pages are unmapped in the page tables when the CPU
is running in the least privileged user mode, Ring 3. This is the
fix for Rogue Data Cache Load. (CVE-2017-5754) -
We also addressed these CVEs for the x86 port:
- Bounds Check Bypass (CVE-2017-5753)
- Branch Target Injection (CVE-2017-5715)
- Speculative Store Bypass (CVE-2018-3639)
- L1 Terminal Fault (CVE-2018-3620)
- Lazy FP State Restore (CVE-2018-3665)
Kernel
-
The timing subsystem has been reworked and mostly replaced:
-
The timer driver API has been extensively reworked, greatly
simplifying the resulting drivers. By removing thousands of lines
of code, we reduced the size of a typical kernel build by hundreds
of bytes. -
TICKLESS_KERNEL mode is now the default on all architectures. Many
bugs were fixed in this support.
-
-
Lots of work on the rapidly-evolving SMP subsystem:
-
There is a new CPU affinity API available to "pin" threads to
specific cores or sets of cores. -
The core kernel is now 100% free of use of the global irq_lock on
SMP systems, and exclusively uses the spinlock API (which on
uniprocessor systems reduces to the same code). -
Zephyr now has a simple interprocessor interrupt framework for
applications, such as the scheduler, to use for synchronously
notifying other processors of state changes. It's currently implemented
only on x86_64 and used only for thread abort.
-
-
Zephyr now has support for the x86_64 architecture. It is
currently implemented only for QEMU targets.-
It supports arbitrary numbers of CPUs in SMP, and runs in SMP mode
by default, our first platform to do so. -
It currently runs code built for the "x32" ABI, which is a native
64-bit hardware state, where pointers are 32 bit in memory.
Zephyr still has some lurking word size bugs that will need to be
fixed to turn on native 64 bit code generation.
-
-
K_THREAD_STACK_BUFFER() has been demoted to a private API and will be removed
in a future Zephyr release. -
A new API sys_mutex has been introduced. It has the same semantics
as a k_mutex, but the memory for it can reside in user memory and so
no explicit permission management is required. -
sys_mem_pool() now uses a sys_mutex() for concurrency control.
-
Memory protection changes:
- CONFIG_APPLICATION_MEMORY option has been removed from Zephyr. All test
cases have been appropriately converted to use memory domains. - The build time memory domain partition generation mechanism, formerly
an optional feature under CONFIG_APP_SHARED_MEM, has been overhauled
and is now a core part of memory protection. - Userspace is no longer enabled by default for tests. Tests that are
written to execute wholly or in part in user mode will need to enable
CONFIG_TEST_USERSPACE in the test's project configuration. There are
assertions in place to enforce that this is done. - The default stack size for handling system calls has been increased to
1024 bytes.
- CONFIG_APPLICATION_MEMORY option has been removed from Zephyr. All test
-
We started applying MISRA-C (https://www.misra.org.uk/) code guideline on
the Zephyr kernel. MISRA-C is a well established code guideline focused on
embedded systems and aims to improve code safety, security, and portability.
This initial effort was narrowed to the Zephyr kernel and architecture
code, and focused only on mandatory and required rules. The following rules
were addressed:- Namespace changes
- Normalize switch() operators
- Avoid implicit conversion to boolean types
- Fix and normalize headers guard
- Make if() evaluate boolean operands
- Remove all VLAs (variable length array)
- Avoid undefined and implementation defined behavior with shift operator
- Remove recursions
Architectures
-
Introduced X86_64 (64 bit) architecture support with SMP features
-
High-level Kconfig symbol structure for Trusted Execution
-
ARM:
- Re-architect Memory Protection code for ARM and NXP
- Fully support application user mode, memory partitions, and
stack protection in ARMv8m - Support built-in stack overflow protection in user mode in ARMv8m
- Fix stack overflow error reporting
- Support executing from SRAM in XIP builds
- Support non-cacheable memory sections
- Remove power-of-two align and size requirement for ARMv8-m
- Introduce sync barriers in ARM-specific IRQ lock/unlock functions
- Enforce double-word stack alignment on exception entry
- API to allow Non-Secure FPU Access (ARMv8-M)
- Various enhancements in ARM system boot code
- Indicate Secure domain fault in Non-Secure fault exception
- Update ARM CMSIS headers to version 5.4.0
-
ARC:
- Userspace and MPU driver improvements
- Optimization of the thread stack definition macros
- Bug fixes: handling of lp_xxx registers in _rirq_return_from_coop, nested
interrupt handling, hardware stack bounds checking, execution benchmarking - Atomic operations are now usable from user mode on all ARC CPUs
-
x86:
- Support for non-PAE page tables has been dropped.
- Fixed various security CVEs related to micro-architecture side-effects of
speculative execution, as detailed in the security notes. - Added robustness when reporting exceptions generated due to stack
overflows or induced in user mode - Pages containing read-only data no longer have the execute disable (XD)
bit un-set. - Fix potential IRQ stack corruption when handling double faults
Boards & SoC Support
-
Added the all new NRF52 simulated board:
This simulator models some of the hardware in an NRF52832 SOC, to enable
running full system, multi-node simulations, without the need of real
hardware. It enables fast, reproducible testing, development, and debugging
of an application, BlueTooth (BT) stack, and kernel. It relies on BabbleSim
to simulate the radio physical layer. -
Added SoC configuration for nRF9160 and Musca ARM Cortex-M33 CPU
-
Added support for the following A...