Releases: zephyrproject-rtos/zephyr
Zephyr v2.6.0
We are pleased to announce the release of Zephyr RTOS version 2.6.0.
Major enhancements with this release include:
- Logging subsystem overhauled
- Added support for 64-bit ARCv3
- Split ARM32 and ARM64, ARM64 is now a top-level architecture
- Added initial support for Arm v8.1-m and Cortex-M55
- Removed legacy TCP stack support which was deprecated in 2.4
- Tracing subsystem overhaul including expansion for tracing points and added support for Percepio Tracealyzer
- Device runtime power management (PM), former IDLE runtime, was completely overhauled.
- Added an example standalone Zephyr application in its own Git repository:
https://github.com/zephyrproject-rtos/example-application
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
The following CVEs are addressed by this release:
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
- CVE-2021-3581: Under embargo until 2021-09-04
Known issues
You can check all currently known issues by listing them using the GitHub
interface and listing all issues with the bug label <https://github.com/zephyrproject-rtos/zephyr/issues?q=is%3Aissue+is%3Aopen+label%3Abug>
_.
API Changes
-
Driver APIs now return
-ENOSYS
if optional functions are not implemented. If the feature is not supported by the hardware-ENOTSUP
will be returned. Formerly-ENOTSUP
was returned for both failure modes, meaning this change may require existing code that tests only for that value to be changed. -
The
wait_for_usb_dfu
function now accepts ak_timeout_t
argument instead of using theCONFIG_USB_DFU_WAIT_DELAY_MS
macro. -
Added disconnect reason to the
disconnected
callback of :c:struct:bt_iso_chan_ops
. -
Align error handling of bt_l2cap_chan_send and
bt_iso_chan_send
so when an error occur the buffer is not unref. -
Added
lwm2m_engine_delete_obj_inst
function to the LwM2M library API.
Deprecated in this release
-
DT_CLOCKS_LABEL_BY_IDX
,DT_CLOCKS_LABEL_BY_NAME
,DT_CLOCKS_LABEL
,DT_INST_CLOCKS_LABEL_BY_IDX
,DT_INST_CLOCKS_LABEL_BY_NAME
, andDT_INST_CLOCKS_LABEL
was deprecated in favor of utilizingDT_CLOCKS_CTLR
and variants. -
DT_PWMS_LABEL_BY_IDX
,DT_PWMS_LABEL_BY_NAME
,DT_PWMS_LABEL
,DT_INST_PWMS_LABEL_BY_IDX
,DT_INST_PWMS_LABEL_BY_NAME
, andDT_INST_PWMS_LABEL
was deprecated in favor of utilizingDT_PWMS_CTLR
and variants. -
DT_IO_CHANNELS_LABEL_BY_IDX
,DT_IO_CHANNELS_LABEL_BY_NAME
,DT_IO_CHANNELS_LABEL
,DT_INST_IO_CHANNELS_LABEL_BY_IDX
,DT_INST_IO_CHANNELS_LABEL_BY_NAME
, andDT_INST_IO_CHANNELS_LABEL
were deprecated in favor of utilizingDT_IO_CHANNELS_CTLR
and variants. -
DT_DMAS_LABEL_BY_IDX
,DT_DMAS_LABEL_BY_NAME
,DT_INST_DMAS_LABEL_BY_IDX
, andDT_INST_DMAS_LABEL_BY_NAME
were deprecated in favor of utilizingDT_DMAS_CTLR
and variants. -
USB HID specific macros in
<include/usb/class/usb_hid.h>
are deprecated in favor of new common HID macros defined in<include/usb/class/hid.h>
. -
USB HID Kconfig option USB_HID_PROTOCOL_CODE is deprecated. USB_HID_PROTOCOL_CODE does not allow to set boot protocol code for specific HID device. USB HID API function usb_hid_set_proto_code() can be used instead.
-
USB HID class API is changed by removing get_protocol/set_protocol and get_idle/set_idle callbacks. These callbacks are redundant or do not provide any additional value and have led to incorrect usage of HID class API.
-
The
CONFIG_OPENOCD_SUPPORT
Kconfig option has been deprecated in favor ofCONFIG_DEBUG_THREAD_INFO
. -
Disk API header
<include/disk/disk_access.h>
is deprecated in favor of<include/storage/disk_access.h>
. -
flash_write_protection_set()
. -
The
CONFIG_NET_CONTEXT_TIMESTAMP
is removed as it was only able to work with transmitted data. The same functionality can be achieved by settingCONFIG_NET_PKT_RXTIME_STATS
andCONFIG_NET_PKT_TXTIME_STATS
options. These options are also able to calculate the RX & TX times more accurately. This means that support for the SO_TIMESTAMPING socket option is also removed as it was used by the removed config option. -
The device power management (PM) APIs and data structures have been renamed from
device_pm_*
topm_device_*
since they are not device APIs but PM subsystem APIs. The same applies to enumerations and definitions, they now follow thePM_DEVICE_*
convention. Some other API calls such asdevice_set_power_state
anddevice_get_power_state
have been renamed topm_device_state_set
andpm_device_state_get
in order to align with the naming of other device PM APIs. -
The runtime device power management (PM) APIs is now synchronous by default and the asynchronous API has the _async sufix. This change aligns the API with the convention used in Zephyr. The affected APIs are
pm_device_put
andpm_device_get
. -
The following functions, macros, and structures related to the kernel work queue API:
k_work_pending()
replace withk_work_is_pending()
k_work_q_start()
replace withk_work_queue_start()
- :c:struct:
k_delayed_work
replace with :c:struct:k_work_delayable
k_delayed_work_init()
replace withk_work_init_delayable
k_delayed_work_submit_to_queue()
replace withk_work_schedule_for_queue()
ork_work_reschedule_for_queue()
k_delayed_work_submit()
replace withk_work_schedule()
ork_work_reschedule()
k_delayed_work_pending()
replace withk_work_delayable_is_pending()
k_delayed_work_cancel()
replace withk_work_cancel_delayable()
k_delayed_work_remaining_get()
replace withk_work_delayable_remaining_get()
k_delayed_work_expires_ticks()
replace withk_work_delayable_expires_get()
k_delayed_work_remaining_ticks()
replace withk_work_delayable_remaining_get()
K_DELAYED_WORK_DEFINE
replace withK_WORK_DELAYABLE_DEFINE
Removed APIs in this release
-
Removed support for the old zephyr integer typedefs (u8_t, u16_t, etc...).
-
Removed support for k_mem_domain_destroy and k_mem_domain_remove_thread
-
Removed support for counter_read and counter_get_max_relative_alarm
-
Removed support for device_list_get
Stable API changes in this release
-
Kernel
-
Added
k_mem_unmap()
so anonymous memory mapped viak_mem_map()
can be unmapped and virtual address reclaimed. -
Added the ability to gather more statistics for demand paging, including execution time histograms for eviction algorithms and backing stores.
-
Architectures
-
ARC
- Added new ARCv3 64bit ISA support and corresponding HS6x processor support
- Hardened SMP support
- Various minor fixes/improvements for ARC MWDT toolchain infrastructure
- Refactor of ARC Kconfig
-
ARM
-
AARCH32
- Added support for null pointer dereferencing detection in Cortex-M.
- Added initial support for Arm v8.1-m and Cortex-M55.
- Added support for preempting threads while they are performing secure calls in Cortex-M.
- Added support for memory region generation by the linker based on device tree node information in Cortex-M.
- Cleaned up definitions of SoC-specific memory regions in the common Cortex-M linker script.
- Added support for clearing NXP MPU region configuration during Zephyr early boot stage.
- Disallowed fpu hard ABI when building Non-Secure applications with TF-M on Cortex-M33.
- Enhanced register information dump in fault exceptions in Cortex-R.
- Fixed spurious interrupt handling in Cortex-R.
-
AARCH64
- SMP support
- MMU dynamic mappings with page table sharing.
- Userspace (unprivileged) thread support.
- Standalone SMCCC support.
- XIP support.
- ARM64 is now a top-level standalone architecture.
- Support for Cortex-R82 and Armv8-R AArch64 MPU.
- Cache management support.
- Revamped boot code.
- Full FPU context switching.
-
-
x86
-
Added SoC configuration for Lakemont SoC.
-
Removed kconfig
CONFIG_CPU_MINUTEIA
as there is no user of this option. -
Renamed kconfig
CONFIG_SSE*
toCONFIG_X86_SSE*
. -
Extended the pagetable generation script to allow specifying additional memory mapping during build.
-
x86-32
- Added support for kernel image to reside in virtual address space, allowing code execution and data manipulation via virtual addresses.
-
Bluetooth
-
Audio
- Split up ISO handling from audio handling, and moved the latter to its own directory.
- Added the Volume Offset Control Service and client.
- Added the Audio Input Control Service and client.
- Added the Volume Control Service and client.
-
Host
- Added basic support for Direction Finding.
- Added support for CTE connectionless transimission and reception over periodic advertising.
- Refactored the HCI and ECC handling implementations.
- Stopped auto updating the device name in the adv data.
- Added support for logging security keys to be used by an air sniffer.
- Fixed a bonding issue where the local bond data was not being updated after the remote device had removed it when the peer was not using the IRK stored in the bonding information.
- Implemented the directory listing object to OTS.
- Added a function to access the
bt_conn_iso
object. - Added a new configuration option for writeable device name.
- Added a new configuration option for minimum encryption key size.
- Added support for keypress notifications as an SMP responder.
- Added a new option,
BT_LE_ADV_OPT_FORCE_NAME_IN_AD
, which forces the device name to appear in the adv packet instead of the scan response. - Added a security level check when sending a notification or indication.
- Added the ability to send HCI monitor traces over RTT.
...
Zephyr v2.6.0-rc3
Changes since v2.6.0-rc2:
Affrin Pinhero (1):
drivers/ADC: STM32: This solves coverity reported in ADC driver.
Alexander Wachter (1):
drivers: can: sjw == 0 in can_set_timing should not change sjw
Alexey Brodkin (1):
samples: tensorflow: Fix sample path
Anas Nashif (8):
doc: release notes: update tracing section
sensor: use function properties to document the context
thread analyzer: fix formatting for unsigned int
boards: up_squared: remove 32bit variant
boards: qemu_x86_coverage: remove board testing coverage
boards: minnowboard: remove untested and old board
release notes: document removed x86 boards
boards: acrn: do not run net/bt tests
Andrzej Głąbek (1):
doc: release-notes-2.6: Add entries for ADC and PWM drivers
Arvin Farahmand (1):
Kconfig: `ROM_START_OFFSET` fix for samd5x
Aurelien Jarno (1):
lib: newlib: fix _gettimeofday hook
Carles Cufi (2):
doc: release: Add Bluetooth release notes for 2.6
workflows: backport: Switch to using main
Casper Bonde (3):
Bluetooth: ISO: Speed up BT ISO data processing
Bluetooth: ISO: Add sequence number to ISO data packets
Bluetooth: ISO: Make it possible to setup unidirectional CIS
Daniel Leung (11):
scripts: size_report: fix pylint docstrings and import issues
scripts: size_report: recognize C++ file extensions
scripts: size_report: keep full path until inserting into tree
scripts: size_report: alter how nodes are grouped together
scripts: size_report: add tree node for hidden symbols
scripts: size_report: add tree node for WORKSPACE
scripts: gen_syscall: ignore Coverity overrun check
kernel: mmu: add doxygen group for demand paging APIs
kernel: mmu: rename z_eviction* to k_mem_paging_eviction*
kernel: mmu: z_backing_store* to k_mem_paging_backing_store*
doc: add some bits about demand paging
David Brown (1):
doc: security: Change 'master' to 'main'
Eduardo Montoya (1):
drivers: ieee802154: fix ACK length handling
Emil Gydesen (2):
Bluetooth: ISO: Fix BIG cleanup
Bluetooth: Host: Add status check BIG sync/create events
Emil Lindqvist (2):
net: sockets: tls: check return code from fcntl
drivers: modem: ublox-sara-r4: implement F_GETFL in ioctl
Enjia Mai (1):
doc: release-notes-2.6: Added and refined some testcases of kernel
Erwan Gouriou (1):
scripts: series-push-hook: Use main as base comparison branch
Flavio Ceolin (7):
drivers: can: can_set_bitrate is not a syscall
drivers: can: Fix compilation issue
pm: device: Get rid of z_pm_core_devices
pm: device: Get rid of device_idx_t
docs: release notes: PM API changes
docs: release notes: PM release notes
docs: release notes: Simple tags fixes
Francois Ramu (1):
tests: error_hook skipping div-by-0 test on cortex M0 M0+
Gerard Marull-Paretas (3):
ci: labeler: add Power Management
doc: release: add documentation changes
pm: device: remove CONFIG_PM_MAX_DEVICES
Henrik Brix Andersen (2):
drivers: i2c: gpio: fix compilation
boards: arm: arty: fix compilation with v2c_daplink shield enabled
Ioannis Glaropoulos (5):
kernel: stack_sentinel: disable in single-threaded builds
tests: arm: fix name for arm_irq_vector_table test suite
doc: release: final release notes for cortex-m
doc: release: release notes for Cortex-R
doc: release notes: remove blank lines
Jennifer Williams (1):
tests: posix: common: clock.c: rephrase comment on tick alignment
Joakim Andersson (5):
net: l2: bluetooth: Handle error if failed to register server
Bluetooth: host: Notify application about prepare write error
Bluetooth: host: Reject remote public key on same X coordinate.
Bluetooth: host: Log failure to initiatie security for bonded peer
Bluetooth: samples: Fix peripheral sample handling of string values
Jukka Rissanen (2):
net: capture: Fix the function documentation
net: capture: Fix the return value of net_capture_is_enabled()
Krzysztof Chruscinski (6):
drivers: console: rtt: Add no multithreading support
manifest: update segger
logging: backend_rtt: Align to changes in RTT_LOCK/UNLOCK
drivers: flash: nrf_qspi_nor: Fix no multithreading compilation
drivers: serial: nrf_uarte: Fix async/int TX api in inactive state
doc/releases: v2.6.0: Update for logging subsystem
Krzysztof Kopyściński (4):
Bluetooth: host:l2cap: fix sending error in le_ecred_reconf_req
Bluetooth: Host: add missing zero CIDs in ecred_conn_req
Bluetooth: Host: do not overwrite result in le_ecred_conn_req
Bluetooth: Host: change error returned when ecred_conn_req
Kumar Gala (8):
doc/releases: v2.6.0: Update drivers section
doc/releases: v2.6.0: Updated Major enhancements section
soc: xtensa: linker: Update linker scripts for C++ build
docs: Change a number of 'master' branch refers to 'main'
docs: Fix doxygen errors in include/sys/mem_manage.h
dts: arm: nxp: Add port property to nxp,lpc-gpio nodes
drivers: gpio: mcux_lpc: Convert driver to use devicetree port prop
release: Zephyr 2.6.0-rc3
Luiz Augusto von Dentz (6):
Bluetooth: ISO: Simplify reference handling
Bluetooth: ISO: Fix not assigning CIG and CIS IDs
Bluetooth: ISO: Fix call order of connected callback
Bluetooth: conn: Add support for ISO connections to bt_conn_get_info
Bluetooth: shell: Add connection type information to connections command
Bluetooth: conn: Align cleanup for ISO connections
Maksim Masalski (1):
posix: pthread_exit: check for null before dereferencing
Martin Åberg (4):
board: set chosen zephyr,shell-uart in LEON boards DTS
SPARC: add the Flush windows software trap
tests: libcxx: added qemu_leon3 to C++ exception test
cpp: Update list of archs supporting C++ exceptions
Martí Bolívar (5):
doc: zephyr.doxyfile.in: remove obsolete variable
doc: mainpage.md: fix for new doxygen
doc: external_content: fix for Unix
doc: add docs for west spdx
doc: release-notes-2.6: west extensions
Maureen Helm (1):
soc: arm: Fix condition to set lpc55xxx flash wait states
Mulin Chao (1):
doc: release: v2.6: add note for UART console input expired options
Pieter De Gendt (1):
net: mgmt: Initialize the event callbacks statically
Piotr Pryga (3):
Bluetooth: hci: Add response structure for HCI CTE sampling enable cmd
Bluetooth: controller: hci: Set correct return params for CTE sampl enable
Bluetooth: host: Check sync_handle return value when CTE sampl enable
Robert Lubos (1):
modules: mbedTLS: Add separate Kconfig entry for MBEDTLS_HAVE_TIME_DATE
Ruth Fuchss (2):
doc: improve installing dependencies
doc: improve doc processor installation
Scott Worley (1):
soc: mchp: Deep sleep exit sequence update
Stephanos Ioannidis (6):
linker: cpp: Disable sorting of C++ exception handling info sections
tests: cpp: libcxx: Update C++ exceptions testing filter
cpp: Restrict C++ exceptions usage to supported archs
nios2: Fix C++ exception handling info linking
cpp: Remove C++ exception handling arch restriction
tests: cpp: libcxx: Test C++ exception handling on all archs
Sylvio Alves (1):
drivers: wifi: esp32: fix reconnect issue
Thomas Stranger (1):
drivers: can: init timing.sjw also in canfd mode
Torbjörn Leksell (1):
Tracing: TRACING_NONE Compilation Fix
Torsten Rasmussen (4):
cmake: c++ exceptions linking support
tests: libcxx: increase ZTEST_STACKSIZE and added platforms for testing
doc: toolchains: move description of alternative install method on mac
doc: release notes: added oneApi toolchain to release notes
Vinayak Kariappa Chettimada (6):
tests: bluetooth: bsim: Updated advx test to verify sync data
Bluetooth: controller: Fix incorrect ext header flag access
tests: bluetooth: bsim: Updated advx test to verify previous sync data
Bluetooth: controller: Fix incorrect prev periodic header flag access
Bluetooth: controller: Fix incorrect prev aux header flag access
Bluetooth: controller: Minor improvements to ext header population
Zephyr v2.6.0-rc2
Changes since v2.6.0-rc1:
Affrin Pinhero (2):
drivers/spi: STM32: This solves SPI infinite loop on Tranceive
driver/spi: STM32 Revert while loop on tx only
Alexander Wachter (1):
drivers: sensors: sbs-gauge: add CHAN_ALL to fetch
Alexandre Bourdiol (2):
drivers: bluetooth: hci: increase spi_rx_stack
drivers: ethernet: stm32: enable IRQ at the end of iface init
Anas Nashif (30):
tracing: move test format into its own directory
tracing: test format: print more details
tracing: systemview: rework IDs and make them match APIs
doc: clock: link macros and struct to doxygen
twister: fix hardware map generation
actions: publish docs twice daily
doc: fix doxygen grouping
doc: remove tickless idle
doc: kernel: thread stack is not the same as stack object
kernel: move thread_stack.h to include/kernel
tracing: fix test format
ztest: set thread name to test name
power: trace power events
pm: remove mention of FSM
pm: trace pm_device_enable/disable
tracing: systemview: display return value of APIs
samples: lsm6dso: enable float printing
kernel: remove dead workq code
actions: fix path of API doc publishing
actions: publish docs every 3 hours
sof: do not get mainmenu from SOF project
doc: kernel: add documentation for queues
tracing: fix indentation of config entries
tracing: fix conflict with RTT locking
tracing: rearrange tool header inclusion
doc: tracing: document how to use systemview description file
doc: tracing: add missing doxygen references
nios2: max10: fix uart0 base register
boards: max10: fix function name in debug section
nios2: revert back to builtin sys_io functions
Andrzej Głąbek (4):
soc: nrf9160: Remove incorrect indication of SWO availability
kernel: timeout: Fix adding of an absolute timeout
drivers: nrf_rtc_timer: Remove unnecessary locking
tests: drivers: i2s_api: Fix MPU fault in user mode
Andrzej Kaczmarek (1):
Bluetooth: controller: Fix data length calculation in adv report
Andrzej Puzdrowski (2):
manifest: update MCUboot
tests/subsys/setting/functional: ignore settings_delete() retval
Andrés Manelli (1):
logging: Enable SWO pin for STM32 SoCs
Andy Ross (10):
tests/kernel/smp: Misc synchronization fixups
tests/kernel/common: Skip bitarray tests when KERNEL_COHERENCE
arch/x86: Correct multiboot interpretation when building for EFI
tests/kernel/smp: Remove release_global_lock_irq case
tests/kernel/common: Remove needless 1cpu limitation from test_clock_uptime
tests/kernel/fatal: Don't swap while locked
kernel/swap: Add assertion to catch lock-breaking context switches
k_heap: Clamp to a minimum heap size
tests/kernel/mem_heap: Add minimum-size heap test
kernel/sched: Remove "cooperative scheduling only" special cases
Armando Visconti (6):
drivers/sensor: iis2mdc: use gpio_dt_spec oriented macros
drivers/sensor: lsm6dso: Fix shub for multi-instance case
drivers/sensor: iis2iclx: Fix shub for multi-instance case
kernel/device: add arg checking in z_device_ready()
drivers/sensor: lsm6dso: use gpio_dt_spec oriented macros
drivers/sensor: iis2iclx: (FIX) enable interrupt selectively
Arvin Farahmand (1):
drivers: flash: bugfix: set atmel SAM0 write-block-size
Asger Munk Nielsen (1):
Bluetooth: Controller: fix uninitialized variable
Aurelien Jarno (8):
net: openthread: Make child related options only visible on FTD
net: openthread: Move SRP Kconfig options to Kconfig.features
net: openthread: Select ECDSA when SRP is enabled
net: tcp: select MBEDTLS_MAC_MD5_ENABLED for ISN algorithm
dts: arm: stm32f{2,4,7}: fix device tree warning
arch: arm: cortex_m: fix D-Cache reset with CONFIG_INIT_ARCH_HW_AT_BOOT
arch: arm: cortex_m: z_arm_mpu_init: fix D-Cache invalidation
logging: Enable SWO support for nRF SOCs
Benjamin Lindqvist (1):
net: lwm2m: no duplicate device error codes
Bob Recny (1):
boards: arm: Modify BMD-345-EVAL support
Bradley Bolen (2):
MAINTAINERS.yml: Add myself as ARM collaborator
tests: ztest: Use #if defined()
Carles Cufi (6):
libc: minimal: Align errno.h values with newlib
libc: minimal: Add doxygen formatting to errno.h
libc: minimal: Add EOVERFLOW
ci: Add an errno.h check to CI
doc: reference: Add a section for the C standard library
Bluetooth: controller: Add conn creation param checks
Carlo Caione (4):
MAINTAINERS: Add new ARM64 collaborator
ARM64: Release notes for 2.6
cache: Do not warn on unused parameters
cmake: arm64: Bail out if the old SDK is used
Damian Krolik (1):
openthread: shell: Do not execute OT commands when OT is not ready
Daniel Leung (25):
toolchain: add Z_GENERIC_DOT_SECTION() macro
toolchain: gcc: fix extra space when using SECTION_VAR
kernel: refactor stack declaration macros
linker: remove TEXT_START macro
linker: add bits for boot regions
linker: add bits for pinned regions
linker: add __isr tag
x86: gen_mmu: add support for boot and pinned regions
x86: ia32/linker: add boot and pinned sections
tests: x86/pagetables: update test for boot and pinned sections
devices: mark device MMIO declarations to boot/pinned sections
x86: ia32: put IRQ stubs into pinned linker section if needed
intc: system_apic: mark functions as boot/pinned
intc: loapic: mark data and functions as boot/pinned
intc: ioapic: mark data and functions as boot/pinned
timer: hpet: mark functions as boot/pinned/isr
x86: ia32: mark symbols for boot and pinned regions
boards: qemu_x86_virt: enable using boot and pinned sections
kernel: init.c: tag source for boot/pinned sections
tests: mem_protect/mem_map: remove unused assignment to cnt
doc: release-notes-2.6: major x86 changes
doc: release-notes-2.6: on k_mem_unmap and demand paging stats
kernel: mmu: remove un-needed call to virt_to_bitmap_offset
gpio: intel: fix reg address for Apollo Lake
tests: kernel/common: incorrect use of k_poll in timeout order
David Leach (1):
boards: mimxrt1010_evk: Point SRAM to OCRAM
Dominik Ermel (6):
tests/dfu/mcuboot: Remove unneeded overlay file for nrf52840dk
samples: littlefs: Fix sample attempting double mount
tests/logging/log_backend_fs: Fix test failed on dirty file system
storage/flash_map: Fix flash area bounds checking
shell: Parametrize dummy shell buffer size
mgmt/mcumgr: Info on SHELL_BACKEND_DUMMY_BUF_SIZE impact on mcumgr
Eduardo Montoya (1):
net: openthread: fix CSL API
Emil Gydesen (8):
Bluetooth: Audio: Update VCS Client conn check return value
Bluetooth: Audio: Update AICS client conn check return value
Bluetooth: Audio: Update VOCS conn check return value
Bluetooth: Audio: Fix dead code issue in VCS
Bluetooth: Audio: Move NULL check for conn in bt_vcs_discover
Bluetooth: Audio: Fix VCS client shell missing compile
Bluetooth: Host: Avoid memcpy'ing bt_addr_t to same pointer
Bluetooth: Samples: Fix peripheral_iso print data
Emil Obalski (1):
boards: thingy53: Fix building issue with NS image.
Enjia Mai (4):
tests: smp: correct the inappropriate testcase
tests: interrupt: fix coverity issue of newly added testcases
tests: kernel: fix two semaphroe testcases failed on ADSP
tests: interrupt: refine the offload case not rely on delay timing
Erik Brockhoff (1):
Bluetooth: controller: add apto/appto reset for peripheral
Erwan Gouriou (4):
tests/kernel/common: Fix test test_nop for ARMV7_M_ARMV8_M_MAINLINE
samples/boards: stm32 pm blinky: Run with twister device testing
doc/releases: v2.6.0: Update for STM32 impacts
doc/releases: v2.6.0: Update for shields impacts
Evgeniy Paltsev (3):
ARC: doc: update ARC HW & tools support status
doc: release notes: ARC
ARC: gcc-m-cpu: use -mcpu=archs as a default for ARCv2 HS
Flavio Ceolin (34):
pm: policy: Fix residency policy math
samples: pm: Fix device pm sample
doc: security: Add CVE-2020-13603 info
doc: security: Add backport info for old issues
doc: security: Add CVE-2020-10065 info
doc: security: Publish CVE under embargo
doc: security: Publish CVE 2021-3321
doc: security: Publish CVE-2020-3323 info
tests: pm: Remove unused Kconfig on power_mgmt
tests: pm: Remove unused Kconfig on power_mgmt_soc
pm: device_runtime: Add helper to wait on async ops
pm: device_runtime: Fix enable / disable runtime pm
pm: device_runtime: Fix atomic usage
pm: device_runtime: Fix sync path
tests: pm: Add device_runtime test
samples: device_pm: Fix condvar usage
pm: device_runtime: get rid of the spinlock
pm: device_runtime: Document isr and pre-kernel functions
samples: device_pm: Fix harness
pm: device_runtime: Get rid of atomic for state
pm: device_runtime: Don't use k_work on synchronous calls
docs: pm: Add device runtime definition
docs: pm: Fix typo
docs: pm: Fix doxygen tag
docs: pm: Fix invalid API reference
docs: pm: Device pm fixes and enhancements
docs: pm: Add missing device states
docs: pm: Fix device busy information
docs: pm: Add link to application defined policy
docs: pm: Improve residency policy documentation
docs: pm:...
Zephyr 2.6.0 RC1
Abram Early (1):
soc: atmel_sam0: Add GCLK Reset
Adam Serbinski (1):
drivers: sensors: mpu6050: add support for mpu9250
Adam Zelik (1):
modules: nrfx_glue: Reserve PPI/DPPI resources used by 802.15.4 drv
Akash Patel (1):
samples: flash_shell: fix SHELL_CMD_REGISTER typo
Alberto Escolar Piedras (4):
bsim_bt: tests: Fix relative paths search in scripts
nrf52_bsim: Fix LOG_MODE_IMMEDIATE kconfig warning
tests: log_core be explicit about configuration
posix: Add missing include
Aleksandr Khromykh (1):
Bluetooth: Mesh: Fix restoring fast period divisor from settings
Alex Tsamakos (4):
boards: arm: Add support for Actinius Icarus Bee (uC: Nordic nRF9160)
samples: add actinius_icarus_bee config in spi_flash and fs
boards: arm: Add support for Actinius Icarus SoM (uC: Nordic nRF9160)
boards: actinius_icarus: remove unused pwm nodes and add bootloader LED
Alexander Kozhinov (4):
dts: arm: st: f4: stm32f446re
dts: arm: st: f4: stm32f446.dtsi
boards: arm: nucleo_f446re: dts / yaml
boards: arm: nucleo_f446re: doc: index.rst
Alexander Wachter (13):
dts: stm32g4: Add SPI4 node
ztest: fix z_assert_within() bounds
include: clock_control: Fix int return value
devicetree: pwms: add helper marcos to obtain the node identifier
tests: devicetree: api: Add test for PWM_CTLR*
MAINTAINERS: add more collaborators to the can-bus area
drivers: can: Add Kconfig option for CANFD datalenght
drivers: can: Implement Bosch M_CAN driver
drivers: can: Implement stm32fd driver
dts: arm: stm32g4: add can bindings to stm32g4 SoCs
board: nucleo_g474re: Add CAN support.
tests: driver: can: api: Enhanced tests to check dispatching
tests: driver: can: canfd: Add CAN-FD tests
Alexandre Bourdiol (80):
test: arch: arm: arm_interrupt: clear FPSCR register in ISR
drivers: clock_control: add STM32WL support
drivers: gpio add STM32WL support
drivers: interrupt_controller add STM32WL support
dts: arm: st: add STM32WL support
soc: arm: st_stm32: add STM32WL support
boards: arm: add nucleo_wl55jc board support
drivers: i2c: add support of STM32WL
boards/dts: add i2c support to nucleo_wl55jc
boards/dts: add SPI support to nucleo_wl55jc board
tests: drivers: spi: spi_loopback: add nucleo_wl55jc board
drivers: clock_control: stm32wl doesn't have HSE bypass
boards: stm32l1_disco: Use dts for clocks configuration
boards: 96b_wistrio: Use dts for clocks configuration
boards: ronoth_lodev: Use dts for clocks configuration
boards: nucleo_l011k4: Use dts for clocks configuration
boards: dragino_lsn50: Use dts for clocks configuration
boards: b_l072z_lrwan1: Use dts for clocks configuration
boards: nucleo_l4r5zi: Use dts for clocks configuration
boards: nucleo_l412rb_p: Use dts for clocks configuration
boards: nucleo_l432kc: Use dts for clocks configuration
boards: nucleo_l433rc_p: Use dts for clocks configuration
boards: nucleo_l452re: Use dts for clocks configuration
boards: nucleo_l496zg: Use dts for clocks configuration
boards: stm32l476g_disco: Use dts for clocks configuration
boards: stm32l496g_disco: Use dts for clocks configuration
boards: sensortile_box: Use dts for clocks configuration
boards: nucleo_f302r8: Use dts for clocks configuration
boards: nucleo_f303re: Use dts for clocks configuration
boards: stm32373c_eval: Use dts for clocks configuration
boards: stm32f769i_disco Use dts for clocks configuration
boards: stm32f746g_disco: Use dts for clocks configuration
boards: stm32f723e_disco: Use dts for clocks configuration
boards: stm32l562e_dk: Use dts for clocks configuration
boards: nucleo_l152re: Use dts for clocks configuration
boards: nucleo_wl55jc: Use dts for clocks configuration
boards: nucleo_f207zg: Use dts for clocks configuration
boards: nucleo_f756zg: Use dts for clocks configuration
boards: nucleo_f767zi: Use dts for clocks configuration
boards: nucleo_l073rz: Use dts for clocks configuration
boards: nucleo_f030r8: Use dts for clocks configuration
boards: nucleo_f091rc: Use dts for clocks configuration
boards: nucleo_g474re: Use dts for clocks configuration
boards: nucleo_f303k8: Use dts for clocks configuration
boards: nucleo_l031k6: Use dts for clocks configuration
boards: stm32f3_disco: Use dts for clocks configuration
boards: b_l4s5i_iot01a: Use dts for clocks configuration
boards: nucleo_g0b1re: Use dts for clocks configuration
boards: stm32g0316_disco: Use dts for clocks configuration
boards: stm32g071b_disco: Use dts for clocks configuration
boards: google_kukui: Use dts for clocks configuration
boards: nucleo_f031k6: Use dts for clocks configuration
boards: stm32f0_disco: Use dts for clocks configuration
boards: stm32f030_demo: Use dts for clocks configuration
boards: stm32f072_eval: Use dts for clocks configuration
boards: stm32f072b_disco: Use dts for clocks configuration
boards: 96b_aerocore2: Use dts for clocks configuration
boards: 96b_argonkey: Use dts for clocks configuration
boards: 96b_carbon: Use dts for clocks configuration
boards: 96b_neonkey: Use dts for clocks configuration
boards: 96b_stm32_sensor_mez: Use dts for clocks configuration
boards: black_f407ve: Use dts for clocks configuration
boards: black_f407zg_pro: Use dts for clocks configuration
boards: mikroe_clicker_2: Use dts for clocks configuration
boards: mikroe_mini_m4_for_stm32: Use dts for clocks configuration
boards: olimex_stm32_e407: Use dts for clocks configuration
boards: olimex_stm32_h407: Use dts for clocks configuration
boards: olimex_stm32_p405: Use dts for clocks configuration
boards: nucleo_f410rb: Use dts for clocks configuration
boards: nucleo_f412zg: Use dts for clocks configuration
boards: nucleo_f413zh: Use dts for clocks configuration
boards: nucleo_f446re: Use dts for clocks configuration
boards: segger_trb_stm32f407: Use dts for clocks configuration
boards: adafruit_feather_stm32f405: Use dts for clocks configuration
boards: steval_fcu001v1: Use dts for clocks configuration
boards: stm32f4_disco: Use dts for clocks configuration
boards: stm32f411e_disco: Use dts for clocks configuration
boards: stm32f412g_disco: Use dts for clocks configuration
boards: stm32f429i_disc1: Use dts for clocks configuration
boards: stm32f469i_disco: Use dts for clocks configuration
Alexey Markevich (1):
jwt: use pre-computed JWT header
Anas Nashif (179):
release: Update patch level to 99 after the 2.5.0 release
action: publish documentation when VERSION is changed
actions: run backporting bot only on main
actions: use a different user for this action
doc: add draft for 2.6 release notes
compiler: do not allow expansion-to-defined
tests: filter default platforms
tests: sched: fix test identifier
tests: arm_thread_swap: fix testsuite setup
tests: kernel: tls: fix testsuite setup
kernel: thread: do not assert on tests
ci: remove shippable references
doc: remove references to shippable
boards: it8xxx2_evb: set architecture correctly
ci: do not run twister CI when changing checkpatch
ci: limit CI to only changed architecture
samples: userspace: enable shared_mem on x86_64
xcc: do not make assumptions about toolchain path
xcc: do not assume clang by default
xcc: do not enable builtin atomics with xcc
soc: intel_adsp: include cleanup
xcc: we do not support build asserts
intel_adsp: simplify bootloader cmake file
cmake: remove TOOLCHAIN_INCLUDES
samples: move kernel samples into one folder
samples: move debug samples under subsys/debug
samples: move testing -> subsys/testsuite
sampels: move video into subsys/video
sampels: move audio into subsys/audio
sampels: move display into subsys/display
samples: portability: fix project name
samples: move cpp samples into subsys/cpp
doc: fix top samples doc index
samples: move architecture specific samples to arch/
samples: move lorawan to subsys/lorawan
CODEOWNERS: update file path for samples
twister: fix integration_platforms selection
twister: fix integration selection
Revert "tests: net: socket: af_packet: fix resource leak"
twister: set verdict on tests after evaluating results
MAINTAINERS: remove overlap between ARM/ARM64
MAINTAINERS: add interrupt controllers to X86 area
MAINTAINERS: expand collaborators on twister
MAINTAINERS: add esspresif area
MAINTAINERS: add west documentation to area
clock: remove z_ from semi-public APIs
doc: clocks: link clock APIs from doxygen
clock: rename z_timer_cycle_get_32 -> sys_clock_cycle_get_32
drivers: arcv2_timer0: fix comment
clock: z_clock_isr -> sys_clock_isr
clock: z_clock_device_ctrl -> sys_clock_device_ctrl
sys_lock: extra 'needed' removed
clock: rename z_clock_hw_cycles_per_sec_runtime_get
clock: rename z_tick_get_32 -> sys_clock_tick_get_32
clocks: rename z_tick_get -> sys_clock_tick_get
clock: renmae z_timeout_end_calc -> sys_clock_timeout_end_calc
clock: remove unused z_ms_to_ticks
kernel: remove tickless idle
hal_ti: update to use k_ms_to_ticks_ceil32
ztest: fix h...
Zephyr v2.5.0
We are pleased to announce the release of Zephyr RTOS version 2.5.0.
Major enhancements with this release include:
- Introduced support for the SPARC processor architecture and the LEON
processor implementation. - Added Thread Local Storage (TLS) support
- Added support for per thread runtime statistics
- Added support for building with LLVM on X86
- Added new synchronization mechanisms using Condition Variables
- Add support for demand paging, initial support on X86.
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
The following CVEs are addressed by this release:
- CVE-2021-3323: Under embargo until 2021-04-14
- CVE-2021-3321: Under embargo until 2021-04-14
- CVE-2021-3320: Under embargo until 2021-04-14
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
Known issues
You can check all currently known issues by listing them using the GitHub
interface and listing all issues with the bug label <https://github.com/zephyrproject-rtos/zephyr/issues?q=is%3Aissue+is%3Aopen+label%3Abug>
_.
API Changes
-
Removed SETTINGS_USE_BASE64 support as its been deprecated for more than
two releases. -
The :c:func:
lwm2m_rd_client_start
function now accepts an additional
flags
parameter, which allows to configure current LwM2M client session,
for instance enable bootstrap procedure in the curent session. -
LwM2M execute now supports arguments. The execute callback
lwm2m_engine_execute_cb_t
is extended with anargs
parameter which points
to the CoAP payload that comprises the arguments, and anargs_len
parameter
to indicate the length of theargs
data. -
Changed vcnl4040 dts binding default for property 'proximity-trigger'.
Changed the default to match the HW POR state for this property. -
The :c:func:
clock_control_async_on
function will now takecallback
and
user_data
as arguments instead of structure which contained list node,
callback and user data. -
The :c:func:
mqtt_keepalive_time_left
function now returns -1 if keep alive
messages are disabled by settingCONFIG_MQTT_KEEPALIVE
to 0. -
The
CONFIG_LEGACY_TIMEOUT_API
mode has been removed. All kernel
timeout usage must use the new-style k_timeout_t type and not the
legacy/deprecated millisecond counts. -
The :c:func:
coap_pending_init
function now accepts an additionalretries
parameter, allowing to specify the maximum retransmission count of the
confirmable message. -
The
CONFIG_BT_CTLR_CODED_PHY
is now disabled by default for builds
combining both Bluetooth host and controller. -
The :c:func:
coap_packet_append_payload
function will now take a pointer to a
constant buffer as thepayload
argument instead of a pointer to a writable
buffer. -
The :c:func:
coap_packet_init
function will now take a pointer to a constant
buffer as thetoken
argument instead of a pointer to a writable buffer. -
A new :ref:
regulator_api
API has been added to support controlling power
sources. Regulators can also be associated with devicetree nodes, allowing
drivers to ensure the device they access has been powered up. For simple
GPIO-only regulators a devicetree propertysupply-gpios
is defined as a
standard way to identify the control signal in nodes that support power
control. -
:c:type:
fs_tile_t
objects must now be initialized by calling
:c:func:fs_file_t_init
before their first use. -
:c:type:
fs_dir_t
objects must now be initialized by calling
:c:func:fs_dir_t_init
before their first use.
Deprecated in this release
-
Nordic nRF5340 PDK board deprecated and planned to be removed in 2.6.0.
-
ARM Musca-A board and SoC support deprecated and planned to be removed in 2.6.0.
-
DEVICE_INIT was deprecated in favor of utilizing DEVICE_DEFINE directly.
-
DEVICE_AND_API_INIT was deprecated in favor of DEVICE_DT_INST_DEFINE and
DEVICE_DEFINE. -
Bluetooth
- Deprecated the :c:func:
bt_set_id_addr
function, use :c:func:bt_id_create
before calling :c:func:bt_enable
instead. WhenCONFIG_PRIVACY
is
enabled a valid IRK has to be supplied by the application for this case.
- Deprecated the :c:func:
Removed APIs in this release
-
Bluetooth
- The deprecated BT_LE_SCAN_FILTER_DUPLICATE define has been removed,
use BT_LE_SCAN_OPT_FILTER_DUPLICATE instead. - The deprecated BT_LE_SCAN_FILTER_WHITELIST define has been removed,
use BT_LE_SCAN_OPT_FILTER_WHITELIST instead. - The deprecated bt_le_scan_param::filter_dup argument has been removed,
use bt_le_scan_param::options instead. - The deprecated bt_conn_create_le() function has been removed,
use bt_conn_le_create() instead. - The deprecated bt_conn_create_auto_le() function has been removed,
use bt_conn_le_create_auto() instead. - The deprecated bt_conn_create_slave_le() function has been removed,
use bt_le_adv_start() instead with bt_le_adv_param::peer set to the remote
peers address. - The deprecated BT_LE_ADV_* macros have been removed,
use the BT_GAP_ADV_* enums instead. - The deprecated bt_conn_security function has been removed,
use bt_conn_set_security instead. - The deprecated BT_SECURITY_* defines NONE, LOW, MEDIUM, HIGH, FIPS have been
removed, use the L0, L1, L2, L3, L4 defines instead. - The deprecated BT_HCI_ERR_AUTHENTICATION_FAIL define has been removed,
use BT_HCI_ERR_AUTH_FAIL instead.
- The deprecated BT_LE_SCAN_FILTER_DUPLICATE define has been removed,
-
Kernel
- The deprecated k_mem_pool API has been removed entirely (for the
past release it was backed by a k_heap, but maintained a
compatible API). Now all instantiated heaps must be
sys_heap/k_heaps. Note that the new-style heap is a general
purpose allocator and does not make the same promises about block
alignment/splitting. Applications with such requirements should
look at porting their logic, or perhaps at the k_mem_slab utility.
- The deprecated k_mem_pool API has been removed entirely (for the
Stable API changes in this release
Kernel
-
Added support for per thread runtime statistics
-
Added new synchronization mechanisms using Condition Variables
-
Thread Local Storage (TLS)
-
Introduced thread local storage support for the following architectures:
- ARC
- Arm Cortex-M
- Arm Cortex-R
- AArch64
- RISC-V
- Sparc
- x86 and x86_64
- Xtensa
-
This allows variables declared with
__thread
keyword to be allocated
on a per-thread basis, and every thread has its own copy of these
variables. -
Enable via :option:
CONFIG_THREAD_LOCAL_STORAGE
. -
errno
can be stored inside TLS if :option:CONFIG_ERRNO_IN_TLS
is enabled (together with :option:CONFIG_ERRNO
). This allow user
threads to access the value oferrno
without making a system call.
-
-
Memory Management
- Added page frame management for physical memory to keep track of
the status of each page frame. - Added :c:func:
k_mem_map
which allows applications to increase
the data space available via anonymous memory mappings. - Added :c:func:
k_mem_free_get
which returns the amount of
physical anonymous memory remaining. - Paging structure must now be pre-allocated so that there is no need
to do memory allocations when mapping memory. Because of this,
:c:func:arch_mem_map
may no longer fail.
- Added page frame management for physical memory to keep track of
-
Demand Paging
- Introduced the framework for demand paging and infrastructure for
custom eviction algorithms and implementation of backing stores. - Currently the whole kernel is pinned and remaining physical memory
can be used for paging.
- Introduced the framework for demand paging and infrastructure for
Architectures
-
ARC
- Fixed execution on ARC HS with one interrupt bank and fast interrupts (FIRQ)
enabled - Hardened SMP support
- Improved mdb west runner to support simulation on SMP nSIM-based
configurations - Improved mdb west runner to support nSIM-based configurations execution
on real HW (FPGA-based) - Added documentation page with Zephyr support status on ARC processor
- Added coverage support for nSIM-based configurations
- Switched to upstream OpenOCD for ARC
- Various minor fixes/improvements for ARC MWDT toolchain infrastructure
- Fixed execution on ARC HS with one interrupt bank and fast interrupts (FIRQ)
-
ARM
-
AARCH32
- Introduced the functionality for chain-loadable Zephyr
firmware images to force the initialization of internal
architecture state during early system boot (Cortex-M). - Changed the default Floating Point Services mode to
Shared FP registers mode. - Enhanced Cortex-M Shared FP register mode by implementing
dynamic lazy FP register stacking in threads. - Added preliminary support for Cortex-R7 variant.
- Fixed inline assembly code in Cortex-M system calls.
- Enhanced and fixed Cortex-M TCS support.
- Enabled interrupts before switching to main in single-thread
Cortex-M builds (CONFIG_MULTITHREADING=n). - Fixed vector table relocation in non-XIP Cortex-M builds.
- Fixed exception exit routine for fatal error exceptions in
Cortex-R. - Fixed interrupt nesting in ARMv7-R architecture.
- Introduced the functionality for chain-loadable Zephyr
-
AARCH64
- Fixed registers printing on error and beautified crash dump output
- Removed CONFIG_SWITCH_TO_EL1 symbol. By default the execution now drops
to EL1 at boot - Deprecated booting from EL2
- Improved assembly code and errors catching in EL3 and EL1 during the
start routine - Enabled support for EL0 in the page tables
- Fixed vector table alignment
- Introduced support to boot Zephyr in NS mode
- Fixed alignment fault in z_bss_zero
- Added PSCI driver
- Added ability to generate image header
- Improved MMU code and driver
-
-
RISC-V
- Added support for PMP (Physical Memory Protection).
Integrate PMP in Zephyr allow t...
- Added support for PMP (Physical Memory Protection).
Zephyr v2.5.0 RC4
Changes since v2.5.0-rc3:
Adam Jeliński (2):
m2gl025_miv: Adjust frequencies and performance
m2gl025_miv: Double the test timeouts
Alex Martens (1):
doc: fix typo in condvar documentation
Alexander Wachter (2):
tests: drivers: can: timing: Fix potential div by zero
drivers: flash: stm32g4: Flush caches after erase
Anas Nashif (9):
labels: label release note changes
renode: fix dependencies for renode platforms
xtensa: remove unused script
intc: mvic: remove unused header
license: add missing SPDX headers
license: add missing SPDX headers
release: add resolved issues
release notes: add top level bullets, misc. changes
release: bump version to 2.5.0-rc4
Andrzej Głąbek (1):
scripts: kconfig: Fix uses of edt.compat2okay in helper functions
Andrzej Puzdrowski (1):
doc: releasenotes 2.5: Add notes on addition fs_dir_t_init
Andy Ross (8):
kernel/sched: Add missing lock around waitq unpend calls
kernel/include: Put kernel stack memory in the right memory
kernel/z_swap: Remove on-stack dummy spinlock
tests/kernel/thread_stack: Fix KERNEL_COHERENCE interactions
kernel/poll: Remove dummy waitq from stack
kernel/sched: Correct coherence assert
tests/kernel: Coherence: no shared data on stacks
soc/intel_adsp: Move KERNEL_COHERENCE to cavs15
Carlo Caione (2):
doc: release: v2.5.0 release notes for ARM AArch64
aarch64: Fix corrupted IRQ state when tracing enabled
Christoph Reiter (1):
drivers: sensor: dps310 fix out of bounds write
Daniel Leung (4):
kernel: tls: align tdata/tbss sections in stack
tests: threads/tls: add more thread variables
doc: release-notes-2.5: kernel: add info on thread local storage
doc: release-notes-2.5: memory management related items
Eduardo Montoya (2):
manifest: openthread upmerge up to commit `add99687`
net: openthread: add CoAP Block Kconfig option
Eugeniy Paltsev (1):
doc: release notes: ARC
Faisal Saleem (1):
Bluetooth: SMP: fix for bt fixed passkey BT_PASSKEY_INVALID
Flavio Ceolin (7):
docs: pm: Replace outdated documentation
docs: pm: Update central method diagram
doc: release-notes-2.5: Power management contents
doc: release-notes-2.5: Vulnerabilities addressed
doc: release-notes-2.5: crypto libraries
doc: security: Update vulnerabilities information
power: Fix power states length
Ioannis Glaropoulos (1):
doc: release: v2.5.0 release notes for ARM AARCH32
Jennifer Williams (3):
doc: release-notes-2.5: boards and SoCs: x86 ehl_crb acrn_ehl_crb
doc: releases: fix format issue in Boards & SoCs
doc: releases: 2.5: add misc x86 to boards and socs
Jian Kang (2):
board: cavs15: fixed size error that load firmware by script
board: cavs15: Add a option to control signing ways
Joakim Andersson (17):
Bluetooth: shell: Fix gatt write command not cleanup up on error
Bluetooth: host: Fix update keys when using debug public key check
Bluetooth: host: Handle multiple step security elevation
Bluetooth: host: Allow requesting new security when security changed
Bluetooth: host: Refactor smp handling of conn pointer
Bluetooth: host: Fix indicate without user callback
Bluetooth: host: Remove unused ATT request destroy callback
Bluetooth: host: Release ATT request buffers once sent
Bluetooth: host: Rename auth_err_get to security_err_get
Bluetooth: host: Fix wrong error code type passed to security changed
Bluetooth: shell: Add only pairing failed and pairing complete callbacks
Bluetooth: shell: Improve security error readability
Bluetooth: host: Don't call callbacks on unexpected SMP PDUs
Bluetooth: host: Set encryption pending when LE SC bond exists
Bluetooth: host: Terminate the pairing procedure when disconnected
Bluetooth: host: Set error in security changed when not required level
Bluetooth: host: Fail pairing if remote cannot meet required security
Johann Fischer (1):
doc: release-notes-2.5: add release notes for USB
Jordan Yates (3):
lora: sx126x: update modem state on transitions
lora: sx126x: disable DIO1 in sleep mode
lorawan: move public network request
Keith Short (1):
npcx: fix NPCX PWM driver with PWM_POLARITY_INVERTED
Krzysztof Chruscinski (1):
drivers: serial: nrfx_uarte: Add missing check
Kumar Gala (3):
drivers: dma: iProc PAX: Fix use of deprecated APIs
drivers: sensor: icm42605: Fix build issues
drivers: sensor: icm42605: Fix use of deprecated API
Laczen JMS (1):
boards: correct dts for bl654_dvk and bl652_dvk
Lauren Murphy (1):
doc: fix typo in modules
Luiz Augusto von Dentz (1):
Bluetooth: ATT: Remove BT_ATT_TX_MAX
Maciej Perkowski (5):
boards: Fix ram/flash values in nrf5340dk_nrf5340_cpuapp
twister: bugfix: Fix twister output
samples: tests: Fix usb.audio.headphones_microphone test
samples: tests: Fix usb.audio.headset test
samples: tests: Fix sample.boards.nrf.nrfx test
Marc Herbert (1):
(docs) Makefile: re-order targets to build htmldocs-fast by default
Martin Jäger (1):
doc: release: Add DAC release notes for v2.5.0
Martí Bolívar (17):
doc: release-notes-2.5: s/device tree/devicetree/
devicetree: make sure DT_INVALID_NODE docstring appears
doc: release-notes-2.5: devicetree
guiconfig: fix search function
scripts: zcmake: fix for prerelease cmake versions
device.h: remove incorrect docstring
doc: sort redirects
doc: clean up west index
doc: glossary: update west terms
doc: west: move advanced content out of 'basics'
doc: update west's workspaces.rst for 2.5
doc: add missing docs for 'west zephyr-export'
doc: improve manifest key docs
doc: improve docs on building without west
doc: west: clean up example workspace
doc: west: improve troubleshooting for west update
boards: nrf: fix incorrect debug docs
Nicolas Pitre (1):
libc/minimal: restore proper locking for malloc() and friends
Peter Bigot (10):
fs: littlefs: fix mis-use of preprocessor
doc: release-notes-2.5: I2C
samples: driver: watchdog: rework how callback support is handled
doc: coding guidelines: add an anchor for inclusive language guideline
doc: inclusive language: reference I2C status issue
tests: i2c_slave_api: update to current standard terminology
drivers: i2c: litex: remove redundant null pointers
drivers: i2c: document slave API
doc: drivers: i2c: provide more information on I2C APIs
power: add missing dependency
Trond Einar Snekvik (3):
Bluetooth: Mesh: Store network at the end of provisioning
Bluetooth: Mesh: Initialize msg_ctx when re-encrypting friend msg
Bluetooth: Mesh: Update seqnum when re-encrypting for friend
Vinayak Kariappa Chettimada (1):
Bluetooth: controller: Fix missing advertising PDU len initialization
Zephyr v2.5.0 RC3
Changes since v2.5.0-rc2:
Alexander Shuklin (1):
Drivers: serial: Fix stm32 uart async api callback
Alexander Wachter (1):
drivers: can: common: Fix uninitializes sjw
Anas Nashif (7):
kernel: fix usage of KERNEL_COHERENCE macro
ci: add action to create release
twister: remove usage of deprecated gccarmemb variant
cmake: remove usage of deprecated gccarmemb variant
twister: fix possible race
twister: fix HW map fixtures parsing
release: bump version to 2.5.0-rc3
Andrei Emeltchenko (5):
edac: Use Device Tree values for BDF and PCI VID
edac: Do not use BDF and PCI IDs from DTS
edac: Move IBECC information to DT root
edac: Rename PCI_ENDPOINT to PCI_HOST_BRIDGE
edac: Update shell commands
Andrzej Puzdrowski (15):
fs: Add fs_dir_t_init() function
tests: fs: multifs: Add fs_dir_t type variable initializations
tests/subsys/fs/fat_fs_api: Add fs_dir_t type variable initializations
tests/subsys/fs/fat_fs_dual_drive: Add fs_dir_t type variable init.
tests/subsys/fs/littlefs: Add fs_dir_t type variable initializations
tests/subsys/fs/fs_api: Add fs_dir_t type variable init.
tests/subsys/fs/fs_api: remove dir-multi-open test
samples/subsys/fs: Add fs_dir_t type variable initializations
lib/posix/fs: Add fs_dir_t type variable initialization
fs: Add fs_dir_t type variable initializations
samples/subsys/usb/mass: Add fs_dir_t type variable initialization
lib/gui/lvgl: Add fs_dir_t type variable initialization …
fs: Fix fs_opendir resource leak when invoked on fs_dir_t object in use
include/fs: fixed typo in fs_file_t_init() description
manifest: fixed MCUboot with image encryption enabled.
Andy Ross (4):
tests/sched/deadline: Fix precision rollover
arch/x86: Fix stack alignment for user threads
tests/kernel/common: Skip the printk test when not applicable
drivers/cavs_timer: Fix multiword race with timer counter
Carles Cufi (4):
actions: compliance: Rebase before running `west update`
doc: extensions: Fix generator being ignored in west
Bluetooth: samples: hci_uart: Add overlays for nRF5340
doc: gsg: Update Homebrew installation for macOS
Carlo Caione (1):
kernel: mmu: Fix trivial typos
Daniel Leung (7):
kernel: fix _kernel argument to arch_mem_coherent
kernel: fix arch_mem_coherent() call in spinlock
xtensa: fix hard-coded interrupt value for PS register
xcc: define __INT*_C() and __UINT*_C()
linker: ifdef thread local storage script
xtensa: fix rsr/wsr assembly for XCC
x86: mark page frame as reserved according to memory map
Detlev Zundel (3):
soc: arm: st_stm32f2x: Convert Kconfig input prompt to uppercase
soc: arm: designstart: Fix Kconfig LEADING_SPACE checkpatch problem
soc: arm: arm: Align Kconfig input prompt for Arm SoCs
Emil Gydesen (1):
Bluetooth: tests: Add missing dependency for CONFIG_BT_AUDIO_UNICAST
Emil Hammarstrom (1):
bluetooth: host: expand l2cap CID abbreviation
Emil Lindqvist (2):
logging: fix warnings when building with -Wunused-variable
drivers: flash: stm32h7: fix int/long int warnings
Enjia Mai (3):
tests: ztest: Fix issues due to test case of accessing NULL address
tests: ztest: fix error_hook test case fail in some board
tests: memory protect: add some error test cases
Erwan Gouriou (4):
tests/drivers/dma: loop_transfer: Use ztest harness
drivers/dma: stm32: Don't omit IRQ status check
tests/drivers/dma: Enable tests on nucleo_f746zg and disco_l475_iot1
dts/arm: stm32f2: Fix usart1 clock
Flavio Ceolin (2):
mbedtls: Bump to 2.16.9
drivers: bme280: Replace deprecated Kconfig option
Henrik Brix Andersen (2):
checkpatch: ignore MULTISTATEMENT_MACRO_USE_DO_WHILE
drivers: adc: lmp90xxx: initialise all instances
Ioannis Glaropoulos (4):
arm: cortex_m: fix vector table relocation in non-XIP builds
Revert "kernel: init: activate FPU for main thread"
samples: rpmsg_service: do not run test for nrf5340 in CI
arm: cortex-m: add extra stack size for test build with FPU_SHARING
Jan Tore Guggedal (1):
drivers: sensor: adxl362: Fix unused variable warnings
Jennifer Williams (1):
include: drivers: uart: fix incorrect event name in brief
Joel Westerberg (1):
Bluetooth: ISO: fix error value set but not returned
Johann Fischer (3):
samples: usb: remove unnecessary GPIO dependency
samples: cdc_acm_composite: fix format specifier
sample: usb: exlude native_posix platform
Jordan Yates (5):
lorawan: query default region datarate
lorawan: validate requested datarates
lorawan: restore datarate after join
serial: uart_nrfx_uarte: update state when enabled
serial: uart_nrfx_uarte: graceful async power down
Jukka Rissanen (1):
doc: net: Add networking changes to 2.5 release note
Katsuhiro Suzuki (1):
soc/riscv: support reboot for QEMU RISC-V VirtIO
Krzysztof Chruscinski (1):
drivers: serial: nrfx_uarte: Fix power management
Kumar Gala (11):
dts: bindings: Remove defaults for cache lines from cpu binding
dts: bindings: remove default usage in gaisler,irqmp
dts: Cleanup litex,clk binding
dts: Fix unit name warnings
dts: Fix unit name should not have leading "0x" warning
dts: Fix /soc/timer: missing or empty reg/ranges property warnings
dts: Rename compatible arm,arm-timer to arm,armv8-timer
dts: surpress node name for SPI buses should be 'spi' warning
cmake: dts: Fix passing multiple EXTRA_DTC_FLAGS to gen_defines.py
dts: atmel/nxp: supress duplicate unit-address warning
dts: nrf/stm32: supress duplicate unit-address warning
Laczen JMS (1):
board: correct dts for 96b_stm32_sensor_mez
Lauren Murphy (1):
doc: fix typos in mutex
Lukasz Maciejonczyk (1):
settings: Handle unhandled error
Marcin Niestroj (1):
drivers: wifi: esp: process received packets in esp_rx thread
Martin Åberg (1):
kernel: Decouple TICKS_PER_SEC from TICKLESS_CAPABLE
Martí Bolívar (3):
runners: pyocd: handle None in hex/bin files
runners: fix openocd with --use-elf
doc: make it clear when DT properties are deprecated
Maureen Helm (3):
drivers: serial: Don't condition uart_irq_rx_ready on irq enabled
doc: release: Add sensor changes to v2.5.0 release notes
doc: release: Add NXP-related changes to v2.5.0 release notes
Mulin Chao (3):
driver: i2c: npcx: reset i2c semaphore before start transaction.
driver: i2c: npcx: clear status register by setting a single bit.
driver: i2c: npcx: Prevent transaction result overwritten by recovery.
Nicolas Pitre (1):
mmu: fix ARM64 compilation by removing z_mapped_size usage
Peter Bigot (1):
doc: data structures: fix description of sflist
Shlomi Vaknin (1):
dma: stm32: remove dump stream info in irq
Tomasz Bursztyka (8):
net/ieee802154: Invalidate frame in case of no address in relevant modes
net/ieee802154: Each fragment should be at least of its header's length
net/ieee802154: Avoid NULL pointer de-reference in packet reassembly
net/ieee802154: Make sure L2 drop any ACK frames
net/ieee802154: Do not unreference one time too many a fragmented packet
net/ieee802154: Drop fragmented packet if first frag is not present
net/6lo: First buffer fragment should hold the full compressed header
drivers/virtualization: Fix ivshmem PCIE reg bar lookup on ivshmem-plain
Torsten Rasmussen (4):
cmake: modules: remove Zephyr module duplicates from ZEPHYR_MODULE_NAMES
cmake: remove ZEPHYR_GCC_VARIANT variable
cmake: twister: Using common script for toolchain setting verification
scripts: using pathlib for in get_toolchain() method
Trond Einar Snekvik (1):
Bluetooth: Mesh: Verify network buffer max len
Vinayak Kariappa Chettimada (4):
Bluetooth: controller: Fix BT_CTLR_ULL_HIGH_PRIO default value
Bluetooth: controller: openisa: Fix unsupported ULL LLL Prio config
Bluetooth: controller: openisa: Fix to use compiler memory barrier
Bluetooth: controller: Fix build error with ISO support
Øyvind Rønningstad (2):
tfm_integration: Add tfm tag in sample.yml
tfm_ipc: Fix regex in sample.yml
Zephyr 2.5.0 RC2
Changes since 2.5.0-rc1:
Alexander Wachter (1):
doc: releasenotes 2.5: Add CAN driver release notes
Alexandre Bourdiol (2):
drivers: clock_control: Kconfig.stm32l4_l5_wb fix serie differences
kernel: Kconfig: increase test default MAIN_STACK_SIZE for ARM Cortex M
Anas Nashif (11):
twister: generate json report on demand
sof: update to latest SOF master
boards: cavs15: fixed link to private key
west: sign: add new option -D for configurations
west: rimage: get config dir from command line
drivers: edac: CONFIG_LOG_MINIMAL -> CONFIG_LOG_MODE_MINIMAL
boards: x86: depend on CONFIG_BUILD_OUTPUT_EFI
CODEOWNERS: Remove inactive users and minor cleanup
CODEOWNERS: cleanup and replacing few entries
MAINTAINER: maintainer file updates
release: Zephyr 2.5.0 RC2
Andrew Boie (1):
x86: use large VM size if ACPI
Andrzej Kaczmarek (1):
Bluetooth: shell: Fix 'bt per-adv-data'
Andrzej Puzdrowski (3):
drivers/flash: select to allow flash write by MPU on ARM SoCs
samples/subsys/mcumgr/smp_svr: disable log over shell
manifest: fix MCUboot build after #31404
Andy Ross (4):
tests/schedule_api: Correct tick/ms math for non-divisible clocks
release-notes-2.5: Note k_mem_pool removal
kernel/timeout: Schedule zero-time timeouts
kernel/timeout: Fix timeout "sooner" computation
Armando Visconti (1):
drivers/sensor: Fix typos in iis2dlpc/iis2iclx/lsm6dso
Carles Cufi (1):
doc: west: Fix config overrides
Daniel Leung (8):
linker: remove asterisk from IRQ/ISR section name macro
tests: mem_protect: use MP_NUM_CPUS instead of SMP
x86: clear GS at boot for x86_64
toolchain: add GEN_ABSOLUTE_SYM_KCONFIG()
tests: mem_map: put transplanted_function into its own section
tests: mem_map: fix execution test for x86_64 with coverage
tests: mem_protect: fix failing inheritance test under SMP
Revert "tests: context: disable if DEMAND_PAGING"
Detlev Zundel (1):
samples: display: lvgl: Fix README.rst
Dominik Ermel (15):
tests/fs/fa_api: Fix order of checks and broken zassert messages
fs: Add fs_file_t_init() function
settings: Add fs_file_t type variable initializations
tests/settings: Add fs_file_t type variable initializations
posix: Add fs_file_t type variable initializations
samples: littlefs: Add fs_file_t type variable initializations
samples: fs: Extend littlefs sample to native_posix and qemu_x86
fs: shell: Add fs_file_t type variable initializations
native_posix: fuse: Add fs_file_t type variable initializations
tests: fs: fatfs: Add fs_file_t type variable initializations
tests: fs: littlefs: Add fs_file_t type variable initializations
tests: fs: multifs: Add fs_file_t type variable initializations
tests: lib: gui: lvgl: Add fs_file_t type variable initializations
fs: Fix fs_open resource leak when invoked on fs_file_t object in use
doc: releasenotes 2.5: Add notes on addition fs_file_t_init
Eduardo Montoya (3):
manifest: openthread update with latest upmerge
net: openthread: configure required masterkey
net: openthread: add SRP Kconfig options
Emil Gydesen (2):
Bluetooth: shell: Fix number of optional args for iso send
Bluetooth: Audio: Add missing unref for ISO recv
Enjia Mai (1):
tests: msgq: Fix uncheck return value of coverity scan
Erwan Gouriou (10):
tests/drivers: pwm_api: Document how to tune test for stm32 targets
drivers/adc: stm32: Use bitfield for multiple channels detection
samples/drivers/adc: Few fixes for use with twister
drivers/watchdog: window-watchdog stm32: Fix timeout computing
tests/drivers/watchdog: Tune test for stm32 window watchdog
tests/drivers/watchdog: Review yaml file for stm32 window watchdog
drivers/watchdog: stm32: Select watchdog using compatible
samples/drivers/watchdog: Update for stm32 window watchdog
doc: release-notes-2.5: STM32 Additions
doc: release-notes-2.5: Shields Additions
Eugeniy Paltsev (4):
ARC: soc: hsdk: add MWDT compiler options
doc: ARC: add info page with Zephyr support status on ARC
tests: lib: cbprintf_fp: add filter for tests using newlib
twister: check if output is connected to tty before 'stty sane' call
Flavio Ceolin (12):
tests: socket: Fix compiler warnings
tests: schedule_api: Do not mess ms with ticks
tests: schedule_api: Improve log on error
sched: timeout: Do not miss slice timeouts
doc: scheduling: Remove ambiguous sentence
timer: arm: Fix idle usage option
timer: arm: idle is used when CONFIG_TICKLESS_KERNEL
timer: arm: Mark ticks as unused
tests: power: Fix Coverity error about uninitialized variable
power: Fix function return in dummy policy
power: Fix dummy policy states info
tests: power_mgmt_soc: Increase idle stack size
Francois Ramu (1):
drivers: timer: stm32 lptim fix Potentially overflow
Gerson Fernando Budke (6):
doc: release: 2.5: Add release notes about UpdateHub changes
doc: release: 2.5: Add notes about Cypress related changes
doc: release: 2.5: Add notes about Inventek es-WIFI changes
doc: release: 2.5: Add notes about Atmel related changes
doc: release: 2.5: Add note about TagoIO network cloud sample
doc: release: 2.5: Add note about west bossac runner
Giancarlo Stasi (1):
soc: arm: stm32l4: Fix stm32 ll header list
Greg Leach (1):
boards: Laird BT510 - add detail to docs and correct LED DTS reference
Guennadi Liakhovetski (1):
SOF: cAVS 1.5 needs reset-vector.S in the main image
Hake Huang (1):
drivers: mcux_flexcan driver errata
Hayden Ball (1):
max17055: Fix current conversion from MAX17055 unit to milliamps
Henrik Brix Andersen (4):
samples: canbus: canopen: mass-erase flash prior to running sample
dts: bindings: mtd: rename SPI/I2C EEPROM base binding
doc: releases: 2.5: add EEPROM release notes for v2.5
tests: drivers: pwm: api: run PWM tests in user space
Hubert Miś (4):
net: coap: define max token length
net: coap: Allow encoding packets using data from constant buffers
net: coap: define default CoAP version
net: coap: clean up token usage in samples and tests
Ioannis Glaropoulos (10):
trusted-firmware-m: update manifest pointer for TF-M module
arm: cortex_m: skip clearing CONTROL if this is done at boot
arm: cortex_m: force FP context stacking by default
arm: cortex_m: select by default FP sharing mode when using the FPU
arm: aarch32: introduce status bit-flag for the MPU region width
arm: cortex_m: make lazy FP stacking enabling dynamic
arm: cortex_m: log EXC_RETURN value in fatal.c
arm: cortex_m: update docs to reflect the lazy stacking functionality
doc: release notes: a note for changing the default FP mode in ARM
tests: arm: cortex_m: test dynamic lazy stacking on Cortex-m
Jan Pohanka (1):
usb: fix possible deadlock in usb_transfer_sync()
Jedrzej Ciupis (2):
west.yml: Update hal_nordic revision
drivers: gpio_nrfx: Allocate GPIOTE channels with nrfx
Jian Kang (1):
boards: cavs15: change the signing command in flash.sh
Jingru Wang (1):
twister: rename variable p to log_root
Joakim Andersson (19):
Bluetooth: host: Handle ATT timeout on disconnected ATT channel
Bluetooth: host: Remove ATT modification of L2CAP conn pointer
Bluetooth: host: Fail pairing with identical public key
Bluetooth: host: Remove deprecated scan filter duplicate params
Bluetooth: host: Remove deprecated security defines
Bluetooth: host: Remove deprecated BT_BUF_USER_DATA_MIN macro
Bluetooth: host: Remove the deprecated Advertising Types definitions
Bluetooth: host: Remove deprecated connection create API functions.
Bluetooth: host: remove deprecated bt_conn_security function
Bluetooth: host: Remove the deprecated bt_conn_create_slave_le function
Bluetooth: samples: Fix stack overflow in TX power control samples
Bluetooth: host: Deprecate the bt_set_id_addr API function
Bluetooth: host: Fix doxygen in addr header
Bluetooth: host: Prevent bt_rand calls before bt_enable
Bluetooth: host: Add options to control behavior of the init command
Bluetooth: shell: Fix misleading shell message id-create failed
Bluetooth: host: Fix fixed passkey for legacy pairing
Bluetooth: kconfig: Fix SMP dependency on BT_ECC
Bluetooth: host: Mark the option BT_FIXED_PASSKEY as insecure
Johann Fischer (1):
usb: fix BOS descriptor registration
Jordan Yates (1):
lora: sx12xx_common: force sleep on boot
Jukka Rissanen (6):
samples: net: syslog: Add info how to manually start net backend
net: config: Tweak the startup of logging backend
net: tcp2: Create a timer for connection establishment
net: tcp2: Cleanup properly if running out of mem
net: tcp2: slist API is not thread safe so use locking
net: tcp2: Properly cleanup receive queue
Kasun Hewage (1):
net: coap: Fixed discovery response formatting according to RFC6690
Katrin Gartenmeister (1):
doc: corrected Bluetooth sample documentation
Krzysztof Chruscinski (2):
logging: Revamp menuconfig
drivers: uart: Clarity timeout in uart_rx_enable and add doxygen links
Kumar Gala (7):
sdk: Move to SDK 0.12.2
x86: Fix zefi.py generation to use SDK toolchain
MAINTAINERS/CODEOWNERS: Remove nategraff-sifive
ci: ...
Zephyr 2.5.0 RC1
Aastha Grover (2):
code-guideline: Fixing code violation 10.4 Rule
boards: x86: acrn : Add configurations for acrn_ehl_crb
Abhishek Shah (14):
drivers: pcie_ep: iproc: update registers for v2 IP
dts: arm: viper: m7: Add reset interrupts for pcie node
drivers: pcie_ep: iproc: enable reset interrupts conditionally
drivers: pcie_ep: iproc: shorten file names
drivers: pcie_ep: iproc: move msi(x) functions
dts: arm: viper: m7: Add PVM interrupts for pcie node
drivers: pcie_ep: iproc: Add MSI-X PVM feature for Viper
drivers: pcie_ep: iproc: clear pvm interrupts before handling
dts: bindings: pl330: add dma-cells property
dts: arm: viper: Add tx/rx pl330 channels for iProc PCIe node
pcie: endpoint: Add public API for data transfer with System DMA
drivers: pcie_ep: iproc: Add support for PL330 DMA
drivers: pcie_ep: Add API to achieve data transfer with system DMA
drivers: pcie_ep: iproc: Remove sys_read8 from unmap API
Akseli Peltola (1):
modem: fix socket descriptor leak
Alberto Escolar Piedras (3):
board: native_posix: Fix timer for k_busy_wait()
posix: Add cpu_hold() function to better emulate code delay
board: native_posix: Add test for k_busy_wait and cpu_hold
Alex Tsamakos (8):
boards: arm: actinius_icarus: update RAM partitions in DTS
boards: arm: actinius_icarus: add vbatt node in DTS
boards: arm: actinius_icarus: add feather and arduino related aliases
boards: arm: actinius_icarus: update supported board capabilities
boards: arm: actinius_icarus: add lis2dh12 compatibility in DTS
boards: arm: actinius_icarus: add docs portal link, image, description
boards: arm: actinius_icarus: turn on hardware stack protection
boards: arm: actinius_icarus: fix partition sizes for SPU compatibility
Alexander Kozhinov (24):
west.yml: civetweb: revision number
samples: net: civetweb: reduce RAM usage
boards: arm: nucleo_h745zi_q: dts
zephyr: codeowners:
zephyr: maintainers:
samples: civetweb_websocket_server: init project
boards: arm: nucleo_h745zi_q: doc
samples: net: civetweb: prj.conf
samples: net: sockets: README.rst
boards: arm: stm32h747i_disco: ethernet
boards: arm: stm32h747i_disco: rng
boards: arm: stm32h747i_disco: doc: images
boards: arm: nucleo_h745zi_q: openocd.cfg
samples: net: civetweb: Refractor code structure
CODEOWNERS: civetweb
soc: arm: st_stm32: stm32h723
dts: arm: st: h723
drivers: clock_control: stm32h7
boards: arm: nucleo_h723zg
west.yaml: hal_stm32
dts: arm: st: h7: stm32h745
samples: subsys: canbus: canopen: README.rst
boards: arm: nucleo_f303re: dts: usart1
boards: arm: nucleo_f303re
Alexander Mihajlovic (1):
soc: arm: stm32l0: Add STM32L071 series
Alexander Wachter (10):
include: drivers: pinmux: stm32: Add missing C linkage
include: sys: thread_stack add missing extern "C" on C++
drivers: can: Rework can_configure API
drivers: can: rework zcan_frame and zcan_filter
drivers: can: Compile time check of can timing not set
tests: canbus: remove unnecessary test for invalid frames
tests: drivers: can: timing
drivers: can: flexcan: Fix incorrect timing.
doc: can_api: Update the CAN documentation after API update
doc: CAN: Fix code in CAN API documentation
Alexandre Bourdiol (20):
tests: arch: arm: arm_thread_swap: use memset() instead of memcpy()
boards: arm: nucleo_f429zi: add ADC support
boards: arm: stm32f3_disco: add ADC support
boards: arm: nucleo_g474re add ADC support
boards: arm: disco_l475_iot1: add ADC support
boards: arm: nucleo_l4r5zi: add ADC support
test: drivers: watchdog: 64bits variables for STM32H7 and STM32F7
boards: arm: stm32 review Joystick polarity and pul up/down
boards: arm: stm32h747i_disco: wakeup pin is active high
west.yml: update revision modules/hal/stm32/hal_stm32
modules: Delete switches USE_STM32_HAL_RCC and USE_STM32_HAL_RCC_EX
drivers: pwm: pwm_stm32.c: enable ARR preload
doc: guides: debugging: host-tools.rst: typo PATH
arch: arm: aarch32:cortex_m: timing.c: cortex M7 may need DWT unlock
drivers: flash: flash_stm32g4x.c: manage bank1/2 discontinuity
drivers: flash: flash_stm32g4x.c: rework flash_stm32_block_erase_loop
drivers: flash: flash_stm32g4x.c: take into account bank swap
divers: flash: flash_stm32: add flash configuration check
drivers: flash: flash_stm32h7x.c: manage bank1/2 discontinuity
drivers: flash: stm32h7: compilation issue. Fix typo
Alexandre Mergnat (9):
arch: riscv: add e31 core support
arch: riscv: add pmp support
arch: riscv: add memory protection support
riscv: add support for canaries
boards: hifive1_revb: add support for memory protection features
samples: userspace: hello_world
tests: userspace: add riscv support
tests: mem_protect: add riscv support
tests: protection: add riscv support
Alexey Brodkin (6):
board: arc: hsdk*: Accommodate upstream OpenOCD for ARC
board: arc: hsdk_2cores: Re-add missing taps into JTAG chain
Revert "tests: kernel: lifo_usage: Exclude on qemu_arc_em"
Revert "tests: exclude qemu_arc_hs in lifo_usage test"
Revert "tests: Exclude qemu_arc{em|hs} in some"
ARC: QEMU: Enable icount support
Alexey Tsvetkov (1):
bluetooth: update comment to LE Advertising Parameters struct
Ali Sabil (1):
board: arm: sensortile_box: add user button 1
Anas Nashif (207):
sanitycheck: build_only ambiguity cleanup
sanitycheck: adapt testsuite for build_only cleanup
sanitycheck: support --filter to limit number of tests built
sanitycheck: tests: adapt testsuite to new filter
actions: install needed modules for docs
Bluetooth: remove unused extern z_prf
samples: synchronization: show cpu
samples: synchronisation: run thread_b on cpu 0 in SMP mode
doc: use latest label instead of version in docs
west: commands: sign: Add signing support for other CAVS targets
ipm: cavs_idc: use the IPC/IDC definitions in SoC
soc: xtensa: fix definition of PLATFORM_CORE_COUNT
intel_adsp: make idc variable depend on CONFIG_IPM_CAVS_IDC
cmake: work around sdk toolchain configuration for xtensa [REVERTME]
interrupt controller: set PER_CPU_OFFSET for new SoCs
manifest: add CNL, TGL, ICL overlays
build: add option to delete intermediate files
up_squared_adsp: disable bin creation on up_squared_adsp
kernel: only resume suspended threads
kernel: do not queue a thread that is already queued
kernel: document k_sleep with K_FOREVER
soc: intel_adsp: remove stray soc directory
boards: rename up_squared_adsp intel_adsp_cavs15
logging: mipi-sys-t: move platform.h to main tree
manifest: mipi-sys-t: move platform.h
ci: add more fields to versions.json
doc: fix showing latest version in sidebar
sanitycheck: count skipped tests due to overflow
sanitycheck: handle overflow skips
toolchain: make clang happy with inline asm
toolchain: clang: add -Wno-typedef-redefinition option
clang: remove include-fixed inclusion
clang: do not assert on libgcc not found
clang: remove cache handling
boards: qemu_x86: enable llvm toolchain
llvm: add support for building x86_64-pc
clang: use LLVM_TOOLCHAIN_PATH instead of CLANG_ROOT_DIR
sanitycheck: test on integration platforms on top of default platforms
libc: add labs() and llabs()
net: lldp: use llabs with int64_t
tests: native_posix: use llabs with int64_t
doc: kernel: clarify object limits
CODEOWNERS: populate entry for kernel docs
sanitycheck: do not try platforms not in hardware map
kernel: move xip code to dedicated file
kernel: init: move banner handling
tests: kernel: do not build on all platforms
sanitycheck: print pid of qemu process when debugging
sanitycheck: error out if we do not find any tests
sanitycheck: use multiprcoessing instead of threads
sanitycheck: do not report about execution if --build-only
sanitycheck: report test name if no status
sanitycheck: add some debugging during report phase
sanitycheck: reduce verbosity
sanitycheck: fix arch filtering
sanitycheck: unify terminology and fix accounting
sanitycheck: schema: 'available' is a runtime key
sanitycheck: cleanup hardware map handling
sanitycheck: tests: simplify filter testcase
sanitycheck: fix hardware map defaults
sanitycheck: add option to treat overflows as errors
MAINTAINER: fix kconfig area
MAINTAINERS: add missing labels
Revert "boards: define flash partitions for nucleo_h743zi"
Revert "soc: stm32h7: define rom offset when using mcuboot"
Revert "drivers/flash: add support for stm32h7 devices"
Revert "dts: flash: write/erase block size to stm32h7 devs"
kernel: fix usage of KERNEL_COHERENCE macro
kernel: make KERNEL_COHERENCE depend on ARCH_HAS_COHERENCE
Revert "kernel: fix usage of KERNEL_COHERENCE macro"
actions: rename jobs
sanitycheck: fix json file generation
doc: fix doxygen groups for k_heap
power: standarize PM Kconfigs and cleanup
power: move kconfigs from arch/ to power/
power: remove SYS_ and sys_ prefixes
power: move z_pm_save_idle_exit prototype to power.h
power: rename _sys_suspend/_s...
Zephyr v2.4.0
We are pleased to announce the release of Zephyr RTOS version 2.4.0.
Major enhancements with this release include:
-
Introduced initial support for virtual memory management.
-
Added Bluetooth host support for periodic advertisement and isochronous
channels. -
Enabled the new TCP stack, TCP2, by default. This stack was introduced in
Zephyr v2.1.0 to improve network protocol testability with open source tools. -
Introduced a new toolchain abstraction with initial implementations for GCC
and LLVM/Clang, and groundwork for future support of commercial toolchains. -
Moved to using C99 integer types and deprecate Zephyr integer types. The
Zephyr types can be enabled by Kconfig DEPRECATED_ZEPHYR_INT_TYPES option.
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
The following CVEs are addressed by this release:
- CVE-2020-10060: UpdateHub Might Dereference An Uninitialized Pointer
- CVE-2020-10064: Improper Input Frame Validation in ieee802154 Processing
- CVE-2020-10066: Incorrect Error Handling in Bluetooth HCI core
- CVE-2020-10072: all threads can access all socket file descriptors
- CVE-2020-13598: FS: Buffer Overflow when enabling Long File Names in FAT_FS and calling fs_stat
- CVE-2020-13599: Security problem with settings and littlefs
- CVE-2020-13601: Under embargo until 2020/11/18
- CVE-2020-13602: Remote Denial of Service in LwM2M do_write_op_tlv
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
Known issues
You can check all currently known issues by listing them using the GitHub
interface and listing all issues with the bug label.
API Changes
-
Moved to using C99 integer types and deprecate Zephyr integer types. The
Zephyr types can be enabled by Kconfig DEPRECATED_ZEPHYR_INT_TYPES option. -
The
<sys/util.h>
header has been promoted to a documented API with
experimental stability. Seeutil_api
for an API
reference. -
The
wdt_feed
function will now return-EAGAIN
if
issuing a feed would stall the caller. Application code may need to
ignore this diagnostic result or initiate another feed operation
later. -
<drivers/uart.h>
has seen its callbacks normalized.
uart_callback_t
anduart_irq_callback_user_data_t
had their signature changed to add a struct device pointer as first parameter.
uart_irq_callback_t
has been removed.uart_callback_set
,
uart_irq_callback_user_data_set
anduart_irq_callback_set
user code have been modified accordingly. -
<drivers/dma.h>
has seen its callback normalized. It had its signature
changed to add a struct device pointer as first parameter. Such callback
signature has been generalized throuh the addition of dma_callback_t.
'callback_arg' argument has been renamed to 'user_data. All user code have
been modified accordingly. -
<drivers/ipm.h>
has seen its callback normalized.
ipm_callback_t
had its signature changed to add a struct device
pointer as first parameter.ipm_register_callback
user code have
been modified accordingly. The context argument has been renamed to user_data
and all drivers have been modified against it as well. -
The
fs_open
function now accepts open flags that are passed as
a third parameter.
All custom file system front-ends require change to the implementation
ofopen
callback to accept the new parameter.
To maintain original behaviour within user code, two argument invocations
should be converted to pass a third argumentFS_O_CREATE | FS_O_RDWR
. -
The struct device got 3 attributes renamed:
config_info
toconfig
,
driver_api
toapi
and finallydriver_data
todata
.
This renaming was done to get rid of legacy names, for which the reasons
do no longer apply. -
All device instances got a const qualifier. So this applies to all APIs
manipulatingstruct device *
(ADC, GPIO, I2C, ...). In order to avoid
const qualifier loss on ISRs, all ISRs now take aconst *void
as a
paremeter as well. -
The
_gatt_
and_GATT_
infixes have been removed for the HRS, DIS
and BAS APIs and the Kconfig options. -
<include/bluetooth/gatt.h>
callbackbt_gatt_attr_func_t
used by
bt_gatt_foreach_attr
andbt_gatt_foreach_attr_type
has
been changed to always pass the original pointer of attributes along with its
resolved handle. -
Established the unrestricted alignment of flash reads for all drivers.
Deprecated in this release
-
The full set of
k_mem_pool
andsys_mem_pool
APIs
are considered deprecated as of this release. The replacements are
thek_heap
andsys_heap
APIs. These APIs are not tagged with
__deprecated
in the 2.4 release, but will be in 2.5. They will be
removed completely in Zephyr 2.6 LTS. The set of APIs now deprecated is as
follows:k_mbox_data_block_get()
k_pipe_block_put()
K_MEM_POOL_DEFINE()
k_mem_pool_alloc()
k_mem_pool_free()
k_mem_pool_free_id()
SYS_MEM_POOL_DEFINE()
sys_mem_pool_init()
sys_mem_pool_alloc()
sys_mem_pool_free()
sys_mem_pool_try_expand_inplace()
-
The Kconfig option
CONFIG_MULTITHREADING
to disable multi-threading was
deprecated due to lack of maintainership. This means that single-threaded
mode with the scheduler disabled is deprecated; normal multi-threaded mode is
still fully supported.
Removed APIs in this release
-
Other
- The deprecated
MACRO_MAP
macro has been removed from the
util_api
. UseFOR_EACH
instead. - The CONFIG_NET_IF_USERSPACE_ACCESS is removed as it is no longer needed.
- The deprecated
-
Build system
- The set of
*_if_kconfig()
CMake functions have been removed. Use
_ifdef(CONFIG_ ...)
instead.
- The set of
Stable API changes in this release
-
USB
- HID class callbacks now takes a parameter
const struct device*
which
is the HID device for which callback was called.
- HID class callbacks now takes a parameter
-
Bluetooth
- The
_gatt_
infix has been removed from all GATT service APIs.
- The
-
Bluetooth HCI Driver
- bt_hci_evt_is_prio() removed, use bt_hci_evt_get_flags() instead when
CONFIG_BT_RECV_IS_RX_THREAD is defined and call bt_recv and bt_recv_prio
when their flag is set, otherwise always call bt_recv().
- bt_hci_evt_is_prio() removed, use bt_hci_evt_get_flags() instead when
Kernel
-
Initial support for virtual memory management
- API definitions in
include/sys/mem_manage.h
. - Supporting architectures will implement
arch_mem_map()
and enable
CONFIG_MMU
. - The kernel is linked at its physical memory location in RAM.
- The size of the address space is controlled via
CONFIG_KERNEL_VM_SIZE
with memory mapping calls allocating virtual memory growing downward
from the address space limit towards the system RAM mappings. - This infrastructure is still under heavy development.
- API definitions in
-
Device memory mapped I/O APIs
-
Namedspaced as DEVICE_MMIO and specified in a new
include/sys/device_mmio.h
header. -
This is added to facilitate the specification and the storage location of
device driver memory-mapped I/O regions based on system configuration.- Maintained entirely in ROM for most systems.
- Maintained in RAM with hooks to memory-mapping APIs for MMU or PCI-E
systems.
-
-
Updates for Memory Domain APIs
- All threads now are always a member of a memory domain. A new
memory domaink_mem_domain_default
introduced for initial threads
like the main thread. - The
k_mem_domain_destroy()
andk_mem_domain_remove_thread()
APIs
are now deprecated and will be removed in a future release. - Header definitions moved to
include/app_memory/mem_domain.h
.
- All threads now are always a member of a memory domain. A new
-
Thread stack specification improvements
-
Introduced a parallel set of
K_KERNEL_STACK_*
APIs for specifying
thread stacks that will never host user threads. This will conserve memory
as ancillary data structures (such as privilege mode elevation stacks) will
not need to be created, and certain alignment requirements are less strict. -
Internal interfaces to the architecture code have been simplified. All
thread stack macros are now centrally defined, with arches declaring
support macros to indicate the alignment of the stack pointer, the
stack buffer base address, and the stack buffer size.
-
Architectures
-
ARC
- Added ARC MetaWare toolchain support
- General arch improvements for stacks & memory domains
- API improvements for cache flush and cache invalidate
- Debugging help: show all registers on exception
- Fix for fast irq (one register bank configuration)
- Fix for undefined shift behavior (CID 211523)
-
ARM
-
AARCH32
- Added support for ARM Cortex-M1 architecture.
- Implemented the timing API in Cortex-M architecture using the Data
Watchpoint and Trace (DWT) unit. - The interrupt vector relaying feature support was extended to Cortex-M
Mainline architecture variants. - Cortex-M fault handling implementation was enhanced by adding an option to
generate and supply the full register state to the kernel fatal error
handling mechanism. - Fixed Cortex-M boot sequence for single-threaded applications
(CONFIG_MULTITHREADING=n). - Added thread safety to Non-Secure entry function calls in ARMv8-M
architecture. - Fixed stack randomization for main thread.
- Fixed exception vector table alignment in Cortex-M architecture
- Increased test coverage in QEMU for ARMv6-M architecture variant.
- Removed the implementation of arch_mem_domain_* APIs for Cortex-M
-
AARCH64
- Re...
-