FOUNDRIES.IO INSIGHTS

Zephyr Newsletter 5 June 2018

By Marti Bolivar | June 5, 2018

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

As usual, content is broken down as follows:

  • Highlights
    • Important changes: ABI/API breaks and some features
    • New features: non-exhaustive descriptions of new features
    • Bug fixes: non-exhaustive list of fixed bugs
  • Individual changes: a complete list of patches, sorted chronologically and categorized into areas, like:
    • Architectures
    • Kernel
    • Drivers
    • etc.

Highlights

This covers what’s happened since v1.12 rc1 was tagged, including v1.12 rc2, which was tagged on 29 May, and changes since then.

Patch flow continues actively since rc1. This newsletter summarizes the 409 patches in this inclusive range:

  • c182520e tests: kernel: Add description for test cases
  • b5a3ddf7 tests: ieee802154/crypto: use console harness

Since it’s currently the stabilization period prior to the release of Zephyr v1.12, the emphasis will be on tests, bug fixes, and documentation, which are officially all that’s currently permitted for merge. (Of course, late-breaking exceptions manage to wiggle through.)

The final release is blocked until there are zero high priority and less than twenty medium priority bugs.

Zephyr’s wiki has links to helpful filters showing the number of open bugs and other issues of various types. At time of writing, there are 4 high priority bugs and 30 medium priority bugs open, so there’s still work to do before v1.12 is fully baked.

Important Changes

Schedule(r) wrangling:

The following appeared in the previous newsletter: “In a highly significant but (hopefully mostly) behind-the-scenes change, the scheduler was rewritten.” Hope springs eternal.

As may have been expected, rewrites of central and notoriously tricky areas like kernel schedulers inevitably result in bugs which need shaking out. Most noticeably, boot hangs and increasingly lengthy context switch times have been observed in a variety of circumstances, and some significant bug fixes have been flowing in following the rewrite, notably affecting pre-emption, scheduling of dummy threads, and SMP scheduling.

The dust appears to be settling for v1.12, but more changes are in the works for v1.13. Hold on to your hats.

CONFIG_TOOLCHAIN_VARIANT removed:

This legacy Kconfig option is gone now. Any remaining users must switch to the ZEPHYR_TOOLCHAIN_VARIANT CMake or environment variable, as documented in the Getting Started guide.

Kconfig cleanup:

In a valiant tree-wide cleanup effort, a number of stale or incorrect Kconfig symbols were updated and fixed. This affected essentially every subsystem. Merge conflicts for out-of-tree patches seem likely.

zephyr_library_ifdef() removed:

The build system’s zephyr_library_ifdef() macro was that evil type which modifies the control flow of the caller. In-tree uses were replaced with safer alternatives and the macro was removed; any out of tree users will need updates.

Features

Architectures:

Nordic SoCs have their instruction cache enabled. Users who don’t want their code to run faster can disable the new CONFIG_NRF_ENABLE_ICACHE, which is on by default.

Precious, precious MPU regions were freed up on various ARM SoCs by deleting existing entries for memory-mapped peripheral buses and other such areas in SoC configuration files. Access privileges for these areas are now determined by the special “background region”, or default configuration, which allows RWX access for supervisor mode, and prevents user mode access. This frees up these scarce resources for use defining restrictions on other areas of memory, such as thread stacks.

Boards:

Support was added for the NUCLEO-L053R8 board, which features an STM32L053R8 SoC.

Drivers:

Some new features were added here, in some cases to enable bug fixes, and in others as late-breaking exceptions to the freeze.

In order to address issues with entropy gathering, a new interrupt-safe source of entropy, entropy_get_entropy_isr(), was added to the API in include/entropy.h. An implementation is provided for nRF devices. This was aided by other initialization order changes which collectively allow the kernel to safely collect entropy earlier in its initialization.

Users of the w25qxxdv SPI flash driver have new Kconfig options allowing them to control chip select pins, which can be enabled and set using CONFIG_SPI_FLASH_W25QXXDV_GPIO_SPI_CS.

A new status_cb field was added to struct netusb_function, allowing such functions to define status callbacks. This new API was needed to fix some issues causing kernel crashes.

Driver support was added for STM32 low power UARTs (LPUARTs); this can be enabled with CONFIG_UART_STM32_LPUART_1.

Kernel:

A new “meta-IRQ” feature was added to control scheduling for a new type of thread. A meta-IRQ is not a true interrupt, but pending threads with meta-IRQ priority will be scheduled before any other threads, even cooperative ones or those which have the scheduler lock. This has the flavor of the “softirq” mechanism present in the Linux kernel, and appears to have similar goals. Like softirqs, these must be used with care, and are likely not good targets for application developer use. See the Meta-IRQ Priorities section in the threads documentation for more details on their design and goals.

A patch was merged which enables ongoing work producing a requirements traceability matrix from requirements to test cases in APIs exposed by the main include/kernel.h. This adds Doxygen comments with requirement IDs to individual APIs, so it’s technically documentation.

A simple deadline scheduling policy was implemented. See CONFIG_SCHED_DEADLINE for details.

Scripts:

The Python menuconfig implementation has new features for showing a symbol’s name when ‘c’ is pressed, along with improvements to searching, saving, and loading.

Kconfiglib now warns if a string symbol’s default value is not quoted.

Bug Fixes

Arches:

The majority of the fixes applied to the x86 and ARM architectures. These cover typos and coding style, scheduling, stack management, IRQ management, scheduling, and MPU management, as well as SoC specific fixes mostly targeting STM32 and x86 chips.

