Skip to content

Releases: zephyrproject-rtos/zephyr

Zephyr v2.5.0

14 Feb 15:14
Compare
Choose a tag to compare

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 an args parameter which points
    to the CoAP payload that comprises the arguments, and an args_len parameter
    to indicate the length of the args 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 take callback 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 setting CONFIG_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 additional retries
    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 the payload 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 the token 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 property supply-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. When CONFIG_PRIVACY is
      enabled a valid IRK has to be supplied by the application for this case.

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.
  • 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.

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 of errno 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.
  • 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.

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
  • 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.
    • 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...
Read more

Zephyr v2.5.0 RC4

12 Feb 12:33
Compare
Choose a tag to compare
Zephyr v2.5.0 RC4 Pre-release
Pre-release

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

07 Feb 16:32
Compare
Choose a tag to compare
Zephyr v2.5.0 RC3 Pre-release
Pre-release

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

03 Feb 05:13
Compare
Choose a tag to compare
Zephyr 2.5.0 RC2 Pre-release
Pre-release

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: ...
Read more

Zephyr 2.5.0 RC1

24 Jan 22:25
Compare
Choose a tag to compare
Zephyr 2.5.0 RC1 Pre-release
Pre-release
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...
Read more

Zephyr v2.4.0

27 Sep 20:43
zephyr-v2.4.0
Compare
Choose a tag to compare

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. See util_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 and uart_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 and uart_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
    of open callback to accept the new parameter.
    To maintain original behaviour within user code, two argument invocations
    should be converted to pass a third argument FS_O_CREATE | FS_O_RDWR.

  • The struct device got 3 attributes renamed: config_info to config,
    driver_api to api and finally driver_data to data.
    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
    manipulating struct device * (ADC, GPIO, I2C, ...). In order to avoid
    const qualifier loss on ISRs, all ISRs now take a const *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> callback bt_gatt_attr_func_t used by
    bt_gatt_foreach_attr and bt_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 and sys_mem_pool APIs
    are considered deprecated as of this release. The replacements are
    the k_heap and sys_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. Use FOR_EACH instead.
    • The CONFIG_NET_IF_USERSPACE_ACCESS is removed as it is no longer needed.
  • Build system

    • The set of *_if_kconfig() CMake functions have been removed. Use
      _ifdef(CONFIG_ ...) instead.

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.
  • Bluetooth

    • The _gatt_ infix has been removed from all GATT service APIs.
  • 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().

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.
  • 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 domain k_mem_domain_default introduced for initial threads
      like the main thread.
    • The k_mem_domain_destroy() and k_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.
  • 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...
Read more

Zephyr v2.4.0-rc3

24 Sep 23:11
v2.4.0-rc3
Compare
Choose a tag to compare
Zephyr v2.4.0-rc3 Pre-release
Pre-release
Alexander Kozhinov (1):
      samples: hello_world: cmake warning

Alexandre Bourdiol (5):
      soc: arm: st_stm32: stm32f0: take into account SW_VECTOR_RELAY
      tests: kernel: mem_protect: syscalls: FAULTY_ADDRESS for nucleo_l073rz
      boards: arm: b_l4s5i_iot01a: leds are active high
      tests: kernel: timer: timer_api: tick align for test_timer_k_define
      tests: kernel: timer: timer_api: reorder test_timer_remaining step

Anas Nashif (6):
      samples: tracing: print out useful information
      tracing: fix empty thread name
      samples: synchronisation: handle empty thread name
      tracing: x86_64: move switched_in to switch function
      tracing: handle null thread names with systemview
      actions: increase stale operations

Andrew Boie (3):
      x86-64: fix thread tracing
      doc: releasenotes: mem pool deprecation
      tests: exception: fix thread entry points

Andrzej Głąbek (1):
      modules/Kconfig.nordic: Do not select HAS_CMSIS_CORE through HAS_NRFX

Andrzej Puzdrowski (1):
      include/storage/flash_map: describe return values of flash_area_open()

Armando Visconti (2):
      drivers/sensor/lsm6dsl: Fix read/write bus API in shub code
      drivers: sensor: hts221: Add checks for drdy_gpios macros

Carles Cufi (1):
      kernel: Deprecate CONFIG_MULTITHREADING

Daniel Leung (4):
      tests: x86/pagetables: skip table dumping if large memory
      tests: thread_apis: move uptime gathering in join scenario
      tests: portability/cmsis_rtos_v2: skip up_squared
      samples: cmsis_rtos_v1: philosophers: skip up_squared

David Komel (2):
      drivers: net: slip: Allow slip to co-exist with other interfaces
      net: tcp2: fix sysworkq corruption in tcp_conn_unref()

David Leach (1):
      test: power: Remove frdm_k64f platform from allowed list

Dominik Ermel (1):
      storage: flash_map: Unify partition processing macros name

Emil Gydesen (4):
      Bluetooth: Host: Fix PA sync cancel scan update
      Bluetooth: Host: Change PA sync scan to fast scan
      Bluetooth: Shell: PA sync terminate callback clears entry
      Bluetooth: Shell: Fix PA shell command parameter cnt

Emil Obalski (1):
      tests: shell: Correct overlay extension

