Blog

Back to News

Announcements

In The News

Events

What’s new in Zephyr, 28 June 2019

By Blog

Written by Marti Bolivar, Zephyr Project contributor and Senior SW Engineer at Nordic Semiconductor

This is the 28 June 2019 newsletter tracking the latest Zephyr development merged into the mainline tree on GitHub.

Highlights

This newsletter covers the following inclusive commit range:

  • 29b55f86 net: shell: Indentation fixes for ping command, merged 23 May 2019
  • 70aa3830 net: sntp: Ignore return value from close, merged 27 June 2019

This is roughly the second month of the merge window following Zephyr v1.14 LTS. The next version of Zephyr will be version 2.0. Fancy.

The 2.0 merge window is set to close on August 9. Any new features ought to be merged (or at least posted and reviewed) before then if they’re intended for 2.0. Meanwhile, development continues apace.

A few efforts of significant interest (at least to the author) are:

  • a new graphical configuration tool
  • ongoing 64-bit support patches
  • the continued extraction of third-party code into separate Git repositories
  • big device tree changes

Graphical Interface for Kconfig

The build system now sports a guiconfig target, which can be run using e.g. west build -t guiconfig.

Here’s what it looks like:

guiconfig window

 

guiconfig example window

The 64-bit Project

Zephyr is currently a 32-bit only operating system. In order to support RISCV64, a wide-ranging effort to upgrade Zephyr’s kernel (and associated tests, samples, etc.) for 64-bit support is ongoing.

Maybe we’ll see RISCV128 support someday? One can dream.

Modules for Modular Modularity

With the introduction of the west tool in v1.14, Zephyr could theoretically be distributed as multiple Git repositories controlled by a manifest file, but this mechanism was largely left unused for that release.

The project is now proceeding in earnest, with several vendor HALs and other third party libraries formerly found in zephyr/ext being split into their own repositories. So far, these are repositories are all still hosted under the zephyrproject-rtos GitHub organization, so that module.yml, Kconfig, and CMakeLists.txt files can be maintained by the project. (It’s also not a bad idea for making sure the repositories stick around as long as zephyr is hosted on GitHub.)

Developers are reminded to run west update after pulling the zephyr repository in order to get any new modules added since the last time they updated.

Device Tree Changes

A variety of significant changes were merged affecting Zephyr’s use of Device Tree.

C preprocessor defines generated by device tree of the form DT_<COMPATIBLE>_<INSTANCE>_<PROPERTY> have been renamed to DT_INST_<INSTANCE>_<COMPATIBLE>_<PROPERTY>. In-tree users were updated. The old defines are now deprecated; users have an unknown amount of time to upgrade before the old defines are gone. The DT_.*_GPIO_* defines were also renamed to DT_.*_GPIOS_*.

The stringlist type was renamed to string-array to keep up with changes in upstream dtschema. The basic compatible property now has type string-array (instead of string).

There is now a concept of a “sub-node” introduced. This covers use-cases like gpio-keys, gpio-leds, pwm-leds, and other situations where the binding describes nodes lower down in the tree that contain the useful information needed by a driver. See gpio-keys.yaml and friends for examples.

The use-prop-name option for generation was removed.

It is now possible to mark aliases as deprecated.

The "ok" status was changed to "okay" for all in-tree users, again moving closer to upstream Linux behavior, but out of tree code which uses the older string should still work.

Other Interesting Happenings

As usual, a full list of merged patches broken down by area follows at the end of this post.

Architecture-specific

On x86:

  • The GRUB multiboot boot information structure is now preserved if available and CONFIG_X86_MULTIBOOT_INFO is enabled, and a multiboot-aware framebuffer driver was added.
  • Various legacy Kconfig options were removed; out of tree applications may need to remove them from their prj.conf files to avoid now-spurious warnings from kconfiglib about undefined symbols.
  • Prep work is being done for x64 support, but support for this processor mode is not yet finished.

On Arm:

  • The NXP ke1xf SoC port grew several features, including I2C, SPI, ADC, and CAN drivers.
  • Initial LPC5500 SoC support was added, with GPIO and USART support.
  • Numerous files and Kconfig options specific to STM32 were renamed as part of a general cleanup.

Zephyr’s floating point support patches for 2.0 are all merged; the new features for this release are now considered done. Support is currently x86 and Arm only.

The native_posix target now supports mapping device flash to the host file system via FUSE.

Support for various peripherals was added at SoC level; see the patch list below for details.

Bluetooth

The top-level <bluetooth/bluetooth.h> API has been extended to allow support for pairing using out-of-band data during the authentication stage. The initial customer is peripheral side support; see CONFIG_BT_OOB_DATA_FIXED.

The <bluetooth/gatt.h> API:

  • was incompatibly extended with support for user data pointers which will be passed to bt_gatt_complete_func_t, and
  • was reworked to support notifications by UUID and multiple simultaneous notifications.

The <bluetooth/l2cap.h> API added sent and status callbacks to struct bt_l2cap_chan_ops. One initial customer is the shell, as described below.

User-defined protocols are now supported. See CONFIG_BT_CTLR_USER_EXT and related code.

New shell features:

  • The new sent and status callbacks are used to print output when packets finish transmitting or on channel status changes.
  • The gatt show-db command now takes an optional second argument, which can be used to limit the number of matches that are printed.
  • A new gatt notify command can be used to send notifications about attribute value changes.
  • A new gatt discover command can be used to discover attributes; like other existing discover-foo commands, it can take a UUID, as well as start and end handles.

Development on the new “split” link layer / controller:

  • Random addresses are now supported for devices with hardware-based address resolution acceleration, another milestone on the walk to feature parity with the existing default controller.
  • A new “ticker” (or scheduler) was briefly introduced, but was reverted due to regressions related to missed advertising events.

Mesh applications can now retrieve RSSI values via mesh operation callbacks.

Boards

New boards:

Support was removed for:

  • x86_jailhouse “board” for booting Zephyr on the Jailhouse hypervisor
  • quark_d2000_crb

Various boards gained new software support for peripherals, MCUboot partitions, etc; see the patch list below for details.

Build System

Support for Zephyr SDK version 0.9.5 was removed. The new recommended version is 0.10.1.

The effort to add toolchain-agnostic “intent” macros continues with the introduction of:

  • toolchain_cc_freestanding()
  • toolchain_cc_imacros()
  • toolchain_cc_nocommon()
  • toolchain_cc_cstd_flag()
  • toolchain_ld_force_undefined_symbols
  • toolchain_ld_link_elf()

In particular, the above _ld_ additions complete the linker abstraction effort.

On targets with multi-stage links, intermediate files such as the map file for zephyr_prebuilt.elf are now preserved (as zephyr_prebuilt.map, etc.) instead of being overwritten with the results of later stages. This aids debugging and improves general visibility of these build steps.

The linker scripts now support systems without flash. In this case, “ROM” regions are stored in RAM.

All modules are now built in a modules/ subdirectory of the build directory.

The previously unnamed Kconfig choice which determines the target architecture was given a name. This makes it possible to define out of tree architecture names.

Continuous Integration

A “pseudo-board” of sorts named qemu_x86_coverage was added. It exists for CI builds with code coverage measurement enabled. Previously, this area wasn’t part of CI and thus broke regularly.

The zephyrprojectrtos/ci Docker container used for CI was upgraded to Zephyr SDK 0.10.1 in version 0.7, which is now the active version.

Drivers and Device Tree

The clock control API now has clock_control_async_on() and clock_control_get_status(), for asynchronous clock management.

The USB API was substantially reworked. In particular, it has a new API for managing descriptors, and uses endpoint indexes instead of addresses. See the individual commits for more details.

The counter API now has a structure, struct counter_top_cfg, for setting up the top value of a counter. This is used in an incompatible extension to counter_set_top_value(). In-tree users were converted. The purpose of this change is to allow counter drivers as a system clock source — a long-standing effort — on hardware without alarms.

The ADC API now has a calibrate boolean in the struct adc_sequence structure used to configure a sequence of conversions. The nRF SAADC driver supports this value.

New bindings and drivers:

  • Skyworks SKY13351 switch bindings, used on Particle boards for antenna selection.
  • RISC-V CPU interrupt controller bindings
  • BME680 environmental sensors
  • TI CC13xx / C26xx SPI drivers
  • Pinmux driver for Microchip SoCs
  • Counter support for Atmel SAM0
  • Flash driver for the native_posix target
  • hwinfo support for ESP32
  • ili9340 display driver support for the Seeed 2.8″ TFT Touch Shield v2.0
  • NXP ADC12, FlexCAN, and SCG drivers
  • SiLabs Gecko counter driver

The console driver now supports the common logging Kconfig options. In particular, the log level is configurable with CONFIG_UART_CONSOLE_LOG_LEVEL.

The native_posix target now has device tree support. A UART and flash controller are available.

The sensor API has a SENSOR_CHAN_GAS_RES channel for gas sensor resistance.

The apds9960 driver was substantially extended. It’s now possible to disable the ambient light sensor, configure the ALS and proximity gain and proximity pulse length, and configure the proximity LED’s boost current.

Firmware Update

A follow-up Zephyr commit was merged affecting users of MCUboot with watchdog enabled, keeping up with the bootloader closing a hole which could corrupt the images if the watchdog resets while the bootloader is running.

Kernel

A new k_float_disable() system call was added, which instructs the kernel to skip floating point register handling during context switching. Applications which no longer require use of floating point registers can use it to dynamically decrease context switch overhead.

Some important bug fixes to the slab allocator and memory pool code were merged.

Threads may now call k_sleep(K_FOREVER). This is useful for threads which are explicitly woken from sleep.

The boot banner output has changed: it now distinguishes the build version obtained from Git from the kernel version string. See BUILD_VERSION.

Libraries

Support for the UpdateHub DFU service was added.

The POSIX APIs now support gethostname().

Logging

A new CONFIG_LOG_DETECT_MISSED_STRDUP (which defaults to y) was added. This option will print a message whenever the variable argument corresponding to a %s in a logging format string is neither read-only nor allocated from the pool of memory used to hold variable string data while a log message is queued.

As always, variable strings should be logged with LOG_XXX("%s", log_strdup(my_string)) — this change is meant to help catch cases where that is not happening.

There is a new os logging module, which has replaced some uses of kernel.

Miscellaneous

The shell now supports Control-N and Control-P keys to move in history. Said history was refactored to use a pool of memory for previously entered commands; this means that rather than fixing the size of history as a maximum number of commands with a fixed size, the history will store as many bytes of commands as can fit in the pool, decreasing wasted RAM. It also supports a select command which can help save typing and is similar to a command by the same name in the previous incarnation of this subsystem.

Networking

An artificial restriction on the number of instances of each LWM2M object was lifted. The number is now arbitrary.

The getaddrinfo() implementation skips DNS resolution for numeric IP addresses. It also now queries for both IPv4 and IPv6 addresses if the address family it is given is AF_UNSPEC.

The fcntl() implementation no longer is guarded by a TI-specific define; it is available whenever supported.

The precision time protocol received increased user-mode support.

A new mqtt_readall_publish_payload() API was added.

Samples

New samples:

  • samples/subsys/shell/fs: file system shell
  • samples/sensor/ti_hdc: temperature and humidity with the ti_hdc driver
  • samples/sensor/bme680: environmental sensor

The ili9340 sample now supports the RGB565 pixel format, and got two new Arduino shield configurations.

Storage

FAT filesystems can now be unmounted.

Mount point names can be read with fs_readmount().

Tools and Scripts

The west flash (and debug, etc.) commands can now guess the build directory. This can be useful if the build.dir-fmt configuration option is used. Users must opt in to guessing by running west config build.guess-dir runners.

Individual Changes

Patches by area (829 patches total):

  • Arches: 81
  • Bluetooth: 89
  • Boards: 60
  • Build: 35
  • Continuous Integration: 8
  • Cryptography: 1
  • Debugging: 1
  • Device Tree: 47
  • Documentation: 45
  • Drivers: 133
  • External: 15
  • Firmware Update: 2
  • Kernel: 33
  • Libraries: 17
  • Logging: 10
  • Maintainers: 12
  • Miscellaneous: 22
  • Modules: 18
  • Networking: 40
  • Power Management: 1
  • Samples: 38
  • Scripts: 44
  • Storage: 9
  • Testing: 69