Optional mitigation was added for Spectre variant v4 on Intel chips; see CONFIG_DISABLE_SSBD for details.

Bluetooth:

It was quiet, but not too quiet.

Beyond the Kconfig cleanup, a small number of fixes were merged, including a compiler-version specific fix for Mesh and a fix for non-priority event handling in the core controller code. The Bluetooth subsystem is one of Zephyr’s best tested, and the small size of the change list in this period reflects this.

Boards:

Beyond the tree-wide Kconfig fixes, a general fix was merged for “make flash” for boards using the “bossac” flashing tool. A variety of patches were merged fixing board-specific issues and enabling some missing features. See the Boards list of commits in the Individual Changes section below to learn if boards you use were affected.

Continuous Integration:

An arguable misconfiguration in sanitycheck related to job parallelism was addressed, resulting in a 24% speed improvement. Other miscellaneous fixes to sanitycheck were merged as well.

External libraries are no longer tracked in code coverage measurements, improving the accuracy of the code coverage output for Zephyr-specific code.

Device Tree:

A variety of fixes went in for warnings generated by the new dtc v1.4.6 compiler which was part of the new Zephyr 0.9.3 SDK, with a handful of fixes in other areas.

Documentation:

The effort preparing the documentation for release is picking up steam.

Missing documentation was added covering system calls and userspace, kernel and threading APIs, POSIX compatibility, VLANs, network traffic classification, the sanitycheck script used by CI, and more.

Numerous spelling errors were corrected in a series of commits, each targeting specific areas.

Drivers:

About fifteen percent of the total patches in this period affected Zephyr’s device drivers.

Apart from the Kconfig cleanup, STM32-specific driver fixes featured prominently, affecting SPI, UART, Ethernet, and GPIO. Fixes for drivers needed by the new intel_s1000_crb board were merged affecting I2S and DMA.

External:

The build system integration for OpenAMP and libmetal was fixed to avoid recursive builds, which the Zephyr build system (maintainer) abhors. May other developers tempted down that dark way be warned, and stay along the straight path.

mbedTLS was updated to version 2.9.0 from 2.8.0; this brings security fixes along with other improvements.

A subtle power-related USB fix for STM32 was merged, adding a patch to Zephyr’s copy of the STM32L4 HAL.

Kernel:

Various fixes were merged apart from the scheduler rodeo. It looks like the dust is settling on these issues for v1.12, but the opening of the v1.13 merge window will include additional refactoring of the scheduler to better consolidate flags associated with non-running threads, so the list of incoming scheduler changes won’t be empty anytime soon.

A race was fixed in the mempool allocator. Some architecture-specific fixes were made that the meta-IRQ addition exposed. The kernel now uses the new ISR-safe entropy source during early initialization, before threads are available, and uses the entropy API directly to initialize stack canaries.

Libraries:

A bug making the clock_gettime() implementation non-monotonic when called with CLOCK_MONOTONIC was fixed.

Networking:

Not much was merged; the networking developers are hard at work with the ongoing rewrite of Zephyr’s TLS implementation to use a new and nonstandard setsockopt()-based API. Since that’s feature work, it will have to wait for v1.13 to be merged.

Fixes went in around the subsystem addressing problems where incorrect timeouts were set due to use of MSEC() or raw numbers instead of K_MSEC(), and other related issues.

A boot hang related to invalid use of a receive queue was fixed.

A security session initialization bug affecting 802.15.4 was fixed.

Most of the other fixes appear to be of the usual variety: a null pointer dereference, packet management and checksumming issues, edge cases and error handling, etc.

Samples:

Other than the Kconfig cleanup, the samples didn’t seem to need too many changes since rc1, which is good.

The coap_server sample properly handles the case where the client no longer wishes to receive notifications following an initial observe operation. The coap_client application also saw general improvements and fixes.

The OpenAMP sample has improved documentation and comments.

Scripts:

Not much happened here.

The elf_helper.py library used by the build system to manipulate Zephyr binaries got some cleanup and an architecture-specific corner case fix.

Issues in west preventing “make flash” etc. from working on certain boards, as well as running as root on Unix, were fixed.

Fixes were made to genrest.py, which generates Zephyr’s Kconfig symbol documentation.

Storage:

This subsystem was fairly quiet as well.

As might be expected with new code, a variety of bug fixes went in to the non-volatile storage (NVS) layer. These are mostly related to buffer management and padding, and also include a fix related to device addressing.

A pile of issues in the disk subsystem discovered by Coverity were fixed with extra NULL pointer checks.

Testing:

Test, test, one, two, three, … eighty commits have gone in to improving Zephyr’s tests. These break down into the following rough categories:

  • tons of test descriptions added as Doxygen comments (see issue #6991 for details on how this is part of a larger strategy)
  • other restructuring and refactoring to make #6991 infrastructure work better
  • fixes to problems in the sources for the test case themselves
  • fixes and improvements related to testing user mode
  • Kconfig cleanup
  • new tests

As always, details are below.

Individual Changes

Patches by area (409 patches total):

  • Arches: 63
  • Bluetooth: 6
  • Boards: 38
  • Build: 9
  • Continuous Integration: 8
  • Device Tree: 12
  • Documentation: 31
  • Drivers: 59
  • External: 12
  • Kernel: 20
  • Libraries: 3
  • Miscellaneous: 5
  • Networking: 15
  • Samples: 27
  • Scripts: 12
  • Storage: 9
  • Testing: 80

Arches (63):

  • edf7c4fd arch: arm: kw41z: Set DTS fixup for CONFIG_RTC_0_NAME
  • a21a075c native: ethernet: fix k_sleep() wait time
  • 9731a0cc arm: syscalls: fix some register issues
  • 99f36de0 arm: userspace: fix initial user sp location
  • 5b37cd73 arch: arm: swap: Remove old context switch code
  • d4221f9a arch: x86: Rename MSR-handling functions to conform to convention
  • 7faac6a7 arch: arm: atmel_sam: Add quotes to strings in Kconfig
  • c2742f66 arch: arc: Fix typo in comment
  • 6ef2f76b arch: arm: thread.c: Fix typo in comment
  • e653e478 arch: arm: Fix typo in comment
  • 33628f1c arch: arc: userspace: Fix typo in comment
  • 95592770 arch: stm32: Remove unsupported MPU options
  • 5b20350a gdb_server: Remove leftover testing and x86 parts
  • 8321b6b6 arch: arm: nxp: Fixup HAS_MCUX_RTC
  • dc01b990 arch: stm32l4: only enable USB OTG on SoCs supporting it
  • 509e6964 arch: stm32l432: add support for USB controller
  • 2bfcb849 arch/arc: UART QMSI’s baudrate is not present in Kconfig anymore
  • 46a3e8bd arch: arm: fix fault status register bitfield masks
  • fb0fba91 arch: x86: Rename CPU_NO_SPECTRE to CPU_NO_SPECTRE_V2
  • ecadd465 arch: x86: Allow disabling speculative store bypass
  • d9a227c1 arm: st_stm32: reduce boot MPU regions
  • 6f6acb46 arm_mpu: reduce boot MPU regions for various soc
  • 77eb883a arch: arc: fix the bug in exception return for secure mode
  • 876a9af9 arch: arc: fix the bug in register clear for USER_SPACE
  • d2c8a205 arch: arm: document non-returning fatal handlers
  • d54dc42a arch: arm: refactor FAULT_DUMP to retrieve the fatal error reason
  • 49f0dabf arch: arm: refactor default _FaultDump to provide fatal error code
  • 24fcba44 arch: arm: remove redundant ifdef check
  • 8b7c3cff arch: arm: soc: stm32l0: add LPUART1 pinmux options
  • 8cc002e6 soc: stm32f1: add port uart4
  • 94a22daf arch: arm: STM32L053X8 support
  • 0825d0cd arch: arm: fix undefined variable bug
  • a9fe133d arch: arm: fix a typos in Kconfig file
  • edd18c8f arch: x86: Better document that CR0.WP will also be set when CR0.PG is
  • 3ac3216d soc: defconfig: Consistently quote string defaults
  • d946ed73 soc: defconfig.series: Consistently quote string defaults
  • cc447383 soc: soc_family: Consistently quote string defaults
  • 71ce9b52 arch: arc: snps_emsk: Removed dead code
  • cbac8fca arch: arm: select CPU_HAS_FPU on STM32L4 family
  • 93a46432 arch: arm: nordic: nrf52: Enable instruction cache
  • 699aacad arch: arm: add_subdirectory shouldn’t depend on a hidden kconfig.
  • a9ea1554 arch: arm: add_subdirectory shouldn’t depend on a hidden kconfig.
  • c2d632d6 arch: arm/arc: Remove usage of zephyr_library_ifdef.
  • f315afd0 arch: stm32: Fix inclusion of SPI headers
  • 3c8ed211 arch: arc: fix the wrong setting of STACK_CHECK for user thread
  • 76b1cefd arch: arc: fix the bug in STACK_ARRAY defintion.
  • ec7d483b arch: arm: soc: cc2650: Remove dead code.
  • 1fe6c367 esp32: Add some “logging” voodoo to SMP initialization
  • 56c97608 arch: arm: use stored value for MMFAR
  • 6399cb6b arch: arm: force MpuFaultHandler to inspect multiple error conditions
  • 45b75dd7 arch: arm: Fix zero interrupt latency priority level
  • 7b77a25f arch: arm: coding and comment style fixes
  • 0967f11f arch: arm: enhance internal function documentation
  • 25c211d2 arch: arm: implement internal function to disable MPU region
  • 7f643677 arch: arm: add additional sanity checks before MPU config change
  • e76ef30a arch: arm: mpu: minor comment style fixes
  • ed33f43e arch: xtensa: intel_s1000: Reference clock API
  • 9f4702b3 arch: soc: intel_s1000: set M/N divider ownership
  • 997a49ad arm: userspace: Do not overwrite r7 during syscall.
  • 7a18b083 x86: align stack buffer sizes
  • 0d56036f arch/x86: Rename a legacy network Kconfig option
  • b829bc78 arch: arc: refactor the arc stack check support
  • b09b6b6e arch: arc: add comments for _load_stack_check_regs

Bluetooth (6):

  • f7a1ffe6 Bluetooth: GATT: Change attribute count from u16_t to size_t
  • 8e57097e bluetooth: disable user mode for one test
  • 20a2b7a7 Bluetooth: Mesh: Fix reference to CONFIG_BT_MESH_FRIEND
  • 8d1f67c6 Bluetooth: Remove references to non-existing Kconfig symbols
  • c4b0f1c5 Bluetooth: Mesh: Fix build error when LPN is not enabled
  • a59f544f bluetooth: controller: Handle non-priority events correctly

Boards (38):

  • b5db62ca frdm_kl25z: Remove incorrect references to spi
  • 1d1bd60d boards: arduino_101: Fix separated-line interrupt Kconfig setting
  • df9e95e5 boards: arm: Remove nonexistent Kconfig symbols
  • c1908c3d boards: arm: Fixup comment related to CONFIG_USB_DC_STM
  • 3689359f board: frdm_kl25z: Remove undefined Kconfig symbol from defconfig
  • 3b83ccdb boards: stm32_mini_a15: fix PLL source selection
  • 9c1a2b51 boards: disco_l475_iot1: Remove used pinmux configuration
  • 7213ceb3 boards: cc2650_sensortag: Remove Kconfig FLASH/SRAM address assignments
  • e09484f7 boards: arm: lpcxpresso54114: Remove sample specific defconfig setting
  • a85c5462 boards: x86: minnowboard: Unset CONFIG_X86_NO_SPECTRE_V4 by default
  • 65e79fd5 boards: exp432p401r_launchxl: Remove Flash base address Kconfig setting
  • b028a515 boards: cc2650_sensortag: Remove TRNG and PINMUX prio Kconfig settings
  • 9d2f370d boards: cc3220sf_launchxl: Make cc3220sf XIP by default
  • e0d02d94 boards: cc3220sf_launchxl: Enable standard flash/debug build targets
  • 5fe0f7df boards: cc3220sf_launchxl: Update board documentation for flash/debug
  • 1d7bd566 boards: cc3220sf_launchxl: Fix documentation links
  • fa153a00 boards: nucleo_l432kc: fix GPIO definitions
  • 2ef42b7a boards: arm: add support for NUCLEO-L053R8
  • 2568e839 boards: stm32f3_disco: Add usb_device to supported features
  • a3128e6a boards: defconfig: Consistently quote string defaults
  • 41826fdc boards: arm: cc2650: Remove CONFIG_FLASH from defconfig.
  • 53a924b3 boards: arm: cc3220sf: Remove CONFIG_FLASH from defconfig.
  • c2b2add1 boards: arm: msp_exp432p401r: Remove CONFIG_FLASH from defconfig.
  • 6350de3a boards: arm: Remove CONFIG_{FLASH,SRAM}_BASE_ADDRESS assignments
  • 10d54e2b boards: arm: argonkey: Properly set choice default
  • af411f31 boards/x86: Fix support for w25qxxdv on arduino_101
  • 547128e3 boards: frdm_k64f: add USB comment to documentation
  • 55494c3f boards: usb_kw24d512: add USB comment to documentation
  • 90e00088 boards: intel_s1000: Fix runner invocation
  • cddd9e79 boards: intel_s1000: move runner config out of boards/common
  • 538db998 boards/x86: Removing undefined Kconfig symbol in quark_se_c1000_devboard
  • b2522d44 mimxrt1050: remove app specific code from soc file
  • 3fd25c64 boards: mimxrt1050_evk: add condition to initialize different PLL
  • 282d95f6 boards: mimxrt1050_evk: move iomuxc to soc folder
  • 5757b448 mimxrt1050: fix dcdc value change process
  • 5c6a3991 mimxrt1050: check if D-cache is enabled before enabling it.
  • 4a693c3c boards: common: bossac: Fix bossac flash script.
  • 9611002f boards/x86: Use right GPIO names for CC2520

Build (9):

  • cde6bef7 kconfig: Drop support for CONFIG_TOOLCHAIN_VARIANT
  • 59b2c743 cmake: Remove dead logic related to CONFIG_DEBUG_SECTION_MISMATCH
  • 411686f0 build: suppress asserts warning if forced off
  • 8364b223 Fix struct offsets (DWARF v2 compatibility)
  • 5d22834e cmake: extensions: Remove macro zephyr_library_ifdef.
  • 5405f688 kconfig: Remove remaining ‘option env’ bounce symbols
  • ddba3d66 kconfig: Define the IRQ priorities for CAVS & DW ICTL
  • f90416c6 cmake: fix warning message
  • 420bfc1f cmake: toolchain: Don’t warn of both ZEPHYR_*_VARIANT envvars defined

Continuous Integration (8):

  • dec163fe sanitycheck: Disable parallel builds with Ninja
  • a3a7e8e7 sanitycheck: Add support for _bt_settings_area linker section
  • 0a9a505e sanitycheck: update script arguments
  • 1c7ba097 sanitycheck: document –device-testing feature
  • 333a315f sanitycheck: improve help message
  • 29599f6d sanitycheck: deprecate assertion options
  • fac7108e ci: remove ext/ from coverage
  • 386b3e6d ci: increase ccache size

Device Tree (12):

  • 6701d449 dts: xtensa: Fix build error due to dts changes for ns16550 driver.
  • 22231601 dts/bindings: Make use of RTC base in QMSI bindings
  • 76676651 dts: intel_s1000: Enable generating IRQ priority.
  • 2ebb6a1f dts: intel_s1000: use dts to set i2c0 priority.
  • 22fc6008 dts/nxp: Fix dtc v1.4.6 warning: Missing property ‘#clock-cells’ in node
  • 4e90bd36 dts/nxp: Fix dtc v1.4.6 warning: Aliases property name is not valid
  • 2d6c48bf dts/nxp: Fix dtc v1.4.6 warning: Node has a reg but not unit name
  • 9faa26db dts/nxp: Fix dtc v1.4.6 warning: Node has a unit name, but no reg prop
  • 95fc141a dts: x86: Fix wrong interrupt number for I2C
  • 922490d3 dts/bindings: Remove superfluous property definition
  • 5fae3731 dts: nxp: fix typo in usbd bindings
  • 05063ede dts: arc: Fix IRQ priorities for quark_se_c1000_ss

Documentation (31):

  • 3fb20eb8 doc: updated doc for Zephyr release 1.12.
  • a129f19b doc: CODEOWNERS for .rst files
  • dcc9cefe doc: i.MX7 updated doc for Zephyr release 1.12
  • 81b964b6 doc: Update description of BT_RECV_IS_RX_THREAD.
  • 8e7a0051 doc: Makefile: Use phony targets and remove unneeded prereqs
  • 071b1bd6 doc: fix misspellings in test documentation
  • fcbd8fb6 doc: fix misspellings in API doxygen comments
  • 44383a39 doc: fix misspellings in Kconfig files
  • 6c6cf23d doc: fix misspellings in docs
  • 1fd8b139 doc: update syscall docs to new handler APIs
  • 9e4f25bb doxygen: reference requirements
  • a50a388b doc: build with CONFIG_USERSPACE enabled
  • 993f6db7 doc: Add networking information to 1.12 release note
  • 11c6306f doc: tweak CSS for option table display
  • a7ffc83b doc: Create a sensor threat model doc
  • 92b9d960 doxygen: enable more option for docs
  • ce78d16b doc: document kernel APIs with doxygen
  • a541e93d doc: document thread options
  • 47420d04 doc: add requirement IDs
  • cf8ee737 doc: updated doc for Zephyr release 1.12.
  • c4bbdc70 doc: Update doc for posix feature
  • 9d8c630b doc: release notes: Add details to various sections for 1.12 release
  • 5d50d136 doc: Update doc for POSIX feature
  • f1eda7b9 doc: updated doc for Zephyr release 1.12.
  • d07d5e87 doc: fix broken table display
  • e5be22fa doc: net: Add information about VLANs
  • d58efe77 doc: net: Add information about network traffic classification
  • 7760b941 doc: fix misspellings in docs
  • 972386d7 genrest: Highlight Kconfig as Kconfig, not Python
  • d96205f6 doc: fix early closing of GPIO doxygen defgroup
  • 711adb89 doc: Update release note for 1.12

Drivers (59):

  • 30e558f3 devices: entropy: Initialize drivers during PRE_KERNEL_1 stage
  • fcc56e31 subsys: random: xoroshiro128: Use SYS_INIT hook to initialize properly
  • c9dd05b9 drivers: net: loopback: Fix setting of SYS_LOG_LEVEL
  • 682455ec drivers: crypto_ataes132a: Fix typo in Kconfig symbol
  • 08438630 drivers: sensor: bmm150: Fix typo in Kconfig symbol
  • 4a3f5e5c drivers: sensor: pms7003: Rename CONFIG_PMS7003_SERIAL_TIMEOUT
  • 5013cca6 usb: rndis: Rename CONFIG_RNDIS_TXBUF* and CONFIG_RNDIS_CMDBUF*
  • 1ea03316 drivers: pinmux: Remove dead logic
  • 192833a8 drivers: usb_dc_kinetis: fix out-of-bounds write/read
  • 134b7484 drivers: clock_control: remove reference unknown config flag
  • 2bd15aa7 drivers: clock_control: stm32: Remove unsupported clock configuration
  • 80a9b022 drivers: usb_dc_stm32: enable VDDUSB on STM32L4x2
  • 45221a97 serial: nsim: Fix impossible-to-enable CONFIG_UART_NSIM
  • 668e31f7 drivers: entropy: Introduce ISR-specific entropy function
  • 6f534e45 drivers: entropy: nrf5: Implement standard ISR-specific call
  • 8e415727 drivers: spi: remove dead references to CONFIG_SPI_QMSI{_SS}
  • 23bf9426 drivers: serial: uart_fe310: Match Kconfig defines in comment
  • b0e697cc subsys: usb: Remove undefined CONFIG_USB_DEVICE_HID_BOOTP
  • f245ef2a drivers: i2s: i2s_cavs: Fix typo in IRQ priority
  • 7f4608cc gpio: Fix imx driver edge selection when configuring by port
  • 6632ffa6 drivers: serial: stm32: remove HAL driver legacy
  • fd26514a drivers: serial: stm32: rework macros and fixups
  • 967c31bc drivers: serial: stm32: enable LBD only for UARTs with LIN support
  • 1e6d827a drivers: serial: stm32: add LPUART support for L0/L4 series
  • bb9fe428 spi: spi_ll_stm32: Fix transceive() ret value in spi_slave case
  • d8fd97ab drivers/ethernet: stm32: Don’t exit driver init on HAL timeout
  • 5135a733 usb: netusb: Add subsys/usb to include list
  • 34977913 usb: netusb: Use function - defined status callbacks
  • 851195bf usb: netusb: Implement status callback for ECM
  • 1d5692a7 usb: netusb: Implement status callback for EEM
  • 7a6f1c98 usb: netusb: Implement status callback for RNDIS
  • fc8bcb9a usb: netusb: Refactor function’s status callbacks
  • 8e15353d i2c: i2c_gpio: fix typos in Kconfig file
  • 373a0212 drivers: serial: nrf: Fix interrupts enabling/disabling
  • 7fb245f9 spi: spi_ll_stm32: fix slave frame shifting
  • a8d93406 eth_stm32_hal: fix dev_data->mac_addr typo
  • cb0dd0cc usb: function_eem: fix eem_read_cb
  • 62004146 drivers: sensors: Remove usage of zephyr_library_ifdef
  • 5f5e9fb9 drivers: flash: Remove usage of zephyr_library_ifdef
  • 963a0bee drivers: serial: Remove usage of zephyr_library_ifdef
  • 8c812900 drivers: entropy: Remove usage of zephyr_library_ifdef
  • 8eb652bf drivers: apds9960: Always default on I2C_0
  • a6d83783 drivers/flash: A support for SPI gpio-cs logic into w25qxxdv driver
  • 002031d8 drivers/flash: Cleaning up Kconfig
  • 33e3ae71 drivers/spi: Handle the case when tx buf/len is NULL/>0 in DW driver
  • 13e1c3c2 uart_console: delete char using BS(08H) or DEL(7FH)
  • 73009d05 usb: cdc_acm: Set bInterfaceProtocol to No Protocol (0)
  • 4d0a1912 drivers: usb_dc_kinetis: fix usb_dc_ep_read_continue
  • 29b7cdc8 drivers: eth: native_posix: Fix malformed echo response
  • 9a7538b9 drivers: dma_cavs: separate callbacks per channel
  • 30dbf3c0 drivers: eth: mcux: use CONFIG_SYS_LOG_ETHERNET_LEVEL for syslog level
  • f2719501 drivers/gpio: stm32 fix gpio device init prio
  • f36edc6c drivers: i2s: intel_s1000: Fractional bit-clock
  • b97dd472 drivers: can: Move bit timing and clock to device tree
  • eefeb2b0 drivers: watchdog: esp32: Use common Kconfig option to disable at boot
  • 158ea970 drivers: watchdog: Use common name configuration for all drivers
  • a88a9866 drivers/flags: W25QXXDW internal erase logic fix
  • b4d0850d drivers/rtc: Fix how prescaler is used in QMSI driver
  • c7053643 spi: spi_ll_stm32: (fix) Clear OVR bit condition

External (12):

  • 57637029 ext: simplelink: Fix minor typo in CONFIG_NUM_IRQs
  • bdf2f4ef ext: move libmetal to hal
  • 6a2c371f ext: libmetal: Update import of libmetal
  • f6fb8b8a ext: libmetal: Change build integration so its not recursive
  • 6a86b026 ext: open-amp: move open-amp down one dir
  • e3e8c83b ext: open-amp: Update import of open-amp
  • 4e8438bc ext: open-amp: Change build integration so its not recursive
  • b66ecc57 ext: hal: stm32cube: fix stm32l4xx VDDUSB supply control
  • e91b5802 ext: hal: libmetal: Allow for libmetal source to be external
  • 9a89f39b ext: hal: open-amp: Allow for open-amp source to be external
  • 1cd6373f ext: lib: crypto: Update mbedTLS to 2.9.0
  • 9550a7b1 ext: lib: crypto: Restore config macros removed in mbedTLS 2.9.0

Kernel (20):

  • 72c7ded5 kernel: prepare threads after PRE_KERNEL*
  • 1856e220 kernel/sched: Don’t preempt cooperative threads
  • 7aa25fa5 kernel: Add “meta IRQ” thread priorities
  • 4a2e50f6 kernel: Earliest-deadline-first scheduling policy
  • 4afc6c9f kernel: remove STACK_ALIGN checks
  • 982d5c8f init: run kernel_arch_init() earlier
  • 389c3643 kernel: init: Use entropy API directly to initialize stack canary
  • 177bbbd3 kernel: Fix trivial typo in CONFIG_WAIT_Q_FAST
  • c8e0d0ce kernel: add requirement Ids to implementation
  • 538754cb kernel: handle early entropy issues
  • b5464491 kernel: Use IS-specific entropy function when available
  • 3a0cb2d3 kernel: Remove legacy preemption checking
  • df55524d userspace: align _k_object to 4 bytes
  • 75398d2c kernel/mempool: Handle transient failure condition
  • eace1df5 kernel/sched: Fix SMP scheduling
  • 43553da9 kernel/sched: Fix preemption logic
  • f669a08e kernel: thread: fix _THREAD_DUMMY check in _check_stack_sentinel()
  • e2d77915 kernel: update stack macro documentation
  • b85ac3e5 kernel: clarify thread->stack_info documentation
  • 6c95dafd kernel: sched: use _is_thread_ready() in should_preempt()

Libraries (3):

  • dd78ab05 newlib: Fix typo in Kconfig related to NEWLIB_LIBC_ALIGNED_HEAP_SIZE
  • 817e3cd9 lib: posix: Make sure the name string is NULL terminated
  • 03a3c992 lib: posix: clock: Use k_uptime_get() to compute tv_nsec

Miscellaneous (5):

  • 0b708185 misc: improve description of BOOTLOADER_SRAM_SIZE
  • c40b9e04 codeowner: Fix wildcard issue for arch/arm/soc/st_stm32/
  • d93ecda4 release: Move version to 1.12.0-rc2
  • 98fcaf29 release: Update release notes with CAVS ICTL info
  • 718a4cd2 include/toolchain/gcc.h: Fix static assert detection

Networking (15):

  • 4dd5867a net: conn: Fix is_invalid_packet
  • b1e06f2b net: lwm2m: remove silent fail for bad endpoint data in rd_client
  • 6586dba3 net: coap: Fix CoAP observer helper function
  • 6180b904 net: Too long timeout was passed to k_sleep
  • 5ec569df net: Fix dependency to offload driver in Kconfig
  • c5cfb462 net: rpl: fix null pointer dereference
  • 2facf33f net: ieee802154: Remove old cc2520 AUTO_ACK assignments
  • 4c58ffb5 net: lwm2m: dont release reply for duplicate block transfer
  • 8f5929dd net: Too long timeout for k_sleep
  • 8670e8a1 net: Convert MSEC_PER_SEC to K_SECONDS()
  • 48ac4a37 net: Convert raw timeout values to use K_MSEC() macro
  • 201a1b40 net/ieee802154: Security session must be initialized with a valid key
  • dcb0ac12 net: tc: dont yield during net_rc tx/rx workq init
  • c84b37b0 net: icmpv4: fix incorrect IP header checksum
  • 9ab9a835 net/ethernet: Fix ethernet net mgmt interface layer code

Samples (27):

  • ac3c6ba9 samples: net: Fix coap-server sample
  • 55680f88 samples: net: Fix coap-client sample
  • 2c305d2c samples: net: Remove unwanted code from coap-server
  • d5df6472 samples: net: rpl_br: Fix coverity issues
  • e0e188d3 samples: xtensa_asm2: Cleanup stray IS_TEST reference
  • 02d9cc17 samples: subsys: debug: Remove CONFIG_SEGGER_RTT assignment
  • 4a54005e samples: net: Remove undefined references to CONFIG_NET_LOG_ENABLED
  • e7468fb5 samples: net: Fix VLAN tag name in prj.conf file
  • 1a7ae583 samples: net: mqtt: Remove CONFIG_BT_MAX_CMD_LEN assignment
  • 7bb6eb62 samples: wifi: remove dead Kconfig symbol
  • 91d80445 samples: net: zperf: Remove dead Kconfig symbol from galileo conf
  • 27f05e39 samples: board: 96b_argonkey: Remove dead code
  • 2dbde4a1 samples: net: zperf: Remove config files for Galileo board
  • f346c7ae samples: grove: Remove CONFIG_GROVE_LCD_RGB_INIT_PRIORITY assignment
  • d154060a samples: grove: Fix CONFIG_GROVE_TEMPERATURE_SENSOR_V1_X assignment
  • 9a06d119 samples: mcp9808: Fix CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD assignment
  • 40777af7 samples: openamp: Cleanup CMakeLists.txt files
  • 31c5a83e samples: hci_uart: Remove NRF5 Kconfig baud rate setting
  • cbdfdf9e samples: bmm150: Remove assignment to missing CONFIG_BMM150_SET_ATTR
  • 544f8271 samples: mbedTLS server: Remove CONFIG_NET_SLIP_TAP assignment
  • ee4a4175 samples: echo_server: Remove conflicting option from conf file
  • 7d01bf8c samples: openamp: Update docs
  • b0ffe06f samples: openamp: add some comments to the code
  • c5fda143 samples: Quote BOARD value in custom board definition
  • 337832d1 samples: hci_uart: Remove CONFIG_UART_NRF5_BAUD_RATE assignment
  • 659c241e samples: net: big_http_download: Ignore close() return value.
  • 61f91f8f samples: sensor : mcp9808: check return value

Scripts (12):

  • e0477756 scripts: west: downgrade missing ZEPHYR_BASE to a warning
  • b45e152f menuconfig/genrest: Exclude implicit submenus from menu paths
  • 06ecb287 genrest: Move from doc/scripts/genrest/ to doc/scripts/
  • e144a68f elf_helper: fix member offset calculation
  • f20efcfb scripts: generalize kobject -> enum naming
  • d44fee35 menuconfig: Add search and save/load improvements from upstream
  • a06b14f2 scripts: check-compliance: Allow to run from any path
  • 58967c7d scripts: extract_dts_includes.py: fix multiple include in bindings
  • 6eabea3a Kconfiglib: Warn for unquoted string defaults
  • 163dec6d menuconfig: Add show-name mode + small help dialog improvement
  • 1d27ee0b scripts: extract_dts_includes: fix recursion in extract_controller
  • 63f2cf57 scripts: west: update to upstream 894aedbc0

Storage (9):

  • 2f074783 subsys: disk: Fix NULL pointer checks for disk operations
  • 83ac3f8b subsys: fs/nvs: explicitly pad flash writes up to the write block size
  • 7acd3399 subsys: fs/nvs: never read more than the destination buffer
  • 154e6ea7 subsys: fs/nvs: never write more than the source buffer
  • 14aae1a1 subsys: fs/nvs: remove explicit padding from structures
  • 4795b79e subsys: fs/nvs: kill a warning
  • 131c4a4f subsys: fs/nvs: do not assume the flash is mapped at address 0
  • 4089602f subsys: fs/nvs: fix _nvs_sector_is_used
  • ae2f419b subsys: disk: Fix log level issues

Testing (80):

  • c182520e tests: kernel: Add description for test cases
  • 4c7a44b5 tests: posix: Fix pthread attribute initialization
  • 9f30a6ca tests: mem_protect: fix off-by-one
  • 136687d2 test_build_sensors_a_m: disable app memory
  • 5b8da206 tests: fatal: fix several issues
  • efe0c4b7 tests: enable user mode by default
  • 5414a7de tests: mqtt: Fix CONFIG_NET_BUF_DATA_SIZE assignments
  • 4190f61c tests: net: Fix misspelled CONFIG_DNS_NUM_CONCUR_QUERIES assignments
  • cf227f36 tests: drivers: build_all: Fix CONFIG_ETH_ENC28J60_0_MAC2 reference
  • ac13bedc tests: net: all: Fix COAP enablement in prj.conf
  • 24b0b3c1 tests: Remove CONFIG_COMMAND_STACK_SIZE assignments
  • 7a3ace35 tests: Remove newline character
  • dccd2753 tests: posix: fs: Free dirp resource in case error
  • a1492325 tests: kernel: fifo: Do NULL pointer check before accessing data
  • 14fe2727 tests: unfold nffs_fs_api
  • 17998888 tests: footprint: only use user mode for max
  • 2348daa8 tests: crypto: disable user mode on 2 tests
  • e1fab4c3 tests: kernel: timer: timer_api: Remove nonexistent config option
  • 6f40b533 tests: semaphore: improve test documentation
  • c2be4417 tests: alert: improve test documentation
  • 12d47cc5 tests: fifo: improve test documentation
  • e989283f tests: lifo: improve test documentation
  • 234484fd tests: msgq: improve test documentation
  • 876195de tests: pipe: improve test documentation
  • d73e9700 tests: stack: improve test documentation
  • f8ef918d tests/lib/c_lib: Turn off too-clever compiler warning
  • e9174c6d tests/kernel/common: Add rigorous integer typing test
  • d6b11e15 tests: net: arp: Check NULL in unicast test
  • ba8c8c3c tests: mslab_threadsafe: Check for return value
  • 843ad8b0 tests: semaphore: Check return value
  • dda7befd tests: benchmarks: force assertions off
  • bc40f934 debug: enable assertions for all tests
  • f3f767a2 tests: power: multicore: Remove CONFIGUART{0,1}=n assignments
  • e8182fa0 test: kernel: remove workaround for arm_mpu (keep for nxp_mpu)
  • d96dbadd tests: adc_simple: Change ADC_DEBUG=y to SYS_LOG_ADC_LEVEL=4
  • 637ad4cc tests: net: all: Remove redundant/misspelled NET_RPL assignments
  • 77658137 tests: net: all: Fix assignments to old TIME_WAIT Kconfig symbols
  • f6bdcb71 tests: net: all: Fix assignments to old nbuf API Kconfig symbols
  • 3c8e033e tests: net: all: Remove CONFIG_HTTP_HEADER_FIELD_ITEMS assignment
  • 21792fa0 tests: posix: timer: Fix integer handling issues
  • 86b53643 tests/kernel: Add preemption priority test
  • 6a014b63 tests: spi: Check for return value
  • ba2c44e4 tests: enable HW stack protection by default
  • 0a438983 tests: kernel: document thread tests for RTM
  • fa4aa9fe tests: threads: fold systemthread tests into main test
  • fe4693bd tests: threads: fold customdata tests into main test
  • eeae0eef tests: kernel: put all thread tests on one level
  • 43293b90 tests: critical: fix naming and comments
  • c5be083d tests: move schedule_api under sched/
  • 20e969b8 tests: schedule_api: fix references to tested APIs
  • f0f11289 tests: schedule_api: change category to sched
  • 6faf5b86 test: early_sleep: cleanup test
  • 9a28c87b tests: posix: rename entry file to main.c
  • c2e9eef8 tests: kernel context: rewrite test to use ztest correctly
  • 8c8ddb81 tests: workqueue: add API references and doxygen group
  • 4317a181 tests: net: all: Increase NET_MAX_CONTEXTS from 4 to 5
  • b20cc63d tests: power states: Remove CONFIG_GPIO_QMSI1{NAME,PRI} assignments
  • 12f87f7a tests: net: Fix assignments to CONFIG_NET_DEBUG_6LO
  • aa26d992 tests: mbedtls: don’t use stdout console
  • e63cccdc tests: fixes for ARC
  • 467f8fbe tests: fixes for ARC
  • 92a3c41d tests: necessary fixes for ARC
  • 22838e8b benchmarks: object_footprint: Disable userspace for benchmarks
  • 6663286f benchmarks: app_kernel: Disable userspace for benchmarks
  • a5988f81 benchmarks: latency_measure: Disable userspace for benchmarks
  • e8626d71 benchmarks: boot_time: Disable userspace for benchmarks
  • a9dda77f benchmarks: footprint: Disable userspace for benchmarks
  • 2182178b benchmarks: sys_kernel: Disable userspace for benchmarks
  • 8bbf0fd7 benchmarks: timing_info: Disable userspace for benchmarks
  • c782d07a tests/kernel/smp: Properly synchronize CPU counters at test start
  • bed0ac68 tests: workqueue: fix doxygen group
  • 2f7fe7e2 tests: mem_pool: organise test documentation
  • 4ef36a4b tests/kernel/mem_slab: Fix memory overcommit
  • 338f4519 tests: kernel: profiling: Fix _sys_soc_suspend logic
  • 66e84540 tests: subsys: settings: fcb: Fix failure on nrf52_pca10040
  • f5bf2816 tests: posix: Function call return values need to be validated.
  • 2d03b552 tests/kernel/mem_slab: Fix memory overcommit for real
  • 75e2af20 tests: fifo_timeout : Dereference after null check
  • 2237ce6b tests: mem_protect: use better stack size arg
  • b5a3ddf7 tests: ieee802154/crypto: use console harness
comments powered by Disqus