Eric Johnson (3):
      sys: byteorder: Fix incorrect shift in sys_get_be48/le48
      tests: kernel: common: Add tests for 48-bit byteorder functions
      tests: kernel: common: Add tests for 24-bit byteorder functions

Erik Brockhoff (1):
      bluetooth: controller: fix mark/unmark error in ull_adv::disable

Erwan Gouriou (1):
      boards: nucleo_l552ze_q: Fix connectors image

Flavio Ceolin (2):
      doc: release notes: Update security notes for 2.4
      codeowners: Add owners to security documentation

Gerard Marull-Paretas (1):
      lib: gui: lvgl: fix touch point rotation equations

Gerson Fernando Budke (2):
      dts: arm: atmel: sam4l: Fix pinctrl typo
      samples: net: echo_server: Decrease buffer for atsamr21_xpro

Hake Huang (1):
      board: update rt6xx series sram mapping

Henrik Brix Andersen (2):
      boards: arm: arty: note which boards can use the pre-built bitstream
      doc: release: 2.4: add sensor_attr_get() in release notes

Ievgenii Meshcheriakov (4):
      drivers/flash/soc_flash_nrf: Name flash sync choice
      drivers/flash/soc_flash_nrf: Rename config option SOC_FLASH_NRF_RADIO_SYNC
      drivers/flash/soc_flash_nrf: Enable ticker radio sync only with Zephyr LL
      drivers/flash/soc_flash_nrf: Remove blank lines at the end of config files

Ilya Averyanov (1):
      Bluetooth: fix strncpy call in bt_set_name

Ioannis Glaropoulos (6):
      arch: arm: cortex_m: cleanup SW_VECTOR_RELAY_CLIENT dependencies
      modules: tfm: make BL2 header in non-secure image configurable
      boards: mps2_an521: do not offset the image by default by 0x400.
      boards: arm: musca_b1: do not offset the image by default by 0x400.
      boards: nucleo_l552ze_q: do not offset the image by default by 0x400.
      tests: explicitly disable HW Stack Protection when needed

Joakim Andersson (2):
      Bluetooth: SMP: Move le_sc_supported helper function up
      Bluetooth: host: Fix stuck OOB get local functions SC is not supported

Johan Hedberg (1):
      x86: pcie: Fix calling pcie_mm_init()

Johann Fischer (1):
      drivers: eth_enc424j600: initialize device pointer

Jukka Rissanen (8):
      net: conn: Ignore unhandled IPv4 broadcast packets
      net: pkt: Add net_pkt_is_empty() util function
      net: Drop incoming packet if there is no data in it
      net: gptp: Allow user to tweak priority1 and priority2 values
      net: gptp: Print priority1 and priority2 vars in net-shell
      tests: net: tcp2: Fix crash in frdm_k64f
      net: DHCPv4 needs UDP to work properly
      net: tcp2: Access k_work in k_delayed_work using field name

Julien D'Ascenzio (1):
      soc: arm: stm32[l4|wb]: fix power state exit

Krzysztof Chruscinski (1):
      drivers: clock_control: nrf: Fix waiting for LF clock

Kumar Gala (3):
      net: tcp2: Fix build failures on 64-bit platforms
      ci: double number of builders for daily build
      doc: release: 2.4: Add notes about devicetree related changes

Lauren Murphy (1):
      doc: Clarify semantics of k_msgq_put

Lingao Meng (1):
      Bluetooth: Mesh: Fix send input_complete before public key

Luiz Augusto von Dentz (4):
      Bluetooth: UUID: Fix BT_UUID_ES_TRIGGER_SETTING
      Bluetooth: GATT: Fix assuming CCC position
      Bluetooth: L2CAP: Document behavior of alloc_buf
      Bluetooth: L2CAP: Truncate RX MTU if segmentation is not supported

Maksim Masalski (1):
      tests: arch: x86 mem protection check CPU scrubs regs after syscall

Marek Porwisz (1):
      net: openthread: Fix stack overflow for joiner

Maureen Helm (3):
      doc: release: Add 2.4.0 highlights
      doc: release: Add NXP SoCs, boards, and drivers to 2.4.0 notes
      release: Zephyr 2.4.0-rc3

Peter Bigot (2):
      logging: avoid null pointer dereference in loop
      tests: kernel/sleep: increase maximum threshold for nRF51

Ryan Erickson (1):
      doc: release notes: mention Pinnacle 100 board addition

Siddharth Chandrasekaran (1):
      board: stm32_min_dev: Fix LED0 connection inversion

Stephan Walter (1):
      drivers: nrf_qspi: fix devicetree opcode references

Torsten Rasmussen (2):
      cmake: fix zephyr_get_system_include_directories_for_lang() function
      west.yml: update openthread module

Trond Einar Snekvik (1):
      Bluetooth: Mesh: Provisioning: Reject identical random

Vinayak Kariappa Chettimada (3):
      Bluetooth: controller: Fix REJECT_IND PDU handling
      Bluetooth: controller: nRF53x: Fix missing sw_switch clear DPPI config
      Bluetooth: controller: Fix redundant PDU transmission