Arches (81):

  • efa2b23f soc: nxp: ke1xf: add I2C support
  • bddb343b stm32: Remove redundant I2C variant Kconfig symbols definitions
  • 7f260091 arch: arm: minor clean-up in interrupt stack size derivation
  • 1ba8c340 arch: arm: add z_ prefix to _PlatformInit
  • 8d6346ef soc: arm: nordic_nrf: force platform-specific initialization
  • 95067947 soc: microchip_mec: mec1501 Add pinmux definitions
  • bcb9141b native_posix: Run in real time by default with host BT
  • f032729c arch: arm: core: tz: Linking of secure entry functions into NS firmware
  • 6b46d389 soc: sam0: add I2C to dts_fixup.h
  • 35ecdf8a soc: stm32: Remove unused soc_register header file
  • 45a147c2 arch: arm: mpu: move internal API inside arch/arm/cortex_m/mpu
  • 18e80aeb arch: arm: mpu: remove arm_core_mpu_enable/disable internal API
  • 73a96c00 soc/riscv32: Make clock init code common to SoC
  • e8ac4956 soc: cc13x2_cc26x2: support setting CCFG values via Kconfig
  • 69c144af soc: nxp: ke1xf: add SPI support
  • c0502d96 soc/apollo_lake: boards/up_squared: move UART fixups to SoC
  • 546cf75a soc/x86/apollo_lake: remove legacy PCI support
  • 76d9d780 x86: remove unused and x86 only latency benchmark
  • e6af0f8c arch/*: Add z_arch_irq_unlocked() predicate and test
  • b3114efc arch: arm: userspace: don’t subtract MPU guard from top of stack
  • e90d1847 soc: added LPC5500 family
  • b01568c2 include: arch: move bits_portable.h to arch/common
  • d647751b include: arch: move addr_types to common location
  • b0fb9ec6 include: arch: remove empty nios2 asm.h
  • 0227cdae include: arch: rename xtensa_irq.h to irq.h
  • f7810d4a include: arch: arc: Minor punctuation fix
  • 55ff4ba5 x86: add qemu_x86_coverage target
  • a1a3a4fc arch/x86: add support for Multiboot boot information structure
  • 4c63e29a arch/x86: drivers/display: add framebuffer driver w/ multiboot support
  • d0d752ab soc/nsim: Minor clean-up
  • 40dbec4c ARC: Mention ARC EM family instead of EM4 template
  • ca38f0a2 soc: nxp: ke1xf: add ADC12 support
  • 6aedb6ff arch/x86: disable i8259 in crt0.S
  • 0e166fa2 arch/x86: move MSR definitions to include/arch/x86/msr.h
  • ba516e8e arch/x86: do not redefine MSR regs in crt0.S
  • 0fe4e1b3 arch/x86: x2APIC support is not specific to jailhouse
  • 53b370a7 arch/x86: add x2APIC-aware accessors for local APIC access
  • a90c0007 native_posix: Added support to access flash via FUSE
  • 1f99253b soc: intel_s1000: add dts fixup for low power sram
  • 35c4f53a soc: intel_s1000: define lpsram memory for linker
  • 876deb42 soc: intel_s1000: add lpsram in linker script
  • d2c724f4 arch: arm: fix start of MPU guard in stack-fail check (no user mode)
  • a2029eb5 arch: restrict FLOAT and FP_SHARING for x86 and Arm
  • d840d1cb arch: implement arch-specific float disable routines
  • ac2b8eee soc: nxp: ke1xf: add DTS SPI definitions
  • 15223dd9 arch/x86/Kconfig: remove CONFIG_IA32_LEGACY_IO_PORTS
  • c2c85a2a arch/x86/Kconfig: remove CONFIG_ISA_IA32
  • 8013277c arch/x86/Kconfig: remove CONFIG_CMOV
  • ae7ce079 soc/arm/st_stm32: Replace STM32 specific core selection option
  • 191b3092 soc: stm32: STM32L0: Remove useless package digit
  • dbad99ec soc: stm32: STM32L4: Remove useless package digit
  • b20f288a soc: stm32: STM32WB: Remove useless package digit
  • d2b33a48 arch/x86: split Kconfig files by sub-architecture
  • 8f14b2ed arch/x86: split CMakeLists.txt into subarch-specific files
  • 1444ee97 arch/x86: reorganize core source files
  • 08b08151 soc: stm32: Remove package digit for STM32L496XG
  • dfca5ab8 soc: stm32: Add STM32L496XE support
  • 0296938c arch: common: gen_isr_tables table size check
  • 1a514a45 soc: stm32: STM32F2: Remove useless package digit
  • a54de317 soc: stm32: STM32F4: Remove useless package digit
  • e6a4839c soc: stm32: STM32F7: Remove useless package digit
  • 6cbc0e0b arch: common: nocache: fix linker section definition
  • 9f857c3b soc: stm32f3: Delete obsolete FLASH_PAGE_SIZE Kconfig symbol
  • 01b57293 arch/x86: remove CR4_PAE_DISABLE mask
  • 2835c229 arch/x86: used fixed initial EFLAGS on thread creation
  • 4bdbd879 arch/x86: remove old PRINTK() debugging macro
  • ef736f77 arch/x86: relocate and rename SYS_X86_RST_* constants
  • e0db3944 arch: arm: re-organize thread stack macro defines in arch.h
  • 518bfa39 arch: arm: introduce macro to describe the privilege stack alignment
  • f15c12d4 arch: arm: expose start/end limits of the thread priv stack section
  • 639eb767 arch: arm: make priv stack guard programming similar to normal guard
  • b5e3be9e soc: arm: nxp: ke1xf: enable MCUX SCG clock controller driver
  • 52cfe30d soc: nxp: ke1xf: add CAN support
  • 57b46bbc soc/x86/intel_quark: remove support for Quark D2000 SoC
  • a506aa3d arch/x86: remove CONFIG_X86_FIXED_IRQ_MAPPING support
  • 27fbe347 soc: nsim: nsim em targets are EM4_FPUDA
  • 54b229fc soc: arc: optmize and bug fix the compile options
  • 94cb13ff arc: logging: fix logging expression
  • 14e31ba4 soc: nxp: k6x: Add CAN support
  • 06a37357 x86_64: minimally preparing for enabling newlib

Bluetooth (89):

  • c5c87c38 Revert “Bluetooth: controller: Disable controller privacy feature”
  • b928cef6 Bluetooth: controller: split: Port h/w privacy feature
  • 65b3f17a Bluetooth: controller: Fix initialization of rl_idx and rpa_gen
  • 6db47769 Bluetooth: controller: Fix pdu being overwritten while in use
  • cecd7f8d Bluetooth: controller: Copy the connect_ind into node_rx
  • 9e96df39 Bluetooth: controller: Fix compilation without broadcaster or observer
  • 34758e83 Bluetooth: controller: Fix rx_ftr and extra overlapping memory
  • edea2f08 Bluetooth: extending API for OOB pairing
  • e4409d5d Bluetooth: smp: adding LE SC OOB support for peripheral side
  • 1c33d90f Bluetooth: controller: split: Refactor if defines in lll_adv.c
  • 67de7ec8 Bluetooth: controller: split: Refactor if defines in lll_scan.c
  • 8de64fcb Bluetooth: controller: split: Fix shell app regression
  • a3bea887 Bluetooth: L2CAP: Move fixed channels to its own section in ROM
  • b65fe627 Bluetooth: Add possibility to pass a user_data to conn_tx_cb_t
  • d8f20fe1 Bluetooth: L2CAP: Add sent callback
  • 74135b33 Bluetooth: shell: Add sent callback to L2CAP ops
  • 270e8342 Bluetooth: L2CAP: Move Kconfig option to its own it own file
  • c904a45d Bluetooth: L2CAP: Add callback to notify status
  • f8f6e7e1 Bluetooth: shell: Print L2CAP channel status
  • c8be3e81 Bluetooth: host: Fix bt_keys_get_addr()
  • 8844b7f5 Bluetooth: controller: Enable use of user defined protocols
  • eb73a32b Bluetooth: controller: Moved advanced settings in Kconfig
  • 1d367347 Bluetooth: gatt: Reuse existing handles from a previously added service
  • a5c07aa7 Bluetooth: GATT: Add bt_gatt_foreach_attr_type
  • e6ef5396 Bluetooth: GATT: Make use of bt_gatt_foreach_attr_type on bt_gatt_notify
  • 9bf61dac Bluetooth: shell: Make use of bt_gatt_foreach_attr_type
  • 648a53d5 Bluetooth: GATT: Add support to notify by UUID
  • 8a7615f4 Bluetooth: conn: Defer bt_conn_tx callback to system wq
  • 36249723 Bluetooth: GATT: Disable flow control if running with POSIX_ARCH
  • dcf253a1 Bluetooth: GATT: Document the context in which callbacks are run
  • 93dfa640 Bluetooth: Shell: Fix having gatt unregister twice
  • 2692f2e6 Bluetooth: Shell: Add gatt notify command
  • a2c84ecf Bluetooth: Fix building of broadcaster or observer only
  • 2699d05e Bluetooth: Fix BT_ATT_ENFORCE_FLOW
  • 82497eca Bluetooth: Mesh: Fix missing implementation of Proxy SAR timeout
  • e182d75e Bluetooth: host: Fix gatt indicate when conn is NULL
  • d244ee87 Bluetooth: shell: Fix disconnect command argument count
  • 79cb6157 Bluetooth: controller: split: Port Enc setup to be queueable
  • aec04a02 Bluetooth: GATT: Fix using invalid handle
  • 912e117e Bluetooth: Controller: Test for user extensions
  • b11a0d35 Bluetooth: controller: split: Add internal ull_update_mark func
  • 23a6de5d Bluetooth: controller: split: Port slave conn update assert fix
  • 31695565 Bluetooth: controller: split: Fix tx_ack mfifo count
  • 8ba5b73e Bluetooth: GATT: Fix assuming writes to CCC will always contain 2 bytes
  • 3cf304fd Bluetooth: controller: split: Add ULL/LLL architecture assert checks
  • 5c6e09b1 Bluetooth: Mesh: LPN: Clear sent_req on failure
  • f6665c81 Bluetooth: gatt: Fix infinite read_by_uuid procedure
  • 4866fa9e Bluetooth: Make RSSI value available to mesh applications
  • 1c84d7c5 Bluetooth: Change from bitfields to normal types
  • e8d9609c Bluetooth: GATT: Fix bt_gatt_foreach_attr_type
  • ada05eaa Bluetooth: shell: Add number of matches to gatt show-db
  • f5d2d997 Bluetooth: controller: Fix scan request when advertising directed
  • 8a92818c bluetooth: controller: Revised ticker for improved conflict resolution
  • e61c5b36 Bluetooth: L2CAP: Fix inverting of SCID and DCID on disconnect
  • dd3e8241 Bluetooth: controller: split: Port random slave event backoff
  • 802718a7 Bluetooth: controller: BT_CTLR_USER_EXT depends on BT_LL_SW_SPLIT
  • ec89ae6f Bluetooth: ATT: Queue buffers on bt_att_send
  • a788ce23 Bluetooth: ATT: Fix unbalanced use of k_sem_give
  • 4396dc9c Bluetooth: Simplify bt_gatt_notify_cb() API
  • db7b9a98 Bluetooth: Make it safe to allocate buffers from TX callback
  • 3e56c2cf Bluetooth: controller: split: Fix buffer leak on disconnect
  • b34db7fb bluetooth: controller: Reverted revised ticker pending redesign
  • 17cd1966 Bluetooth: Increase BT_BUF_USER_DATA_MIN to 8
  • a16d5131 Bluetooth: Remove unnecessary HCI command data array
  • 72e80104 Bluetooth: Remove unused bt_hci_get_cmd_opcode() function
  • 4e89d294 Bluetooth: Fix expiring RPA when different local identities are used
  • 14537fee bluetooth: controller: Moved ull_entropy_get to LLL
  • eb8abda6 Bluetooth: GATT: Fix bt_gatt_discovery with BT_GATT_DISCOVER_DESCRIPTOR
  • 3408bfe2 Bluetooth: shell: gatt: Add discover command
  • 5846a36e Bluetooth: hci_prop_evt: Don’t set NO_QEMU_SERIAL_BT_SERVER
  • 72b05f3e Bluetooth: tests: Add tests for UUID APIs
  • 2dc2d9cf Bluetooth: tests: Add tests for L2CAP
  • 4e6e2e3e Bluetooth: tests: Add tests for GATT
  • 4857cb85 Bluetooth: Mesh: Fix segmented message RPL behavior
  • 587c35fa Bluetooth: gatt: avoid assumptions about characteristic handles
  • 42d33598 Bluetooth: central_hr: use new API to get value handle
  • 3b3bbc1e Bluetooth: hci_uart: Use DT for the hci_uart UART
  • d4083b66 Bluetooth: hci_uart: Assert if device is NULL
  • 46ea1df2 Bluetooth: Fix not using log_strdup() for bt_uuid_str()
  • 4fe004ad Bluetooth: controller: Fix handling zero length L2CAP start frame
  • 8de784a0 Bluetooth: Mesh: Fix missing protocol error timeout
  • d39fbf5e Bluetooth: Mesh: Fix Public Key mismatch error handling
  • 8d9a65c2 Bluetooth: Mesh: Rename reset_link() to reset_adv_link()
  • 60f47c2d Bluetooth: SMP: Make public key handling more robust
  • d6c34c46 Bluetooth: Fix public key callback management
  • 10274718 Bluetooth: Mesh: Generate new public key for each provisioning session
  • c4e22510 Bluetooth: Mesh: Fix rejecting invalid remote public key
  • d57a7b51 Bluetooth: Mesh: Fix provisioning send error handling
  • a438e714 Bluetooth: controller: Add PA/LNA support on NRF_P1 GPIO pins

Boards (60):

  • 4770b1eb boards: arm: twr_ke18f: add I2C support
  • 8feaa27c boards: disco_l475_iot1: create .dtsi connector file
  • b925e4c0 boards: rv32m1_vega: add Arduino header information
  • b9cf58d9 boards: cc26x2r1_launchxl: enable support for SPI
  • d82febd2 boards: cc1352r1_launchxl: enable support for SPI
  • 2099658d boards/arm/stm32: fix USB pinmux
  • bce16753 boards: mec15xxevb_assy6853: Use the pinmux api
  • 2e2a2d2d boards: stm32f7: Remove DTCM from sram0
  • 58decac9 boards: twr_ke18f: list hwinfo as supported feature
  • 951a82d0 board: nucleo_f429zi: add partitions to support mcuboot
  • eb97fea7 boards: nucleo_wb55rg: configure LPUART
  • d714f640 boards: intel_s1000_crb: Host interface config
  • 8075de7b boards: intel_s1000_crb: Image download scripts
  • 925183cb boards/arm/olimex_stm32_e407: enable USB
  • f27c8c00 96b_nitrogen: Increase size of boot partition.
  • 6fa058c9 boards: nrf52840_papyr: support nrfjprog flash runner
  • be4c6ddd boards: arm: particle_*: enable PCB antenna on startup
  • 46d3e86e boards: rv32m1_vega_ri5cy: set shell UART in DTS
  • 8b402602 boards/riscv32: Add support for the HiFive1 Rev B
  • 6cf806ac boards: cc1352r1_launchxl / cc26x2r1_launchxl: enable ROM bootloader
  • 89d81ab0 boards/hifive1: Add copyright and license to dts
  • 0382f08f boards: arm: twr_ke18f: add SPI support
  • b1558bba boards: frdm_k64f: button_1 has no callback when button is released
  • c5aa535c boards/up_squared: soc/apollo_lake: devicetree default to status=”ok”
  • 2b01e060 boards/up_squared: soc/apollo_lake: enable UARTs per board, not SoC
  • 0fcc4849 boards/up_squared: soc/apollo_lake: I2C driver selection at SoC
  • d3601f0d boards: nucleo_wb55rg: Configure HCI driver
  • 25669812 boards: nucleo_wb55rg: Configure flash partitions
  • 219fa3c1 boards: twr_ke18f: configure SPI CS pins as GPIO if not used for SPI
  • 34b05164 boards: riscv32: rv32m1_vega: enable MCUboot for ri5cy core
  • d403cac1 boards: lpcxpresso55s69 initalization
  • 69c01d11 boards/x86/gpmrb: add Gordon Peak MRB board
  • 57728ffb boards/x86: scripts: build_grub.sh to use grub-2.04-rc1-17-g8e8723a6b
  • bceaed67 simulation: ARC EM in nSIM to use nsim_em.props
  • b1dcf05c board/nsim: Make it CPU-family independent
  • 79716504 board/nsim: Move CPU selection in defconfigs
  • c5663caf board/nsim: Refactor device tree description
  • 35d4e623 boards: allow cmake-time overrides of all runners
  • 3df5ae68 boards: nucleo_wb55rg: Enable I2C
  • 5d57edd2 boards: nucleo_wb55rg: add I2C doc
  • ac429421 boards: arm: twr_ke18f: add ADC support
  • f3611fdd boards/x86_jailhouse: remove support for Jailhouse hypervisor
  • e1de4cf6 boards: Set pinmux.c compilation under switch CONFIG_PINMUX
  • c2c28cf3 board: add call to zephyr_library() for stm32mp157c_dk2
  • baa8e61e board: use ${ZEPHYR_BASE} instead of ${PROJECT_SOURCE_DIR}
  • 430d9edd boards: nrf52_sparkfun: fix board.cmake
  • d47df7f7 boards: mimxrt1064_evk: Enable USB device controller 1
  • 1be3da29 boards: Change to new STM32L496XX symbol
  • 92106053 boards: stm32f469i_disco: add more leds to board
  • 49df0b10 boards: arm: Add support for 96Boards Meerkat96 board
  • d9d6b59e boards: nucleo_wb55rg: Enable flash and debug with pyocd
  • 955cac61 boards: galileo: Fix PINMUX_FUNC_D for io_pin 9.
  • 2ee674fe board: mps2_an385: Remove board.h
  • 348ef0f2 boards: twr_ke18f: enable CAN controller
  • ca491082 boards/x86/quark_d2000_crb: drop support for Quark D2000 dev board
  • eeb32641 boards: shields: x_nucleo_iks01a2: doc: update dead URL link
  • 9ad071cd boards: arm: Add 96Boards Avenger96 board support
  • 2192f1d0 boards: arm: stm32mp157c_dk2: Add Arduino R3 connector definition
  • 59460286 boards: frdm-k64f: Enable CAN support
  • c5e58203 boards/x86/up_squared: default to new local APIC timer

Build (35):

  • b73790b6 cmake: Fix path handling for ZEPHYR_BASE
  • d1b4da96 extensions.cmake: don’t leak absolute paths in snippets-*.ld comment
  • 2ff1e56f qmsi: set type to boolean when selecting QMSI
  • 7b3dc920 linker: add no-flash system support
  • 658f6bc7 kconfig: enclose module Kconfigs into a menu
  • 3c2e43a1 cmake: build modules under /modules
  • 28bb9750 cmake: Allow import_kconfig() to return a list of the variables it sets
  • 42f9e0c6 linker: Move sgstubs section to the very end and fix for nrf91
  • 6cfc1352 menuconfig: Small Space/Enter improvement + fix for obscure bug
  • a1c3cc66 guiconfig: Add a graphical configuration interface
  • c6ebfad7 include/arch/arm: linker.ld: Add shared memory sections definitions
  • e82a9e9a compiler: no warnings on address-of-packed-member
  • deb7ff52 cmake: no-address-of-packed-member is not supported in older compilers
  • 9f851cc2 cmake: delete obsolete deprecation checks
  • 1717332c cmake: add helpers for setting board runners
  • e36e544c genrest: Mention that dependencies are only propagated to ‘depends on’
  • 9bd9b758 Kconfig: introduce CONFIG_64BIT
  • 8e2b9b4a sdk: add support for 0.10.1 and remove 0.9.5
  • d3d33948 cmake: warn if inconsistency between CMAKE_SOURCE_DIR and ZEPHYR_BASE
  • faa72b70 cmake: Toolchain abstraction: Introducing toolchain_cc_freestanding
  • 4ddbc009 cmake: Toolchain abstraction: Introducing macro toolchain_cc_imacros
  • e34ed7c8 cmake: Toolchain abstraction: Introducing macro toolchain_cc_nocommon
  • 4052bac9 cmake: Introduce toolchain_ld_link_elf to abstract linker invocation
  • 6331dae6 cmake: Toolchain abstraction: Introducing macro toolchain_cc_cstd_flag
  • 0370c9b7 cmake: stop destroying intermediate link maps like zephyr_prebuilt.map
  • f67dcdbd CMakeLists.txt: -fmacro-prefix-map=${CMAKE_SOURCE_DIR}=CMAKE_SOURCE_DIR
  • 83723109 cmake: silence “WARNING: ASSERTs enabled” when CONFIG_TEST is true
  • 6f98db61 generated/cfb_font_dice.h: don’t leak absolute paths in comment
  • 28669261 Kconfig: Introducing ARCH_CHOICE symbol for Architecture choice group
  • a570b402 genrest: De-spam docs by skipping direct deps. in more places
  • 769cfab6 cmake: Set NO_QEMU_SERIAL_BT_SERVER when CONFIG_BT_NO_DRIVER is set
  • f57ba2d3 cmake: toolchain_cc_imacros: don’t use space separated arguments
  • 725abdf4 gen_app_partitions.py: make generated/app_smem_*.ld files deterministic
  • 4ae1f294 cmake: bump min SDK version 0.10.1
  • 1c5fa6a1 cmake: use sdk-ng built toolchain for x86_64

Continuous Integration (8):

  • 3085ce07 gitlint: match max title length restriction with checkpatch
  • 4afcc0f8 sanitycheck: CONFIG_TEST_USERSPACE / userspace tag cleanup
  • eaf994a7 ci: move to new docker with new SDK
  • b58aa20e ci: skip handling coverage data
  • 49b22d4f sanitycheck: report tests that never build/run
  • 5efdd6a5 sanitycheck harness: Correct ordered regex handling
  • cbfba621 ci: increase sleep time between sanitycheck runs
  • 35dc9639 sanitycheck: show handler_time in -v output (qemu 2.032s)

Cryptography (1):

  • 6e27d6d3 mbedtls: move to external module

Debugging (1):

  • b83f99a1 debug: tracing: Fix tracing hooks

Device Tree (47):

  • 18ab73d0 dts: nxp: nxp_rt: Fix unit-address for usb node
  • 7713c855 dts: add CC13xx / CC26xx SPI bindings and nodes
  • d94c0d39 dts: stm32f7: Remove DTCM from sram0
  • 7a246c30 dts: posix: Add DTS support for POSIX architecture
  • 906f3789 dts: nxp: nxp_rt: add usbd1 for rt1050 and works as default usb.
  • 190c43ee dts: misc: add SKY13351 SPDT switch description
  • 34ad4f01 dts/i2c: Remove id field from sifive,i2c0
  • 86643ece dts : bindings : sensor : bme680 Added support for BME680
  • 9ce27ff1 dts: stm32wb: Delete useless sram definitions
  • 79edb8b6 dts: stm32wb: Limit flash size to 812K
  • 01b22900 dts: riscv32: update flash controller compatibility property
  • b342258b dts: LPC55S69 initial device tree
  • 7168d4c2 dts/bindings: Fix types in solomon,ssd1673fb.yaml
  • 125b231e dts/bindings: Fix type in spi-device.yaml
  • 53dbe88c dts/bindings: Fix nxp,kinetis-ptp.yaml
  • ddcd4d5a dts: wb: enable I2C
  • 5c53ad43 dts/bindings: Remove generation from pinmux properties
  • 1c55882a dts/extract: Remove bogus pinctrl generation
  • 48100df8 dts/bindings: Move common properties into a base.yaml
  • 02d49df5 dts: intel_s1000: add low power sram as sram1
  • 6e2631c4 dts: bindings: Fix missing “zephyr” vendor name
  • 29a66183 dts/bindings: Update soc-nv-flash to use base.yaml
  • c450e75c dts/binding: Cleanup a few new bindings for base.yaml
  • a2693975 dts: Convert from DT_ to DT_INST…
  • eb00774c dts/bindings: Rename stringlist to string-array
  • b28abf9e dts/binding: Update compatible type in base.yaml
  • a84ded74 dts: Replace status = “ok” with status = “okay”
  • d4a0c3a2 dts: Convert new/missed DT_ to DT_INST…
  • 65892867 dts/bindings: Add uint8-array type for ethernet mac address
  • aa8901c3 dts: xtensa: Fix compatible for xtensa lx6
  • 6758e065 dts/bindings: Cleanup phy bindings
  • b023fbf9 dts/bindings: Remove pinctrl from bindings
  • e83b8c31 dts/bindings: Fix openisa,rv32m1-intmux binding
  • 0bed1007 dts: cleanup missing #{address,size}-cells
  • de3d8082 dts/bindings: Add binding for riscv,cpu-intc
  • 6a79bf25 dts/extract: Add ability to mark aliases as deprecated
  • 7b638bf3 dts/extract: Fix IRQ alias define generation
  • fe2062b3 dts/extract: deprecate old IRQ alias define generation
  • bf0f6d91 dts: Add concept of sub-nodes to YAML and generator
  • dded1d07 dts: can: allow individual specification of prop seg and phase seg1 quanta
  • 593d628e dts/extract: Remove ‘use-prop-name’ from cell and controller handling
  • 12faf11f dts: arm: st: mp1: Add missing uart4 and uart7 pinmux nodes
  • 3ff4e52c dts: pinctrl: stm32l4: Add alternative USART3 pair
  • ae781bd9 dts: Restructure xtensa dts directory
  • 3748085d dts: intel_s1000: Move core_intc node under soc node
  • 2c499a73 dts/bindings: remove ‘use-prop-name’ from bindings
  • a614a026 dts: Rename DT_.*_GPIO_* to DT_.*_GPIOS_*

Documentation (45):

  • 7c8bcf07 doc: kconfig: Clarify that ‘depends on’ works for string/int/hex
  • 3e69a0e4 doc: kconfig: Explain the ‘menuconfig’ keyword and good uses for it
  • e5cca102 doc: kconfig: Encourage dropping ‘Enable …’ from most prompts
  • fde86da6 doc: kconfig: Fix typo in documentation for ‘optional’ on choices
  • f5f1b22c doc: CMake: Locate Python executable before processing modules
  • 4d2b7f61 doc: usb: Remove old API documentation
  • dc4a3592 doc: Fix typos in flashmap.h
  • 0a6cb2ee doc: intel_s1000: image download from Linux host
  • cfa08fbb doc: fix devicetree doc formatting
  • baf38e9c doc: Add guiconfig documentation
  • a658cf15 doc: lpclink2 firmware reference
  • f74cebba doc/reference/storage/settings: storage behavior description
  • b9ce0e70 doc: fix malformed label in shields doc
  • 9bcf6298 doc: fix typo in gpmrb doc
  • 6ecbe713 doc: redirect old board pages to new location
  • aa9b602e doc: add google analytics tracking to docs
  • b8e7d438 doc: remove .html from redirect entries
  • 69de620e doc: Remove API labels
  • 9354bb5a doc: fix coverage report documentation
  • 00c41ea8 doc: fix doxygen comments with embedded reST
  • 240c5163 doc: generate documentation of ifdef`ed APIs
  • 5ec6a537 doc: fix path to gdb in documentation
  • d281e125 doc: kernel: rework doc section of shared FP registers mode
  • efb47ace doc: samples: cleanup board reference and layout
  • b5879094 doc: periodic updates to getting started guide
  • 5edb6d5d doc: unify documentation on setting environment variables
  • a506baf7 doc: clear up qemu + zephyr sdk interaction
  • c98acc2a getting_started: changes for custom toolchains
  • ff443c1d docs: update west sign docs
  • 2670cd4c doc: extensions: Refactor cmake build instructions generation
  • b4766436 doc: Cleanup references to cmake
  • 93e643c5 doc: extensions: Default to ‘all’ in ‘tool’
  • 2aebc980 doc: fix Kconfig misspellings
  • 6b2cd292 doc: fix misspellings in documentation
  • db60d491 doc: fix broken references to zephyr files
  • f2cb20c7 docs: fix misspelling across the tree
  • 1b44f7ec doc: intel_s1000: install the license key manually
  • a3b363e1 doc: shell: document Ctrl+N and Ctrl+P meta-keys
  • 8de9cc70 doc: use @rst/@endrst for ReST in headers
  • 3022fcec doc: how to unset Clear Linux’ CFLAGS and CXXFLAGS
  • c790d5b4 Apply David’s English corrections from code review
  • f91d8386 doc: fix build command on Windows for VEGAboard
  • 3a16001c doc: simplify doc redirection messages
  • b30b52ab doc: fix doxygen INPUT path; brand html output
  • 033706c2 Doc: Use SDK 0.10.1 instead of 0.10.0.

Drivers (133):

  • ad356c45 driver/i2c: stm32: Remove prompt on IP version symbols
  • e72e4573 eth: eth_mcux: Register mDNS multicast address
  • fefc6288 drivers: flash: flash_simulator: added max erase calls param
  • 42b3bd91 drivers: flash: flash_simulator: added max len param
  • bc4825d6 drivers: rtc: stm32: correct tm_mon conversion
  • 89923134 drivers: counter: Add flags to counter_config_info structure
  • f2eea2ef drivers: add CC13xx / CC26xx SPI driver
  • 69921763 include/uart.h: Clarify async receive event length
  • 3d180991 drivers: pinmux: Pinmux driver for Microchip SOCs
  • 819e749c usb: move the request handler buffer to the USB device code
  • 327f6107 usb: merge all request handler buffers
  • 24142d07 usb: Set correct default buffer size for RNDIS
  • e059d5aa usb: simplify request handlers code
  • b3355c79 usb: device: Remove unused variable
  • 3880a423 usb: Align legacy and composite interface
  • a68d4048 usb: dfu: Remove old composite configuration
  • 28f2dc6c usb: usb_device: fix handlers call for secondary descriptor
  • fad34eb0 drivers: counter: mcux_rtc: allow setting a new alarm from the callback
  • 617c6fdb drivers/flash/flash_simulator: Allow unaligned read
  • a4f3e628 drivers: counter: Add SAM0 basic counter support
  • 6d8c6363 adc: explicitly cast (const void *) to (const adc_driver_api *)
  • 88964b99 drivers: flash: Added native POSIX flash driver
  • 9367161a include: sensor: Add position change channel
  • 938a8e14 include: sensor: Allow sensor private attr/chan/trig
  • 52a4e4d8 drivers: serial: sifive: fix configuration of rxcnt/txcnt
  • 8ae17cb2 drivers: i2c: i2c_esp32: fix configuring speed
  • d9e4512d drivers: flash: w25q: erase operations must be erase-size aligned
  • f94113d0 rand32_entropy_device.c: remove atomic_t misuse
  • 05351dbf drivers: hwinfo: Add support for ESP32
  • 105fccfb drivers: usb_dc_nrfx: cleanup logging and fix style
  • 7ab3bc57 display: ili9340: Make reset gpio definition optional.
  • 1541d5f8 display: ili9340: Add RGB565 pixel format support.
  • e9343998 display: ili9340: Adafruit LCD 1480 driver supports RGB565 pixel format.
  • 0744adf4 display: ili9340: Add support of Seeed 2.8″ TFT Touch Shield v2.0.
  • a58a852e drivers: added break in function stm32_clock_control_get_subsys_rate
  • 2af4c157 drivers: litex_timer: Do not hard code tick rate
  • a9c99a60 drivers: console: Add support for log level option
  • d6c61513 drivers: adc: add API to support calibration
  • 64e02021 drivers: dma: sam0: Implement get_status API
  • 55bb37e3 drivers: serial: sam0: Implement DMA async API
  • a11ebbd4 drivers/uart: Remove DTS fixups for SiFive UART
  • 3093f5cd drivers/gpio: Remove DTS fixups for SiFive GPIO
  • 627e27a2 drivers/plic: Remove DTS fixups for RISC-V PLIC
  • 44b19bc6 include: added new sensor channel SENSOR_CHAN_GAS_RES
  • b05d5ffc driver: sensor: bme680 added support
  • c88c9194 drivers/ieee802154: Fix KW41Z driver fault
  • 629805d8 drivers/pcie: do not verify configured IRQ
  • 3d9416bf drivers/bluetooth/hci: Implement HCI driver for stm32wb
  • d777413b drivers/flash: stm32wb: Add driver for stm32wb
  • 51033a58 drivers/flash: stm32wb: Add HSEM
  • cc2e176b driver: flash: add flash driver for the RV32M1 SOC
  • 6a6264e4 drivers: stm32: Fix disabling EXTI subsystem
  • 1b28cb0f drivers/wdt: Rename STM32 IWDG files to follow naming rules
  • 5a2c6d33 drivers/wdt: Rename CMSDK driver to follow naming rules
  • df2bb464 usb: console: Initialize USB console after USB Device stack
  • 26b514de usb: usb_descriptor: Trivial syntax correct
  • 4d89ff12 drivers/uart: introduce SERIAL_SUPPORT_ASYNC option
  • 3bbd1028 drivers: apds9960: allow to disable Ambient Light Sense
  • 67ae5084 drivers: apds9960: make ALS and proximity gain configurable
  • df3796a7 drivers: apds9960: make proximity pulse length configurable
  • 2204193b drivers: apds9960: allow additional LED current configuration
  • 0a9d547c drivers: i2c: enable I2C on STM32WB
  • 552175ed drivers: pinmux: enable I2C PINs on STM32WB
  • 683ca776 drivers: adc: mcux_adc12: add driver for the NXP ADC12 module
  • aaecce4b drivers/loapic_intr.c: clean up local APIC access
  • e9f6cb25 drivers/timer/loapic_timer.c: migrate to new local APIC accessors
  • 9a1e9273 drivers/interrupt_controller/loapic_intr.c: enable x2APIC support
  • ea1e1910 drivers/pcie/shell: add basic probe for MSI-X capability
  • 37c13eec drivers/clock_control: stm32: Factorize series specific code
  • 4a3793f0 drivers/clock_control: stm32: Split Kconfig file
  • abbd952d drivers: Add counter driver (RTCC) for SiLabs Gecko SoCs
  • 4a38cae2 sensors: renamed hdc1008 driver into ti_hdc
  • 080e71c9 sensors: ti_hdc driver wait conversion support
  • e7dbc1d7 sensors: ti_hdc now supports 1050 versions
  • 8617df1e sensors: ti_hdc simplified ti_hdc_channel_get
  • edbf173f drivers/interrupt_controller: stm32: Rework stm32_exti_enable
  • 959c2d52 drivers/interrupt_controller: stm32: Remove unused code
  • a32de021 drivers: interupt_controller: stm32 Move exti_irq_table to const
  • dca8a62a drivers/uart_rv32m1_lpuart: Fix DT define usage
  • afb4e4ff drivers: spi hci: Add spi dedicated rx thread
  • a7a5e497 drivers/clock_control: stm32: Leftover from driver clean up
  • 591b0e1c drivers: counter: Add helper macros for logging
  • 47d7146c Drivers: led: lp5562: Add delay when writing to enable register
  • 7428f9c0 drivers: usb: nxp: Fix board freeze with various USB classes
  • d79bbc6d usb: netusb: cdc_eem: Fix Interface select
  • 4fe7f691 drivers: usb: nxp: Add cache management
  • d41f01d4 drivers: Define COUNTER_LOG_LEVEL using template
  • 9d11900d usb: enforce byte alignment on USB records
  • ef26b7ad include: Removing legacy left-overs in wdt.h API header
  • 7245e433 drivers/wdt: Fixing tiny style issues in sam0 driver
  • f84e6517 drivers: pinmux: stm32l4: Add extra pin functions
  • a5137c81 include/drivers/system_timer.h: Clean up docs
  • 09821e54 drivers: pinmux: stm32l4: Fix CONFIG_SOC_STM32L496XX references
  • 67f0550a drivers: adc: mcux_adc12: fix compilation
  • 4f714d38 drivers/i2c: Add missing HAS_DTS_I2C to sbcon
  • 03259dba drivers/i2c: Add missing HAS_DTS_I2C to nios
  • 1d61bef3 usb: drivers: usb_dc_stm32: Fix coverity issue
  • d385db08 usb: drivers: usb_dc_stm32: Fix coverity issue
  • 783a43e2 drivers/counter/counter_cmos.c: implement counter with PC AT “CMOS” RTC
  • dba65ce4 drivers: Update DT IRQ alias defines
  • a52df691 drivers/i2c_rv32m1_lpi2c: Remove accidently added debug code
  • 58e05ddc drivers: uart for LPC devices interrupt enabled
  • 4c27e5b7 drivers: sam0: Fix deprecated IRQ macro usage
  • 59786b43 drivers: sam0: Fix deprecated instance macro usage
  • f20d2b6f drivers: rv32m1: remove bogus IRQ_PRI related defines
  • 0a99f53c sensor: lis2dh: Use general DT_BUS define.
  • 64a9a045 drivers: can: add support for two CAN controller instances
  • 652fdfe3 drivers: can: add support for the NXP Kinetis FlexCAN controller
  • 13847a31 drivers: clock_control: mcux_scg: add NXP MCUX SCG clock control driver
  • 69406e0f counter: Update counter API in order to provide more flexibility
  • c6c9dcf2 drivers/adc/adc_intel_quark_d2000: remove Quark D2000 ADC driver
  • 3dc7c7a6 drivers/interrupt_controller/mvic.c: remove MVIC interrupt controller
  • 05cdd285 drivers: nrf: Add power management to nrf TWIM peripheral.
  • 5867c369 drivers: nrf: Add power management to nrf TWI driver.
  • e0943cfa drivers: clock_control: API extension proposal
  • e8a182ce drivers: uart_console: include correct path
  • 7635cf80 drivers: uart_console: do not include arch/cpu.h directly
  • 1034c5e3 drivers: uart_console: removed commented code
  • 1c6c657d drivers: pinmux: do not include local pinmux.h
  • 43a49335 include: move interrupt controller headers to interrupt_controller/
  • 68c389c1 include: move system timer headers to include/drivers/timer/
  • cdc78108 drivers: serial: ns16550: move header from /include/
  • 158d921c drivers: modem: modem_receiver.h: move header from /include/
  • 4d05cdfa drivers: pinmux: stm32mp1: Add missing UART4 and UART7 pinctrl definitions
  • ab4f2806 driver/sensor: lis2dw12: make use of STdC definitions
  • f5b22764 drivers: can: mcux_flexcan: Add support for MK64
  • 03679136 usb: kconfig: nrf52840: Enable REMOTE_WAKEUP option only when needed
  • 1b3514a0 Revert “drivers: usb: usb_dc_nrfx: Set cfg.en to false on Reset”
  • 6e75d644 drivers: usb_dc_nrfx: Add pre-transfer checks if endpoint is enabled
  • abaeaed2 usb: sort usb config data by section
  • 7bf0124a drivers: sensor: Update DT symbols in qdec_nrfx driver
  • c17c2987 drivers/timer/apic_timer.c: new local APIC timer for TICKLESS_KERNEL
  • 0eee0a3c drivers: apic_timer: fix include of system_timer.h

External (15):

  • 1091b5b4 ext: mbedtls: Enable easy integration with POSIX API
  • ccbfd553 ext: segger: update to SystemView v2.52h
  • e58df2c3 ext/hal/st: stm32cube Kconfig fix
  • fe0a50f8 ext: move libmetal to an external module
  • b95e4232 ext: move open-amp to an external module
  • 799011c7 ext: hal: nxp: mcux_lpspi: add support for NXP Kinetis LPSPI modules
  • c7c02fce ext: hal: cmsis: Update ARM CMSIS headers to version 5.5.1
  • a2d66d7c ext/hal/st/lib: stm32wb hci shared ram driver
  • a0e81717 ext/hal: stm32wb: Configure M0 FW in LL only
  • 425da7e8 ext: LPC54114 fsl_power and fsl_reset moved to device
  • 300f10cd ext: import_mcux_sdk.py script changes
  • 09fdce9a ext: update nxp mcux lpc sdk
  • faa398f0 ext: hal: st: move to modules
  • 7808b6e9 ext : hal : microchip Header updates for MEC1501
  • 141bc8f8 ext: hal: nordic: Update DT symbols in nrfx config file

Firmware Update (2):

  • b1e1774c dfu/boot: double swap on interrupted revert bugfix adaptation
  • f51e3c29 dfu/boot: make swap_type optional

Kernel (33):

  • 5a709f5d kernel: init: use K_THREAD_STACK_SIZEOF when switching to main thread
  • 75836965 kernel: remove redundant #ifdef CONFIG_MULTITHREADING
  • df0b49cd kernel/init.c: remove needless casts
  • 0b5d9f71 thread_cpu: make it 64-bit compatible
  • 84473630 kernel/thread_abort: Swap, don’t reschedule when aborting _current
  • 92ce7670 kernel/fatal: Clean up z_except_reason() fallback implementation
  • 312b43f1 kernel/sched: Don’t reschedule inside a nested lock
  • a04a2ca7 k_fifo/K_lifo macros: avoid unnecessary casts
  • a12f2d66 kernel/smp: Rename smp_init()
  • 7daa5451 DEVICE_DEFINE(): properly align struct device instances
  • 8bb1f2a9 linker generated list: explicit alignment on data definitions
  • b1d3742c linker generated list: introduce Z_STRUCT_SECTION_ITERABLE()
  • aa922885 linker generated list: provide an iterator to simplify list access
  • a6cb8b06 kernel: introduce k_float_disable system call
  • 3d51f7c2 k_stack: make it 64-bit compatible
  • 12126044 kernel: app_memdomain: remove unused defines
  • fe228a81 kernel: init: exclude some funcs from coverage
  • 8e053330 kernel: init: fix coverage gap
  • c5164f32 kernel: init: exclude unreachable code
  • 3f974243 kernel: allow k_sleep(K_FOREVER)
  • 676b1ae9 kernel: idle: exclude no-op funcs from coverage
  • d4df6bad BOOT_BANNER: show KERNEL_VERSION and BUILD_VERSION differently
  • bc30f4f0 mem_slab: rationalize block alignment assertion
  • 46cd5a03 mem_slab: enforce minimum alignment on statically allocated slabs
  • 465b2cf3 mempool: fix corruption of the free block bitmap and beyond
  • 5611e923 kernel: add futex support
  • aade2b5a kernel: offsets: exclude from coverage
  • cf5c22d8 sflist: SYS_SFLIST_FLAGS_MASK must be a long not an int
  • 1140bd09 mempool: properly use the inline free block bitmap
  • 744df1ef mempool: don’t over-size the free block bitmap
  • d4b60d69 malloc: no longer need to round mempool’s max_sz
  • 39c84514 kernel: mem_domain: fix warning in ASSERT expression
  • 659fa0d5 lifo/fifo: first word is not always first 4 bytes

Libraries (17):

  • 539d16fc gui: Corrected RGB888 pointer in LVGL write function
  • 6173fe7a ring_buffer: Add functions for getting capacity and reseting
  • ca49d6a8 PTHREAD_MUTEX_DEFINE(): don’t store into the _k_mutex section
  • 297ac376 lib: updatehub: Add UpdateHub.io support
  • c5d74ecc lib: updatehub: add suport a CoAPS/DTLS
  • 543de093 lib: updatehub: add support ipv6
  • 4323d381 json: make it 64-bit compatible
  • eeb2e67f time_t: define using a fixed-width type
  • 03170c04 string.c: make it 64-bit compatible
  • a6891e03 prf.c: make it 64-bit compatible
  • c47bf1fa prf.c: implement the ll length modifiers
  • db84a763 lib: os: remove dead code
  • d0490fe9 lib/os/mempool: Fix corruption case with block splitting
  • f32330b2 stdint.h: streamline type definitions
  • 53ec19c3 lib: libc: newlib: define USED_RAM_END_ADDR only where it is needed
  • ff07fc7f lib: libc: fix alignment of HEAP base address for ARM
  • 2a63e342 libc: types: Remove wrong definition
  • 6631e7c6 posix: unistd.h: Add gethostname()

Logging (10):

  • 04a5cee5 logging: Add string duplicates pool profiling
  • ad769e9c Log: Fix build error on Fedora 30
  • a211afb0 logging: Add option to detect missed transient string duplication
  • 6d359df5 logging: use os as a domain for low level system debugging
  • 960041bf logging: Duplicate only strings from rw memory
  • aabe964b logging: Fix log_strdup detection on non-standard messages
  • 0567f161 log facility: make its arguments 64-bit compatible
  • 69879375 log facility: make its records 64-bit compatible
  • 1fd379da log_msg test: rework test_log_std_msg() to better cope with 64-bit builds
  • 70f25eb3 logging: Fix misspelled CONFIG_RISCV32

Maintainers (12):

  • 7d279039 CODEOWNERS: remove ext/fs entry
  • a448bfc0 CODEOWNERS: Adding tests/subsys/shell codeowners
  • 78e35408 CODEOWNERS: Update owners for subsys/mgmt/
  • 09ba365c CODEOWNERS: update file for include/arch/common/
  • e943c274 CODEOWNERS: update due to nickname change
  • 811f0f22 CODEOWNERS: Remove codeowners for /drivers/clock_control/stm32f4
  • 132f02eb CODEOWNERS: Add reviewer for native_posix docs and flash driver
  • 36627605 CODEOWNERS: Clarify behaviour
  • c06a74cd CODEOWNERS: update code-onwers’ list for gen_priv_stacks.py
  • eab115bd codeowners: add reviewer for stm32mp1 SoC
  • 549bd606 CODEOWNERS: remove non-existing files
  • e573970a CODEOWNERS: add / at the end of a directory

Miscellaneous (22):

  • b633e431 shell: add select command
  • 4828dab9 shell: add test for new built-in command
  • 6db7968c latency_measure: Remove commented-out code
  • e85b9315 ROUND_UP/DOWN macros: cast the entire align argument
  • c2cb60f6 shell: Refactor shell_history to use less RW memory
  • c2d38ec2 ARRAY_SIZE(): make it usable on 64-bit systems
  • 58d839bc misc: memory address type conversions
  • 63e0ae0a shell: Fix shell uart not waking up shell on mcumgr data
  • 4c322586 style: add braces around if/while statements
  • 2fb19fcb style: samples/tests: add braces around if/while statements
  • 71260d88 shell: Initialize va_list variables portably.
  • 9f7c2b62 stats: fix Coverity CID :198875
  • a42313d4 requirements.txt: add gcovr
  • 5f5c9a59 INT_TO_POINTER macros: make 64-bit compatible
  • 6311766d pointer-type args: cast appropriately to be 64-bit compatible
  • 2b32059a printk: make it 64-bit compatible
  • eba81c6e yaml: Remove redundant document separators
  • d888cb54 include: misc: macros to perform word/pointer boundary alignment
  • 0d6fabe6 shell: add Ctrl+N and Ctrl+P meta-keys
  • 002bebdf mailmap: Update mailmap with full names and emails
  • ebda8fe1 mailmap: Fix entry needing both name and email replace
  • 61861b6a gitignore: ignore Emacs TAGS file

Modules (18):

  • 89d39364 esp: move HAL to external repo
  • 45868a2d fatfs: move fatfs filesystem to a module
  • 02ed9b19 mcumgr: move to an external module
  • 3cc74cf0 nffs: move to an external module
  • e7db7daa segger: move to an external module
  • 8017c59c modules: move module kconfig to main tree
  • 10ddb62c manifest: update with module state
  • 7ae41802 silabs: move HAL to external repo
  • 0b2bb32c cypress: move HAL to external repo
  • 083617e2 modules: move kconfig into tree
  • fc195392 mcumgr: move Kconfig to main tree
  • 5609115c manifest: update to latest MCUMGR head
  • bf1f1f63 manifest: order modules alphabetically
  • 4fd627c8 manifest: add ci-tools to manifest
  • acfe2e3f manifest: remove out-dated comment
  • d3977996 manifest: move net-tools to tools/net-tools
  • 343f5bae west.yml: update open-amp SHA
  • fe74224e modules/hal_st: Add stmemsc HAL library

Networking (40):

  • 29b55f86 net: shell: Indentation fixes for ping command
  • d13039f8 net: shell: Remove leading underscore from parse_args()
  • ecac10cb net: shell: Refactor help information for ping command
  • 79672d16 net/pkt: Remove useless _reserved attribute
  • 344d4bdc net/arp: No need of 64bits timer precision on ARP requests
  • 79a25a6f net/pkt: Redefine the necessary fifo attribute
  • a8fffca4 net: lwm2m: Remove IPSO objects maximum number of instances limitation.
  • 77062582 net/udp: Computed checksum field should not be 0
  • 274db4f3 net/udp: Accept UDP packet with missing checksum
  • 8b3db460 net: getaddrinfo: Parse numeric IPv4 addresses
  • a46db55d net: lwm2m: fix log_strdup missing errors
  • a5b90a4a net/udp: Check UDP header’s length attribute
  • e9a4ef2b net/udp: Always drop IPv6 UDP packet if checksum field is 0
  • 87462df3 net: sockets: Remove TI conditional from offloaded fcntl implementation
  • 0fb8a917 net: sockets: Make NET_SOCKETS_POSIX_NAMES depend on !POSIX_API
  • 3653e688 net: ethernet: Fix build issue with C++
  • a348c8c6 net: llmnr: Check that UDP header can be accessed
  • c3bb0a6a net: socket: Add SO_PRIORITY support to setsockopt
  • a946b2cc net: make __net_buf_align 64-bit compatible
  • 4f4adae2 net: lib: Fix missing dns subdir include
  • 3189da5c net: mdns_resolver: Fix malformed MDNS response
  • 343bdd3e net: if: Fix null pointer deref when selecting IPv4 address
  • d20c6f96 net: utils: Print pkt address in net_pkt_hexdump()
  • bf0f52dc net: nbr: Set the link address type when saving neighbor data
  • d0d963a8 wifi: eswifi: init net_pkt cursor after net_pkt_write
  • 66214910 net: sockets: can: Add dispatcher
  • 0032f686 net: context: Set local address properly for AF_CAN connections
  • 1e989284 net: shell: Print connection information properly for AF_CAN
  • 7e37fd72 net: connection: The connection logic was not init properly
  • 06b500b6 net: sockets: can: Close the socket cleanly
  • 05cd3420 net: mqtt: add mqtt_readall_publish_payload()
  • 19806a2c net: getaddrinfo: Query both IPv4 and IPv6 if family is AF_UNSPEC
  • 034bccca net: Fix net_pkt_hexdump() to print pkt address properly
  • 3c6c8ed0 gptp: don’t cast pointers to ints
  • def6b14a net: ptp: clock: Create a dummy inline func for net_eth_get_ptp_clock()
  • 11b06fab net: ethernet: Add net_eth_get_ptp_clock_by_index() function
  • 95e8498c net: ptp: Add usermode support to net_eth_get_ptp_clock_by_index()
  • c9aaab74 net: ptp: clock: Add usermode support to ptp_clock_get()
  • b7b9458e wifi: eswifi: add UDP support
  • 70aa3830 net: sntp: Ignore return value from close

Power Management (1):

  • f194982f Power: Fix various spurious LOG_ERR calls

Samples (38):

  • 4bd654d8 samples: net: gptp: Fix compilation instructions
  • de26f76e samples: net: echo_server: Fix usbnet configuration
  • 3d58abf6 samples: usb: webusb: Use new descriptor placement API
  • 1b64e53a samples: usb: webusb: Use Automatic endpoint assignments
  • 953728b2 samples: usb: wpanusb: Refactor sample using new API
  • 3f13079a samples: usb: hid: Fix harness configuration
  • 6ae24574 samples: servo_motor: add HW PWM choice for NRF52 family
  • 280daa39 samples: net: lwm2m: use real temperature values instead of dummy
  • d6176f86 samples: drivers: led_lp3943: Rename log module
  • 3702d1a0 samples: nrf52: power_mgr: Fix build with prj_tickless.conf config
  • 1b3b4612 samples: display: ili9340: Get ILI9340 device by DT label.
  • 72fa9d95 samples: display: ili9340: ST NUCLEO-L476RG config file.
  • 3d2b9946 samples: display: ili9340: Add support of RGB565 pixel format.
  • 591ed267 samples: display: ili9340: Add 2 Arduino shield sample configurations.
  • 992819bc samples: sensor: bme680 added sample code
  • 930a5f8f samples: cmsis philosophers: adjust stack size
  • 4d4cc4dd samples: philosophers: pause before main() exit
  • 10401415 samples: net: echo-server: Ignore the return value of close()
  • b0f40cf4 samples: basic minimal: add nucleo_f429zi, disco_l475_iot1 to whitelist
  • 265b1953 samples: fs: Added FS shell sample
  • 3ae5b655 samples: added sample for ti_hdc
  • 808075f5 sample: ti_hdc: whitelist reel_board and nucleo_l496zg
  • 1cba619e samples: intel_s1000: audio buffers in lpsram
  • 32b89b98 samples: intel_s1000: audio buffers in lpsram
  • 9d5a63b9 samples: intel_s1000: audio buffers in lpsram
  • 51cc6a4f samples: grove_light: remove whitelisting
  • c95b97db samples: spi_fujitsu_fram: remove whitelisting
  • ea44b056 samples: drivers: counter: alarm: Fix compilation for nrf boards
  • b14f4f67 samples: display: ili9340: Document 2 Arduino TFT shield configurations.
  • ae89c223 samples: net: can: Add second RX socket receiver
  • 404ac510 samples: net: socket: can: Close the socket periodically
  • b56cc058 samples/boards/nrf52/power_mgr: Correct test integration
  • 3cea0659 samples/subsys/power/device_pm: Add test harness integration
  • 42d8936f samples/subsys/usb/dfu: Set sanitycheck test to build_only
  • a361d7ca samples: drivers: CAN: add support for twr_ke18f board
  • 4fabc07c samples: drivers: counter: alarm: add nordic boards to the whitelist
  • 8226aa12 samples: out_of_tree_board: remove board.h
  • 7a73bb7e samples: CAN: Add FRDM-K64F defconfig

Scripts (44):

  • 8b9b7e7c scripts: avoid unnecessary ‘west build –force’
  • 4de99994 scripts: west: Add reset-after-load argument to jlink runner
  • bd2919dc runners/jlink: Add –tool-opt option for more args
  • 442df973 scripts/dts: Remove alias defines for labels
  • cc14c40a kconfiglib: Unclutter symbol strings, avoid redundant writes, misc.
  • f46ebc3c kconfig.py: Use messages returned by load_config() and write_config()
  • 49c4b1c3 west: Use find_build_dir in run_common
  • 98980c6b west: build: Configurable build folder format
  • 8718d5c8 scripts: west: improve error message on missing cache
  • 062bd065 scripts/dts: Sort instance IDs by reg addr
  • 01e54a54 scripts/dts: Change DT_<COMPAT>_<INSTANCE>_<PROP> define
  • 9ac4dc66 scripts/dts: generate DT_ALIAS_<ALIAS>_<PROP> defines
  • 045c8095 scripts/dts: Make extract/flash.py easier to read
  • fe91e484 scripts: runners: add __contains__ to BuildConfiguration
  • 3bd07a24 scripts: west sign: make it work again
  • 06c9f8e9 scripts: west sign: code style refactor
  • 33cbba34 scripts: west sign: move hex and bin default locations
  • 2f839da1 scripts: west sign: improve user friendliness
  • d371c54f scripts: west sign: test for input file existence
  • c07267a2 scripts: runners: abstract jlink’s missing program support
  • c24e044c scripts: runners: check for required programs
  • a4afe8c0 scripts: gen_priv_stacks: remove unused variable
  • 7da47c69 include: scripts: fix typos in priv_stacks.ld
  • 84cf9dc6 scripts/sanitycheck: Add –cmake-only option
  • 8a9ca0d8 scripts: Upgrade pyocd for pack support
  • bb359257 scripts/sanitycheck: fix ZEPHYR_BASE subdir check edge case
  • e1f0b61d scripts/dts: Clarify extract/flash.py some more
  • 344737d7 scripts/dts: Treat string-list always as a list
  • 74818bcb scripts/dts: Treat array always as a list
  • 88959e75 scripts: gen_priv_stacks.py: use the right alignment for priv stacks
  • 79b59e82 scripts/dts: Remove ‘use-prop-name’ from clock generation
  • 08a5f9f8 scripts/dts: Add ability to mark cell/ctrl defines as deprecated
  • 95f28eb7 scripts/dts: Remove DT_CHOSEN generation
  • 725e98e3 scripts: fix pyocd runner –flash-opt help
  • 6440514b scripts: west_commands: fix help string
  • d176cc36 scripts: runners: update ZephyrBinaryRunner docstring
  • ddce583c scripts: west_commands: decouple runners pkg from west
  • ec8dbf34 scripts: tweak runner-related command output
  • e6873b8d scripts: tweak west build output
  • f08935fa scripts: west_commands: improve run_common error handling
  • 814bc7ba scripts: remove runner related cruft
  • 41f1f648 west: runners: Guess build folder
  • 8e76e68f west: Update hal_stm32 module to head following cube updates
  • 6ccd026f gen_relocate_app.py: make generated/linker_relocate.ld deterministic

Storage (9):

  • 3fd417a1 subsys/storage/flash_map: Fix returned error codes
  • 974231ee subsys/settings: Add const modifier to the value pointer
  • bc3d01cd fs: implemented unmount function to fatfs
  • b748a54c subsys/settings: Cleanup the initialisation of the subsys
  • 3815ae6f fs: Added API to read mount point
  • 36edf92c subsys/settings: change processing to const char
  • 8ca87082 subsys/settings: Update client modules
  • c20ff115 subsys/settings: Enable handler ROM registration
  • 5f19c816 subsys/settings: Update bluetooth module

Testing (69):

  • 2d48f433 tests/fs/nvs: GC full round test
  • c3ccbbbd tests: kernel: common: add missing userspace tag
  • 302dc987 tests: fs: nvs: moving nvs_clear to setup method
  • cbc2ff66 tests: fs: nvs: unittest with corrupted sector close op
  • 02d6ea0f Revert “tests: drivers: uart: Fix async write abort test”
  • 5d65ee13 tests: drivers: uart: Explicitly test incremental receive length
  • 5970b663 tests: usb: device: Refactor device api test
  • afdbc203 tests: Added native POSIX to flash based tests
  • 4d8941a9 tests: net: getaddrinfo: Add cases for numeric IPv4 addr
  • 93fb6952 tests: subsys: logging: Test for detection of missed log_strdup
  • 4d4cd7e3 test/net: fix PTP clock test code
  • c3c6dfaa tests/net: Fix IPv6 and UDP test as UDP got stricter on checking header
  • 72177da7 latency_measure: Fix bug where the wrong prj.conf file was used
  • 80f8481f tests: subsys: shell: Add shell_history test
  • 0e8517e1 tests: lib: ring_buffer: Test for ring_buf_reset, ring_buf_capacity_get
  • 3555c811 tests: shell: shell_history: Add more tests
  • 13a58775 tests: kernel: userspace: explicitly declare function for the test
  • c8ae05dd tests: flash_map: Configure mpu to allow flash write
  • 82d703de testsuite: coverage: port GCOV linker code to CMake for X86
  • fd3d4156 tests: flash_map: configure MPU to allow flash writes on twr_ke18f
  • 03bbbb91 tests: drivers: spi_loopback: add twr_ke18f configuration
  • 09749bbe tests: benchmarks: latency_measure: use 0.1s sys clk tick for twr_ke18f
  • bd001081 tests: cmsis_rtos_v1: remove cast abuses
  • d1681d83 subsys/testsuite/ztest: change zassert_mem_equal to macro
  • ed5185ba tests/kernel/fatal: Fix wait-for-interrupt delay in stack check test
  • 8ab22556 subsys/testsuite/ztest: Fix zassert_mem_equal user message printing
  • def743ef tests: drivers: uart: depend on SERIAL_SUPPORT_ASYNC for ASYNC test
  • 69fc29de tests: mesh: fix function prototype and match declaration
  • 1cbda7d4 tests: net: socket: register: Close socket after test
  • a45ce522 tests: timer_api: Fix timer synchronization
  • 324ae6fd tests: tickless_concept: disable for coverage
  • 98627ccc tests: drivers: adc_api: add support for the twr_ke18f board
  • 194893d5 tests: net: udp: Add tests for SO_PRIORITY and setsockopt
  • 44bc1eca tests: build_all: add TI HDC sensor
  • 1f357744 memslab/mempool: make tests 64-bit compatible
  • 9f8044e6 tests: kernel: fp_sharing: call k_float_disable() for ARM
  • 10074fc4 tests: drivers: counter: Add device name to zassert strings
  • ac8e810d tests: benchmarks: timing_info: add user space tag
  • 02a3c520 tests: kernel: userspace: correct address of thread priv stack start
  • f4f2b131 tests: kernel: fatal: add HW stack check for priv stack
  • d87a90e4 tests: mutex_api: run in user mode
  • 682a53db tests: queue: test k_queue_alloc_*pend()
  • 94b9640a tests: poll: expand userspace coverage
  • 86586b2d tests: getaddrinfo: set newlib heap size
  • a3eb8c4a tests: schedule_api: fix extern tstacks
  • b5d3ba46 tests: schedule_api: exercise SCHED_MULTIQ
  • 03f22773 tests: schedule_api: test syscalls from usermode
  • 6020a500 tests: schedule_api: skip test assert if COVERAGE
  • 80040823 tests: kernel: fatal: add explicit no user-mode test case
  • 13b4c17b tests/drivers/counter: add test for counter_cmos.c
  • 2c4b2a16 tests: net: getaddrinfo: Make sure we receive two queries
  • 3f9151da tests: minor FCB re-ordering not to leave a random flash.bin behind
  • 2910b5ea tests/kernel/context: Fix TICK_IRQ define for RV32M1 lptmr_timer
  • 723aae95 tests: kernel: mem_protect: use correct define for MEM_REGION_ALLOC
  • d2f5a2c1 tests: drivers: can: api: add support for CAN_0
  • 70c47cba tests: drivers: can: stm32: determine CAN device at compile-time
  • 0180b94a tests: kernel: fatal: add explicit test case for ARM and FP Sharing mode
  • a30162be tests: add futex test cases
  • 31c4cc54 tests: common: cover k_cycle_get_32() syscall
  • 777336ef tests: userspace: cover missing/bad syscalls
  • d053ba59 tests: dynamic_thread: cover thread_idx_free()
  • 84822181 tests: userspace: cover z_object_recycle()
  • ffd182a0 tests: device: cover device_get_binding()
  • 643f86f1 tests: thread_apis: exercise some system calls
  • c0630346 Revert “tests: tickless_concept: Fix slicing time measurement”
  • e5c0e3ca tests: kernel: submit a simple test for zero-latency irqs
  • 1e29d40e tests: kernel: arm runtime nmi: add arm tag
  • ad409f4b tests/kernel/context: add case for CONFIG_APIC_TIMER
  • 1dd2796b tests: kernel: add simple test for the ramfunc feature

This is the 28 June 2019 newsletter tracking the latest Zephyr development merged into the mainline tree on GitHub.

Highlights

This newsletter covers the following inclusive commit range:

  • 29b55f86 net: shell: Indentation fixes for ping command, merged 23 May 2019
  • 70aa3830 net: sntp: Ignore return value from close, merged 27 June 2019

This is roughly the second month of the merge window following Zephyr v1.14 LTS. The next version of Zephyr will be version 2.0. Fancy.

The 2.0 merge window is set to close on August 9. Any new features ought to be merged (or at least posted and reviewed) before then if they’re intended for 2.0.

Meanwhile, development continues apace.

A few efforts of significant interest (at least to the author) are:

  • A GUI for Kconfig
  • ongoing 64-bit support patches
  • the continued extraction of third-party code into separate Git repositories
  • big device tree changes

Graphical Interface for Kconfig

The build system now sports a guiconfig target, which can be run using e.g. west build -t guiconfig.

Here’s what it looks like:

guiconfig example window

 

 

The 64-bit Project

Zephyr is currently a 32-bit only operating system. In order to support RISCV64, a wide-ranging effort to upgrade Zephyr’s kernel (and associated tests, samples, etc.) for 64-bit support is ongoing.

Maybe we’ll see RISCV128 support someday? One can dream.

Modules for Modular Modularity

With the introduction of the west tool in v1.14, Zephyr could theoretically be distributed as multiple Git repositories controlled by a manifest file, but this mechanism was largely left unused for that release.

The project is now proceeding in earnest, with several vendor HALs and other third party libraries formerly found in zephyr/ext being split into their own repositories. So far, these are repositories are all still hosted under the zephyrproject-rtos GitHub organization, so that module.yml, Kconfig and CMakeLists.txt files can be maintained by the project. (It’s also not a bad idea for making sure the repositories stick around as long as zephyr is hosted on GitHub.)

Developers are reminded to run west update after pulling the zephyr repository in order to get any new modules added since the last time they updated.

Device Tree Changes

A variety of significant changes were merged affecting Zephyr’s use of Device Tree.

C preprocessor defines generated by device tree of the form DT_<COMPATIBLE>_<INSTANCE>_<PROPERTY> have been renamed to DT_INST_<INSTANCE>_<COMPATIBLE>_<PROPERTY>. In-tree users were updated. The old defines are now deprecated; users have an unknown amount of time to upgrade before the old defines are gone. The DT_.*_GPIO_* defines were also renamed to DT_.*_GPIOS_*.

THe stringlist type was renamed to string-array to keep up with changes in upstream dtschema. The basic compatible property now has type string-array (instead of string, so this isn’t truly a rename).

There is now a concept of a “sub-node” introduced. This covers use-cases like gpio-keys, gpio-leds, pwm-leds, and other situations where the binding describes nodes lower down in the tree that contain the useful information needed by a driver. See gpio-keys.yaml and friends for examples.

The use-prop-name option for generation was removed.

It is now possible to mark aliases as deprecated.

The "ok" status was changed to "okay" for all in-tree users, again moving closer to upstream Linux behavior, but out of tree code which uses the older string should still work.

Other Interesting Happenings

As usual, a full list of merged broken down by area follows at the end of this post.

Architecture-specific

On x86:

  • The GRUB multiboot boot information structure is now preserved if available and CONFIG_X86_MULTIBOOT_INFO is enabled, and a multiboot-aware framebuffer driver was added.
  • Various legacy Kconfig options were removed; out of tree applications may need to remove them from their prj.conf files to avoid now-spurious warnings from kconfiglib about undefined symbols.
  • Prep work is being done for x64 support, but support for this processor mode is not yet finished.

On Arm:

  • The NXP ke1xf SoC port grew several features, including I2C, SPI, ADC, and CAN drivers.
  • Initial LPC5500 SoC support was added, with GPIO and USART support.
  • Numerous files and Kconfig options specific to STM32 were renamed as part of a general cleanup.

Zephyr’s floating point support patches for 2.0 are all merged; the new features for this release are now considered done. Support is currently x86 and Arm only.

The native_posix target now supports mapping device flash to the host file system via FUSE.

Support for various peripherals were added at SoC level; see the patch list below for details.

Bluetooth

The top-level <bluetooth/bluetooth.h> API has been extended to allow support for pairing using out-of-band data during the authentication stage. The initial customer is peripheral side support; see CONFIG_BT_OOB_DATA_FIXED.

The <bluetooth/gatt.h> API:

  • was incompatibly extended with support for user data pointers which will be passed to bt_gatt_complete_func_t, and
  • was reworked to support notifications by UUID and multiple simultaneous notifications.

The <bluetooth/l2cap.h> API added sent and status callbacks to struct bt_l2cap_chan_opts. One initial customer is the shell, as described below.

User-defined protocols are now supported. See CONFIG_BT_CTLR_USER_EXT and related code.

New shell features:

  • The new sent and status callbacks are used to print output when packets finish transmitting or on channel status changes.
  • The gatt show-db command now takes an optional second argument, which can be used to limit the number of matches that are printed.
  • A new gatt notify command can be used to send notifications about attribute value changes.
  • A new gatt discover command can be used to discover attributes; like other existing discover-foo commands, it can take a UUID, as well as start and end handles.

Development on the new “split” link layer / controller:

  • Random addresses are now supported for devices with hardware-based address resolution acceleration, another milestone on the walk to feature parity with the existing default controller.
  • A new “ticker” (or scheduler) was briefly introduced, but was reverted due to regressions related to missed advertising events.

Mesh applications can now retrieve RSSI values via mesh operation callbacks.

Boards

New boards:

Support was removed for:

  • x86_jailhouse “board” for booting Zephyr on the Jailhouse hypervisor
  • quark_d2000_crb

Various boards gained new software support for peripherals, MCUboot partitions, etc; see the patch list below for details.

Build System

Support for Zephyr SDK version 0.9.5 was removed. The new recommended version is 0.10.1.

The effort to add toolchain-agnostic “intent” macros continues with the introduction of:

  • toolchain_cc_freestanding()
  • toolchain_cc_imacros()
  • toolchain_cc_nocommon()
  • toolchain_cc_cstd_flag()
  • toolchain_ld_force_undefined_symbols
  • toolchain_ld_link_elf()

In particular, the above _ld_ additions complete the linker abstraction effort.

On targets with multi-stage links, intermediate files, such as the map file for zephyr_prebuilt.elf, are now preserved (as zephyr_prebuilt.map, etc.) instead of being overwritten with the results of later stages. This aids debugging and improves general visibility of these build steps.

The linker scripts now support systems without flash. In this case, “ROM” regions are stored in RAM.

All modules are now built in a modules/ subdirectory of the build directory.

The previously unnamed Kconfig choice which determines the target architecture was given a name. This makes it possible to define out of tree architecture names.

Continuous Integration

A “pseudo-board” of sorts named qemu_x86_coverage was added. It exists for CI builds with code coverage measurement enabled. Previously, this area wasn’t part of CI and thus broke regularly.

The zephyrprojectrtos/ci Docker container used for CI was upgraded to Zephyr SDK 0.10.1 in version 0.7, which is now the active version.

Drivers and Device Tree

The clock control API now has clock_control_async_on() and clock_controL-get_status(), for asynchronous clock management.

The USB API was substantially reworked. In particular, it has a new API for managing descriptors, and uses endpoint indexes instead of addresses. See the individual commits for more details.

The counter API now has a structure, struct counter_top_cfg, for setting up the top value of a counter. This is used in an incompatible extension to counter_set_top_value(). In-tree users were converted. The purpose of this change is to allow counter drivers as a system clock source — a long-standing effort — on hardware without alarms.

The ADC API now has a calibrate boolean in the struct adc_sequence structure used to configure a sequence of conversions. The nRF SAADC driver supports this value.

New bindings and drivers:

  • Skyworks SKY13351 switch bindings, used on Particle boards for antenna selection.
  • RISC-V CPU interrupt controller bindings
  • BME680 environmental sensors
  • TI CC13xx / C26xx SPI drivers
  • Pinmux driver for Microchip SoCs
  • Counter support for Atmel SAM0
  • Flash driver for the native_posix target
  • hwinfo support for ESP32
  • ili9340 display driver support for the Seeed 2.8″ TFT Touch Shield v2.0
  • NXP ADC12, FlexCAN, and SCG drivers
  • SiLabs Gecko counter driver

The console driver now supports the common logging Kconfig options. In particular, the log level is configurable with CONFIG_UART_CONSOLE_LOG_LEVEL.

The native_posix target now has device tree support. A UART and flash controller are available.

The sensor API has a SENSOR_CHAN_GAS_RES channel for gas sensor resistance.

The apds9960 driver was substantially extended. It’s now possible to disable the ambient light sensor, configure the ALS and proximity gain and proximity pulse length, and configure the proximity LED’s boost current.

Firmware Update

A follow-up Zephyr commit was merged affecting users of MCUboot with watchdog enabled, keeping up with the bootloader closing a hole which could corrupt the images if the watchdog resets while the bootloader is running.

Kernel

A new k_float_disable() system call was added, which instructs the kernel to skip floating point register handling during context switching. Applications which no longer require use of floating point registers can use it to dynamically decrease context switch overhead.

Some important bug fixes to the slab allocator and memory pool code were merged.

Threads may now call k_sleep(K_FOREVER). This is useful for threads which are explicitly woken from sleep.

The boot banner output has changed: it now distinguishes the build version obtained from Git from the kernel version string. See BUILD_VERSION.

Libraries

Support for the updatehub.io DFU service was added.

The POSIX APIs now support gethostname().

Logging

A new CONFIG_LOG_DETECT_MISSED_STRDUP (which defaults to y) was added. This option will print a message whenever the variable argument corresponding to a %s in a logging format string is neither read-only nor allocated from the pool of memory used to hold variable string data while a log message is queued.

As always, variable strings should be logged with LOG_XXX("%s", log_strdup(my_string)) — this change is meant to help catch cases where that is not happening.

There is a new os logging module, which has replaced some uses of kernel.

Miscellaneous

The shell now supports Control-N and Control-P keys to move in history. Said history was refactored to use a pool of memory for previously entered commands; this means that rather than fixing the size of history as a maximum number of commands with a fixed size, the history will store as many bytes of commands as can fit in the pool, decreasing wasted RAM. It also supports a select command which can help save typing and is similar to a command by the same name in the previous incarnation of this subsystem.

Modules

 

Networking

An artificial restriction on the number of instances each LWM2M object could contain was lifted. The number is now arbitrary.

The getaddrinfo() implementation skips DNS resolution for numeric IP addresses. It also now queries for both IPv4 and IPv6 addresses if the address family it is given is AF_UNSPEC.

The fcntl() implementation no longer is guarded by a TI-specific define; it is available whenever supported.

The precision time protocol received increased user-mode support.

A new mqtt_readall_publish_payload() API was added.

Samples

New samples:

  • samples/subsys/shell/fs: file system shell
  • samples/sensor/ti_hdc: temperature and humidity with the ti_hdc driver
  • samples/sensor/bme680: environmental sensor

The ili9340 sample now supports the RGB565 pixel format, and got two new Arduino shield configurations.

Storage

FAT filesystems can now be unmounted.

Mount point names can be read with fs_readmount().

Tools and Scripts

The west flash (and debug, etc.) commands can now guess the build directory. This can be useful if the build.dir-fmt configuration option is used. Users must opt in to guessing by running west config build.guess-dir runners.

Individual Changes

Patches by area (829 patches total):

  • Arches: 81
  • Bluetooth: 89
  • Boards: 60
  • Build: 35
  • Continuous Integration: 8
  • Cryptography: 1
  • Debugging: 1
  • Device Tree: 47
  • Documentation: 45
  • Drivers: 133
  • External: 15
  • Firmware Update: 2
  • Kernel: 33
  • Libraries: 17
  • Logging: 10
  • Maintainers: 12
  • Miscellaneous: 22
  • Modules: 18
  • Networking: 40
  • Power Management: 1
  • Samples: 38
  • Scripts: 44
  • Storage: 9
  • Testing: 69

Arches (81):

  • efa2b23f soc: nxp: ke1xf: add I2C support
  • bddb343b stm32: Remove redundant I2C variant Kconfig symbols definitions
  • 7f260091 arch: arm: minor clean-up in interrupt stack size derivation
  • 1ba8c340 arch: arm: add z_ prefix to _PlatformInit
  • 8d6346ef soc: arm: nordic_nrf: force platform-specific initialization
  • 95067947 soc: microchip_mec: mec1501 Add pinmux definitions
  • bcb9141b native_posix: Run in real time by default with host BT
  • f032729c arch: arm: core: tz: Linking of secure entry functions into NS firmware
  • 6b46d389 soc: sam0: add I2C to dts_fixup.h
  • 35ecdf8a soc: stm32: Remove unused soc_register header file
  • 45a147c2 arch: arm: mpu: move internal API inside arch/arm/cortex_m/mpu
  • 18e80aeb arch: arm: mpu: remove arm_core_mpu_enable/disable internal API
  • 73a96c00 soc/riscv32: Make clock init code common to SoC
  • e8ac4956 soc: cc13x2_cc26x2: support setting CCFG values via Kconfig
  • 69c144af soc: nxp: ke1xf: add SPI support
  • c0502d96 soc/apollo_lake: boards/up_squared: move UART fixups to SoC
  • 546cf75a soc/x86/apollo_lake: remove legacy PCI support
  • 76d9d780 x86: remove unused and x86 only latency benchmark
  • e6af0f8c arch/*: Add z_arch_irq_unlocked() predicate and test
  • b3114efc arch: arm: userspace: don’t subtract MPU guard from top of stack
  • e90d1847 soc: added LPC5500 family
  • b01568c2 include: arch: move bits_portable.h to arch/common
  • d647751b include: arch: move addr_types to common location
  • b0fb9ec6 include: arch: remove empty nios2 asm.h
  • 0227cdae include: arch: rename xtensa_irq.h to irq.h
  • f7810d4a include: arch: arc: Minor punctuation fix
  • 55ff4ba5 x86: add qemu_x86_coverage target
  • a1a3a4fc arch/x86: add support for Multiboot boot information structure
  • 4c63e29a arch/x86: drivers/display: add framebuffer driver w/ multiboot support
  • d0d752ab soc/nsim: Minor clean-up
  • 40dbec4c ARC: Mention ARC EM family instead of EM4 template
  • ca38f0a2 soc: nxp: ke1xf: add ADC12 support
  • 6aedb6ff arch/x86: disable i8259 in crt0.S
  • 0e166fa2 arch/x86: move MSR definitions to include/arch/x86/msr.h
  • ba516e8e arch/x86: do not redefine MSR regs in crt0.S
  • 0fe4e1b3 arch/x86: x2APIC support is not specific to jailhouse
  • 53b370a7 arch/x86: add x2APIC-aware accessors for local APIC access
  • a90c0007 native_posix: Added support to access flash via FUSE
  • 1f99253b soc: intel_s1000: add dts fixup for low power sram
  • 35c4f53a soc: intel_s1000: define lpsram memory for linker
  • 876deb42 soc: intel_s1000: add lpsram in linker script
  • d2c724f4 arch: arm: fix start of MPU guard in stack-fail check (no user mode)
  • a2029eb5 arch: restrict FLOAT and FP_SHARING for x86 and Arm
  • d840d1cb arch: implement arch-specific float disable routines
  • ac2b8eee soc: nxp: ke1xf: add DTS SPI definitions
  • 15223dd9 arch/x86/Kconfig: remove CONFIG_IA32_LEGACY_IO_PORTS
  • c2c85a2a arch/x86/Kconfig: remove CONFIG_ISA_IA32
  • 8013277c arch/x86/Kconfig: remove CONFIG_CMOV
  • ae7ce079 soc/arm/st_stm32: Replace STM32 specific core selection option
  • 191b3092 soc: stm32: STM32L0: Remove useless package digit
  • dbad99ec soc: stm32: STM32L4: Remove useless package digit
  • b20f288a soc: stm32: STM32WB: Remove useless package digit
  • d2b33a48 arch/x86: split Kconfig files by sub-architecture
  • 8f14b2ed arch/x86: split CMakeLists.txt into subarch-specific files
  • 1444ee97 arch/x86: reorganize core source files
  • 08b08151 soc: stm32: Remove package digit for STM32L496XG
  • dfca5ab8 soc: stm32: Add STM32L496XE support
  • 0296938c arch: common: gen_isr_tables table size check
  • 1a514a45 soc: stm32: STM32F2: Remove useless package digit
  • a54de317 soc: stm32: STM32F4: Remove useless package digit
  • e6a4839c soc: stm32: STM32F7: Remove useless package digit
  • 6cbc0e0b arch: common: nocache: fix linker section definition
  • 9f857c3b soc: stm32f3: Delete obsolete FLASH_PAGE_SIZE Kconfig symbol
  • 01b57293 arch/x86: remove CR4_PAE_DISABLE mask
  • 2835c229 arch/x86: used fixed initial EFLAGS on thread creation
  • 4bdbd879 arch/x86: remove old PRINTK() debugging macro
  • ef736f77 arch/x86: relocate and rename SYS_X86_RST_* constants
  • e0db3944 arch: arm: re-organize thread stack macro defines in arch.h
  • 518bfa39 arch: arm: introduce macro to describe the privilege stack alignment
  • f15c12d4 arch: arm: expose start/end limits of the thread priv stack section
  • 639eb767 arch: arm: make priv stack guard programming similar to normal guard
  • b5e3be9e soc: arm: nxp: ke1xf: enable MCUX SCG clock controller driver
  • 52cfe30d soc: nxp: ke1xf: add CAN support
  • 57b46bbc soc/x86/intel_quark: remove support for Quark D2000 SoC
  • a506aa3d arch/x86: remove CONFIG_X86_FIXED_IRQ_MAPPING support
  • 27fbe347 soc: nsim: nsim em targets are EM4_FPUDA
  • 54b229fc soc: arc: optmize and bug fix the compile options
  • 94cb13ff arc: logging: fix logging expression
  • 14e31ba4 soc: nxp: k6x: Add CAN support
  • 06a37357 x86_64: minimally preparing for enabling newlib

Bluetooth (89):

  • c5c87c38 Revert “Bluetooth: controller: Disable controller privacy feature”
  • b928cef6 Bluetooth: controller: split: Port h/w privacy feature
  • 65b3f17a Bluetooth: controller: Fix initialization of rl_idx and rpa_gen
  • 6db47769 Bluetooth: controller: Fix pdu being overwritten while in use
  • cecd7f8d Bluetooth: controller: Copy the connect_ind into node_rx
  • 9e96df39 Bluetooth: controller: Fix compilation without broadcaster or observer
  • 34758e83 Bluetooth: controller: Fix rx_ftr and extra overlapping memory
  • edea2f08 Bluetooth: extending API for OOB pairing
  • e4409d5d Bluetooth: smp: adding LE SC OOB support for peripheral side
  • 1c33d90f Bluetooth: controller: split: Refactor if defines in lll_adv.c
  • 67de7ec8 Bluetooth: controller: split: Refactor if defines in lll_scan.c
  • 8de64fcb Bluetooth: controller: split: Fix shell app regression
  • a3bea887 Bluetooth: L2CAP: Move fixed channels to its own section in ROM
  • b65fe627 Bluetooth: Add possibility to pass a user_data to conn_tx_cb_t
  • d8f20fe1 Bluetooth: L2CAP: Add sent callback
  • 74135b33 Bluetooth: shell: Add sent callback to L2CAP ops
  • 270e8342 Bluetooth: L2CAP: Move Kconfig option to its own it own file
  • c904a45d Bluetooth: L2CAP: Add callback to notify status
  • f8f6e7e1 Bluetooth: shell: Print L2CAP channel status
  • c8be3e81 Bluetooth: host: Fix bt_keys_get_addr()
  • 8844b7f5 Bluetooth: controller: Enable use of user defined protocols
  • eb73a32b Bluetooth: controller: Moved advanced settings in Kconfig
  • 1d367347 Bluetooth: gatt: Reuse existing handles from a previously added service
  • a5c07aa7 Bluetooth: GATT: Add bt_gatt_foreach_attr_type
  • e6ef5396 Bluetooth: GATT: Make use of bt_gatt_foreach_attr_type on bt_gatt_notify
  • 9bf61dac Bluetooth: shell: Make use of bt_gatt_foreach_attr_type
  • 648a53d5 Bluetooth: GATT: Add support to notify by UUID
  • 8a7615f4 Bluetooth: conn: Defer bt_conn_tx callback to system wq
  • 36249723 Bluetooth: GATT: Disable flow control if running with POSIX_ARCH
  • dcf253a1 Bluetooth: GATT: Document the context in which callbacks are run
  • 93dfa640 Bluetooth: Shell: Fix having gatt unregister twice
  • 2692f2e6 Bluetooth: Shell: Add gatt notify command
  • a2c84ecf Bluetooth: Fix building of broadcaster or observer only
  • 2699d05e Bluetooth: Fix BT_ATT_ENFORCE_FLOW
  • 82497eca Bluetooth: Mesh: Fix missing implementation of Proxy SAR timeout
  • e182d75e Bluetooth: host: Fix gatt indicate when conn is NULL
  • d244ee87 Bluetooth: shell: Fix disconnect command argument count
  • 79cb6157 Bluetooth: controller: split: Port Enc setup to be queueable
  • aec04a02 Bluetooth: GATT: Fix using invalid handle
  • 912e117e Bluetooth: Controller: Test for user extensions
  • b11a0d35 Bluetooth: controller: split: Add internal ull_update_mark func
  • 23a6de5d Bluetooth: controller: split: Port slave conn update assert fix
  • 31695565 Bluetooth: controller: split: Fix tx_ack mfifo count
  • 8ba5b73e Bluetooth: GATT: Fix assuming writes to CCC will always contain 2 bytes
  • 3cf304fd Bluetooth: controller: split: Add ULL/LLL architecture assert checks
  • 5c6e09b1 Bluetooth: Mesh: LPN: Clear sent_req on failure
  • f6665c81 Bluetooth: gatt: Fix infinite read_by_uuid procedure
  • 4866fa9e Bluetooth: Make RSSI value available to mesh applications
  • 1c84d7c5 Bluetooth: Change from bitfields to normal types
  • e8d9609c Bluetooth: GATT: Fix bt_gatt_foreach_attr_type
  • ada05eaa Bluetooth: shell: Add number of matches to gatt show-db
  • f5d2d997 Bluetooth: controller: Fix scan request when advertising directed
  • 8a92818c bluetooth: controller: Revised ticker for improved conflict resolution
  • e61c5b36 Bluetooth: L2CAP: Fix inverting of SCID and DCID on disconnect
  • dd3e8241 Bluetooth: controller: split: Port random slave event backoff
  • 802718a7 Bluetooth: controller: BT_CTLR_USER_EXT depends on BT_LL_SW_SPLIT
  • ec89ae6f Bluetooth: ATT: Queue buffers on bt_att_send
  • a788ce23 Bluetooth: ATT: Fix unbalanced use of k_sem_give
  • 4396dc9c Bluetooth: Simplify bt_gatt_notify_cb() API
  • db7b9a98 Bluetooth: Make it safe to allocate buffers from TX callback
  • 3e56c2cf Bluetooth: controller: split: Fix buffer leak on disconnect
  • b34db7fb bluetooth: controller: Reverted revised ticker pending redesign
  • 17cd1966 Bluetooth: Increase BT_BUF_USER_DATA_MIN to 8
  • a16d5131 Bluetooth: Remove unnecessary HCI command data array
  • 72e80104 Bluetooth: Remove unused bt_hci_get_cmd_opcode() function
  • 4e89d294 Bluetooth: Fix expiring RPA when different local identities are used
  • 14537fee bluetooth: controller: Moved ull_entropy_get to LLL
  • eb8abda6 Bluetooth: GATT: Fix bt_gatt_discovery with BT_GATT_DISCOVER_DESCRIPTOR
  • 3408bfe2 Bluetooth: shell: gatt: Add discover command
  • 5846a36e Bluetooth: hci_prop_evt: Don’t set NO_QEMU_SERIAL_BT_SERVER
  • 72b05f3e Bluetooth: tests: Add tests for UUID APIs
  • 2dc2d9cf Bluetooth: tests: Add tests for L2CAP
  • 4e6e2e3e Bluetooth: tests: Add tests for GATT
  • 4857cb85 Bluetooth: Mesh: Fix segmented message RPL behavior
  • 587c35fa Bluetooth: gatt: avoid assumptions about characteristic handles
  • 42d33598 Bluetooth: central_hr: use new API to get value handle
  • 3b3bbc1e Bluetooth: hci_uart: Use DT for the hci_uart UART
  • d4083b66 Bluetooth: hci_uart: Assert if device is NULL
  • 46ea1df2 Bluetooth: Fix not using log_strdup() for bt_uuid_str()
  • 4fe004ad Bluetooth: controller: Fix handling zero length L2CAP start frame
  • 8de784a0 Bluetooth: Mesh: Fix missing protocol error timeout
  • d39fbf5e Bluetooth: Mesh: Fix Public Key mismatch error handling
  • 8d9a65c2 Bluetooth: Mesh: Rename reset_link() to reset_adv_link()
  • 60f47c2d Bluetooth: SMP: Make public key handling more robust
  • d6c34c46 Bluetooth: Fix public key callback management
  • 10274718 Bluetooth: Mesh: Generate new public key for each provisioning session
  • c4e22510 Bluetooth: Mesh: Fix rejecting invalid remote public key
  • d57a7b51 Bluetooth: Mesh: Fix provisioning send error handling
  • a438e714 Bluetooth: controller: Add PA/LNA support on NRF_P1 GPIO pins

Boards (60):

  • 4770b1eb boards: arm: twr_ke18f: add I2C support
  • 8feaa27c boards: disco_l475_iot1: create .dtsi connector file
  • b925e4c0 boards: rv32m1_vega: add Arduino header information
  • b9cf58d9 boards: cc26x2r1_launchxl: enable support for SPI
  • d82febd2 boards: cc1352r1_launchxl: enable support for SPI
  • 2099658d boards/arm/stm32: fix USB pinmux
  • bce16753 boards: mec15xxevb_assy6853: Use the pinmux api
  • 2e2a2d2d boards: stm32f7: Remove DTCM from sram0
  • 58decac9 boards: twr_ke18f: list hwinfo as supported feature
  • 951a82d0 board: nucleo_f429zi: add partitions to support mcuboot
  • eb97fea7 boards: nucleo_wb55rg: configure LPUART
  • d714f640 boards: intel_s1000_crb: Host interface config
  • 8075de7b boards: intel_s1000_crb: Image download scripts
  • 925183cb boards/arm/olimex_stm32_e407: enable USB
  • f27c8c00 96b_nitrogen: Increase size of boot partition.
  • 6fa058c9 boards: nrf52840_papyr: support nrfjprog flash runner
  • be4c6ddd boards: arm: particle_*: enable PCB antenna on startup
  • 46d3e86e boards: rv32m1_vega_ri5cy: set shell UART in DTS
  • 8b402602 boards/riscv32: Add support for the HiFive1 Rev B
  • 6cf806ac boards: cc1352r1_launchxl / cc26x2r1_launchxl: enable ROM bootloader
  • 89d81ab0 boards/hifive1: Add copyright and license to dts
  • 0382f08f boards: arm: twr_ke18f: add SPI support
  • b1558bba boards: frdm_k64f: button_1 has no callback when button is released
  • c5aa535c boards/up_squared: soc/apollo_lake: devicetree default to status=”ok”
  • 2b01e060 boards/up_squared: soc/apollo_lake: enable UARTs per board, not SoC
  • 0fcc4849 boards/up_squared: soc/apollo_lake: I2C driver selection at SoC
  • d3601f0d boards: nucleo_wb55rg: Configure HCI driver
  • 25669812 boards: nucleo_wb55rg: Configure flash partitions
  • 219fa3c1 boards: twr_ke18f: configure SPI CS pins as GPIO if not used for SPI
  • 34b05164 boards: riscv32: rv32m1_vega: enable MCUboot for ri5cy core
  • d403cac1 boards: lpcxpresso55s69 initalization
  • 69c01d11 boards/x86/gpmrb: add Gordon Peak MRB board
  • 57728ffb boards/x86: scripts: build_grub.sh to use grub-2.04-rc1-17-g8e8723a6b
  • bceaed67 simulation: ARC EM in nSIM to use nsim_em.props
  • b1dcf05c board/nsim: Make it CPU-family independent
  • 79716504 board/nsim: Move CPU selection in defconfigs
  • c5663caf board/nsim: Refactor device tree description
  • 35d4e623 boards: allow cmake-time overrides of all runners
  • 3df5ae68 boards: nucleo_wb55rg: Enable I2C
  • 5d57edd2 boards: nucleo_wb55rg: add I2C doc
  • ac429421 boards: arm: twr_ke18f: add ADC support
  • f3611fdd boards/x86_jailhouse: remove support for Jailhouse hypervisor
  • e1de4cf6 boards: Set pinmux.c compilation under switch CONFIG_PINMUX
  • c2c28cf3 board: add call to zephyr_library() for stm32mp157c_dk2
  • baa8e61e board: use ${ZEPHYR_BASE} instead of ${PROJECT_SOURCE_DIR}
  • 430d9edd boards: nrf52_sparkfun: fix board.cmake
  • d47df7f7 boards: mimxrt1064_evk: Enable USB device controller 1
  • 1be3da29 boards: Change to new STM32L496XX symbol
  • 92106053 boards: stm32f469i_disco: add more leds to board
  • 49df0b10 boards: arm: Add support for 96Boards Meerkat96 board
  • d9d6b59e boards: nucleo_wb55rg: Enable flash and debug with pyocd
  • 955cac61 boards: galileo: Fix PINMUX_FUNC_D for io_pin 9.
  • 2ee674fe board: mps2_an385: Remove board.h
  • 348ef0f2 boards: twr_ke18f: enable CAN controller
  • ca491082 boards/x86/quark_d2000_crb: drop support for Quark D2000 dev board
  • eeb32641 boards: shields: x_nucleo_iks01a2: doc: update dead URL link
  • 9ad071cd boards: arm: Add 96Boards Avenger96 board support
  • 2192f1d0 boards: arm: stm32mp157c_dk2: Add Arduino R3 connector definition
  • 59460286 boards: frdm-k64f: Enable CAN support
  • c5e58203 boards/x86/up_squared: default to new local APIC timer

Build (35):

  • b73790b6 cmake: Fix path handling for ZEPHYR_BASE
  • d1b4da96 extensions.cmake: don’t leak absolute paths in snippets-*.ld comment
  • 2ff1e56f qmsi: set type to boolean when selecting QMSI
  • 7b3dc920 linker: add no-flash system support
  • 658f6bc7 kconfig: enclose module Kconfigs into a menu
  • 3c2e43a1 cmake: build modules under /modules
  • 28bb9750 cmake: Allow import_kconfig() to return a list of the variables it sets
  • 42f9e0c6 linker: Move sgstubs section to the very end and fix for nrf91
  • 6cfc1352 menuconfig: Small Space/Enter improvement + fix for obscure bug
  • a1c3cc66 guiconfig: Add a graphical configuration interface
  • c6ebfad7 include/arch/arm: linker.ld: Add shared memory sections definitions
  • e82a9e9a compiler: no warnings on address-of-packed-member
  • deb7ff52 cmake: no-address-of-packed-member is not supported in older compilers
  • 9f851cc2 cmake: delete obsolete deprecation checks
  • 1717332c cmake: add helpers for setting board runners
  • e36e544c genrest: Mention that dependencies are only propagated to ‘depends on’
  • 9bd9b758 Kconfig: introduce CONFIG_64BIT
  • 8e2b9b4a sdk: add support for 0.10.1 and remove 0.9.5
  • d3d33948 cmake: warn if inconsistency between CMAKE_SOURCE_DIR and ZEPHYR_BASE
  • faa72b70 cmake: Toolchain abstraction: Introducing toolchain_cc_freestanding
  • 4ddbc009 cmake: Toolchain abstraction: Introducing macro toolchain_cc_imacros
  • e34ed7c8 cmake: Toolchain abstraction: Introducing macro toolchain_cc_nocommon
  • 4052bac9 cmake: Introduce toolchain_ld_link_elf to abstract linker invocation
  • 6331dae6 cmake: Toolchain abstraction: Introducing macro toolchain_cc_cstd_flag
  • 0370c9b7 cmake: stop destroying intermediate link maps like zephyr_prebuilt.map
  • f67dcdbd CMakeLists.txt: -fmacro-prefix-map=${CMAKE_SOURCE_DIR}=CMAKE_SOURCE_DIR
  • 83723109 cmake: silence “WARNING: ASSERTs enabled” when CONFIG_TEST is true
  • 6f98db61 generated/cfb_font_dice.h: don’t leak absolute paths in comment
  • 28669261 Kconfig: Introducing ARCH_CHOICE symbol for Architecture choice group
  • a570b402 genrest: De-spam docs by skipping direct deps. in more places
  • 769cfab6 cmake: Set NO_QEMU_SERIAL_BT_SERVER when CONFIG_BT_NO_DRIVER is set
  • f57ba2d3 cmake: toolchain_cc_imacros: don’t use space separated arguments
  • 725abdf4 gen_app_partitions.py: make generated/app_smem_*.ld files deterministic
  • 4ae1f294 cmake: bump min SDK version 0.10.1
  • 1c5fa6a1 cmake: use sdk-ng built toolchain for x86_64

Continuous Integration (8):

  • 3085ce07 gitlint: match max title length restriction with checkpatch
  • 4afcc0f8 sanitycheck: CONFIG_TEST_USERSPACE / userspace tag cleanup
  • eaf994a7 ci: move to new docker with new SDK
  • b58aa20e ci: skip handling coverage data
  • 49b22d4f sanitycheck: report tests that never build/run
  • 5efdd6a5 sanitycheck harness: Correct ordered regex handling
  • cbfba621 ci: increase sleep time between sanitycheck runs
  • 35dc9639 sanitycheck: show handler_time in -v output (qemu 2.032s)

Cryptography (1):

  • 6e27d6d3 mbedtls: move to external module

Debugging (1):

  • b83f99a1 debug: tracing: Fix tracing hooks

Device Tree (47):

  • 18ab73d0 dts: nxp: nxp_rt: Fix unit-address for usb node
  • 7713c855 dts: add CC13xx / CC26xx SPI bindings and nodes
  • d94c0d39 dts: stm32f7: Remove DTCM from sram0
  • 7a246c30 dts: posix: Add DTS support for POSIX architecture
  • 906f3789 dts: nxp: nxp_rt: add usbd1 for rt1050 and works as default usb.
  • 190c43ee dts: misc: add SKY13351 SPDT switch description
  • 34ad4f01 dts/i2c: Remove id field from sifive,i2c0
  • 86643ece dts : bindings : sensor : bme680 Added support for BME680
  • 9ce27ff1 dts: stm32wb: Delete useless sram definitions
  • 79edb8b6 dts: stm32wb: Limit flash size to 812K
  • 01b22900 dts: riscv32: update flash controller compatibility property
  • b342258b dts: LPC55S69 initial device tree
  • 7168d4c2 dts/bindings: Fix types in solomon,ssd1673fb.yaml
  • 125b231e dts/bindings: Fix type in spi-device.yaml
  • 53dbe88c dts/bindings: Fix nxp,kinetis-ptp.yaml
  • ddcd4d5a dts: wb: enable I2C
  • 5c53ad43 dts/bindings: Remove generation from pinmux properties
  • 1c55882a dts/extract: Remove bogus pinctrl generation
  • 48100df8 dts/bindings: Move common properties into a base.yaml
  • 02d49df5 dts: intel_s1000: add low power sram as sram1
  • 6e2631c4 dts: bindings: Fix missing “zephyr” vendor name
  • 29a66183 dts/bindings: Update soc-nv-flash to use base.yaml
  • c450e75c dts/binding: Cleanup a few new bindings for base.yaml
  • a2693975 dts: Convert from DT_ to DT_INST…
  • eb00774c dts/bindings: Rename stringlist to string-array
  • b28abf9e dts/binding: Update compatible type in base.yaml
  • a84ded74 dts: Replace status = “ok” with status = “okay”
  • d4a0c3a2 dts: Convert new/missed DT_ to DT_INST…
  • 65892867 dts/bindings: Add uint8-array type for ethernet mac address
  • aa8901c3 dts: xtensa: Fix compatible for xtensa lx6
  • 6758e065 dts/bindings: Cleanup phy bindings
  • b023fbf9 dts/bindings: Remove pinctrl from bindings
  • e83b8c31 dts/bindings: Fix openisa,rv32m1-intmux binding
  • 0bed1007 dts: cleanup missing #{address,size}-cells
  • de3d8082 dts/bindings: Add binding for riscv,cpu-intc
  • 6a79bf25 dts/extract: Add ability to mark aliases as deprecated
  • 7b638bf3 dts/extract: Fix IRQ alias define generation
  • fe2062b3 dts/extract: deprecate old IRQ alias define generation
  • bf0f6d91 dts: Add concept of sub-nodes to YAML and generator
  • dded1d07 dts: can: allow individual specification of prop seg and phase seg1 quanta
  • 593d628e dts/extract: Remove ‘use-prop-name’ from cell and controller handling
  • 12faf11f dts: arm: st: mp1: Add missing uart4 and uart7 pinmux nodes
  • 3ff4e52c dts: pinctrl: stm32l4: Add alternative USART3 pair
  • ae781bd9 dts: Restructure xtensa dts directory
  • 3748085d dts: intel_s1000: Move core_intc node under soc node
  • 2c499a73 dts/bindings: remove ‘use-prop-name’ from bindings
  • a614a026 dts: Rename DT_.*_GPIO_* to DT_.*_GPIOS_*

Documentation (45):

  • 7c8bcf07 doc: kconfig: Clarify that ‘depends on’ works for string/int/hex
  • 3e69a0e4 doc: kconfig: Explain the ‘menuconfig’ keyword and good uses for it
  • e5cca102 doc: kconfig: Encourage dropping ‘Enable …’ from most prompts
  • fde86da6 doc: kconfig: Fix typo in documentation for ‘optional’ on choices
  • f5f1b22c doc: CMake: Locate Python executable before processing modules
  • 4d2b7f61 doc: usb: Remove old API documentation
  • dc4a3592 doc: Fix typos in flashmap.h
  • 0a6cb2ee doc: intel_s1000: image download from Linux host
  • cfa08fbb doc: fix devicetree doc formatting
  • baf38e9c doc: Add guiconfig documentation
  • a658cf15 doc: lpclink2 firmware reference
  • f74cebba doc/reference/storage/settings: storage behavior description
  • b9ce0e70 doc: fix malformed label in shields doc
  • 9bcf6298 doc: fix typo in gpmrb doc
  • 6ecbe713 doc: redirect old board pages to new location
  • aa9b602e doc: add google analytics tracking to docs
  • b8e7d438 doc: remove .html from redirect entries
  • 69de620e doc: Remove API labels
  • 9354bb5a doc: fix coverage report documentation
  • 00c41ea8 doc: fix doxygen comments with embedded reST
  • 240c5163 doc: generate documentation of ifdef’ed APIs
  • 5ec6a537 doc: fix path to gdb in documentation
  • d281e125 doc: kernel: rework doc section of shared FP registers mode
  • efb47ace doc: samples: cleanup board reference and layout
  • b5879094 doc: periodic updates to getting started guide
  • 5edb6d5d doc: unify documentation on setting environment variables
  • a506baf7 doc: clear up qemu + zephyr sdk interaction
  • c98acc2a getting_started: changes for custom toolchains
  • ff443c1d docs: update west sign docs
  • 2670cd4c doc: extensions: Refactor cmake build instructions generation
  • b4766436 doc: Cleanup references to cmake
  • 93e643c5 doc: extensions: Default to ‘all’ in ‘tool’
  • 2aebc980 doc: fix Kconfig misspellings
  • 6b2cd292 doc: fix misspellings in documentation
  • db60d491 doc: fix broken references to zephyr files
  • f2cb20c7 docs: fix misspelling across the tree
  • 1b44f7ec doc: intel_s1000: install the license key manually
  • a3b363e1 doc: shell: document Ctrl+N and Ctrl+P meta-keys
  • 8de9cc70 doc: use @rst/@endrst for ReST in headers
  • 3022fcec doc: how to unset Clear Linux’ CFLAGS and CXXFLAGS
  • c790d5b4 Apply David’s English corrections from code review
  • f91d8386 doc: fix build command on Windows for VEGAboard
  • 3a16001c doc: simplify doc redirection messages
  • b30b52ab doc: fix doxygen INPUT path; brand html output
  • 033706c2 Doc: Use SDK 0.10.1 instead of 0.10.0.

Drivers (133):

  • ad356c45 driver/i2c: stm32: Remove prompt on IP version symbols
  • e72e4573 eth: eth_mcux: Register mDNS multicast address
  • fefc6288 drivers: flash: flash_simulator: added max erase calls param
  • 42b3bd91 drivers: flash: flash_simulator: added max len param
  • bc4825d6 drivers: rtc: stm32: correct tm_mon conversion
  • 89923134 drivers: counter: Add flags to counter_config_info structure
  • f2eea2ef drivers: add CC13xx / CC26xx SPI driver
  • 69921763 include/uart.h: Clarify async receive event length
  • 3d180991 drivers: pinmux: Pinmux driver for Microchip SOCs
  • 819e749c usb: move the request handler buffer to the USB device code
  • 327f6107 usb: merge all request handler buffers
  • 24142d07 usb: Set correct default buffer size for RNDIS
  • e059d5aa usb: simplify request handlers code
  • b3355c79 usb: device: Remove unused variable
  • 3880a423 usb: Align legacy and composite interface
  • a68d4048 usb: dfu: Remove old composite configuration
  • 28f2dc6c usb: usb_device: fix handlers call for secondary descriptor
  • fad34eb0 drivers: counter: mcux_rtc: allow setting a new alarm from the callback
  • 617c6fdb drivers/flash/flash_simulator: Allow unaligned read
  • a4f3e628 drivers: counter: Add SAM0 basic counter support
  • 6d8c6363 adc: explicitly cast (const void *) to (const adc_driver_api *)
  • 88964b99 drivers: flash: Added native POSIX flash driver
  • 9367161a include: sensor: Add position change channel
  • 938a8e14 include: sensor: Allow sensor private attr/chan/trig
  • 52a4e4d8 drivers: serial: sifive: fix configuration of rxcnt/txcnt
  • 8ae17cb2 drivers: i2c: i2c_esp32: fix configuring speed
  • d9e4512d drivers: flash: w25q: erase operations must be erase-size aligned
  • f94113d0 rand32_entropy_device.c: remove atomic_t misuse
  • 05351dbf drivers: hwinfo: Add support for ESP32
  • 105fccfb drivers: usb_dc_nrfx: cleanup logging and fix style
  • 7ab3bc57 display: ili9340: Make reset gpio definition optional.
  • 1541d5f8 display: ili9340: Add RGB565 pixel format support.
  • e9343998 display: ili9340: Adafruit LCD 1480 driver supports RGB565 pixel format.
  • 0744adf4 display: ili9340: Add support of Seeed 2.8″ TFT Touch Shield v2.0.
  • a58a852e drivers: added break in function stm32_clock_control_get_subsys_rate
  • 2af4c157 drivers: litex_timer: Do not hard code tick rate
  • a9c99a60 drivers: console: Add support for log level option
  • d6c61513 drivers: adc: add API to support calibration
  • 64e02021 drivers: dma: sam0: Implement get_status API
  • 55bb37e3 drivers: serial: sam0: Implement DMA async API
  • a11ebbd4 drivers/uart: Remove DTS fixups for SiFive UART
  • 3093f5cd drivers/gpio: Remove DTS fixups for SiFive GPIO
  • 627e27a2 drivers/plic: Remove DTS fixups for RISC-V PLIC
  • 44b19bc6 include: added new sensor channel SENSOR_CHAN_GAS_RES
  • b05d5ffc driver: sensor: bme680 added support
  • c88c9194 drivers/ieee802154: Fix KW41Z driver fault
  • 629805d8 drivers/pcie: do not verify configured IRQ
  • 3d9416bf drivers/bluetooth/hci: Implement HCI driver for stm32wb
  • d777413b drivers/flash: stm32wb: Add driver for stm32wb
  • 51033a58 drivers/flash: stm32wb: Add HSEM
  • cc2e176b driver: flash: add flash driver for the RV32M1 SOC
  • 6a6264e4 drivers: stm32: Fix disabling EXTI subsystem
  • 1b28cb0f drivers/wdt: Rename STM32 IWDG files to follow naming rules
  • 5a2c6d33 drivers/wdt: Rename CMSDK driver to follow naming rules
  • df2bb464 usb: console: Initialize USB console after USB Device stack
  • 26b514de usb: usb_descriptor: Trivial syntax correct
  • 4d89ff12 drivers/uart: introduce SERIAL_SUPPORT_ASYNC option
  • 3bbd1028 drivers: apds9960: allow to disable Ambient Light Sense
  • 67ae5084 drivers: apds9960: make ALS and proximity gain configurable
  • df3796a7 drivers: apds9960: make proximity pulse length configurable
  • 2204193b drivers: apds9960: allow additional LED current configuration
  • 0a9d547c drivers: i2c: enable I2C on STM32WB
  • 552175ed drivers: pinmux: enable I2C PINs on STM32WB
  • 683ca776 drivers: adc: mcux_adc12: add driver for the NXP ADC12 module
  • aaecce4b drivers/loapic_intr.c: clean up local APIC access
  • e9f6cb25 drivers/timer/loapic_timer.c: migrate to new local APIC accessors
  • 9a1e9273 drivers/interrupt_controller/loapic_intr.c: enable x2APIC support
  • ea1e1910 drivers/pcie/shell: add basic probe for MSI-X capability
  • 37c13eec drivers/clock_control: stm32: Factorize series specific code
  • 4a3793f0 drivers/clock_control: stm32: Split Kconfig file
  • abbd952d drivers: Add counter driver (RTCC) for SiLabs Gecko SoCs
  • 4a38cae2 sensors: renamed hdc1008 driver into ti_hdc
  • 080e71c9 sensors: ti_hdc driver wait conversion support
  • e7dbc1d7 sensors: ti_hdc now supports 1050 versions
  • 8617df1e sensors: ti_hdc simplified ti_hdc_channel_get
  • edbf173f drivers/interrupt_controller: stm32: Rework stm32_exti_enable
  • 959c2d52 drivers/interrupt_controller: stm32: Remove unused code
  • a32de021 drivers: interupt_controller: stm32 Move exti_irq_table to const
  • dca8a62a drivers/uart_rv32m1_lpuart: Fix DT define usage
  • afb4e4ff drivers: spi hci: Add spi dedicated rx thread
  • a7a5e497 drivers/clock_control: stm32: Leftover from driver clean up
  • 591b0e1c drivers: counter: Add helper macros for logging
  • 47d7146c Drivers: led: lp5562: Add delay when writing to enable register
  • 7428f9c0 drivers: usb: nxp: Fix board freeze with various USB classes
  • d79bbc6d usb: netusb: cdc_eem: Fix Interface select
  • 4fe7f691 drivers: usb: nxp: Add cache management
  • d41f01d4 drivers: Define COUNTER_LOG_LEVEL using template
  • 9d11900d usb: enforce byte alignment on USB records
  • ef26b7ad include: Removing legacy left-overs in wdt.h API header
  • 7245e433 drivers/wdt: Fixing tiny style issues in sam0 driver
  • f84e6517 drivers: pinmux: stm32l4: Add extra pin functions
  • a5137c81 include/drivers/system_timer.h: Clean up docs
  • 09821e54 drivers: pinmux: stm32l4: Fix CONFIG_SOC_STM32L496XX references
  • 67f0550a drivers: adc: mcux_adc12: fix compilation
  • 4f714d38 drivers/i2c: Add missing HAS_DTS_I2C to sbcon
  • 03259dba drivers/i2c: Add missing HAS_DTS_I2C to nios
  • 1d61bef3 usb: drivers: usb_dc_stm32: Fix coverity issue
  • d385db08 usb: drivers: usb_dc_stm32: Fix coverity issue
  • 783a43e2 drivers/counter/counter_cmos.c: implement counter with PC AT “CMOS” RTC
  • dba65ce4 drivers: Update DT IRQ alias defines
  • a52df691 drivers/i2c_rv32m1_lpi2c: Remove accidently added debug code
  • 58e05ddc drivers: uart for LPC devices interrupt enabled
  • 4c27e5b7 drivers: sam0: Fix deprecated IRQ macro usage
  • 59786b43 drivers: sam0: Fix deprecated instance macro usage
  • f20d2b6f drivers: rv32m1: remove bogus IRQ_PRI related defines
  • 0a99f53c sensor: lis2dh: Use general DT_BUS define.
  • 64a9a045 drivers: can: add support for two CAN controller instances
  • 652fdfe3 drivers: can: add support for the NXP Kinetis FlexCAN controller
  • 13847a31 drivers: clock_control: mcux_scg: add NXP MCUX SCG clock control driver
  • 69406e0f counter: Update counter API in order to provide more flexibility
  • c6c9dcf2 drivers/adc/adc_intel_quark_d2000: remove Quark D2000 ADC driver
  • 3dc7c7a6 drivers/interrupt_controller/mvic.c: remove MVIC interrupt controller
  • 05cdd285 drivers: nrf: Add power management to nrf TWIM peripheral.
  • 5867c369 drivers: nrf: Add power management to nrf TWI driver.
  • e0943cfa drivers: clock_control: API extension proposal
  • e8a182ce drivers: uart_console: include correct path
  • 7635cf80 drivers: uart_console: do not include arch/cpu.h directly
  • 1034c5e3 drivers: uart_console: removed commented code
  • 1c6c657d drivers: pinmux: do not include local pinmux.h
  • 43a49335 include: move interrupt controller headers to interrupt_controller/
  • 68c389c1 include: move system timer headers to include/drivers/timer/
  • cdc78108 drivers: serial: ns16550: move header from /include/
  • 158d921c drivers: modem: modem_receiver.h: move header from /include/
  • 4d05cdfa drivers: pinmux: stm32mp1: Add missing UART4 and UART7 pinctrl definitions
  • ab4f2806 driver/sensor: lis2dw12: make use of STdC definitions
  • f5b22764 drivers: can: mcux_flexcan: Add support for MK64
  • 03679136 usb: kconfig: nrf52840: Enable REMOTE_WAKEUP option only when needed
  • 1b3514a0 Revert “drivers: usb: usb_dc_nrfx: Set cfg.en to false on Reset”
  • 6e75d644 drivers: usb_dc_nrfx: Add pre-transfer checks if endpoint is enabled
  • abaeaed2 usb: sort usb config data by section
  • 7bf0124a drivers: sensor: Update DT symbols in qdec_nrfx driver
  • c17c2987 drivers/timer/apic_timer.c: new local APIC timer for TICKLESS_KERNEL
  • 0eee0a3c drivers: apic_timer: fix include of system_timer.h

External (15):

  • 1091b5b4 ext: mbedtls: Enable easy integration with POSIX API
  • ccbfd553 ext: segger: update to SystemView v2.52h
  • e58df2c3 ext/hal/st: stm32cube Kconfig fix
  • fe0a50f8 ext: move libmetal to an external module
  • b95e4232 ext: move open-amp to an external module
  • 799011c7 ext: hal: nxp: mcux_lpspi: add support for NXP Kinetis LPSPI modules
  • c7c02fce ext: hal: cmsis: Update ARM CMSIS headers to version 5.5.1
  • a2d66d7c ext/hal/st/lib: stm32wb hci shared ram driver
  • a0e81717 ext/hal: stm32wb: Configure M0 FW in LL only
  • 425da7e8 ext: LPC54114 fsl_power and fsl_reset moved to device
  • 300f10cd ext: import_mcux_sdk.py script changes
  • 09fdce9a ext: update nxp mcux lpc sdk
  • faa398f0 ext: hal: st: move to modules
  • 7808b6e9 ext : hal : microchip Header updates for MEC1501
  • 141bc8f8 ext: hal: nordic: Update DT symbols in nrfx config file

Firmware Update (2):

  • b1e1774c dfu/boot: double swap on interrupted revert bugfix adaptation
  • f51e3c29 dfu/boot: make swap_type optional

Kernel (33):

  • 5a709f5d kernel: init: use K_THREAD_STACK_SIZEOF when switching to main thread
  • 75836965 kernel: remove redundant #ifdef CONFIG_MULTITHREADING
  • df0b49cd kernel/init.c: remove needless casts
  • 0b5d9f71 thread_cpu: make it 64-bit compatible
  • 84473630 kernel/thread_abort: Swap, don’t reschedule when aborting _current
  • 92ce7670 kernel/fatal: Clean up z_except_reason() fallback implementation
  • 312b43f1 kernel/sched: Don’t reschedule inside a nested lock
  • a04a2ca7 k_fifo/K_lifo macros: avoid unnecessary casts
  • a12f2d66 kernel/smp: Rename smp_init()
  • 7daa5451 DEVICE_DEFINE(): properly align struct device instances
  • 8bb1f2a9 linker generated list: explicit alignment on data definitions
  • b1d3742c linker generated list: introduce Z_STRUCT_SECTION_ITERABLE()
  • aa922885 linker generated list: provide an iterator to simplify list access
  • a6cb8b06 kernel: introduce k_float_disable system call
  • 3d51f7c2 k_stack: make it 64-bit compatible
  • 12126044 kernel: app_memdomain: remove unused defines
  • fe228a81 kernel: init: exclude some funcs from coverage
  • 8e053330 kernel: init: fix coverage gap
  • c5164f32 kernel: init: exclude unreachable code
  • 3f974243 kernel: allow k_sleep(K_FOREVER)
  • 676b1ae9 kernel: idle: exclude no-op funcs from coverage
  • d4df6bad BOOT_BANNER: show KERNEL_VERSION and BUILD_VERSION differently
  • bc30f4f0 mem_slab: rationalize block alignment assertion
  • 46cd5a03 mem_slab: enforce minimum alignment on statically allocated slabs
  • 465b2cf3 mempool: fix corruption of the free block bitmap and beyond
  • 5611e923 kernel: add futex support
  • aade2b5a kernel: offsets: exclude from coverage
  • cf5c22d8 sflist: SYS_SFLIST_FLAGS_MASK must be a long not an int
  • 1140bd09 mempool: properly use the inline free block bitmap
  • 744df1ef mempool: don’t over-size the free block bitmap
  • d4b60d69 malloc: no longer need to round mempool’s max_sz
  • 39c84514 kernel: mem_domain: fix warning in ASSERT expression
  • 659fa0d5 lifo/fifo: first word is not always first 4 bytes

Libraries (17):

  • 539d16fc gui: Corrected RGB888 pointer in LVGL write function
  • 6173fe7a ring_buffer: Add functions for getting capacity and reseting
  • ca49d6a8 PTHREAD_MUTEX_DEFINE(): don’t store into the _k_mutex section
  • 297ac376 lib: updatehub: Add UpdateHub.io support
  • c5d74ecc lib: updatehub: add suport a CoAPS/DTLS
  • 543de093 lib: updatehub: add support ipv6
  • 4323d381 json: make it 64-bit compatible
  • eeb2e67f time_t: define using a fixed-width type
  • 03170c04 string.c: make it 64-bit compatible
  • a6891e03 prf.c: make it 64-bit compatible
  • c47bf1fa prf.c: implement the ll length modifiers
  • db84a763 lib: os: remove dead code
  • d0490fe9 lib/os/mempool: Fix corruption case with block splitting
  • f32330b2 stdint.h: streamline type definitions
  • 53ec19c3 lib: libc: newlib: define USED_RAM_END_ADDR only where it is needed
  • ff07fc7f lib: libc: fix alignment of HEAP base address for ARM
  • 2a63e342 libc: types: Remove wrong definition
  • 6631e7c6 posix: unistd.h: Add gethostname()

Logging (10):

  • 04a5cee5 logging: Add string duplicates pool profiling
  • ad769e9c Log: Fix build error on Fedora 30
  • a211afb0 logging: Add option to detect missed transient string duplication
  • 6d359df5 logging: use os as a domain for low level system debugging
  • 960041bf logging: Duplicate only strings from rw memory
  • aabe964b logging: Fix log_strdup detection on non-standard messages
  • 0567f161 log facility: make its arguments 64-bit compatible
  • 69879375 log facility: make its records 64-bit compatible
  • 1fd379da log_msg test: rework test_log_std_msg() to better cope with 64-bit builds
  • 70f25eb3 logging: Fix misspelled CONFIG_RISCV32

Maintainers (12):

  • 7d279039 CODEOWNERS: remove ext/fs entry
  • a448bfc0 CODEOWNERS: Adding tests/subsys/shell codeowners
  • 78e35408 CODEOWNERS: Update owners for subsys/mgmt/
  • 09ba365c CODEOWNERS: update file for include/arch/common/
  • e943c274 CODEOWNERS: update due to nickname change
  • 811f0f22 CODEOWNERS: Remove codeowners for /drivers/clock_control/stm32f4
  • 132f02eb CODEOWNERS: Add reviewer for native_posix docs and flash driver
  • 36627605 CODEOWNERS: Clarify behaviour
  • c06a74cd CODEOWNERS: update code-onwers’ list for gen_priv_stacks.py
  • eab115bd codeowners: add reviewer for stm32mp1 SoC
  • 549bd606 CODEOWNERS: remove non-existing files
  • e573970a CODEOWNERS: add / at the end of a directory

Miscellaneous (22):

  • b633e431 shell: add select command
  • 4828dab9 shell: add test for new built-in command
  • 6db7968c latency_measure: Remove commented-out code
  • e85b9315 ROUND_UP/DOWN macros: cast the entire align argument
  • c2cb60f6 shell: Refactor shell_history to use less RW memory
  • c2d38ec2 ARRAY_SIZE(): make it usable on 64-bit systems
  • 58d839bc misc: memory address type conversions
  • 63e0ae0a shell: Fix shell uart not waking up shell on mcumgr data
  • 4c322586 style: add braces around if/while statements
  • 2fb19fcb style: samples/tests: add braces around if/while statements
  • 71260d88 shell: Initialize va_list variables portably.
  • 9f7c2b62 stats: fix Coverity CID :198875
  • a42313d4 requirements.txt: add gcovr
  • 5f5c9a59 INT_TO_POINTER macros: make 64-bit compatible
  • 6311766d pointer-type args: cast appropriately to be 64-bit compatible
  • 2b32059a printk: make it 64-bit compatible
  • eba81c6e yaml: Remove redundant document separators
  • d888cb54 include: misc: macros to perform word/pointer boundary alignment
  • 0d6fabe6 shell: add Ctrl+N and Ctrl+P meta-keys
  • 002bebdf mailmap: Update mailmap with full names and emails
  • ebda8fe1 mailmap: Fix entry needing both name and email replace
  • 61861b6a gitignore: ignore Emacs TAGS file

Modules (18):

  • 89d39364 esp: move HAL to external repo
  • 45868a2d fatfs: move fatfs filesystem to a module
  • 02ed9b19 mcumgr: move to an external module
  • 3cc74cf0 nffs: move to an external module
  • e7db7daa segger: move to an external module
  • 8017c59c modules: move module kconfig to main tree
  • 10ddb62c manifest: update with module state
  • 7ae41802 silabs: move HAL to external repo
  • 0b2bb32c cypress: move HAL to external repo
  • 083617e2 modules: move kconfig into tree
  • fc195392 mcumgr: move Kconfig to main tree
  • 5609115c manifest: update to latest MCUMGR head
  • bf1f1f63 manifest: order modules alphabetically
  • 4fd627c8 manifest: add ci-tools to manifest
  • acfe2e3f manifest: remove out-dated comment
  • d3977996 manifest: move net-tools to tools/net-tools
  • 343f5bae west.yml: update open-amp SHA
  • fe74224e modules/hal_st: Add stmemsc HAL library

Networking (40):

  • 29b55f86 net: shell: Indentation fixes for ping command
  • d13039f8 net: shell: Remove leading underscore from parse_args()
  • ecac10cb net: shell: Refactor help information for ping command
  • 79672d16 net/pkt: Remove useless _reserved attribute
  • 344d4bdc net/arp: No need of 64bits timer precision on ARP requests
  • 79a25a6f net/pkt: Redefine the necessary fifo attribute
  • a8fffca4 net: lwm2m: Remove IPSO objects maximum number of instances limitation.
  • 77062582 net/udp: Computed checksum field should not be 0
  • 274db4f3 net/udp: Accept UDP packet with missing checksum
  • 8b3db460 net: getaddrinfo: Parse numeric IPv4 addresses
  • a46db55d net: lwm2m: fix log_strdup missing errors
  • a5b90a4a net/udp: Check UDP header’s length attribute
  • e9a4ef2b net/udp: Always drop IPv6 UDP packet if checksum field is 0
  • 87462df3 net: sockets: Remove TI conditional from offloaded fcntl implementation
  • 0fb8a917 net: sockets: Make NET_SOCKETS_POSIX_NAMES depend on !POSIX_API
  • 3653e688 net: ethernet: Fix build issue with C++
  • a348c8c6 net: llmnr: Check that UDP header can be accessed
  • c3bb0a6a net: socket: Add SO_PRIORITY support to setsockopt
  • a946b2cc net: make __net_buf_align 64-bit compatible
  • 4f4adae2 net: lib: Fix missing dns subdir include
  • 3189da5c net: mdns_resolver: Fix malformed MDNS response
  • 343bdd3e net: if: Fix null pointer deref when selecting IPv4 address
  • d20c6f96 net: utils: Print pkt address in net_pkt_hexdump()
  • bf0f52dc net: nbr: Set the link address type when saving neighbor data
  • d0d963a8 wifi: eswifi: init net_pkt cursor after net_pkt_write
  • 66214910 net: sockets: can: Add dispatcher
  • 0032f686 net: context: Set local address properly for AF_CAN connections
  • 1e989284 net: shell: Print connection information properly for AF_CAN
  • 7e37fd72 net: connection: The connection logic was not init properly
  • 06b500b6 net: sockets: can: Close the socket cleanly
  • 05cd3420 net: mqtt: add mqtt_readall_publish_payload()
  • 19806a2c net: getaddrinfo: Query both IPv4 and IPv6 if family is AF_UNSPEC
  • 034bccca net: Fix net_pkt_hexdump() to print pkt address properly
  • 3c6c8ed0 gptp: don’t cast pointers to ints
  • def6b14a net: ptp: clock: Create a dummy inline func for net_eth_get_ptp_clock()
  • 11b06fab net: ethernet: Add net_eth_get_ptp_clock_by_index() function
  • 95e8498c net: ptp: Add usermode support to net_eth_get_ptp_clock_by_index()
  • c9aaab74 net: ptp: clock: Add usermode support to ptp_clock_get()
  • b7b9458e wifi: eswifi: add UDP support
  • 70aa3830 net: sntp: Ignore return value from close

Power Management (1):

  • f194982f Power: Fix various spurious LOG_ERR calls

Samples (38):

  • 4bd654d8 samples: net: gptp: Fix compilation instructions
  • de26f76e samples: net: echo_server: Fix usbnet configuration
  • 3d58abf6 samples: usb: webusb: Use new descriptor placement API
  • 1b64e53a samples: usb: webusb: Use Automatic endpoint assignments
  • 953728b2 samples: usb: wpanusb: Refactor sample using new API
  • 3f13079a samples: usb: hid: Fix harness configuration
  • 6ae24574 samples: servo_motor: add HW PWM choice for NRF52 family
  • 280daa39 samples: net: lwm2m: use real temperature values instead of dummy
  • d6176f86 samples: drivers: led_lp3943: Rename log module
  • 3702d1a0 samples: nrf52: power_mgr: Fix build with prj_tickless.conf config
  • 1b3b4612 samples: display: ili9340: Get ILI9340 device by DT label.
  • 72fa9d95 samples: display: ili9340: ST NUCLEO-L476RG config file.
  • 3d2b9946 samples: display: ili9340: Add support of RGB565 pixel format.
  • 591ed267 samples: display: ili9340: Add 2 Arduino shield sample configurations.
  • 992819bc samples: sensor: bme680 added sample code
  • 930a5f8f samples: cmsis philosophers: adjust stack size
  • 4d4cc4dd samples: philosophers: pause before main() exit
  • 10401415 samples: net: echo-server: Ignore the return value of close()
  • b0f40cf4 samples: basic minimal: add nucleo_f429zi, disco_l475_iot1 to whitelist
  • 265b1953 samples: fs: Added FS shell sample
  • 3ae5b655 samples: added sample for ti_hdc
  • 808075f5 sample: ti_hdc: whitelist reel_board and nucleo_l496zg
  • 1cba619e samples: intel_s1000: audio buffers in lpsram
  • 32b89b98 samples: intel_s1000: audio buffers in lpsram
  • 9d5a63b9 samples: intel_s1000: audio buffers in lpsram
  • 51cc6a4f samples: grove_light: remove whitelisting
  • c95b97db samples: spi_fujitsu_fram: remove whitelisting
  • ea44b056 samples: drivers: counter: alarm: Fix compilation for nrf boards
  • b14f4f67 samples: display: ili9340: Document 2 Arduino TFT shield configurations.
  • ae89c223 samples: net: can: Add second RX socket receiver
  • 404ac510 samples: net: socket: can: Close the socket periodically
  • b56cc058 samples/boards/nrf52/power_mgr: Correct test integration
  • 3cea0659 samples/subsys/power/device_pm: Add test harness integration
  • 42d8936f samples/subsys/usb/dfu: Set sanitycheck test to build_only
  • a361d7ca samples: drivers: CAN: add support for twr_ke18f board
  • 4fabc07c samples: drivers: counter: alarm: add nordic boards to the whitelist
  • 8226aa12 samples: out_of_tree_board: remove board.h
  • 7a73bb7e samples: CAN: Add FRDM-K64F defconfig

Scripts (44):

  • 8b9b7e7c scripts: avoid unnecessary ‘west build –force’
  • 4de99994 scripts: west: Add reset-after-load argument to jlink runner
  • bd2919dc runners/jlink: Add –tool-opt option for more args
  • 442df973 scripts/dts: Remove alias defines for labels
  • cc14c40a kconfiglib: Unclutter symbol strings, avoid redundant writes, misc.
  • f46ebc3c kconfig.py: Use messages returned by load_config() and write_config()
  • 49c4b1c3 west: Use find_build_dir in run_common
  • 98980c6b west: build: Configurable build folder format
  • 8718d5c8 scripts: west: improve error message on missing cache
  • 062bd065 scripts/dts: Sort instance IDs by reg addr
  • 01e54a54 scripts/dts: Change DT_<COMPAT>_<INSTANCE>_<PROP> define
  • 9ac4dc66 scripts/dts: generate DT_ALIAS_<ALIAS>_<PROP> defines
  • 045c8095 scripts/dts: Make extract/flash.py easier to read
  • fe91e484 scripts: runners: add __contains__ to BuildConfiguration
  • 3bd07a24 scripts: west sign: make it work again
  • 06c9f8e9 scripts: west sign: code style refactor
  • 33cbba34 scripts: west sign: move hex and bin default locations
  • 2f839da1 scripts: west sign: improve user friendliness
  • d371c54f scripts: west sign: test for input file existence
  • c07267a2 scripts: runners: abstract jlink’s missing program support
  • c24e044c scripts: runners: check for required programs
  • a4afe8c0 scripts: gen_priv_stacks: remove unused variable
  • 7da47c69 include: scripts: fix typos in priv_stacks.ld
  • 84cf9dc6 scripts/sanitycheck: Add –cmake-only option
  • 8a9ca0d8 scripts: Upgrade pyocd for pack support
  • bb359257 scripts/sanitycheck: fix ZEPHYR_BASE subdir check edge case
  • e1f0b61d scripts/dts: Clarify extract/flash.py some more
  • 344737d7 scripts/dts: Treat string-list always as a list
  • 74818bcb scripts/dts: Treat array always as a list
  • 88959e75 scripts: gen_priv_stacks.py: use the right alignment for priv stacks
  • 79b59e82 scripts/dts: Remove ‘use-prop-name’ from clock generation
  • 08a5f9f8 scripts/dts: Add ability to mark cell/ctrl defines as deprecated
  • 95f28eb7 scripts/dts: Remove DT_CHOSEN generation
  • 725e98e3 scripts: fix pyocd runner –flash-opt help
  • 6440514b scripts: west_commands: fix help string
  • d176cc36 scripts: runners: update ZephyrBinaryRunner docstring
  • ddce583c scripts: west_commands: decouple runners pkg from west
  • ec8dbf34 scripts: tweak runner-related command output
  • e6873b8d scripts: tweak west build output
  • f08935fa scripts: west_commands: improve run_common error handling
  • 814bc7ba scripts: remove runner related cruft
  • 41f1f648 west: runners: Guess build folder
  • 8e76e68f west: Update hal_stm32 module to head following cube updates
  • 6ccd026f gen_relocate_app.py: make generated/linker_relocate.ld deterministic

Storage (9):

  • 3fd417a1 subsys/storage/flash_map: Fix returned error codes
  • 974231ee subsys/settings: Add const modifier to the value pointer
  • bc3d01cd fs: implemented unmount function to fatfs
  • b748a54c subsys/settings: Cleanup the initialisation of the subsys
  • 3815ae6f fs: Added API to read mount point
  • 36edf92c subsys/settings: change processing to const char
  • 8ca87082 subsys/settings: Update client modules
  • c20ff115 subsys/settings: Enable handler ROM registration
  • 5f19c816 subsys/settings: Update bluetooth module

Testing (69):

  • 2d48f433 tests/fs/nvs: GC full round test
  • c3ccbbbd tests: kernel: common: add missing userspace tag
  • 302dc987 tests: fs: nvs: moving nvs_clear to setup method
  • cbc2ff66 tests: fs: nvs: unittest with corrupted sector close op
  • 02d6ea0f Revert “tests: drivers: uart: Fix async write abort test”
  • 5d65ee13 tests: drivers: uart: Explicitly test incremental receive length
  • 5970b663 tests: usb: device: Refactor device api test
  • afdbc203 tests: Added native POSIX to flash based tests
  • 4d8941a9 tests: net: getaddrinfo: Add cases for numeric IPv4 addr
  • 93fb6952 tests: subsys: logging: Test for detection of missed log_strdup
  • 4d4cd7e3 test/net: fix PTP clock test code
  • c3c6dfaa tests/net: Fix IPv6 and UDP test as UDP got stricter on checking header
  • 72177da7 latency_measure: Fix bug where the wrong prj.conf file was used
  • 80f8481f tests: subsys: shell: Add shell_history test
  • 0e8517e1 tests: lib: ring_buffer: Test for ring_buf_reset, ring_buf_capacity_get
  • 3555c811 tests: shell: shell_history: Add more tests
  • 13a58775 tests: kernel: userspace: explicitly declare function for the test
  • c8ae05dd tests: flash_map: Configure mpu to allow flash write
  • 82d703de testsuite: coverage: port GCOV linker code to CMake for X86
  • fd3d4156 tests: flash_map: configure MPU to allow flash writes on twr_ke18f
  • 03bbbb91 tests: drivers: spi_loopback: add twr_ke18f configuration
  • 09749bbe tests: benchmarks: latency_measure: use 0.1s sys clk tick for twr_ke18f
  • bd001081 tests: cmsis_rtos_v1: remove cast abuses
  • d1681d83 subsys/testsuite/ztest: change zassert_mem_equal to macro
  • ed5185ba tests/kernel/fatal: Fix wait-for-interrupt delay in stack check test
  • 8ab22556 subsys/testsuite/ztest: Fix zassert_mem_equal user message printing
  • def743ef tests: drivers: uart: depend on SERIAL_SUPPORT_ASYNC for ASYNC test
  • 69fc29de tests: mesh: fix function prototype and match declaration
  • 1cbda7d4 tests: net: socket: register: Close socket after test
  • a45ce522 tests: timer_api: Fix timer synchronization
  • 324ae6fd tests: tickless_concept: disable for coverage
  • 98627ccc tests: drivers: adc_api: add support for the twr_ke18f board
  • 194893d5 tests: net: udp: Add tests for SO_PRIORITY and setsockopt
  • 44bc1eca tests: build_all: add TI HDC sensor
  • 1f357744 memslab/mempool: make tests 64-bit compatible
  • 9f8044e6 tests: kernel: fp_sharing: call k_float_disable() for ARM
  • 10074fc4 tests: drivers: counter: Add device name to zassert strings
  • ac8e810d tests: benchmarks: timing_info: add user space tag
  • 02a3c520 tests: kernel: userspace: correct address of thread priv stack start
  • f4f2b131 tests: kernel: fatal: add HW stack check for priv stack
  • d87a90e4 tests: mutex_api: run in user mode
  • 682a53db tests: queue: test k_queue_alloc_*pend()
  • 94b9640a tests: poll: expand userspace coverage
  • 86586b2d tests: getaddrinfo: set newlib heap size
  • a3eb8c4a tests: schedule_api: fix extern tstacks
  • b5d3ba46 tests: schedule_api: exercise SCHED_MULTIQ
  • 03f22773 tests: schedule_api: test syscalls from usermode
  • 6020a500 tests: schedule_api: skip test assert if COVERAGE
  • 80040823 tests: kernel: fatal: add explicit no user-mode test case
  • 13b4c17b tests/drivers/counter: add test for counter_cmos.c
  • 2c4b2a16 tests: net: getaddrinfo: Make sure we receive two queries
  • 3f9151da tests: minor FCB re-ordering not to leave a random flash.bin behind
  • 2910b5ea tests/kernel/context: Fix TICK_IRQ define for RV32M1 lptmr_timer
  • 723aae95 tests: kernel: mem_protect: use correct define for MEM_REGION_ALLOC
  • d2f5a2c1 tests: drivers: can: api: add support for CAN_0
  • 70c47cba tests: drivers: can: stm32: determine CAN device at compile-time
  • 0180b94a tests: kernel: fatal: add explicit test case for ARM and FP Sharing mode
  • a30162be tests: add futex test cases
  • 31c4cc54 tests: common: cover k_cycle_get_32() syscall
  • 777336ef tests: userspace: cover missing/bad syscalls
  • d053ba59 tests: dynamic_thread: cover thread_idx_free()
  • 84822181 tests: userspace: cover z_object_recycle()
  • ffd182a0 tests: device: cover device_get_binding()
  • 643f86f1 tests: thread_apis: exercise some system calls
  • c0630346 Revert “tests: tickless_concept: Fix slicing time measurement”
  • e5c0e3ca tests: kernel: submit a simple test for zero-latency irqs
  • 1e29d40e tests: kernel: arm runtime nmi: add arm tag
  • ad409f4b tests/kernel/context: add case for CONFIG_APIC_TIMER
  • 1dd2796b tests: kernel: add simple test for the ramfunc feature

 

Zephyr OS Helps Protect the Environment

By Blog

Written by Ilan Ganor, hereO

Local, regional and national government municipalities are introducing stricter environmental laws in order to fight pollution and global warming.  Waste disposal in particular, has been a top priority for governments worldwide, with new regulations regarding tracking and proper disposal.

In general, garbage waste needs to be dumped in a designated disposal site.  The common procedure is that dump trucks arrive at a disposal site such a landfill and are charged per weight and/or type of waste being dumped.  This conventional way has been the norm for many years.

The above procedure presents a major loophole which is abused to break the law and ends up hurting the environment and increasing pollution.  In many cases, a dump-truck driver will dispose of some or all the waste meant for the landfill, in order to save the disposal fee, which they pocket to themselves.

Worldwide estimates range from 15%-50% (!) of all waste being dumped outside the intended landfill and ends up in a nature reserve or other illegal sites.  This causes extra pollution which increases environmental cleanup costs and worse, can even be deadly if the waste makes its way to a water reserve.

The high cost of enforcement and environmental clean-up have driven governments and industry to seek out advanced solutions using sensors, location and communication technologies to fight this trend.  This is a challenge the IoT industry is poised to address.

Two main challenges of the waste disposal tracking project:

  1. Power management – a standalone, battery powered device that does not need charging for at least 1 year.
  2. Disposal detection – the unit must report with close to 100% accuracy that garbage is being disposed in the proper location in order to not wrongly fine the truck driver.

How Zephyr RTOS makes this happen:

Processor power management:

The power management power state “SYS_PM_LOW_POWER_STATE” proved to be the right selection for this use case.  In this power state, the device stays on, keeping only the minimum set of needed components active (shutting down power hungry components such as cellular modem, GPS, BLE and all sensors) except for the gyroscope.

Driver power management

Zephyr’s driver power management structure enables a robust guideline for adding new drivers, it is relatively easy to add new drivers that follow the basic power management guidelines.  This is critical for IoT systems since efficient power management plays a key role in many project go/no-go decisions and the likelihood to get to market quickly and be commercially successful.

 Dual processor support

The mailbox IPC between cores which is a key Zephyr capability, proved to be the project go factor.  The small core was used as a DSP, processing the measurements from gyroscope and accelerometer, only when recognizing that garbage disposal is taking place and turning on the more processing-hungrycore which handled the cellular modem, MQTT based data publish, etc.

hereO Core Box

FOTA support

Zephyr offers great “out-of-the-box” FOTA support.

On many embedded projects this task proves to be the most complicated part and is usually neglected until the end of development and proves to be difficult introducing additional delays to the project.

With Zephyr a stable FOTA solution enabled a dependent and secure update mechanism.

Summary

Choosing to work with the Zephyr solution allowed us to have a stable and flexible design and development process avoiding development issue associated with typical embedded development.  Zephyr’s many optional frameworks, work methods, etc., helped speed up time-to-prototype and time-to-market, especially with customers in the garbage-disposal industry, which have ever evolving needs.  For this industry, Zephyr is a great enabler.

Learn more about hereO Core in this video:

Zephyr RTOS featured in RISC-V Getting Started Guide

By Blog

Today’s rapidly evolving IoT and embedded ecosystem developers have the ability to choose from a variety of platforms and tools to design and build solutions that meet their unique needs and use cases. Zephyr Project is proud to provide developers and product makers with the freedom and flexibility of a full featured, customizable open source RTOS for resource constrained devices. That freedom includes empowering developers by providing a growing and diverse selection of supported architectures, boards and configurations. As of Zephyr 1.14 LTS, the RTOS had more than 160 supported board configurations on 8 architectures, including RISC-V.


Guided by the same ethos, the RISC-V Foundation and its members have built a thriving ecosystem and helped to spur a new generation of innovative tools, software and hardware built around a free and open Instruction Set Architecture. The shared vision and deep commitment to open source has led to fruitful collaborations across the two projects. In the years since collaboration began, both projects have grown and reached important milestones.

Today, we are excited to share a new resource intended to help members of both communities quickly get started using Zephyr OS on the RISC-V architecture. Created by Zephyr Project and RISC-V Foundation member Antmicro, The RISC-V Getting Started Guide showcases the strength of both platforms used together to create end to end open source solutions.

“Confirming our commitment to bringing open source into ever new technology areas, Antmicro has led the efforts to produce a RISC-V Getting Started Guide that is primarily addressed to software developers. Choosing Linux and Zephyr RTOS is crucial as their community-driven and vendor-neutral nature corresponds well with that of RISC-V,” said Michael Gielda, VP Business Development at Antmicro.

”Having clear concise reference documentation makes it easier for newcomers to the RISC-V and Zephyr communities to create products faster. We’re excited to see what developers create using this guide and look forward to continued close collaboration between our organizations,” said Kate Stewart, Senior Director of Strategic Program at the Linux Foundation.

The RISC-V Getting Started Guide shows users how to get started developing for the free and open RISC-V ISA, both in simulation and on physical implementations. The Guide focuses on running standard operating systems – Zephyr and Linux – on popular RISC-V platforms with minimum effort. The Zephyr-enabled platforms currently described in the Getting Started Guide include the SiFive HiFive1 and RISC-V SoftCPU Contest winner LiteX SoC with VexRiscv CPU running on the Future Electronics Avalanche board with a Microsemi PolarFire FPGA or in Antmicro’s open source Renode simulation framework. The Guide also provides a generic QEMU simulation target supporting RISC-V.

Thanks to Antmicro and the RISC-V Foundation, the Guide is now available to serve as a starting-point for the global RISC-V and Zephyr communities, as well as anyone interested in switching to a fully open design approach – from open ISA through open tooling, software, hardware and FPGA.

This guide is an open source collaboration and contributions are welcome via GitHub. If you have questions about using the Guide or Zephyr OS, please contact us via the Zephyr Project Slack channel. What’s more, Antmicro, SiFive and Microchip are sponsoring the upcoming RISC-V Workshop in Zurich – you can find them on the showfloor to receive more information on getting started with Zephyr on RISC-V.

Learn more about the RISC-V Foundation

Get the latest release of Zephyr OS

Download the RISC-V Getting Started Guide

What’s new in Zephyr – May 28, 2019

By Blog

Written by Marti Bolivar, Zephyr Project contributor and Senior SW Engineer at Nordic Semiconductor

This newsletter tracks the latest Zephyr development merged into the mainline tree on GitHub. In particular, we’re covering the first 1,001 patches merged since the v1.14.0 release last month. Buckle up.

Highlights

This newsletter covers the following inclusive commit range:

  • f90acbf2 release: Post-release patch level update, merged 16 April 2019
  • ba4eae14 tests: test_sched_timeslice_reset: Fix slice time measurement, merged 23 May 2019

Architecture-specific

New SoC support:

  • LiteX: VexRiscV
  • Microchip: MEC1501
  • Nordic: nRF52811
  • NXP: i.MX RT1015, Kinetis KE1xF
  • ST: STM32F415RG, STM32MP1, STM32WB, STM32L1
  • TI: CC13x2 / CC26x2

The ARC architecture can now be configured to dump human-readable exception information on faults.

On Arm:

  • Multiple threads can now share floating point peripherals, as FP registers can be saved and restored on context switch.
  • The presence of the SysTick timer peripheral has been decoupled from the peripheral which is configured as the system timer. This allows Arm SoCs to use other peripherals as their system timers. This involved adding a new CONFIG_CORTEX_M_SYSTICK to request that SysTick be used, and renaming the macro which merely signals the presence of a SysTick peripheral from CONFIG_CPU_HAS_SYSTICK to CONFIG_CPU_CORTEX_M_HAS_SYSTICK.
  • Support was added for the varying number of MPU regions on some Cortex-M7 SoCs. As part of these changes, the device tree now declares the number of regions.
  • Device tree support was added for some Armv8-M SoCs.

Support for various peripherals was added at SoC level; see the patch list below for details.

The contents of the .rodata sections were made read-only on x86.

Bluetooth

The majority of changes (approximately half by patch count) are at the controller level, including:

  • Support for out of tree vendor-defined HCI commands, vendor-specific events, and proprietary RX demuxing.
  • Increasing feature parity between the new ULL/LLL “split” link layer architecture and the existing default L2, and continued efforts making the new code vendor-agnostic by moving Nordic-specific code into vendor LLLs.

The Bluetooth shell now has gatt get and gatt set commands for reading and writing local attributes.

There is now a CONFIG_BT_GATT_DYNAMIC_DB option, which can be used to decrease memory usage by disabling runtime service updates.

Boards

New boards:

New shields:

  • Wistron WNC-M14A2A modem: see boards/shields/wnc_m14a2a
  • SparkFun u-blox SARA-R4: see boards/shields//sparkfun_sara_r4

Various boards gained new software support for peripherals; see the patch list below for details.

Other miscellaneous feature enablement: pyocd flash and debug support for mimxrt1060_evk and mimxrt1064_evk, JLink flash and debug support for STM32 boards and efr32_slwstk6061a.

Build System

Efforts continue to generalize the build system to support non-GCC toolchains:

  • The native_posix build configuration now supports LLVM.
  • GCC-specific compiler and linker flags continue to be replaced with toolchain-agnostic “Intents”. These intents are CMake functions or macros beginning with toolchain_ which express a desire for a toolchain to be configured in a certain way, e.g. to configure a certain level of warnings. Search the source code for @Intent for examples.
  • A new LINKER CMake variable was added to decouple the linker from the compiler. The initial purpose appears to be adding lld support, but for now, GNU ld remains the only supported in-tree linker.

The ultimate goal remains not only supporting LLVM and other non-GCC based toolchains in-tree, but providing first-class support for out of tree toolchains.

Support for out of tree device tree source files and bindings was added via a new DTS_ROOT CMake variable. This is analogous to the existing BOARD_ROOT and SOC_ROOT variables, which allow defining out of tree boards and SoCs.

The giant SoC level linker scripts (in subdirectories of include/arch/ and named linker.ld) are being cleaned up and refactored with the help of a new zephyr_linker_sources() and related set of CMake functions. As a result, some Kconfig options, like CONFIG_SOC_RODATA_LDCONFIG_SOC_NOINIT_LD, and others are now deprecated in favor of using that routine to manage what content is added to the final linker script.

An application’s build version can now be set via the BUILD_VERSION environment variable.

Zephyr can now be compiled with the newlib-nano C library shipped with the GNU Arm Embedded toolchain (which was already supported by Zephyr).

STM32-based boards can now produce Intel HEX files as build artifacts.

Continuous Integration

An indomitable effort to clean up and clarify the sanitycheck script’s output, help strings, and other UI related improvements is underway.

Documentation

Among the usual stream of improvements, new docs have been added covering:

Drivers and Device Tree

Zephyr has imported the Linux kernel’s list of device tree vendor prefixes as dts/bindings/vendor-prefixes.txt. Developers are encouraged to respect (and maintain) its contents when adding compatible properties.

New and shiny:

  • AMS ENS210 temperature and relative humidity sensor, indoor air quality sensor drivers
  • Atmel SAM0 ADC, hwinfo, I2C, and DMAC drivers, along with asynchronous DMA support for the SPI driver and interrupt support in the GPIO driver
  • Holtek HT16K33 LED and GPIO drivers
  • Microchip MEC GPIO and I2C drivers
  • MCP2515 CAN controller support
  • nRF RTC drivers now support error-free wrapping via PPI; see CONFIG_COUNTER_RTC{0,1,2}_PPI_WRAP
  • NS16550 UART driver support for PCIe
  • NXP EHCI USB driver
  • RV32M1: I2C support
  • STM32L1: clock, interrupt, pinmux, GPIO, I2C
  • STM32L4: SPI2 on port B support
  • STM32WB: clock, interrupt, pinmux, LPUSART
  • STM32 ADC drivers support pin remapping and ADC1 instances
  • STM32’s serial driver now supports RTS/CTS hardware flow control and 9 bit data frames
  • STM32’s usb_dc_stm32 driver now supports pin remap via device tree; search for the enable-pin-remap property binding documentation for details
  • Stereo support in the mpxxdtyy audio driver, whose name reminds the author of calculus class
  • TI CC13xx / CC26xx I2C driver
  • TI SimpleLink WiFi now supports static IP address configuration

The CAN API grew user data pointers on callbacks, along with other rework and loopback driver support. The driver file names themselves were all prefixed with can_.

The flash_map.h API now has a flash_area_foreach() routine for visiting each flash area. It also has a shell command using it, which currently supports a list command. There’s also a new flash_simulator driver, which implements the flash API but backed by RAM. This is useful for testing, and is now enabled on the qemu_x86 target.

The IEEE 802.15.4 driver API in include/net/ieee802154_radio.h has a new struct ieee802154_config defined, which can be passed to a new configure callback in the driver API. The initial use case is ACK configuration on nRF5 SoCs.

The UART API now supports 9-bit data; apparently, 8 wasn’t enough for everyone. The only initial user is STM32, as described above.

Firmware Update

Various potentially breaking changes are getting merged for firmware update support on Arm v8-M SoCs with secure and non-secure application images. Stay frosty out there, DFUsers.

Kernel

A handful of fixes, new APIs, and refactorings were merged.

However, a debate is quietly taking place behind the scenes which may result in a significant refactoring of the kernel’s system timer APIs. Stay tuned for more.

Miscellaneous

The logging subsystem can now be used from C++ files.

The “minimal” C library included with zephyr continues to grow, adding definitions for bsearch()exit()_exit(),time_t,suseconds_t, and a <sys/_timeval.h>.

Numerous additions were made to the CODEOWNERS file now that pull requests which add new files not covered there are rejected by CI. However, the Technical Steering Committee has ruled that this file does not, despite its name, define which developers are the maintainers of any given subsystem or area of the tree. More documentation and discussion on this is ongoing.

The shell subsystem now has a generic hexdump routine, shell_hexdump(), declared in <shell/shell.h>. It also gained a variety of new macros for conditionally defining and initializing commands; see Creating commands in the documentation for details. There’s a new set of config options beginning with CONFIG_SHELL_PROMPT_ which allow different shell backends to proudly declare themselves as uart:~$rtt:~$, etc.

Rather than relying on GCC builtins, there is now a <misc/math_extras.h> header which provides portable arithmetic and bit manipulation routines. Naturally, existing users have been moved over, and there is a GCC implementation.

The statistics API can now track more than 256 individual statistics. This sounds like a silly thing to say, but it makes sense; believe us.

Modules

Now that the west tool has been merged and integrated into the core workflow, a series of pull requests is up extracting third-party code from the main zephyr repository into separate Git repositories. The first one merged extracted the Intel QMSI library. Make sure to run west update to fetch this separate repository after pulling zephyr, and to keep doing so whenever you pull.

Networking

A variety of fixes are flowing in from testing with the Maxwell Pro suite and other testing efforts.

The <net/net_if.h> API gained accessors for manipulating network interface flags: net_if_flag_set()net_if_flag_test_and_set()net_if_flag_clear(), and net_if_flag_is_set(). A new flag, NET_IF_NO_AUTO_START, was also added which disables automatically bringing the interface up if set. There’s also a newnet_if_ipv4_get_global_addr() routine, which is used to return an interface’s global address if nothing else can be found. The existing but unused net_if_ipv6_get_global_addr() was altered to match the signature for the IPv4 version as well; out of tree users will need updates.

The <net/sntp.h> header now has a query function with fractional seconds precision, sntp_query(). The older sntp_request() routine is now deprecated. A new sntp_simple() routine for one-shot SNTP queries was also added to this header.

ICMP echo packets can now contain arbitrary payload data, and the net shell’s ping can now report RTT, TTL, and RSSI.

Ethernet controllers which wish to strip the VLAN tag from received frames can now do so; see the ETHERNET_HW_VLAN_TAG_STRIP flag. This capability is now printed in the ethernet shell.

The OpenThread frame pending API is now implemented.

Bluetooth IPSP devices now support multiple connections. CONFIG_NET_IF_MAX_IPV6_COUNT now defaults to CONFIG_BT_MAX_CONN in that case.

A new routine, mqtt_read_publish_payload_blocking(), was added. It allows reading the payload of a publish message.

It’s now possible to compile out Zephyr’s IP stacks when only offloaded socket support is required, saving memory.

A new <net/socketutils.h> header was added, providing address manipulation functions.

It’s now possible to register new socket families with the core networking APIs. See struct net_socket_registerNET_SOCKET_GET_NAME(), andNET_SOCKET_REGISTER() in <net/socket.h>. The TLS, AF_PACKET, and AF_CAN socket address families now use this mechanism.

Zephyr’s getaddrinfo() implementation now supports a null host argument. A userspace-aware getsockname()implementation was also added.

A new CONFIG_NET_IPV4_ACCEPT_ZERO_BROADCAST allows Zephyr to accept UDP packets destined for the all-zero multicast address.

Storage

The settings subsystem for nonvolatile storage now supports custom backends. This is a significant improvement, which allows customized abstractions for the representation of data at rest. See the documentation for the new settings_backend_init()routine for details. FCB and file system backends are supported, along with other changes in <settings/settings.h>.

Tools and Scripts

The menuconfig build system target saw various usability improvements by pulling in a new Kconfiglib.

The west build command now supports:

  • build.board configuration variable, which can be used to set the default board to target
  • build.pristine configuration variable and --pristine option, for controlling when the build directory is cleared out before a new build is started
  • --cmake-only option, to generate a build system but not build anything
  • verbose builds (i.e. builds which print the compile commands) at level 1 verbosity (i.e. when called as west -v build)
  • build.generator option for setting the default CMake generator
  • --dry-run flag for printing what it would have run, without actually executing cmake or running any build system targets
  • --build-opt option for passing tools to the underlying build tool (such as ninja)

There is a new west boards command, which can print information about supported boards.

West autocompletion for Bash was added via a new west completion command.

Individual Changes

Patches by area (1001 patches total):

  • Arches/SoCs: 107
  • Bluetooth: 92
  • Boards: 94
  • Build: 74
  • Continuous Integration: 15
  • Device Tree: 35
  • Documentation: 31
  • Drivers: 216
  • External: 35
  • Firmware Update: 7
  • Kernel: 12
  • Libraries: 11
  • Logging: 2
  • Maintainers: 26
  • Miscellaneous: 17
  • Networking: 59
  • Samples: 46
  • Scripts: 43
  • Storage: 6
  • Testing: 73

Arches/SoCs (107):

  • c8b17ec4 fix: kw41z: Use correct mapping for dBm
  • a17730da soc: sam0: Fix SAMD20 IRQ assignments
  • 4cf4040a arc: print human-readable exception info
  • 51a563dc soc: arm: sam3x: add MPU capability
  • a7199b75 soc: st: add STM32F415RG
  • 689d71b2 arm: Add support for MINI-M4 for STM32 Board
  • b8bab7b3 native_posix: Enable USB device for the board
  • cc15b9ce soc: nordic_nrf: MPU temperature sensor default
  • 149cc7fd native_posix: cmdline: Hint user about wrong options
  • 13dfeba5 arm: V2M Musca B1: Add Musca B1 SoC and board support
  • d61c679d arch: all: Remove legacy code
  • 4f99a38b arch: all: Remove not used struct _caller_saved
  • f44514d1 arch: arm: nxp: imxrt1015: add device support
  • bb35bb8a soc: arm: sam3x: minor fixes in soc.h and arm_mpu_regions.c
  • e0afd7e5 soc: stm32: add initial soc support for stm32mp1 family
  • 6347b87e soc/arm/st_stm32: Add support for stm32wb soc
  • eb51ea00 soc/arm/st_stm32: stm32wb: Add gpio support
  • b444de88 arch: arc: optimize the push and pop of fast irq
  • 4d9486fc soc: sam0: Enable generic peripheral selection
  • 92ac6d8f soc: arm: st_stm32: Add STM32L1 SoC series
  • 43e56a93 soc: arm: stm32: stm32l1: Add UART support
  • ec1ffc8b arch: x86: fatal: If possible, print thread name in crash dump
  • 32367c0d soc: arm: stm32: Updated SRAM Region Definitions
  • 5311a7d7 soc/riscv32-fe310: add label for uart1
  • ce0dcea4 soc: arm: remove redundant CPU_CORTEX_M selection
  • ccf90fd9 soc: arm: select CPU_HAS_SYSTICK in ARCH Kconfig
  • 894eca5e soc: arm: rename CPU_HAS_SYSTICK to CPU_CORTEX_M_HAS_SYSTICK
  • 236c5ac2 soc: arm: remove default selection of system timer for ARM platforms
  • 2a47f41e stm32mp1: disable cmsis_rtos_v2 test
  • 33d32fb6 soc: stm32f4: add another pinmap for spi1
  • e5609997 soc: nxp_imx: mimxrt1064_evk: Add I2C support
  • 770233dd soc: atmel: add SAMR21
  • 9f698786 soc: sam0: enable RTC for samd21, samr21
  • 86bd319d soc: sam0: Make init code common between all samd2x SoCs
  • ff1952cc arc: arm: fix support for MPUs on non-XIP systems
  • f616aa37 posix: cmake: Abstract freestanding options
  • 02122bca arch: arm: restrict IRQ lock to minimum during pendSV exception
  • 37df2566 soc : arm : microchip_mec Add Microchip MEC1501 SoC
  • 53f0f277 arch: x86: mmu: typo fixes
  • 4709816a soc: sam0: Remove SERCOM defines from dts_fixup.h
  • dba1b122 arch: arm: drop FP full-access for builds without user mode
  • a8ccaedd arch: arm: disable automatic FP stacking in unshared FP registers mode
  • 9b00be3d arch: arm: remove FP-context from ESF in unshared FP registers mode
  • 2aa138b3 arch: arm: remove _preempt_float in unshared FP registers mode
  • 1a2ef429 arch: arm: remove FP activation in system boot
  • 2d6f6d21 arch: arm: clear FPSCR before main()
  • f101b77d soc: ti_simplelink: add support for TI CC13x2 / CC26x2 series
  • 8fa5353b soc: riscv32: Use same clock freq for both rv32m1 cores
  • bc9f67f9 arch: soc: riscv32: Separate soc offsets from soc context save
  • cf1be5a3 soc: riscv32: Move rv32m1 sram memory definitions to dts
  • 15baad94 soc: riscv32: Move rv32m1 flash memory definitions to dts
  • 9f068737 arch/x86_64: Suppress spurious linker-generated code in the 32 bit stub
  • c76dd1ed soc: arm: nordic_nrf: change default SYS_CLOCKS_PER_SEC
  • da3f7fea soc: arm: nordic_nrf: unrevert provide custom busy_wait implementations
  • 6f19d006 arch: arm: add internal structure to ESF
  • 9f21b09d soc: stm32f4: complete uart7’s dts
  • 81fa697f posix: Move gettimeofday declaration to <sys/time.h>
  • a6aee9b4 posix: sys/time.h: Add workaround for outdated newlib used by Xtensa
  • 997ab935 soc: same70: add support for revision B
  • 805dca91 soc: same70: check for mismatch between chip and HAL CIDR
  • 50c71e60 arch/x86: CONFIG_BOOTLOADER_UNKNOWN renamed to CONFIG_X86_MULTIBOOT
  • 467d1c32 soc: arm: mchp: Add I2C to device tree for MEC1501
  • 35cfe113 soc : microchip_mec : Add gpio driver common definitions
  • d1b21f34 soc: stm32: enable outputing hex file
  • 32f8521c soc: nxp_imx: configure USB device EHCI controller driver for rt1050
  • 6fcfb837 soc: riscv32: miv: soc.h: use defines from device tree
  • 2b61c37d soc: riscv32: sifive-freedom: soc.h: use defines from device tree
  • e0a82500 riscv32: use device tree defines in linker
  • 75f0ad5a stm32f7: Kconfig: soc: Enable GPIO ports F & G by default
  • fd97e440 arch: remove unused tracing_arch.h
  • 0efddb63 arm: nrf: Add support for the nRF52811
  • 90dc25b2 soc: arm: nxp_imx: rt: update flash size of 32KB
  • 918579eb soc: arm: ke1xf: add NXP Kinetis KE1xF SoC series support
  • 5ec96b17 soc: nrf: Conditionally enable clock control and timer
  • 424224af arch: arm: fix ESF pointer in SecureStackDump()
  • 342cbc9e soc: riscv32: add LiteX VexRiscV SoC
  • 7aecb038 arch: arm: switching stack pointer with assembly code
  • 348b0266 x86: Make .rodata readonly
  • fb713aa0 soc: arm: move z_clearfaults() in kernel_arch_init()
  • 6b51ef73 arch: arm: Fix check of Kconfig option
  • 3cdb1924 soc: arm: nxp: ke1xf: add RTC support
  • 01a71eae arch: arm: remove redundant definitions of typeof
  • ac4eb322 arch: arm: fix “template with C linkage” in cmsis.h
  • d5481055 arch: arm: print thread name in z_NanoFatalErrorHandler()
  • 36cedd93 arch: arm: mpu: use DTS-defined number of MPU regions
  • 4b15873c soc: arm: add ARM MPU node info and fixup for ARMv8-M SoCs
  • 75f681b0 soc: arm: add ARM MPU node info and fixup for Cortex-M7 SoCs
  • 3950f664 arch: arc: Fix checks of CONFIG_USERSPACE
  • d2ef19bd arch: arc: Fix checks of CONFIG_ARC_FIRQ
  • c5665f2e arch: arc: Fix checks of CONFIG_STACK_POINTER_RANDOM
  • 63013d93 arch: arm: Fix checks of CONFIG_USERSPACE
  • 65ae6433 arch: arm: Fix checks of CONFIG_IRQ_OFFLOAD
  • 5c8faf89 arch: arm: Fix checks of CONFIG_ZERO_LATENCY_IRQS
  • f888f9ab arch: arm: Fix checks of CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT
  • 00010390 soc: arm: st_stm32: Port CCM sections to use the Cmake function
  • 6d003944 arch: Port the ramfunc section to the Cmake function
  • 5bebf2ae soc: Port usage of soc-*.ld to use Cmake
  • e4024e27 arch: port nocache linker code to use Cmake function
  • 1d3b6e7c arch: arm: cortex_m: Port some vector_relay linker code to Cmake
  • c760ca02 arch: Put intlist.ld into Cmake
  • 6b5f05fe x86/apollo_lake: add I2C interfaces to devicetree
  • f19787bb posix: Fix calculation of clock base in clock_settime
  • eecf4b03 arch: arm: enable lazy state preservation at boot in FP sharing mode
  • 929e9ea9 arch: arm: carve only basic stack frame at thread init
  • 358d389c arch: arm: extend use of arch.mode variable in FP sharing mode
  • 4f4b23b4 arch: arm: fp sharing: save & restore FP registers in context-switch
  • a5e929ab soc: nxp: ke1xf: enable code cache

Bluetooth (92):

  • da4e3cad Bluetooth: hci: adding AD types used for OOB pairing
  • 1a3d9fa0 Bluetooth: Mesh: Add error checks for scan start/stop
  • 4154f27a Bluetooth: GATT: Skip ahead if handle is not within service handles
  • 755a6e50 Bluetooth: GATT: Fix iterating over requested handle range
  • f7b4069a Bluetooth: Settings: Fix not allowing custom handlers without arguments
  • 95182239 Bluetooth: GATT: Store database hash
  • 321fec4a bluetooth: hci_core: Remove misleading log
  • a1d69fb7 Bluetooth: Mesh: AES-CCM: Fix output MIC with additional data
  • 26cfbf81 bluetooth: host: Save id when allocating CCC cfg slot
  • d4dbab9f bluetooth: host: Use correct identity when direct advertising
  • 56a2691e bluetooth: host: Unref conn on direct adv start error
  • 09c06a12 Bluetooth: Shell: Convert users of hexdump to shell_hexdump
  • 26fea234 Bluetooth: shell: Make show-db print the total number of attributes
  • 090f95d2 Bluetooth: Shell: Add option UUID parameter to GATT show-db
  • 4c80bb57 Bluetooth: Shell: Add GATT command get
  • 2ba6146f Bluetooth: Shell: Add GATT command set
  • 69b08e6e Bluetooth: GATT: Update read/write callback documentation
  • 0db7dda0 Bluetooth: hci: h4: use GPIO reset for nrf52840_pca10090 controllers
  • 705515c0 Bluetooth: controller: Data Length Update port to ULL/LLL arch
  • 7b68ec88 Bluetooth: controller: Move PKT_US to ULL internal header
  • e90ba898 Bluetooth: controller: Fixes to pass DLE/PHY conformance tests
  • 100f671b Bluetooth: GATT: Add support for Read Using Characteristic UUID
  • 6576efe0 Bluetooth: shell: Add command for Read Using Characteristic UUID
  • c5f6e8be bluetooth: host: format specifier alignment
  • 0654c332 bluetooth: Fix bt_conn->id handling
  • 5257fede Bluetooth: controller: Fix advanced XTAL feature regression
  • 1090b452 bluetooth: controller: Update slot reservation time calculation for ADV
  • 1618c1b8 bluetooth: controller: Update to use new EVENT_IFS_US define
  • 5c3709c1 bluetooth: controller: Add def’s re. update to slot reservation calc
  • 21ae7050 bluetooth: controller: Source code documentation of ticker
  • 4596e155 bluetooth: controller: Minor refactoring in ticker.c
  • 23e1f4d2 bluetooth: controller: Added missing variable initializations
  • d533dde0 bluetooth: controller: Moved library source for lll_test.c
  • c741ef6e bluetooth: controller: Mayfly yield after call under Kconfig
  • f35dd8ec Bluetooth: controller: Fix regression in Coded PHY CI Change
  • a1cbbbe9 Bluetooth: controller: Fix nRF52840 Coded PHY timings
  • a202c14f bluetooth: controller: Move Nordic specific code
  • 3ac8fa5c bluetooth: controller: Move Nordic specific code
  • 0392ad0d Bluetooth: GATT: Fix usage of uint16_t instead of u16_t
  • e0f3ab6b Bluetooth: GATT: Add support for static services
  • b3a6da67 Bluetooth: GATT: Add option to enable/disable database
  • c42707c2 Bluetooth: Use BT_GATT_SERVICE_DEFINE whenever possible
  • 2c4e5d5f Bluetooth: GATT: Disable dynamic database by default
  • d7d64032 Bluetooth: GATT: Fix typo in commments
  • 45e1ce8b Bluetooth: GATT: Move GATT/ATT option to Kconfig.gatt
  • bd007141 Bluetooth: GATT: Rename BT_GATT_DB to BT_GATT_DYNAMIC_DB
  • e69b4be2 Bluetooth: Fix return type for settings read callback
  • 23636cba Bluetooth: controller: Fix pin or key missing response
  • 99fae680 Bluetooth: controller: commentary and readability improvements
  • 646f617a bluetooth: controller: Allow out-of-tree vendor specific HCI commands
  • a872911c Bluetooth: controller: Fix missing BT_CTLR_FILTER conditional
  • 34f6d08f Bluetooth: controller: Yield ULL processing when Ctrl PDU deferred
  • 23269d98 Bluetooth: controller: Implement low latency ULL processing
  • 54e78b90 Bluetooth: controller: Move LLL-to-ULL Tx Ack API to ULL
  • 4b9dee8a Bluetooth: controller: Add GPIO Debug Pins for HFCLK state
  • 211a81f9 Bluetooth: controller: Fix XTAL advanced feature
  • ffcbf121 bluetooth: controller: Made BT_CTLR_RX_PRIO_STACK_SIZE non-hidden
  • 4cebd738 Bluetooth: controller: Use void pointer to return rand value
  • b8c2c7e7 Bluetooth: controller: ull/lll: Increase adv random delay resolution
  • 8a4c1314 Bluetooth: controller: ull/lll: Workaround CPR procedure collision
  • 343937c5 Bluetooth: controller: ull/lll: Fix pin or key missing response
  • e2dbe4f6 Bluetooth: controller: Fix incorrect conditional compilation
  • 9602a690 Bluetooth: controller: Fix incorrect data type use in slot calc
  • a4370b73 Bluetooth: controller: Fix ULL LLL execution priority selection
  • 06ddc2bb Bluetooth: controller: Fix Rx and Tx buffer sizes
  • 90c205f6 Bluetooth: controller: Enable Zephyr VS HCI in ULL/LLL impl.
  • c629ea8a Bluetooth: controller: Disable controller privacy feature
  • 40241d81 Bluetooth: controller: Enable additional ULL/LLL CI tests
  • e5cf9ce1 Bluetooth: controller: ull/lll: Do not feature exc more than once
  • 2a0a48f6 Bluetooth: controller: hal: Fix PPI macro naming
  • 909f5a8a Bluetooth: gatt: Fix foreach iteration of static attributes
  • 9a5cb228 bluetooth: controller: hal: Correct the bit mask of used PPI channels
  • c0a7e4d7 Bluetooth: Mesh: Fix RPL storage timeout handling
  • e9ed6346 Bluetooth: Mesh: Fix postponing storage deadline indefinitely
  • 019d282a Bluetooth: controller: Fix Enc Setup overlap with Length Update
  • f9e89e55 Bluetooth: shell: GATT: Make get command take a handle range
  • 44739f44 Bluetooth: controller: Workaround CPR procedure collision at CPU instant
  • 774d5e87 Bluetooth: controller: split: Fix Conn Param Req procedure stall issue
  • 4678447d Bluetooth: Add debug kconfig for bluetooth services
  • 95e1eb96 Bluetooth: Add additional attributes to DIS
  • e7be378a Bluetooth: kconfig: Put ‘menuconfig BT’ in top-level menu
  • 58e9ac68 bluetooth: Controller: Refactor node_rx footer to avoid ptr arithmetic
  • 3d94df7e Bluetooth: controller: split: Fix master role RSSI measurement
  • d9d85fd1 Bluetooth: controller: split: Refactor the lll_clock_wait() function
  • 289eab6a Bluetooth: controller: Remove incorrect comment
  • 172dcec2 Bluetooth: controller: Fix unknown rsp received during enc procedure
  • 852b1dca Bluetooth: GATT: Fix not parsing result of Read by Type
  • 5e1de1a9 Bluetooth: Add support for vendor-specific events
  • 63a93e8b Bluetooth: controller: split: Refactor if_defines to is_enabled in lll.c
  • ea6cad9b Bluetooth: controller: remove duplicated code
  • 69790e5c Bluetooth: controller: Enable use of proprietary rx demuxing functions
  • fccb2e1f Bluetooth: GATT: Fix using a wrong handle

Boards (94):

  • 39d4babf board: stm32_min_dev: Add USB support
  • 55502df8 boards: rv32m1_vega_ri5cy: add STS LED to DTS
  • c0a1f463 boards: rv32m1_vega: fix I2C bus references
  • 78714b4f boards: arm: nucleo_f746zg: Activate CAN on nucleo F746zg
  • ab712b2d mimxrt1060_evk: mimxrt1064_evk: Enable pyocd runner
  • 6e7f99a9 boards: stm32f4_disco: added missing LED aliases
  • 4097a5bf boards: arm: add board support for mimxrt1015_evk
  • bd7f4fc6 boards: arduino due: default to building with MPU support
  • 0604e21d boards: arm: nrf52840_pca10090: update log settings
  • 3dc71c8d boards: arm: nrf52840_pca10090: add a GPIO reset line
  • 6ad19d24 boards: v2m_musca_b1_nonsecure: add flash to yaml
  • d6d7a800 boards: v2m_musca_b1_nonsecure: disable sanitycheck [REVERT ME]
  • 18dc73c1 boards: arm: Add support for STM32MP157 Discovery board
  • 125c0300 boards: arm: st, stm32: add jlink runner args
  • 27b9c6a6 boards: arm: disco l475 iot: correct documentation
  • 378ef0bb boards: Add support for nulceo_wb55rg
  • 9332abd3 boards: acrn: remove duplicated Kconfig HAS_DTS
  • 766abcc0 boards: rv32m1_vega: enable the onboard I2C busses and FXOS8700 sensor
  • 5d835fa1 boards: arm: Add 96Boards WisTrio LoRa Tracker board
  • fdf973de boards/x86/up_squared: update documentation to include HSUART info
  • 129936e6 boards: changing flash simulator device name alias
  • d4be557f boards: qemu_x86: reducing flash size
  • cfd5d8f1 boards: v2m_musca_b1_nonsecure: Increase flash size
  • a4607fd7 Revert “boards: v2m_musca_b1_nonsecure: disable sanitycheck [REVERT ME]”
  • 0efc0394 boards: stm32f4_disco: Fix yaml ram size
  • bb72df5b board: stm32_min_dev: Add support for blue/black variant
  • e2baac2d boards: arm: 96b_stm32_sensor_mez: Enable I2S2 peripheral
  • a0ba6546 boards: arm: 96b_stm32_sensor_mez: Add DTS node for on-board MIC
  • 360fe70e boards: atsamr21_xpro: Add SAM R21 Xplained Pro Evaluation Kit
  • d44086db nrf52_bsim: Add header to allow reusing native_posix drivers
  • b69ed037 boards: iotdk: add mpu and fpu configuration
  • 60f1b870 boards: native_posix: Add llvm to supported toolchains
  • 4b2a181a boards : arm : Add support for Microchip MEC15xx EVB ASSY 6853
  • f9402370 boards: mimxrt1015_evk: Fix board image
  • a28b65e6 boards: 96b_argonkey: upgrade documentation using official info
  • 6ee55fc1 boards: nrf52840_blip: enable default instances of peripherals
  • 28ee240f boards: nrf52840_papyr: misc. board config fixes
  • 87d1f068 boards: qemu_x86: properly enable XIP
  • 39855a9c boards: cc26x2r1_launchpad: add support for TI CC26x2R LaunchPad
  • f0dc2e43 boards: cc1352r1_launchxl: add support for TI CC1352R LaunchPad
  • cfe06aca boards/up_squared: declare myself King of the up_squared
  • 6d30d949 boards/galileo: adjust PCI-related configuration
  • b5eba0f6 boards/x86/up_squared: move UART configuration to apollo_lake.dtsi
  • aeb7fcef board: stm32_min_dev: add the missing usb node
  • cf1d3742 boards: rv32m1_vega: Introduce zero-riscy configuration
  • fe4b1ff0 boards: rv32m1_vega: Use different openocd config file for each core
  • 8b1a50b6 boards: holyiot_yj16019: add support for the Holyiot YJ-16019 board
  • dffd779f boards: arm: unify Nucleo-64 boards connectors image
  • 68a4bc54 boards: support the SAME70Q21B on the SAM E70 Xplained Board
  • 13453b91 boards: enable i2c on the SAM R21 Xplained Pro board
  • 35d529b6 boards : arm : Add I2C support for MEC15xx EVB
  • 3667d0b7 boards: microchip_mec: Introduce gpio to the eval board
  • c53c32e1 board: efr32_slwstk6061a enable SoC DC-DC converter
  • a93fcb10 boards: mimxrt1050_evk: configure USB device EHCI driver for rt1050
  • de873903 boards: adafruit_trinket_m0: Set flash address
  • d52ca255 boards: adafruit_trinket_m0: Force program flash to 0x2000
  • 7cf318b4 boards: add jlink runner for efr32_slwstk6061a board
  • c7e66ff9 boards/arm/olimexino_stm32: enable watchdog
  • 56be0fd5 boards/x86/qemu_x86: increase RAM size
  • d9c18ff0 boards: arm: Add Nordic nRF52811 board
  • e0d96866 boards: holyiot_yj16019: Remove counter from supported
  • 3f9a7920 boards/arm/*/*dts: fix double whitespace in model property
  • b6c84a94 boards/arm/olimexino_stm32: fix compatible dt property
  • 62a8e49f boards/arm/mikroe_mini_m4_for_stm32: fix model&compatible dt properties
  • a016feb4 boards: cc26x2r1_launchxl: enable TRNG entropy source support
  • 2d4ec5f1 boards: cc1352r1_launchxl: enable TRNG entropy source support
  • 2dc141ea boards: arm: mimxrt1015_evk: update board dts
  • d7efa1db boards: arm: mimxrt1020_evk: update board dts
  • 180df6dc boards: arm: mimxrt1015_evk: update the ram size
  • 105aef98 boards: twr-ke18f: add support for the NXP TWR-KE18F board
  • f9efca4b boards: riscv32: add LiteX VexRiscV board
  • a7a62509 boards/arm/olimexino_stm32: register led1
  • 65352a74 boards/x86/acrn: fix documentation to reflect “demo” nature
  • 7e85700a boards: arm: twr_ke18f: add RTC to list of supported peripherals
  • ce1e990c boards: arm: frdm_k64f: add Arduino header definition to DTS
  • 8548517b boards: nrf52840_pca10056: add Arduino header definition to DTS
  • 9ab20bfd board: disco_l475_iot1: add Arduino header definition to DTS
  • c0d9e7fc shields: introduce shield-based WNC-M14A2A modem setup
  • 8611837e boards: arm: frdm_k64f: don’t use ETH if MODEM is enabled
  • 35590c6d boards: arm: frdm_k64f: add pinmux for SARA-R4 modem
  • 4c490759 boards: shields: introduce SparkFun u-blox SARA-R4 shield
  • e2b45e6b boards: arm: particle_boron: enable SARA-R4 modem
  • f9d7bc29 boards/up_squared: remove CONFIG_SBL_FIXUP
  • 35d0ae39 boards/up_squared: temporarily remove I2C support
  • a8dcb8b6 boards/up_squared: remove SBL-specific board configuration
  • 96961476 boards/up_squared: I2C support added (back) in
  • 0b2a9b1b boards: reel_board: enable pull-up on UART TX pin
  • 56e50cf4 boards: nucleo_wb55rg: Configure LPUART
  • a828b2a5 boards: cc26x2r1_launchxl: enable support for I2C
  • 4817f413 boards: cc1352r1_launchxl: enable support for I2C
  • c124cdbb boards: arm: particle_boron: fix SARA-R4 gpio definitions
  • e541b16c boards: atmel: Enable hwinfo as a supported feature
  • 7f9f39fe boards: nrf52840_pca10059: Configure NFC pins as GPIOs by default
  • e0d73787 boards: mimxrt1060_evk: Enable mcux lpi2c driver and pins

