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 aguiconfig
target, which can be run using e.g.west build -t guiconfig
.
Here’s what it looks like:
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 inzephyr/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 runwest 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 formDT_<COMPATIBLE>_<INSTANCE>_<PROPERTY>
have been renamed toDT_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. TheDT_.*_GPIO_*
defines were also renamed toDT_.*_GPIOS_*
.
Thestringlist
type was renamed tostring-array
to keep up with changes in upstream dtschema. The basiccompatible
property now has typestring-array
(instead ofstring
).
There is now a concept of a “sub-node” introduced. This covers use-cases likegpio-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. Seegpio-keys.yaml
and friends for examples.
Theuse-prop-name
option forgeneration
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.
Thenative_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; seeCONFIG_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 addedsent
andstatus
callbacks tostruct bt_l2cap_chan_ops
. One initial customer is the shell, as described below.
User-defined protocols are now supported. SeeCONFIG_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 existingdiscover-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 hypervisorquark_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 forzephyr_prebuilt.elf
are now preserved (aszephyr_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 amodules/
subdirectory of the build directory.
The previously unnamed Kconfigchoice
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 namedqemu_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 hasclock_control_async_on()
andclock_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 tocounter_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 acalibrate
boolean in thestruct 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 withCONFIG_UART_CONSOLE_LOG_LEVEL
.
Thenative_posix
target now has device tree support. A UART and flash controller are available.
The sensor API has aSENSOR_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 newk_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 callk_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. SeeBUILD_VERSION
.
LIBRARIES
Support for the UpdateHub DFU service was added.
The POSIX APIs now supportgethostname()
.
LOGGING
A newCONFIG_LOG_DETECT_MISSED_STRDUP
(which defaults toy
) 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 withLOG_XXX("%s", log_strdup(my_string))
— this change is meant to help catch cases where that is not happening.
There is a newos
logging module, which has replaced some uses ofkernel
.
MISCELLANEOUS
The shell now supportsControl-N
andControl-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 aselect
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.
Thegetaddrinfo()
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 isAF_UNSPEC
.
Thefcntl()
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 newmqtt_readall_publish_payload()
API was added.
SAMPLES
New samples:
samples/subsys/shell/fs
: file system shellsamples/sensor/ti_hdc
: temperature and humidity with the ti_hdc driversamples/sensor/bme680
: environmental sensor
Theili9340
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 withfs_readmount()
.
TOOLS AND SCRIPTS
Thewest flash
(anddebug
, etc.) commands can now guess the build directory. This can be useful if thebuild.dir-fmt
configuration option is used. Users must opt in to guessing by runningwest 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_*
toDT_.*_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 aguiconfig
target, which can be run using e.g.west build -t guiconfig
.
Here’s what it looks like:
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 inzephyr/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 runwest 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 formDT_<COMPATIBLE>_<INSTANCE>_<PROPERTY>
have been renamed toDT_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. TheDT_.*_GPIO_*
defines were also renamed toDT_.*_GPIOS_*
.
THestringlist
type was renamed tostring-array
to keep up with changes in upstream dtschema. The basiccompatible
property now has typestring-array
(instead ofstring
, so this isn’t truly a rename).
There is now a concept of a “sub-node” introduced. This covers use-cases likegpio-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. Seegpio-keys.yaml
and friends for examples.
Theuse-prop-name
option forgeneration
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.
Thenative_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; seeCONFIG_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 addedsent
andstatus
callbacks tostruct bt_l2cap_chan_opts
. One initial customer is the shell, as described below.
User-defined protocols are now supported. SeeCONFIG_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 existingdiscover-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 hypervisorquark_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 forzephyr_prebuilt.elf
, are now preserved (aszephyr_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 amodules/
subdirectory of the build directory.
The previously unnamed Kconfigchoice
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 namedqemu_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 hasclock_control_async_on()
andclock_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 tocounter_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 acalibrate
boolean in thestruct 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 withCONFIG_UART_CONSOLE_LOG_LEVEL
.
Thenative_posix
target now has device tree support. A UART and flash controller are available.
The sensor API has aSENSOR_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 newk_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 callk_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. SeeBUILD_VERSION
.
LIBRARIES
Support for the updatehub.io DFU service was added.
The POSIX APIs now supportgethostname()
.
LOGGING
A newCONFIG_LOG_DETECT_MISSED_STRDUP
(which defaults toy
) 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 withLOG_XXX("%s", log_strdup(my_string))
— this change is meant to help catch cases where that is not happening.
There is a newos
logging module, which has replaced some uses ofkernel
.
MISCELLANEOUS
The shell now supportsControl-N
andControl-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 aselect
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.
Thegetaddrinfo()
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 isAF_UNSPEC
.
Thefcntl()
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 newmqtt_readall_publish_payload()
API was added.
SAMPLES
New samples:
samples/subsys/shell/fs
: file system shellsamples/sensor/ti_hdc
: temperature and humidity with the ti_hdc driversamples/sensor/bme680
: environmental sensor
Theili9340
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 withfs_readmount()
.
TOOLS AND SCRIPTS
Thewest flash
(anddebug
, etc.) commands can now guess the build directory. This can be useful if thebuild.dir-fmt
configuration option is used. Users must opt in to guessing by runningwest 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_*
toDT_.*_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