Wentong Wu (2):
      tests: kernel: mem_map: Explicitly cast function pointer to (void *)
      arch: x86: mmu: use z_x86_kernel_ptables as array.

Øyvind Rønningstad (3):
      arm: tz: secure_entry_functions.ld: Fix NSC_ALIGN redefinition
      arm: tz: secure_entry_functions.ld: Fix NSC_ALIGN for nRF devices
      cortex_m: secure_entry_functions.ld: Increase SAU alignment to 32

Zephyr v2.4.0-rc2

19 Sep 15:39
v2.4.0-rc2
Compare
Choose a tag to compare
Zephyr v2.4.0-rc2 Pre-release
Pre-release
Abhishek Shah (2):
      Revert "drivers: watchdog: Remove useless Kconfig entry"
      drivers: watchdog: cmsdk: rename wdog_cmsdk_apb_enable

Abram Early (1):
      drivers: winc1500: Fix signed/unsigned comparison

Alexandre Bourdiol (7):
      tests: benchmarks: data_structure_perf: rbtree: uninitialized field
      tests: lib: cmsis:transform: cf64 min_ram 96k
      tests: lib: cmsis:transform: cf64 min_ram reorder test to fit 96k
      drivers: dma: dma_stm32: can't use device_get_binding() during init
      drivers: dma: dma_stm32_v2: typo in compilation switch
      tests: kernel: context: align timer init on ticks
      tests: posix: common: move printk() out of k_usleep() tick alignment

Anas Nashif (14):
      tests: footprint: remove deperecated API call
      samples: shell: fs: require keyboard harness
      actions: add backporting bot
      tests: usb: add fixture requirement
      power: fix Kconfig help message
      board: arc: fix nsim_em7d_v22 identifier
      boards: ODROID-GO: fix board identifier
      boards: LPCXpresso55S69: remove duplicate identifier
      sanitycheck: error on duplicate board identifier
      boards: lpcxpresso55s69_cpu1: disable sanitycheck
      samples: display: add fixture
      sanitycheck: capture timeout as reason in cases we kill qemu
      sanitycheck: comment cleanup and style fixes
      actions: stale: increase operations per run

Andrew Boie (12):
      mps2_an385: use default stack sizes
      tests: userspace: fix flaky behavior
      aarch64: work around QEMU 'wfi' issue
      x86: print more detail on non-present pagefaults
      tests: mem_protect: fix test prototypes
      tests: mem_protect: fix SMP race
      doc: release-notes: kernel & x86
      sched: hold spinlock in z_thread_timeout()
      sched: check if runnable in sliceable()
      sched: hold spinlock in z_time_slice()
      sched: don't use local lock in z_tick_sleep()
      x86: memory map BIOS Data Area

Andrzej Głąbek (2):
      drivers: spi: Kconfig.nrfx: Use RAM buffers for SPIMs by default
      drivers: spi: nrfx: Restore recently changed spi_context function

Andrzej Kaczmarek (1):
      Bluetooth: controller: Fix TxAdd setting in auxiliary PDU

Andrzej Puzdrowski (5):
      include/drivers/flash: correction on the unrestricted alignment of writes
      drivers/flash/nrf_qspi_nor: corrects write-block-size to 4B
      release-note: settings, management and other updates
      manifest: mcuboot update
      release-notes-2.4: flash changes

Armando Visconti (2):
      drivers: sensor: lis2dh: make the driver multi-instance
      drivers: sensor: lsm6dsl: make the driver multi-instance

Carles Cufi (8):
      github: actions: Use on-PR labeler
      github: labeler: Fix dts/ folder matching
      Revert "github: labeler: Fix dts/ folder matching"
      github: labeler: Remove line using negation (!)
      Bluetooth: controller: Make RX prio thread stack configurable
      Bluetooth: tester: Fixes for GCC 10.x
      boards: nordic: Turn hardware stack protection on by default
      boards: nrf52840dongle: Enable serial conditionally

Carlo Caione (1):
      arm64: tracing: Fix double tracing

Crist Xu (1):
      drivers: usb: Fix usb fail when using the on-chip memory

Daniel Leung (9):
      benchmarks: add an app for commonly used kernel funcs footprint
      x86: pcie: fallback to config via PIO
      tests: latency_measure: move timing_init() earlier
      doc: releases: add notes on core dump for v2.4 release
      x86_64: fix size to init stack at boot
      linker: add macros so iterable sections can be garbage collected
      linker: do not force keep common kernel objects
      kernel: add kconfig CONFIG_KERNEL_MEM_POOL
      samples: basic/minimal: disable memory pool when MT=n

Daniel Schaupp (1):
      doc: getting_started: updated reel board blinky gif

David Leach (1):
      random: rand32_ctr_drbg: Fix missed device constify change

Dominik Ermel (1):
      storage: flash_map: Fix checking unsigned for negative value

Eduardo Montoya (1):
      net: openthread: fix initialization with link raw enabled