Build (74):

  • 4198ba71 cmake: Fix missing dependency
  • 28a5657f cmake: zephyr_cc_option(-fmacro-prefix-map=${ZEPHYR_BASE}=.)
  • f098b44a cmake: atomic rename to fix toolchain cache creation race
  • 39131dc3 git.cmake: let the environment override BUILD_VERSION
  • fa0083ad cmake: fix support for out of tree shields
  • f92abffe ieee802154_kw41z: Fix build error with SYS_LOG_INFO
  • 94722992 cmake: DT: Change from -Idts/common to -isystem dts/common
  • 397abd41 cmake: DT: Add support for out-of-tree binding root directories
  • 9964cf29 kconfig: Add missing quotes after ‘source’ and ‘menu’
  • 60c39502 genrest: Include all parents in menu paths
  • 86b0c22d kconfig: Avoid potential issue parsing generated_dts_board.conf
  • bb09c458 cmake: Prevent infinite recursion
  • 7fdb5257 kconfig: Use ‘default’ instead of ‘def_bool’ in Kconfig.defconfig files
  • 3ad96bfc extensions.cmake: add two cc/compile_options callgraph comments
  • 3ffdcf4f cmake: boilerplate: Fix ZEPHYR_BASE variable for windows
  • 498b4946 CMakeLists.txt: fix misleading logical_target_for_zephyr_elf comment
  • 3a0597f0 cmake: LD: Allow input sections to remain unsorted
  • 857ea451 cmake: Split out board listing from usage
  • 3481dc87 cmake: fix whitespace
  • 3419efd5 cmake: fix intent description of toolchain_cc_nostdinc macro
  • 0cad53b5 cmake: Toolchain abstraction: introduce LINKER variable
  • 1f01325e cmake: Toolchain abstraction: use LINKER, introduce toolchain_ld_base
  • 7411c014 cmake: remove incorrect statement from doc
  • 2211935e cmake: clang: Make clang pick -T option on linking
  • d4ce2924 cmake: clang: Allow host’s clang to be used for native_posix
  • de603c0c toolchain: Do not pollute TOOLCHAIN_HOME
  • 274a4a28 cmake: Set TOOLCHAIN_HOME for Zephyr’s SDK
  • 129ae378 cmake: llvm: Make the setup for host installed clang easier
  • 2688bfad cmake: clang: Detect host installed clang
  • a3999243 cmake: clang: Don’t unconditionally use gcc’s fortify
  • f2c4779b cmake: clang: Provide toolchain_cc_nostdinc() macro
  • ab2f00e9 cmake: clang: Fix comment
  • bee7d1ec compiler: clang: Don’t link libgcc for native_posix
  • cbe74d46 cmake: llvm: Invalidate toolchain capability cache
  • 40808183 cmake: Toolchain abstraction: move LINKERFLAGPREFIX under GNU ld
  • 65f02c04 cmake: Toolchain abstraction: introduce toolchain_ld_baremetal()
  • 66431d21 cmake: helper function for importing library
  • c2419fc0 cmake: gdb: use gdb-multiarch if ${CROSS_COMPILE}gdb is not availiable
  • 69928beb cmake: Toolchain abstraction: build-id,gc-sections to toolchain_ld_base
  • 173c953e cmake: Toolchain abstraction: orphan handling in toolchain_ld_baremetal
  • b14b59c9 cmake: Toolchain abstraction: move symbol sorting into toolchain_ld_base
  • 3db09aa6 cmake: Toolchain abstraction: introduce toolchain_ld_cpp
  • 85af2805 cmake: remove unused ALIGN_SIZING_DEP
  • 8c7c2d21 cmake: whitespace alignment of syscall_macros_h
  • 11d6baea cmake: change construct_add_custom_command_for_linker_pass into macro
  • 4c811971 cmake: rename construct_add_custom_command_for_linker_pass macro
  • 1073fbaa cmake: configure_linker_script: accept argument with file extension
  • fbcea17c cmake: simplify configure_linker_script: avoid deriving define from name
  • 5f347eef cmake: move configure_linker_script to ld/target.cmake
  • 06365a5e cmake: zephyr_modules: Add west executable argument
  • 9915b4ec C++: Fix compilation error “invalid conversion”
  • 86a3e8ff cmake: Toolchain abstraction: Introduce toolchain_ld_relocation macro
  • d7ee1141 cmake: Toolchain abstraction: move PROPERTY_LINKER_SCRIPT_DEFINES
  • 37d49477 cmake: Rename kernel_elf to zephyr_final
  • a880fb13 cmake: explain BUILD_VERSION and KERNEL_VERSION_*
  • c2c8c849 cmake: Don’t have users call zephyr_link_interface on mbedTLS
  • f483e5b5 cmake: Mark post_build files as BYPRODUCTS
  • 197197a5 cmake: Toolchain abstraction: Introduce toolchain_ld_configure_files
  • 8650b150 cmake: Toolchain abstraction: Introduce toolchain_cc_warning_dw_[1-3]
  • bdb229fa cmake: Toolchain abstraction: Introduce toolchain_cc_warning_base
  • cbbbdeaa cmake: Toolchain abstraction: Introduce toolchain_cc_warning_extended
  • f4f09dd7 toolchain: Define a HAS_BUILTIN(x) macro in toolchain.h.
  • 472ea92e Build: Build with newlib-nano c library
  • 9b6c2f4b c++: kconfig: Fix choice dependencies and use ‘menuconfig’ symbol
  • ef621160 cmake: Fix missing dependency
  • ea5866e5 kconfig: Use ‘CONFIG_FOO_*’ in #endif comments to avoid CI failures
  • f2a1572a cmake: Add function for adding snippets to the linker file
  • 901c0a1c linker: Port usage of custom-sections to use Cmake
  • 421b4262 cmake: add handling for shield config and shield/board overlays
  • 538e12e5 cmake: fix regex for west version check in host-tools.cmake
  • 8eaa9068 cmake: Toolchain abstraction: Added missing colon to some Intent’s
  • 8e5a95e4 cmake: Toolchain abstraction: Introduce macros for MISRA SANE flags
  • 025ffa24 cmake: Toolchain abstraction: Abstraction of implicit-int error flag
  • cd92af1c linker: kobject-text.ld: avoid backwards location counter

Continuous Integration (15):

  • 0f7255c3 sanitycheck: order results.csv and discards.csv deterministically
  • 22a624a8 ci: only build on specified branches
  • 924987d7 ci: detect changes to sub-board definitions
  • 654ec598 sanitycheck: add timestamps to messages
  • 042d9b7d sanitycheck: fix reporting: build vs. run
  • d6476eee sanitycheck: handle pid file not being present
  • d18ec535 sanitycheck: show handler in verbose mode
  • bf878ced sanitycheck: Fix an error in scan_path exception
  • af1090c3 sanitycheck: clarify who spawns processes and threads and where
  • 2261d3e4 ci: send email to builds@ mailing list if master fails
  • 1c8632cf sanitycheck: support symbolic links in ZEPHYR_BASE
  • 79c48849 sanitycheck: Allow custom arguments for west-flash
  • cbecaddf sanitycheck: Add a “test-only” option
  • 75276a7d sanitycheck: when present, point at handler.log instead of run.log
  • 6b9e160b sanitycheck: Execute binary in output directory

Device Tree (35):

  • 08d41ecf dts: stm32f412Xg: Factorize package definitions
  • b2372456 dts: add declaration of stm32mp157
  • 7117f1c4 dts/arm/st: Provide basis for stm32wb device tree
  • 1847426f dts/arm/st: Add serial nodes on stm32wb
  • 13916a14 dts: stm32mp157: Dtsi fixup
  • 968d3a9e dts: flash simulator cleanup
  • a0a9a1f9 dts : arm : Add Microchip MEC1501 SoC device tree
  • 85698a01 DTS: Add UART 5 for STM32F4 SOC
  • 948ef47c dts: riscv32: Add rv32m1 zero-riscy core support
  • e44052f2 dts: riscv32: rv32m1: fix reg value for cpu@1
  • da56cad3 dts: arm: stm32: add dts support for ADC1 of stm32
  • 291e1289 dts: mchp: Add Microchip I2C SoC device tree
  • 2452b84c dts : Introduce gpio node entries for Microchip MEC
  • ff167995 dts: bindings: sram: add SiFive dtim0 bindings
  • 6299890b dts: riscv32: microsemi-miv: add flash and sram
  • 2a5010e7 dts: riscv32: hifive1: add flash
  • 85ca181b dts: riscv32: hifive1: configure sram
  • 855153a3 dts: riscv32: qemu_riscv32: configure sram
  • 8a568857 dts: riscv32: qemu_riscv32: add flash
  • 416c6240 dts: m2gl025_miv: configure flash and sram
  • cc3358e0 dts: arm: nxp: Add dtsi for RT1015 and RT1020
  • a5f36427 dts: bindings: Document missing property boolean type
  • 233149ee dts: nordic: move flash/sram under SoC Node
  • 0472bc46 dts: nordic: add missing erase-block-size entry
  • 2cac70e0 dts: bindings: usb: Add enum to maximum-speed property
  • 0a08c4e1 dts: arm: add DTS binding for ARM MPU peripheral
  • 579ac7bd dts: atmel: sam0: correct ARM Cortex-m variant in dtsi
  • 8ce04c5a dts: arm: delete systick node from SoCs not having the SysTick timer
  • 11b3b226 dts-binding: modem: wnc-14a2a: add label binding
  • cf5b0813 dts/bindings: introduce Arduino-header-R3 GPIO binding
  • 769b65ef dts: bindings: add modem binding for u-blox SARA-R4
  • e7cc5109 dts: x86: Move ioapic node out of cpu container
  • 343e1602 dts: x86: shring ioapic register size to 4k
  • 82451953 dts: import vendor-prefixes.txt from linux kernel
  • 9260561c dts: atmel: Fix node name for device_id