Emil Obalski (8):
      usb: Fix for is_ep_valid
      usb: clock_control: Fix symbol when getting mgr for HFCLK
      usb: intel: Fix the sample, update to recent API change.
      usb: nrf: Do not allow to clear STALL or dtoggle for ISO ep.
      usb: cdc: Semaphore per CDC_ACM instance.
      usb: cdc_acm: Do not change rx/tx_irq_ena flags on RESET and CONFIGURED
      samples: mgmt: smp_svr: Add Serial over USB CDC_ACM overlay.
      samples: mgmr: smp_svr: Build samples in CI.

Erwan Gouriou (9):
      CODEOWNERS: aplhabetical sorting
      CODEOWNERS: Add reviewers on stm32 components
      CODEOWNERS: stm32: Update on active members
      drivers/entropy: stm32: fix error erasing
      dts/arm/st: Keep systick disabled by default
      boards: Fix obsolete link to flash partition doc
      doc: release notes  V2.4.0: STM32 related additions
      doc: release notes  V2.4.0: Shields additions
      dts/Kconfig: Remove HAS_DTS_I2C

Erwin Rol (1):
      boards: nucleo_l4r5zi: Correct SPI1 SCK pin setting

Eug Krashtan (1):
      samples: net: sockets: Fix for multicast filtering

Eugeniy Paltsev (2):
      linker: kobject-text: align multiline string definition syntax
      ARC: linker: merge GNU and MWDT linker scripts

Fabio Utzig (7):
      doc: bump breathe>=4.21.0
      doc: enable SEPARATE_MEMBER_PAGES compatibility
      doc: add new @option Doxygen ALIAS
      doc: update Kconfig options to use @option ALIAS
      doc: update reference to use :c:macro
      doc: update bluetooth to use @option ALIAS
      doc: ext: link-roles: allow non-default baseurl

Flavio Ceolin (4):
      mgmt: hawkbit: Fix resources leakage
      mbedtls: Bump to 2.16.8
      codeowners: Add myself to gdbstub
      codeowners: Add myself as additional onwer to power

Gerard Marull-Paretas (4):
      lib: gui: lvgl: add support for kscan axes swap and inversion
      boards: shields: invert kscan X axis on Arduino 2.8" TFT
      boards: shields: invert kscan X axis on Buydisplay 2.8" TFT
      lib: gui: lvgl: match kscan rotation with the display

Gerson Fernando Budke (2):
      boards: atmel: set BUILD_OUTPUT_HEX for OpenOCD boards
      boards: atmel: Add missing default configuration

Grzegorz Kostka (1):
      lib: fdtable: fix z_free_fd multiple calls fd leak

Guillaume Lager (1):
      logging: rtt: Do not retry on error in non blocking mode

Henrik Brix Andersen (3):
      samples: canbus: canopen: fix argument to CO_delete()
      doc: release: 2.4: add ARM DesignStart FPGA related release notes
      manifest: Update CANopenNode to include v1.3 SDO/LSS bug fixes

Ievgenii Meshcheriakov (2):
      shell: Make shell UART backend initialization priority configurable
      shell: Fix typo in a comment

Ioannis Glaropoulos (10):
      doc: release: v2.4.0 release notes draft for Cortex-M
      doc: release: v2.4.0 release notes draft for Cortex-A
      CODEOWNERS: remove commas in reviewers' listing
      tests: arm: interrupt: fix side effect in assertion
      tests: kernel: fatal: minor #ifdef guard fix
      arch: arm: aarch64: remove non-applicable linker section
      tests: arch: arm: rework test suite configuration
      tests: arch: arm: do not build/run test suites for _ns boards
      boards: nrf9160: fix default flash partitioning
      boards: nrf5340: fix default flash partitioning

Jakub Rzeszutko (2):
      shell: fix Tab crashing issue
      shell: add argc range in Kconfig

Jan Van Winkel (1):
      cmake: Ignore LDFLAGS and AFLAGS from environment

Jennifer Williams (1):
      docs: ref: kernel: clarify data_item structure in message queues

Jeremy LOCHE (1):
      drivers: bluetooth: hci_spi: fix init priority

Jian Kang (2):
      test: add new test cases for timer
      tests: mailbox: add new tests

Joakim Andersson (5):
      Bluetooth: controller: Select controller features from SoC capabilities
      Bluetooth: controller: Fix Kconfig dependencies for PHY options
      Bluetooth: host: Fix not setting NRPA before starting scanner
      Bluetooth: host: Ignore failure to set passive scanner address
      Bluetooth: host: Fix bug in device name shortening handling

Jukka Rissanen (24):
      doc: net: Add networking changes to 2.4 release note
      net: context: Simplify the param check when sending data
      net: context: Fix sendmsg() handling in AF_CAN socket
      modules: mbedtls: Allow to enable server name indication option
      doc: net: Add note about socket API thread safe status
      drivers: eth: Fix return value if we run out of bufs in TX
      net: tcp2: Use pointer to slist node
      net: tcp2: Use safe version of slist macro in conn search
      net: conn: Use safe slist macro when searching connection
      net: tcp2: Honor TCP retry count limit from Kconfig file
      net: socket: Wait new buffers when sending
      net: tcp2: Do not close connection if we run out of memory
      net: tcp2: Avoid double free message
      net: context: Return -ENOBUFS to caller if we run out of bufs
      net: tcp2: Make sure the pkt if not null
      net: tcp2: Re-order connection struct fields
      net: tcp2: Adjust the send window according to avail bufs
      net: tcp2: If the send window is full, do not try to send
      net: tcp2: Print context state when closing connection
      net: tcp2: Fix connection state debugging
      net: tcp2: Retrigger resend if sending window is full
      net: tcp2: Bail out if new connection cannot be created
      net: tcp2: Fix connection termination
      net: tcp2: Check that connection exists in net_tcp_put()