Documentation (31):

  • 9d04f03b doc: add missing doc top labels
  • 0eec5dba doc: labels: Add links to feature process
  • 18b51587 doc: sample: mpu Update documentation
  • 8b147cd1 README.rst: shorten it
  • 1e6f4bd1 doc: guides: add “Asking for Help” guide
  • d9f53455 doc: extract_content: Allow for absolute paths in deps
  • 74be380f doc: application: fix duplicated word
  • 4f23741a doc: nrf52840_pca10059: re-work programming notes
  • c41320eb doc: guides: debugging: probes: correct J-Link usage
  • 15333eb3 doc: dfu: Fix mcuboot reference
  • 35b10fbd doc: stm32_min_dev: Update for blue/black variant support
  • df357c43 doc: fix watchdog API documentation
  • b54f1a94 doc/getting_started: mention ZEPHYR_TOOLCHAIN_VARIANT=llvm
  • 773bd98c doc: clarify behavior of k_poll_signal_raise on error
  • 81e005f4 doc: re-word and extend west build documentation
  • 3696eccc doc: fix west boards tip
  • c5112327 doc: fix mentions of Wi-Fi trademark name
  • d96ffc19 doc: boards: arm: nucleo: add ADC support to the boards doc
  • 9cea26ae doc: west: Document west installation in-depth
  • f3d1386a doc: save ZEPHYR_BASE in more places where it’s needed
  • bedfcf4d doc: coding style: Expand the list of keywords with braces
  • 90276c28 doc: updates for west installation docs
  • 64c6a10b doc: updates to west multi-repo docs
  • 6cb8e3ec doc: move sign command docs before catch-all page
  • 605a3906 doc: kconfig: Fix accidental SPDX-License-Identifier in generated doc
  • 5b400fbe doc: trivial fix for lpcxpresso54114 doc
  • 21e964ec doc: guide for optimizing zephyr
  • cd6ba94b doc: add references to builds mailing list
  • 9d3be372 doc: move module related doc to guides
  • 2f126bb5 doc: document submitting changes to modules
  • d1452636 doc: dfu: Fix module links

Drivers (216):

  • 29ffcae8 drivers: usb_dc_stm32: Make pin remapping part of the device tree
  • f01a7250 drivers: usb_dc_stm32: Reinitialize the write semaphores on bus reset
  • 431c450a drivers: clock_control: nrf: Fix lfclk source settings for nrf9160
  • 3a6c786c drivers: counter: nrfx_rtc: Fix lack of interrupt when CC=0
  • a000ba79 drivers: eth: gmac: Fix MAC address info log
  • a3ec56c1 drivers: counter: stm32: fix LSE clock source for not F4 SoC
  • 36ff55cb gpio: rv32m1: enable GPIO port clocks
  • e0390535 uart/ns16550, drivers/pcie: add PCI(e) support
  • 35b93084 drivers: can: mcp2515: Add driver for MCP2515 CAN controller
  • 4f776104 drivers: can: mcp2515: Rework for DTS SPI bindings
  • c9090caa drivers: can: mcp2515: Fixes for DT SPI cs
  • 3de55daa drivers: serial: stm32: remove forced RXNE clearance
  • c74c131e drivers: serial: stm32: add err_check
  • 78eed34b drivers: serial: stm32: add serial hw flow control
  • 6751c1ff drivers: pinmux: stm32: add F4 RTS/CTS definitions
  • 5b5f0a5f drivers: pinmux: stm32: add L4 RTS/CTS definitions
  • 3f0f617b drivers: pinmux: stm32: reformat L4 pinmux
  • 04da64db drivers: serial: stm32: dts binding, and fixup for flow control
  • 25ea5fea drivers: pinmux: stm32: add F4 RTS/CTS definitions
  • 3751275f drivers: gpio: stm32: add ASCR configuration for L47x+
  • 8905b0fe drivers/gpio_intel_apl.c: fix return value for gpio_pin_read()
  • 1e5e8829 drivers: sensor: APDS9660 WhoAmI check logic
  • 917cb432 sensor: fxos8700: add support for hardware reset pin
  • f458a509 driver/audio: mpxxdtyy: Added support for 2 microphones (stereo)
  • 69726bbc usb: tests: Enable other boards for test
  • 23d22043 usb: usb_dc_dw: Fix valid endpoints check
  • 81fbf0f4 usb: usb_dc_native_posix: Fix valid endpoints check
  • 582b4401 usb: usb_dc_dw: Check endpoint is valid
  • 53ab1e24 usb: usb_dc_native_posix: Check endpoint is valid
  • cc9c9151 usb: usb_dc_kinetis: Verify endpoint is valid
  • cf349df3 usb: usb_dc_kinetis: Fix using invalid index
  • f6784ed1 usb: usb_dc_stm32: Add missing function
  • a0614439 interrupt_controller: rv32m1: fix intmux driver initialization priority
  • 8a4dbb5b drivers: i2c: rv32m1: add I2C driver for the RV32M1 RI5CY SoC
  • 6e277cff drivers: serial: add config for uart 4
  • d2291c4b drivers: clock_control: nrf: add SYNTH LFCLK clock source
  • c4306704 drivers: hwinfo: add driver support for Atmel SAM0 device ID
  • 560b458a drives/flash: use nrfx for nrf
  • 279115e3 drives/flash: provide boundaries info for nRF9160
  • bca3deb1 drivers: Bluetooth: Generalize IC-specific setup hook
  • 3c70a383 drivers: sensor: ams_iAQcore: Implemented ASM Indoor Air Quality Sensor
  • f29ec12f drivers: sensor: ens210: Implement AMS ens210 Sensor
  • 776671c7 drivers/interrupt_controller: stm32: add support of stm32mp1
  • ea7afdde usb: cdc_acm: SerialState notification full support
  • 27c97911 flash_map: fix test names
  • 1e5d02fc flash_map: add function to iterate over areas
  • 5c6efa01 flash_map: add shell interface
  • b1128999 drivers/clock_control: Add support to stm32wb series
  • d6550734 drivers/interrupt_controller: stm32: Add support for stm32wb series
  • 15023492 drivers/pinmux: stm32: Add pinmux definitions for stm32wb (LP)U(S)ART
  • dd2a0867 include/uart.h: remove unused PCI references
  • c8b0a8d4 drivers: clock_control: Add STM32L1X clock support
  • cda74e20 drivers: pinmux: Add STM32L1X pinmux support
  • 1eb6177e drivers: gpio: Add STM32L1X GPIO support
  • 0525019b drivers: interrupt_controller: Add STM32L1X EXTI support
  • b31adf2d drivers: i2c: Add STM32L1X I2C support
  • 8e307a3a ethernet/eth_e1000.c: change to new PCI(e) functions
  • 6fc65535 drivers/gpio/gpio_intel_apl: remove dependency on shared interrupts
  • c0a15c8b drivers: pwm_nrfx: Correct prescaler value for undivided clock
  • c837d85c drivers: flash: add flash_simulator driver
  • 1c604161 drivers: flash: fix flash-simulator build crash
  • 6ae532a3 drivers: flash: flash_simulator enabled by default on qemu
  • 5895f8d8 driver: flash: flash_simulator: moved part of Kconfig to DT
  • 68a950a8 drivers: timer: nrf: remove unnecessary event feature
  • 686830bb drivers: native_posix: Add VLAN tag strip feature
  • f6343ace drivers: clock_control: stm32: Modify file naming pattern
  • aca4b075 clock_control: Add stm32mp157c_dk2 board support
  • 524c6255 drivers: gpio: stm32: Indentation and cleanup
  • b4b7020b gpio: Add stm32mp157c_dk2 board support
  • f95f5ae4 usb: sam0: Ensure API arguments are valid
  • c8208a39 usb: sam0: Implement missing API functions
  • df33e5e8 flash_gecko: add support for page layout
  • 2b58594e usb: device: Use set_endpoint helper for set_config
  • 42b92e25 usb: device: Use set_endpoint helper
  • 8515b841 driver: watchdog: stm32: rename the independent watchdog name
  • 5274c382 pinmux: stm32f4: Add STM32_OSPEEDR_VERY_HIGH_SPEED to pinmux header
  • 5fd99f5e drivers: flash: simulator Kconfig cleanup
  • b50fe237 usb/class/usb_dfu: support progressive image erase
  • cdc29175 drivers: ieee802154: Make upipe configuration options depend on driver
  • e79e4d9f usb: Add Kconfig template for DEVICE_COUNT
  • fbd27134 usb: hid: Use UTIL_LISTIFY and device count macro
  • e2d1c027 usb: cdc_acm: Use UTIL_LISTIFY and device count macro
  • 0d3082cb usb: device: Code cleanup
  • 8d6fbde8 usb: Remove usb_dc_ep_set_callback return code
  • 446f5e48 usb: dc: native_posix: Increase number of endpoints supported
  • fbfe75c5 usb: tests: Add second IN endpoint to test
  • e96673dc drivers: spi: nrfx: allow enabling DMA with the nRF52832 despite PAN 58
  • 18833ac0 drivers/pcie: verify PCI(e) assigned interrupts
  • 791def84 usb: bluetooth: l2cap buffer size now configurable
  • d68666fc drivers: spi: sam0: Implement DMA async API
  • ec2f5036 drivers: serial: sifive: Fix UART extern interrupts
  • 78a39b80 drivers: flash: covering more flash page with stats sections
  • 32d23cb3 driver: api: uart: remove exclusive config for async api
  • c5b0a996 drivers: ieee802154: New API for ACK configuration
  • ba21de58 drivers: dma: Add SAM0 DMAC driver
  • 6324c8a2 drivers: pinmux: sam0: Remove defines from dts_fixup.h
  • 37a6a7ea drivers: gpio: sam0: Remove defines from dts_fixup.h
  • 4204700a drivers: flash: sam0: Remove defines from dts_fixup.h
  • 06caf274 drivers: watchdog: sam0: Remove defines from dts_fixup.h
  • b6cc9987 drivers: timer: sam0: Remove RTC defines from dts_fixup.h
  • 07d18e3f drivers: usb: sam0: Remove defines from dts_fixup.h
  • 11295c19 drivers: sensor: Add ADXL362 interrupt handling
  • 6f225ab6 uart: Add support for stm31mp157c_dk2 board
  • 287f0670 drivers: pinmux: stm32: code cleanup
  • eba3f492 pinmux: Add stm32mp157c_dk2 board support
  • 714c8ff2 usb: usb_device: fix set configuration request
  • bfea4536 drivers: adxl362: use logger API
  • ef1788da drivers/uart_ns16550: remove unnecessary #include
  • f16f7fc4 drivers/pcie: add support to read wired IRQ configuration
  • f2af5fe7 drivers/uart_ns16550: move UART configuration boilerplate to template
  • 869c5d2e drivers/uart_ns16550: enable auto IRQ detection for PCI(e) endpoints
  • 4a49736b drivers/uart_ns16550: fix style issues flagged by Zephyrbot
  • be1ec782 usb: samples: mass: add configuration and fs for FLASH
  • 5a4a658d usb: usb_dc_stm32: Return EAGAIN on lock failure
  • c77e142f usb: device: Handle EAGAIN for device transfer
  • 3183c103 usb: Fix automatic assignment endpoints
  • dac83213 usb: webusb: Strip ‘serial’ from names
  • 34a2b401 usb: webusb: Update license header
  • bc05efac usb: webusb: Fix logging for webusb
  • 87b3c631 usb: webusb: Remove unneeded headers
  • b0373fbd usb: webusb: Fix payload for vendor requests
  • f4ff72bb usb: webusb: Add more log output
  • bb81fed4 crc: remove deprecated crc headers
  • 1b9dc5fa drivers: spi: nrfx: fix a CMakeLists.txt bug introduced in e96673d
  • de77262d drivers: pinmux: stm32f7: Add LTDC pinmux entries to STM32F7
  • 93a77c0f drivers: ieee802154_nrf5: Rename nrf5_config to nrf5_irq_config
  • e0ff342a drivers: ieee802154_nrf5: Implement configure API
  • b4204631 usb: Add log for endpoint assignment
  • 42bdcccd usb: usb_dfu: do not set bwPollTimeout dynamically
  • 1d64a465 drivers: adc: Add SAM0 ADC driver
  • 46730e1f drivers: i2c: Add SAM0 I2C driver
  • 4462069d drivers: gpio: sam0: Add interrupt support
  • cb39e4ab api: dma: fix issue of no-implemented reload
  • 74e320d8 api: dma: add api to retrieve runtime status
  • ac9356ad drivers: led: ht16k33: add LED driver for Holtek HT16K33 LED driver
  • 98cecb36 drivers: gpio: ht16k33: add GPIO driver for Holtek HT16K33 LED driver
  • cc1b2c70 uart: doc: Add special case for virtual UART
  • 2c672b92 usb: device: Add usb_transfer_is_busy() function
  • 98c8a951 usb: cdc_acm: Refactor USB serial code
  • 5e942638 drivers: pinmux: stm32: add pinmux support for ADC of stm32
  • 7c7db00a drivers: adc: add driver support for ADC1 of stm32
  • e7d26be7 API: Uart: Add support of 9 bits data length
  • 9fee67d5 Driver: Uart: Add support of 9 bits data length for STM32
  • 9012960e drivers: counter: Add optional (D)PPI wrapping to nRF RTC driver
  • 29deef2d drivers: watchdog: sam0: Check if timeout is valid
  • ae990523 drivers: adxl362: don’t skip mutex unlocking in error path
  • cddb3a1e drivers: adxl362: use Kconfig for interrupt mode
  • a94f1718 drivers: i2c: mchp: Add I2C driver for MEC family
  • 0cb23812 drivers: gpio: Introduce microchip gpio driver
  • e5cbe6a9 usb: cdc: Add unique PIDs for each sample
  • a30950c6 usb: cdc: add .inf file
  • b1f3825e usb: cdc: add option to force IAD
  • 5f0d0655 drivers: usb: nxp: add NXP EHCI USB device controller driver shim
  • bc618657 drivers: can: stm32: fix filter mode set
  • 252ab559 drivers: wifi: simplelink: Add static IP address support
  • 3c3e267d usb: add zero-length packet after MPS-sized IN transaction
  • 197e3585 drivers: pinmux: add SPI2 on Port B defines
  • 1b935223 drivers: can: Extend attach_isr with void *arg and pass to the isr cb
  • b3b43b89 drivers: can: Extend can_send with void *arg and pass it to the isr cb
  • 7ddbade2 drivers: can: rework can_attach_msgq
  • 54d065c6 drivers: can: Implement can_attach_workq
  • 0e807c3f drivers: can: Add loopback driver
  • b0bc68e8 drivers: can: rename drivers to can_
  • 6746470d drivers: ieee802154: nrf5: Support when LOG is off
  • 0e925701 drivers: adxl362: don’t disable callbacks
  • ed474e88 drivers: adxl362: check interrupt status
  • a5327b00 drivers: adxl362: clear status independently and before mapping
  • 4054d2ba drivers: flash: flash_simulator: added max write calls param
  • 2bee500f drivers: add CC13xx / CC26xx entropy driver
  • 75a3ee52 drivers/i2s_ll_stm32.c: (FIX) Avoid warning in LOG_ERR
  • 55e2014d drivers: nrf: Trigger STOP RX event and wait before disabling UARTE
  • 021e27cf drivers: i2c: mcux_lpi2c: add support for I2C_0
  • 168e1291 clock_control: introduce mcux pcc driver
  • 56dfb62e drivers: serial: uart_mcux_lpuart: add support for LPUARTs with two IRQs
  • d4b9c0d6 drivers: clock_control_mcux_sim: add support for clkout
  • aaf91f0c interrupt_controller/loapic_intr.c: remove unused MPtables constants
  • 6d4a5200 drivers: counter: Move nRF TIMER and RTC configuration to device tree
  • 48edfc22 console: kconfig: Put ‘menuconfig CONSOLE_SUBSYS’ in top-level menu
  • 63575589 subsys/random: Hide ‘Random generator’ choice when empty
  • b3739169 drivers: serial: add LiteUART driver
  • c0c3cdfc drivers: timer: add LiteX timer driver
  • b054517c drivers: interrupt_controller: add LiteX interrupt controller driver
  • 2a7824a8 drivers: ipm: mhu: Add MHU driver for V2M Musca
  • 7b057624 drivers: nrf: Fix long receptions in UARTE async API.
  • 61fb6b46 drivers: gpio_c13xx_cc26xx: fix control flow issue
  • b364b841 usb: webusb: Fix callback not called
  • a1e3f392 usb_dc_stm32: Check if functions’ arguments are valid
  • d8f8f0f2 drivers: modem: wncm14a2a: dont free packet on error
  • bd2d0392 drivers: modem: wncm14a2a: correct pinconfig assert check
  • fd690946 drivers: modem: wncm14a2a: remove HW specific Kconfig settings
  • 759d1d64 drivers: modem: introduce u-blox SARA-R4 modem driver
  • f521996d uart: native_posix: Add support for another serial port
  • 59ebe6a0 drivers/i2c/i2c_dw.c: templatize device configuration boilerplate
  • 309dfef5 drivers/i2c/i2c_dw.c: rewrite for PCI(e) support
  • 7b8f8ba5 drivers/i2c_dw: update CODEOWNERS
  • 2eb99ea3 usb: cdc_acm: fix typo in CDC_ACM_DEFAULT_BAUDRATE
  • 8f0c3b80 usb: cdc_acm: reset to default after disconnect
  • c0204b92 entropy: fix C++ compiler warnings
  • 69a2896f drivers/serial: stm32: Optimize LPUART code
  • 9c1ffddc drivers: serial: Enable LPUART for STM32WB
  • 927012dd lvgl: kconfig: Remove menu and use a ‘menuconfig’ symbol
  • 4cc486ec drivers: adxl362: fix control flow issue
  • 935efeb0 drivers: adxl362: fix acceleration sample conversion
  • 1becd756 drivers: adxl362: rework temperature conversion
  • 6eb0cb0d drivers: add CC13xx / CC26xx I2C driver
  • 1202407b drivers: i2c: sam0: Fix missing break in speed setup
  • cfa32af7 drivers: led: ht16k33: add missing variable initialization
  • bf76b2ac usb: device: Add transfer cancel helper
  • f206170c usb: device: Do not call callback when transfer is cancelled
  • 437ee504 usb: device: Cancel all transfers on disconnect
  • 83f625b4 usb: device: Add debug logs catching re-enable failures
  • 9f2ddc9f usb: webusb: Trivial syntax fix
  • 1370f162 usb: device: Disable endpoints on disconnect and suspend
  • a95f6385 usb: device: Do not return error if ep already enabled
  • 03ef375f drivers: usb: usb_dc_nrfx: Set cfg.en to false on Reset
  • 626349f1 drivers: adxl362: use burst transfer