Krzysztof Chruscinski (7):
      drivers: timer: nrf...
Read more

Zephyr 2.4.0-rc1

05 Sep 19:53
v2.4.0-rc1
Compare
Choose a tag to compare
Zephyr 2.4.0-rc1 Pre-release
Pre-release
Aastha Grover (9):
      scripts: tests: sanitycheck: Add more testcases for Class TestSuite
      tests: sanitycheck: Testcases for load_from_file and apply_filters
      sanitylib: Fix discard_report to check self.discards dict
      sanitycheck: Testcases for report functions of TestSuite Class
      github workflow : Add github worklow for Sanitycheck testsuite
      requirements-build-test.txt: Updating mock module version
      include: Implement API's for cache flush and cache invalidate
      arch: x86: core: Add cache flush function for x86
      syscalls: Add system call for cache flush & invalidate

Abhishek Shah (15):
      drivers: pcie: remove depends on X86
      pcie: endpoint: Add public APIs for PCIe endpoint driver
      pcie: endpoint: Introduce API to achieve PCIe data transfer
      dts: bindings: Add binding for iProc PCIe EP node
      dts: arm: viper: Add DT node for iProc PCIe EP
      pcie: endpoint: Add iProc PCIe EP driver
      boards: arm: bcm958402m2_a72: Enable PCIe EP support
      pcie: endpoint: Add public API to register reset interrupt callback
      drivers: pcie: ep: iproc: Add reset interrupt handlers
      drivers: pcie: ep: iproc: Add reset callback support
      drivers: pcie: Do not enable PCIe RC module shell for endpoint
      soc: arm: viper: Add PCIe highmem OB memory in MMU table
      soc: arm: viper: Fix callee saved register corruption in el3 init
      drivers: pcie: refactor pcie directory to make RC and EP independent
      boards: arm: bcm958402m2_a72: remove CONFIG_PCIE

Adam Porter (3):
      drivers: modem: use zsock_ variants of socket API
      drivers: wifi: remove dependency on NET_SOCKETS_POSIX_NAMES
      net: sockets: remove POSIX_NAMES dependency on SOCKETS_OFFLOAD

Alberto Escolar Piedras (2):
      tests: kernel benchmark: Avoid timeout in nrf52_bsim
      native_posix: timer: Ignore nanosleep return

Aleksandr Koltsoff (1):
      cmake: sort shield list and improve indent

Alexander Falb (2):
      boards: Add support for the Serpente Board
      tests/samples: add samples for Serpente board

Alexander Kozhinov (17):
      soc: stm32: Add support for stm32h745xx SoC
      boards: Add support for NUCLEO-H745ZI-Q
      dts: arm: st: h7: add rng peripheral support
      dts: arm: st: h7: add dma peripheral support
      boards: nucleo_h745zi_q_m7: fixed pwm bug
      samples: net: sockets: big_http_download: Extend progress metrics
      drivers: pinumx: stm32: pinmux_stm32h7: added ethernet pins
      drivers: ethernet: stm32: pre-add stm32h7 support
      drivers: ethernet: stm32: add stm32h7 support
      boards: nucleo_h745zi_q: added ethernet support
      boards: arm: dts: nuleo_h745zi_q_m7
      boards: arm: dts: nuleo_h745zi_q_m4
      boards: arm: yaml: nucleo_h745zi_q_m4
      soc: arm: stm32h7: entropy generator support
      boards: arm: nucleo_h745zi_q: rng
      soc: arm: stm32h7: remove explicit full libc selection
      samples: net: sockets: civetweb

Alexandre Bourdiol (35):
      board: arm: Enable MPU for all STM32 boards supporting it
      soc: arm: st_stm32: add include of devictree.h in soc.h
      tests: lib: mem_alloc: restrict newlib config to more than 16K RAM
      net: ip: copy to wrong destination in z_vrfy_net_addr_pton()
      drivers: STM32 dualcore concurrent register access protection with HSEM
      drivers: flash: stm32wb return in case of control register locked
      boards: arm: nucleo_f767zi: ethernet restriction on cut-A
      drivers: flash: stm32wb: disable Page Erase at end of erase_page()
      STM32H7: manage Dual core boot whatever option bytes configuration
      boards: arm: nucleo_g474re: add device tree rng okay
      tests: drivers: spi: spi_loopback: add fixture spi_loopback
      tests: drivers: spi: spi_loopback: add nucleo_f429zi support
      tests: drivers: spi: spi_loopback: add nucleo_f746zg support
      tests: drivers: spi: spi_loopback: add nucleo_f103rb support
      tests: drivers: spi: spi_loopback: add stm32f3_disco support
      tests: drivers: spi: spi_loopback: add nucleo_g474re support
      tests: drivers: spi: spi_loopback: add nucleo_l4r5zi support
      tests: drivers: gpio: gpio_basic_api: add some STM32 boards overlay
      drivers: i2c: fix STM32 implicit-fallthrough warning
      drivers: entropy: stm32: RCC_HSI48_SUPPORT not always defined
      boards: arm: nucleo_h743zi: add rng support
      board: arm: nucleo_f207zg: add DAC support
      tests: drivers: dac: dac_loopback: add fixture dac_adc_loopback
      tests: drivers: pwm: pwm_api: add support of STM32 boards
      dts: arm: st: add interrupts property to rng node
      drivers: entropy: stm32 full driver rework with software fifo
      boards: arm: nucleo_g071rb enable PWM
      boards: arm: stm32f3_disco: enable PWM
      soc: arm: st_stm32: update HSEM ID from STM32WB cube update
      drivers: STM32: Rework CLK48 HSEM protection
      drivers: flash: stm32wb: rework dualcore flash operation
      boards: arm: nucleo_g474re: add watchdog support to yaml
      boards: arm: nucleo_l152re: fix openOCD issue to access bank2
      drivers: clock: stm32f7 needs power over-drive to reach 216Mhz
      tests: lib: cmsis_dsp: matrix: binary_q15 reorder test to fit 128k ram

Alexey Brodkin (1):
      tests: Exclude qemu_arc{em|hs} in some

Alexey Markevich (6):
      samples: net: google_iot_mqtt: log actual error
      samples: net: google_iot_mqtt: fix log typo
      samples: net: google_iot_mqtt: fix subscription qos initialization
      samples: net: google_iot_mqtt: use sntp_simple
      samples: net: google_iot_mqtt: remove unused definition
      samples: net: google_iot_mqtt: fix CONFIG_CLOUD_CLIENT_ID value

Anas Nashif (145):
      up_squared: disable i2c in defconfig
      up_squared: enable SMP on this board
      tests: kernel: remove ram restrictions
      tests: kernel: common: rename test boot_delay
      tests: common: skip bootdelay test on qemu_cortex_m0
      ci: add compliance checking via GH actions
      sanitycheck: capture non-ztest results
      spelling: fix typo
      tests: exclude qemu_arc_hs in lifo_usage test
      samples: remove board_shell
      shell: enable modules by default if shell is enabled
      pcie: shell: add subcommands
      test: remove TEST_SHELL
      shell: kernel: select dependencies
      tests: jwt: increase timeout for test
      boards: qemu_cortex_a53: do not run on net/bt tests
      kernel: logging: convert K_DEBUG to LOG_DBG
      kernel: cleanup header inclusion
      tests: net: remove duplicate test
      test: posix: fix identifier
      sanitycheck: reorg junit output for nicer reports
      ci: do not run sanitycheck on action changes
      actions: add automatic labeler action
      actions: action for processing stale PRs/Issues
      actions: only mark bugs as stale
      ci: do not skip BT simulator tests
      actions: mark pull requests with conflicts
      sanitycheck: set selected_plaforms when loading tests from file
      boards: waveshare_open103z: remove unused Kconfig
      actions: use one label for stale PRs and issues
      actions: disable conflict action for now
      Revert "tests: rbtree to add and modify some tastcases"
      Revert "tests: dlist to add a testcase and add some tags"
      boards: qemu_arc: disable as default test platform
      sanitycheck: fix --failed-only handling
      ci: do not run sanitycheck on linter config changes
      sanitycheck: handle qemu crashes
      sanitycheck: Use the C LibYAML parser if available
      templates: rename rfc template file
      templates: add template for hardware support
      doc: add coding guidelines
      actions: update daily version for testing
      sanitycheck: do not retry build errors with --retry-failed
      doc: make device pm APIs show in doxygen docs
      doc: replace lifo/fifo with LIFO/FIFO
      sanitycheck: capture fails correctly on qemu crashes
      doc: fix usage of :c:type
      sanitycheck: disable erroring on warnings
      x86: zefi: support arguments and make compatible with windows
      boards: up_squared: add a post build target
      actions: daily_tests: fetch all tags
      tests/samples: add tags to some tests
      sanitycheck: support only_tags for boards
      boards: qemu_x68_nommu: run only kernel/userspace tests
      sanitycheck: fix --device-testing without serial-pty
      samples: remove useless nfc sample
      scripts: add maintainer script
      doc: add documentation for tool targets
      sanitycheck: do not expect results from build_only instances
      sanitycheck: do not duplicate code in tests
      sanitycheck: remove verbose log message
      tests: remove obsolete doxygen boilerplate
      tests: fix device model tests and remove wrong doxygen grouping
      doc: group audio header using doxygen
      sanitycheck: realign schema
      sanitycheck: introduce integration testing
      samples: philosophers: enable for integration testing
      tests: cmsis_dsp: use integration keyword
      samples: hello_world: filter for integration
      samples: cpp_synchronization: filter for integration
      ci: enable sanitycheck for integration
      tests: dac: remove whitelist
      tests: benchmarks: filter for integration
      tests: tinycrypt: do not whitelist
      samples: bluetooth: cleanup prj*.conf
      drivers: arcv2_irq_unit: remove include
      power: remove unused inclusion of soc.h
      tests: device: remove whitelisting
      tests: shell: remove filter
      samples: pi: add integration support
      tests/samples: enable for integration testing
      boards: qemu_x86_coverage: limit to core tests
      doc: add documentation about --integration option
      sanitycheck: fix only_tags usage
      tests...