External (35):

  • 14aa624c ext: mcux: csi: Fix wrong circular queue delta calculation
  • ee69d004 ext/hal: stm32f0xx: Fix warnings for extraneous parentheses
  • a51bfc8d ext/hal: stm32f1xx: Fix warnings for extraneous parentheses
  • 198387dc ext/hal: stm32f2xx: Fix warnings for extraneous parentheses
  • 0404cf90 ext/hal: stm32f3xx: Fix warnings for extraneous parentheses
  • 3ec47dcf ext/hal: stm32f4xx: Fix warnings for extraneous parentheses
  • 073ece50 ext/hal: stm32f7xx: Fix warnings for extraneous parentheses
  • 0a482cd9 ext/hal: stm32l0xx: Fix warnings for extraneous parentheses
  • c38df151 ext/hal: stm32l4xx: Fix warnings for extraneous parentheses
  • c28fdc7a ext: hal: nordic: Update nrfx to version 1.7.1
  • 55a63cad ext: hal: nxp: mcux: add device files for RT1015
  • e529af1f ext: hal: Enable support for stm32mp1xx hal
  • 0429a3ad ext: hal: add stm32mp1 exti ll driver
  • 3c82d233 ext: hal: fix naming in rcc ll
  • 6fdd0c2c hal: stm32wbxx: Add HAL for the STM32WB series
  • 90982153 ext/hal/st: Adapt stm32cube folder to stm32wb introduction
  • 9f826045 ext: hal: st: stm32cube: Add HAL for the STM32L1x series
  • ffafa9c9 ext: lib: crypto: Extend mbedTLS generic config
  • f1f46e2c ext: Import Atmel SAMR21 header files from ASF library
  • 43c4c9c5 ext/hal/st/stm32cube/stm32l1xx: rename SVC_IRQn -> SVCall_IRQn
  • 66cae83f ext : hal : mec1501 Add the MEC1501 external headers.
  • faa941eb ext: simplelink: import HAL from TI CC13x2 / CC26x2 SDK 3.10.00.53
  • e490be38 ext: simplelink: modify CC13x2/CC26x2 CCFG to use appropriate sections
  • bec1fe86 ext: nrfx: Reserve PPI channels and groups used by pwm_nrf5_sw driver
  • 5e38ed93 ext: nrfx: Reserve PPI channels and groups used by Bluetooth controller
  • 15c22965 ext/hal/st: stm32cube: Update License Link for stm23cube packages
  • f3bdc057 ext: hal: atmel: import SAM E70 HAL revision B
  • 26512cb3 ext: hal: atmel: same70b: apply same patches than on rev A
  • 99ba2e7f ext: hal: mchp: Fix compilation for MEC1501 SMB macros
  • 8487a1eb ext: mcux: Import NXP SDK USB EHCI controller driver to ext/ directory.
  • dbc2406a ext: lib: mcumgr: Remove ‘External Sources -> Management’ menu
  • 5c69e981 ext: open-amp: kconfig: Add missing OPENAMP dep. to OPENAMP_SRC_PATH
  • 3a953731 ext: hal: nxp: mcux: add device and driver files for KE1xF series SoCs
  • 4a575122 qmsi: move to a zephyr module
  • f0ea13d2 ext: mbedtls: Don’t define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS

Firmware Update (7):

  • 945f9c7d dfu/boot: non-secure app support
  • a819d162 dfu/boot: Replace flash partitioning terminology
  • dffcfd8c dfu: introduce progressive erasing
  • af98cd7b DFU: img util: Fixed warnings when compiling with newlib
  • c2f08dad dfu/img_util: : non-secure app support
  • 6c55bb44 dfu: kconfig: Remove ‘DFU Options’ menu
  • 5c29d0ef dfu: mcuboot: Added defines for upgrade request modes

Kernel (12):

  • 09dc929d userspace: fix copy from user locking
  • 2e0095a9 security: kernel: Fix STACK_POINTER_RANDOM dependency
  • afda764e kernel: increase workq sizes if COVERAGE=y
  • 873dd10e kernel: mem_domain: update name/doc of API function for partition add
  • 0f6c9a5a kernel: adjust default main stack for riscv
  • be3d4232 kernel: fix k_stack_alloc_init()
  • e1cb4ca0 include/sys_clock.h: simplify _NEED_PRECISE_TICK_MS_CONVERSION
  • 03199f99 include/sys_clock.h: consolidate identical branches in __ticks_to_ms
  • 201fdf0a kernel: Fix usage of CONFIG_SYS_CLOCK_EXISTS
  • b186303c kernel/sched.c: refactor k_sleep() implementation for varied timescales
  • a567831b kernel/sched.c: add k_usleep() API function
  • fd49cf7d kernel: timeout: add syscall for runtime clk freq

Libraries (11):

  • 1afa9d0e libc: minimal: fix realloc function
  • a25dce96 libc: minimal: Add bsearch function
  • 291c06e1 lib: os: ring_buffer: Fix C++ compilation warning
  • b8c560a4 newlib: fix user mode calls to _sbrk
  • 16317c1a lib: cmsis_v2: set default dynamic stack size
  • 8502a2ea lib: cmsis_v2: increase stack sizes if coverage
  • 7153a2ee lib: cmsis_v1: set stack size larger if coverage
  • d79d3eb7 libc: minimal: Define time_t and suseconds_t
  • c896f87d libc: minimal: Introduce sys/_timeval.h
  • 6922d93d lib/posix: correct the meaning of CONFIG_MAX_PTHREAD_COUNT
  • af529d11 libc: minimal: Implement exit()/_exit() functions.

Logging (2):

  • 0bfd2836 logging: Allow logger usage in C++ files
  • 63e784ca logging: Fix checks of Kconfig option

Maintainers (26):

  • b8774ae8 CODEOWNERS: code-owner for SAM3X
  • cebc2627 CODEOWNERS: add code-owner for Arduino Due
  • 9e8ad2df CODEOWNERS: Add codeowner for ams iAQcore and ENS210
  • f73e157d CODEOWNERS: Add codeowner for 96b_wistrio
  • 636a7af4 CODEOWNERS: update code owners
  • 20b64516 CODEOWNERS: Set owner to ext/hal/st
  • ea1f7fb1 CODEOWNERS: Add codeowner to dts/bindings/*/st,stm32
  • 94857d31 CODEOWNERS: Update networking files
  • 035bc2c6 CODEOWNERS: minor adjustment
  • 0ee07269 CODEOWNERS: Add code ownership for Atmel samr21 code
  • a0d79f5f CODEOWNERS: include/cortex_m/csme/ -> include/cortex_m/csme.h
  • e07e8b87 CODEOWNERS: Add ownership for SAM0 DMA driver
  • f2f0b677 CODEOWNERS: minor cleanup
  • af3f81ef CODEOWNERS: remove use of commas
  • 735b2872 CODEOWNERS: Add codeowner for TI CC13x2 / CC26x2 files
  • bcf286d6 CODEOWNERS: Add code owner for rv32m1_vega related files
  • 2c86cac2 CODEOWNERS: Add joerchan and remove sjanc for Bluetooth host paths
  • 1892c67b CODEOWNERS: Add ownership for SAM0 I2C driver
  • a5519ed0 CODEOWNERS: Add entry for lib/libc
  • b70ab8fd CODEOWNERS: Add codeowner for Atmel SAME70 HAL
  • 89b0116a CODEOWNERS: remove use of commas
  • b47669ac CODEOWNERS: Add code ownership for Microchip XEC drivers
  • c4284ba7 CODEOWNERS: address some unowned files/dirs
  • ca4a078b CODEOWNERS: Fix missing ‘/’ in codeowners file
  • 34bf5dd5 CODEOWNERS: Add codeowner for include/dt-bindings/usb/usb.h
  • ec150d68 CODEOWNERS: Add code ownership for gen_relocate_app.py

Miscellaneous (17):

  • f90acbf2 release: Post-release patch level update
  • 247337a0 shell: kconfig: Put ‘menuconfig SHELL’ in top-level menu
  • 65e350e6 Shell: Introduce shell_hexdump
  • 7e26f534 shell: Add macros for creating conditional commands
  • ecf2784f shell: Use conditional commands registeration in shell_cmds.c
  • 0e83ad65 shell: prompt configuration during project generation
  • 0a8c75f9 stats: extending api to handle statistics with more than 256 elements
  • c6d31905 util: extending UTIL_DEC_N definitions
  • 6a0837b4 stats: changed API to use zephyr types
  • 3b99b20f shell: Move signals initialization from thread to init
  • 3bcd1880 treewide: fix typos
  • e66c0da0 misc: Portable math_extras.h implementations.
  • b2945d30 misc: Implement math_extras.h function with GCC builtins.
  • 0e65aab7 misc: Always test the portable version of the math_extras.h functions.
  • c8708d9b misc: Replace uses of _builtin*_overflow() with <misc/math_extras.h>.
  • 3ef63083 codeowner: add codeowners for /test/lib
  • 3c0c1bfa shell: Fix checks of Kconfig options

Networking (59):

  • 88a1fd7d net: fix errno returned without promiscuous mode support
  • 91ca8aab net/ip/dhcpv4: Set source IP address in DHCP Request
  • 7e14cff8 net: ethernet: Set NET_ETH_PTYPE_ARP for IPv4 link local packet type
  • 3e798dfd net: ethernet: Send sender IP address in ARP announce packets
  • f0c98527 net: buf: Remove wrong alignment annotation from NET_BUF_SIMPLE()
  • 712103d5 net: if: Add access functions for network interface flags
  • 36339516 net: if: Only start the network interface during init if needed
  • 51a9e6f5 net: openthread: Do not overwrite stored dataset with defaults
  • e8e814c6 net: sntp: Handle case of request timeout
  • f65727a1 net: sntp: Add sntp_query() function with fractional precision
  • cdebd819 net: trickle: Re-init trickle timer for multiple triggerings
  • 7a824d8b net: slip: allow compilation without CONFIG_NET_LLDP
  • 9ecf2923 net: slip: fix compilation without NET_L2_ETHERNET
  • b9383243 net/icmpv4: Include icmp_hdr in callback
  • dd65cfb5 net/icmpv4: Allow for arbitrary payload data in ICMP echo
  • 7c096953 net/icmpv6: Allow for arbitrary payload data in ICMP echo
  • 812b9997 net: shell: Improve the output of the ping function
  • 25309eb3 net: ipv6: Trivial changes in fragmentation debug
  • 7fbe087d net: tests: ipv6_fragment: Use NET_DBG instead of DBG
  • 08d24e42 net: ethernet: Add VLAN tag stripping capability flag
  • 49cb24a5 net: ethernet: l2: Add support for VLAN tag strip
  • 543eecb9 net: shell: Add VLAN tag stripping to capabilites
  • 3d8fe9a8 net: core: In RX check if the pkt is for loopback interface
  • c4fcc604 net: arp: No need to check pkt for NULL
  • 57629724 net: openthread: Implement frame pending API
  • 95cadb7b net: bt: Add multi-link support
  • 5506a4d2 net: bt: Set NET_IF_NO_AUTO_START flag
  • 7eb4a688 net: openthread: Fix utilsFlashErasePage function
  • b17664b1 net/offload: Add dummy functions when offloading is disabled
  • 622f4abd net/ip: Make struct net_addr holding uninon of ipv6/4 unconditionally
  • 6fee1261 net/context: Reduce the usage of #ifdef/#endif
  • dea1cdfd net/context: Reordering some ipv4/6 logic to follow all other places
  • b2b21412 net/connection: Removing cache feature
  • de6fd24e net/connection: Reduce usage of #ifdef
  • d85aabe2 net/connection: Use slist to manage used/unused connections
  • d652a1e8 net/connection: Merge rank bits into flags attribute
  • 9a6e3012 net/connection: Final cleanup
  • 9a6bbbfb net: Check device driver API pointer
  • b8494d9a net: lib: mqtt: Enable blocking PUBLISH payload readout
  • cd07a30c net: Allow to disable native IP stack with socket offloading
  • 2de06b4b net: Avoid calling L2 functions on offloaded interface
  • 9ca9e077 net: socket: Define NI_MAXHOST for compatibility
  • 426f3fa1 net: socketutils: Add utils to manipulate network address strings
  • 22f1a291 net: sntp: Add convenience API for one-shot SNTP query
  • 89bf1578 net: sockets: Add a way to register a socket family handler
  • 61f4597d net: sockets: tls: Register handler for TLS sockets
  • b3cd478a net: sockets: packet: Register handler for AF_PACKET
  • e082d989 net: sockets: can: Register handler for AF_CAN
  • a84e9345 net: arp: Use proper dest hw address after receiving a request
  • 95527963 net: arp: Drop request where src hw address is our address
  • a2fa8e9c net: getaddrinfo: Implement initial handling of host == NULL
  • c0b30355 net: sockets: implement getsockname function
  • b800737f net: ipv4: Allow UDP packets with broadcast dst address
  • 60cb25d1 net: ipv4: Send multicast ICMPv4 reply with correct src address
  • 979aedfa net/iface: Modify function to get IPv6 global address
  • 426764eb net/iface: Add a function to get IPv4 global address
  • 6f79b019 net: if: Select global IPv4 address if needed
  • 19b48687 net: ethernet: Drop pkt if MAC dst is bcast address but IP is not
  • a923c2f1 net: openthread: fix off-by-one error in settings offset calculation

Samples (46):

  • 47b7c79e samples: mesh: enable SMP service for DFU
  • bf52bfea samples: can: Added project configuration for MCP2515
  • 6b4007e5 samples: sensor: bme280: Convert code to use printk
  • 35a81562 samples: usb: hid: Enable harness for the sample
  • 4f2674f1 samples: usb: Add depends_on gpio
  • e9520335 samples: usb: mass: Add whitelist mass storage on ram
  • d422d566 samples/drivers/soc_flash_nrf: enable nrf9160_pca10090 targets
  • 43b00eff samples: bluetooth: hci_uart: update nrf52840_pca10090 config
  • f989f2d0 samples: sensor: ams_iAQcore: Implement sample for AMS iAQ-core
  • f0090825 samples: sensor: ens210: Implement sample for ens210
  • be5bfb61 samples: sockets: sntp_client: make IPv6 & NET_CONFIG_SETTINGS optional
  • 75102595 samples: sockets: sntp_client: Add support for cc3220sf_launchxl
  • ae218d29 samples: sensors: fxos8700: whitelist rv32m1_vega board
  • 3d6ce30f samples: net: dumb_http_server: Add net_pkt.h file inclusion
  • a9395157 samples: net: dumb_http_server: Check EOF while skipping headers
  • ee442c2b samples: net: zperf: Add __packed for zperf_udp_datagram
  • 901d85bd samples: sntp_client: Elaborate sample to workable state
  • 57e7ddb7 samples: net: zperf: Remove unnecessary main
  • 1b3227fd samples: usb: Correct USB HID device name
  • 995b568b samples: cdc_acm: Update CDC ACM Device name
  • da701f9d samples: hid-cdc: Update USB device names and project conf
  • 631cd007 samples: bluetooth: ibeacon: change to ADV_NONCONN_IND type
  • 888f4dd0 samples: LSM6DSL accel fix unchecked return value sensor_trigger_set()
  • fbd6a752 samples: shields: x_nucleo_iks01a1
  • d481fa8c samples: drivers: ht16k33: add sample application for the HT16K33
  • 0e57e4fb samples: usb: cdc_acm: Update CDC ACM echo sample
  • 88145db6 samples: usb: cdc_acm_composite: Refactor sample
  • 24304436 samples: mesh: single timer to handle all transitions
  • 4835c0f2 samples: mesh: removed bugs in on-off transition
  • 36a6adaf samples: mesh: removed redundant code
  • 0cf19915 samples: mesh: corrected implemenation of gen. move message handlers
  • 35f14bc3 samples: mesh: replaced magic numbers with values defined in stdint.h
  • f78599fb samples: mesh: sync the init procedure to initialise the mesh
  • 59eb4832 samples: net: can: Add missing tag to SocketCAN sample
  • 08be81d9 samples: sntp_client: Switch from sntp_request() to sntp_query()
  • 220fba3b samples: google_iot_mqtt: Switch from sntp_request() to sntp_query()
  • 6f6b4697 samples: google_iot_mqtt: Explicitly cast socklen_t to int in printf
  • bfcfe147 samples/drivers/watchdog: make it work on STM32
  • 0b46eb26 samples: sensor: bme280: add README.rst
  • b8285a58 samples: sensor: bme280: add arduino_101_sss.overlay
  • fc3c2c0a samples: basic: Add a minimal sample
  • 07d21bef samples: add ADXL362 sensor sample application
  • d75f3ced sample: mhu: IPM MHU dual core on V2M Musca
  • 21e9b0f5 samples: lwm2m_client: cleanup shield overlay files
  • 3fce0f21 samples: lwm2m_client: re-add sanity check for WNC-M14A2A build
  • 74f01067 samples: bluetooth: peripheral: Fix RX buffer size

Scripts (43):

  • 3061c92a file2hex.py: new –gzip-mtime option that defaults to zero + test
  • 3c6584d6 west: build: Use officially documented CMake options
  • b7c75915 west: build: Add new pristine cmd-line and config option
  • aec74f69 kconfiglib/menuconfig: Various behavior/UI improvements
  • aa2b8a1b scripts/sanitycheck: Precompile test-time regular expressions
  • 83de530d scripts/coccinelle: Add script for counting identifier length
  • 3a88dce9 scripts: west: Run pristine.cmake directly instead of the target
  • 4a10eea0 gen_kobject_list.py: better comments and –help. Zero code change.
  • 0dd3b421 west: zephyr_module: Improved error messaging during west failures
  • d6d1e27a scripts: west_commands: Print error message when jlink exe not found
  • 31bdad52 west: Implement CMake helpers in scripts/west_commands
  • d6f033e6 west: Add a boards command
  • 4d975dba west: Renamed cmake.py to zcmake.py
  • c9f4bb67 west: build: Construct CalledProcessError with positional args
  • 851fa12d west: boards: Use the new zcmake module name
  • 4dbf5f15 scripts: fix and tweak west boards
  • acda2571 west: build: use CMAKE_HOME_DIRECTORY to locate source
  • 69099e3d scripts: flake8 cleanup for west build
  • d1595035 scripts: add helpers to west build for getting config options
  • 88fb8bac scripts: improve west build’s board handling
  • 1f5e6d89 scripts: add –cmake-only to west build
  • bbe890ab scripts: add build.generator config option for west build
  • a1ef6962 scripts: fix up west build verbosity levels
  • 8465cf25 scripts: add –dry-run flags to west build
  • 3a486a85 scripts: add –build-opt option to west build
  • 83a5fd8d scripts: make west build -h fit on a screen
  • 859c4ed2 west: Fix unused import and variable
  • 2d5fb6da west: fix import error on sign.py
  • 0396b6e6 scripts: west build: propagate verbosity to cmake generator
  • 9d343569 scripts: gen_kobject_list: Remove redundant parentheses
  • 1e314df8 scripts/dts: globals: parse gpio-map properties for connector nodes
  • f9dd5362 scripts/dts: allow node to be child on one bus and parent on another
  • f43d3065 west: Add bash completion file
  • 66fdd48f west: Add completion command
  • b3674f59 scripts: fix west TypeError on unknown arguments
  • 79d2e31c scripts: mergehex: Add –overlap argument
  • 983b493a scripts/dts: Add support for enum’s
  • 46da745e env: ignore unset var
  • fba8ac98 scripts/dts: Remove alias defines for bus parents with an alias
  • 743a184b scripts: mpu align for ro section of new memory region on non-XIP system
  • c8f43b9c scripts: make code relocation work for non-XIP system
  • f08148e6 scripts/checkpatch.pl: fix root dir detection and enable it
  • 0d4290a2 scripts/dts: Fix issue in label generation of registers

Storage (6):

  • 94451b22 subsys/settings: Allow to register custom backends in settings subsystem
  • 2038365e subsys/settings: Use strncpy instead of strcpy in settings_runtime
  • 43492817 subsys/settings: Correct size in strncpy to avoid unterminated strings
  • 6b772f99 fs: nvs: format specifier alignment
  • 04ccd400 disk: kconfig: Group related symbols and use ‘menuconfig’ symbol
  • 54000fb8 fs/nvs: fix startup for 2-sectors configuration

Testing (73):

  • 6bf369f3 tests: net: pkt: Verify that net_pkt_write() writes correct data
  • 9fa5d9a5 tests: usb: Fix checking error code
  • d0bc6891 tests: usb: Add usb_read() for invalid endpoint
  • dad6ddef tests: usb: Cleanup tests
  • 1b1c5f72 tests: usb: Add write() and set_callback() tests
  • 1178042c tests: usb: Add more USB DC tests and refactor names
  • 8cf9bf03 tests: usb: Add usb_read() for invalid endpoint
  • f350c275 tests: usb: Add write() and set_callback() tests
  • 7f2f1d3c tests: crypto: Update HMAC_PRNG test
  • 3fa90938 tests/kernel/schedule_api: also test without time slicing
  • 95a5f90c tests: can: api: Fix “Device not not found” error message
  • ad17e41b ztest: make priority of testing thread configurable
  • 2d24ce85 tests/drivers/soc_flash_nrf: fix lack of disabled protection
  • 5e4e730d tests: drivers: build_all: Add AMS IAQcore and ENS210 to build all
  • fcf392c6 tests: net: all: Add more options to catch-all test
  • 01a2bebc tests: kernel: mem_protect: protection: fix test-case filter
  • 2a798bb7 testsuite: Include thread name in crash dump for tests
  • 543b9c97 tests: bluetooth/tester: Add support Read Using Characteristic UUID
  • 570183c6 tests: drivers: add flash_simulator driver
  • dae15fa7 tests: storage: flash_map: adding qemu platform
  • d19097f8 tests: net: Add more tests to ipv6 fragmentation
  • b070bbd8 tests: kernel: Exclude platforms stm32_min_dev_*
  • 3ce67709 tests: drivers: flash_simulator: removing CONFIG_ prefix from defines
  • 7c35a4e8 tests: usb: Add endpoint allocation verification test
  • 9e98a948 tests: ipm: disable on qemu_x86_64
  • 960e6d95 tests: net: getaddrinfo: Fix test to check the query is sent
  • a404bb76 tests/kernel/device: extends test for code coverage
  • 543c5c1b tests: getaddrinfo: fix stack overflow
  • 1d4cc154 tests: pipe: fix error with optimization disabled
  • a682dedd testsuite: fix memory access
  • 81a55668 tests: cmsis_v2: don’t hard-code stack sizes
  • 68a55fc8 tests: cmsis_v1: properly set stack size
  • 5f0ee9d3 tests: timer_api: run in user mode
  • dc27ec3e tests: ethernet_mgmt: enable random generator
  • 643d6891 tests: mqtt_publisher: enable random numbers
  • e9b5fe33 tests: ieee802154: set min_ram
  • 94851726 tests: stackprot: don’t set main stack size
  • 758a2468 tests: net: mqtt_publisher: Allow compilation in every platform
  • c840383c tests: usb: desc_sections: Use automatic endpoint assignment
  • 4626a8cb tests: usb: desc_sections: Check EP assignment order
  • d05b260e tests: usb: desc_sections: Cleanup test
  • b2bfcc27 tests: socket: misc: Add tests for inet_pton()
  • f1f1a9f3 tests: fix unchecked return value in test_net_pkt_basics_of_rw
  • 26693830 tests: drivers: adc: Add SAM0 support
  • 8bda26bd test: driver: adc: add some nucleo boards support for adc test cases
  • 7a2d025b testsuite: ztest: Add zassert_within macro
  • 0c639a8a tests: net: socket: Add tests for socket family registration
  • d09b91f5 tests: drivers: uart: Fix async write abort test
  • f1b89eda tests: drivers: can: api: define DT_CAN_1_NAME if not defined
  • 6b9a6f24 tests: drivers: can: Add testcases for attach_workq
  • acf40cab tests: drivers: can: Make CAN dev global
  • e81090cf tests: fs: nvs: added basic unittests for nvs
  • 52ab40cb tests: counter: Enable nRF52810 testing
  • 46289bed tests: change the min_ram for mbedtls and mem_protect
  • c4d90aab tests: uart: Add long tranfer test to UART_ASYNC_API.
  • fc3270d0 tests: kernel: increase stack buffer when code coverage enabled
  • 875d5a2b tests: usb: desc_sections: Fix coverity issue
  • 6378e1e4 tests: usb: desc_sections: Fix coverity issue
  • e8e5086e tracing: Fix checks of Kconfig options
  • c3de368e tests: bluetooth: Test vendor-specific events
  • bf74f541 tests/subsys/usb/device: Fix comment and message
  • fb0faaa1 testsuite: coverage: Port GCOV linker code to Cmake.
  • 9a31f28b tests: benchmarks: timing_info: fix start of swap time
  • 9ab293b9 tests/kernel/sleep: add tests for k_usleep() API
  • 35a9299a tests: fs: nvs: test cases clean up flash on completion
  • b76edc1a tests: fs: nvs: garbage collector test
  • 704b460b tests/bluetooth/tester: remove spurious CONFIG_GPIO=y
  • bf7b97bd subsys/ztest: Documentation fix
  • bf070716 tests: mbedtls: Call mbedtls_platform_set_printf() only if needed
  • 563b89f9 tests: benchmarks: mbedtls: Fix printf args
  • 86f012d2 tests: timer_api: Fix test for SYS_CLOCK_TICKS_PER_SEC != 100
  • 62c71dc4 tests: tickless_concept: Fix slicing time measurement
  • ba4eae14 tests: test_sched_timeslice_reset: Fix slice time measurement