Read more

Zephyr v2.3.0

05 Jun 20:07
zephyr-v2.3.0
Compare
Choose a tag to compare

We are pleased to announce the release of Zephyr RTOS version 2.3.0.

Major enhancements with this release include:

  • A new Zephyr CMake package has been introduced, reducing the need for
    environment variables
  • A new Devicetree API, based on hierarchical macros, has been introduced. This
    new API allows the C code to access virtually all nodes and properties in a
    clean, organized fashion
  • The kernel timeout API has been overhauled to be flexible and configurable,
    with future support for features like 64-bit and absolute timeouts in mind
  • A new k_heap/sys_heap heap allocator has been introduced, with much better
    performance than the existing k_mem_pool/sys_mem_pool
  • Zephyr now integrates with the TF-M (Trusted Firmware M) PSA-compliant
    framework
  • The Bluetooth Low Energy Host now supports LE Advertising Extensions
  • The CMSIS-DSP library is now included and integrated

The following sections provide detailed lists of changes by component.

Security Vulnerability Related

The following CVEs are addressed by this release:

  • CVE-2020-10022: UpdateHub Module Copies a Variable-Sized Hash String
    into a fixed-size array.
  • CVE-2020-10059: UpdateHub Module Explicitly Disables TLS
    Verification
  • CVE-2020-10061: Improper handling of the full-buffer case in the
    Zephyr Bluetooth implementation can result in memory corruption.
  • CVE-2020-10062: Packet length decoding error in MQTT
  • CVE-2020-10063: Remote Denial of Service in CoAP Option Parsing Due
    To Integer Overflow
  • CVE-2020-10068: In the Zephyr project Bluetooth subsystem, certain
    duplicate and back-to-back packets can cause incorrect behavior,
    resulting in a denial of service.
  • CVE-2020-10069: An unchecked parameter in bluetooth data can result
    in an assertion failure, or division by zero, resulting in a denial
    of service attack.
  • CVE-2020-10070: MQTT buffer overflow on receive buffer
  • CVE-2020-10071: Insufficient publish message length validation in MQTT

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.

A single high-priority bug is currently open:

  • #23364 - Bluetooth: bt_recv deadlock on supervision timeout with
    pending GATT Write Commands

API Changes

  • HWINFO

    • The identifier data structure for hwinfo drivers is clarified. Drivers are
      responsible for ensuring that the identifier data structure is a sequence
      of bytes. The returned ID value is not supposed to be interpreted based on
      vendor-specific assumptions of byte order and should express the identifier
      as a raw byte sequence.
      The changes have an impact on users that use the hwinfo API to identify
      their devices.
      The sam0 driver byte swaps each 32 bit word of the 128 bit identifier to
      big endian.
      The nordic driver byte swaps the entire 64 bit word to big endian.
  • I2C

    • Added a new API for recovering an I2C bus from situations where the I2C
      master and one or more I2C slaves are out of synchronization (e.g. if the
      I2C master was reset in the middle of an I2C transaction or if a noise
      pulse was induced on the SCL line).

Deprecated in this release

  • Kernel

    • k_uptime_delta_32(), use k_uptime_delta()

    • Timeout values

      • All timeout values are now encapsulated k_timeout_t opaque structure when
        passing them to the kernel. If you want to revert to the previous s32_t
        type for the timeout parameter, please enable
        :option:CONFIG_LEGACY_TIMEOUT_API
  • Bluetooth

    • BT_LE_SCAN_FILTER_DUPLICATE, use BT_LE_SCAN_OPT_FILTER_DUPLICATE instead
    • BT_LE_SCAN_FILTER_WHITELIST, use BT_LE_SCAN_OPT_FILTER_WHITELIST instead
    • bt_le_scan_param::filter_dup, use bt_le_scan_param::options instead
    • bt_conn_create_le(), use bt_conn_le_create() instead
    • bt_conn_create_auto_le(), use bt_conn_le_create_auto() instead
    • bt_conn_create_slave_le(), use bt_le_adv_start() instead with
      bt_le_adv_param::peer set to the remote peers address.
    • BT_LE_ADV_* macros, use BT_GAP_ADV_* enums instead
  • Boards

    • nrf51_pca10028 has been renamed to nrf51dk_nrf51422
    • nrf51_pca10031 has been renamed to nrf51dongle_nrf51422
    • nrf52810_pca10040 has been renamed to nrf52dk_nrf52810
    • nrf52_pca10040 has been renamed to nrf52dk_nrf52832
    • nrf52833_pca10100 has been renamed to nrf52833dk_nrf52833
    • nrf52811_pca10056 has been renamed to nrf52840dk_nrf52811
    • nrf52840_pca10056 has been renamed to nrf52840dk_nrf52840
    • nrf52840_pca10059 has been renamed to nrf52840dongle_nrf52840
    • nrf9160_pca10090 has been renamed to nrf9160dk_nrf9160
    • nrf52840_pca10090 has been renamed to nrf9160dk_nrf52840
    • nrf52_pca20020 has been renamed to thingy52_nrf52832
    • nrf5340_dk_nrf5340 has been renamed to nrf5340pdk_nrf5340
    • efr32_slwstk6061a has been renamed to efr32_radio_brd4250b
  • Devicetree

    • The C macros generated from the devicetree in previous releases are now
      deprecated in favor of a new <devicetree.h> API.
    • See :ref:dt-from-c for a high-level guide to the new API, and
      :ref:devicetree_api for an API reference.
    • Use of the legacy macros now requires explicitly enabling
      :option:CONFIG_LEGACY_DEVICETREE_MACROS. See :ref:dt-legacy-macros for
      more information, including a link to a migration guide to the new API.
  • Other

    • MACRO_MAP has been deprecated. Use FOR_EACH instead.
    • BUILD_ASSERT_MSG has been deprecated. Use BUILD_ASSERT instead.

Removed APIs in this release

  • The INLINE macro in util.h has been removed.
  • STACK_ANALYZE, stack_analyze and stack_unused_space_get have been
    removed.

Stable API changes in this release

  • Bluetooth Mesh

    • The net_idx parameter has been removed from the Health Client model
      APIs since it can be derived (by the stack) from the app_idx parameter
  • Networking

    • The NET_DEVICE_INIT(), NET_DEVICE_INIT_INSTANCE(), NET_DEVICE_OFFLOAD_INIT()
      and ETH_NET_DEVICE_INIT() macros changed and take a device power management
      function pointer parameter. If networking PM is not implemented for the
      specific network device, the device_pm_control_nop value can be used.
  • Video

    • The video_dequeue() API call now takes a k_timeout_t for the timeout
      parameter. This reverts to s32_t if CONFIG_LEGACY_TIMEOUT_API is enabled.
  • Floating Point Services

    • FLOAT and FP_SHARING Kconfig options have been renamed to FPU and FPU_SHARING,
      respectively.

Kernel

  • A new general purpose memory allocator, sys_heap/k_heap, has been added
    to Zephyr with more conventional API/behavior, better space
    efficiency and higher performance than the pre-existing mem_pool.
    The older mem_pool APIs are, by default, wrappers around this new
    heap backend and will be deprecated in an upcoming release. The
    original implementation remains available for this release via
    disabling CONFIG_MEM_POOL_HEAP_BACKEND.
  • The timeout arguments to all kernel calls are now a "k_timeout_t"
    type instead of a 32 bit millisecond count. These can be
    initialized in arbitrary time units (ns/us/ms, ticks), be
    interpreted relative to either current time or system start, and be
    expressed in 64 bit quantities. This involves a minor change to the
    API, so the original API is still available in a completely
    source-compatible way via CONFIG_LEGACY_TIMEOUT_API.
  • Simplified dummy thread implementation and properly name idle threads
  • Centralized new thread priority check
  • Refactored device structures and introduced struct init_entry which is
    a generic init end-point. SYS_INIT() generates only a struct init_entry via
    calling INIT_ENTRY_DEFINE(). Also removed struct deviceconfig leaving
    struct device to own everything now.

Architectures

  • ARC:

    • Changed to automatic generation of privilege stack for ARC MPU V2 to
      avoid the potential waste of memory When USERSPACE is configured
    • Enhanced runtime programming for the MPU v3 by making the gap-filling
      of kernel memory a user-configurable feature
    • Refactored the thread switch code in epilogue of irq and exception
    • Refactored the assembly codes for better maintenance
    • Fixed the behavior of ARC timer driver
    • Fixed the behavior of ARC SMP
    • Fixed the wrong configurations of ARC boards in Kconfig and DTS
  • ARM:

    • CMSIS has been moved out of the main tree and now resides in its
      own standalone module repository
    • Updated CMSIS version to 5.7.0
    • Added CMSIS-DSP library integration
    • Added semihosting console support
    • Cleanups and improvements to the Cortex-M exception vector table
    • Fixed the behavior of Cortex-M spurious IRQ handler
    • Fixed parsing of Cortex-M MemManage Stacking Errors
    • Fixed the arch_cpu_idle() implementation for Cortex-M and Cortex-R
    • Renamed Cortex-R architecture port to cortex_a_r in preparation for the
      AArch32 Cortex-A architecture port
    • Added processor exception handling and reporting framework for Cortex-R
    • Added nested interrupt support on AArch32 Cortex-R and AArch64 Cortex-A
    • Refactored Cortex-R interrupt system to remove fake multi-level interrupt
      controller abstraction scheme
  • POSIX:

    • Added support for building on ARM hosts
  • RISC-V:

    • Added support for hard floating point for RISC-V
    • Added march and mabi options to Kconfig
    • Fixed compilation warning for platforms without PLIC
  • x86:

    • Instrumented code for timing information
    • Added ability for SoC to add MMU regions
    • x86 FPU sharing symbols renam...
Read more