Zephyr development news, 19 June 2018

Marti Bolivar


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

An HTML version is available here:


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.


The floodgates are open with the beginning of the v1.13 merge
window. This newsletter covers the following inclusive commit range:

- 0f9a6426 ("release: Post-release patch level update"), merged
11 June 2018
- fb6f9b78 ("ext: Kconfig: Remove redundant 'default n' properties"),
merged 18 June 2018

Important Changes

CONF_FILE can now be a CMake list:

Most Zephyr users will likely recognize the CMake variable CONF_FILE,
which can be used to set the path to the top-level application Kconfig
fragment. (Normally, this defaults to prj.conf.)

A longstanding but lesser-known feature is that CONF_FILE can also
be a whitespace-separated list of fragments; these will all be merged
into the final configuration. Some samples use this feature to add
board-specific "mix-ins" to the top-level prj.conf; see the
led_ws2812 CMakeLists.txt for an example:


The "whitespace-separated" part of this feature is a holdover from
when Zephyr used the Linux kernel's Makefile build system,
Kbuild. Since moving to CMake, the whitespace separation has been a
little bit less convenient, as CMake uses semicolon-separated strings
as its internal "list" data type.

To make this feature cleaner in the new world order, CONF_FILE now
also supports separation via semicolons. The old whitespace separation
behavior is not affected to keep backwards compatibility. For example,
setting the following at the CMake command line would merge the three
fragments hello.conf, world.conf, and zephyr.conf into the final

-DCONF_FILE="hello.conf;world.conf zephyr.conf"

PWM on STM32:

Device tree bindings were added for timers and PWM devices on STM32
targets. A large variety of STM32 targets (F0, F1, F3, F4, and L4
families) now have such nodes added on a per-SoC basis. Many of the
official boards produced by STMicroelectronics now have PWM enabled.

The old Kconfig options (CONFIG_PWM_STM32_x_DEV_NAME, etc.) have
been removed. Applications using PWM on STM32 may need updates to
reflect this switch to device tree.

UART on nRF:

The UART driver for nRF devices has been refactored to use the vendor
HAL. This change was followed by a large tree-wide rename of the
Kconfig options: CONFIG_UART_NRF5 was renamed to CONFIG_UART_NRFX,
and CONFIG_UART_NRF5_xxx options were renamed to

Applications using this driver may need updates.

Many Kconfig warnings are now errors:

The tree-wide cleanups and improvements to Zephyr's usage of Kconfig
continues as Kconfiglib grows more features. Notably, many warnings
are now errors, improving the rate at which CI catches Kconfig



The work to enable Arm v8-M SoCs, some of which include support for
"secure" and "non-secure" execution states, continues. There is a new
CONFIG_ARM_NONSECURE_FIRMWARE option, which signals that the
application being built is targeting the non-secure execution
state. This depends on a new hidden CONFIG_ARMV8_M_SE option, which
SoCs can select to signal that hardware support for this feature is
present. This was followed with infrastructure APIs related to address
accessibility and interrupt management in secure and non-secure

The native POSIX "architecture" now supports -rt and -no-rt
command line options, which allow deferring the decision for whether
execution should be slowed down to real time to runtime. (The option
value.) More information on using Zephyr's POSIX target is here:



There is a new choice option for controlling the transmit power:


On Linux hosts, the native POSIX target can now access the kernel
Bluetooth stack via a new HCI driver, which can be enabled with

The Bluetooth mesh sample application
samples/boards/nrf52/mesh/onoff-app now supports the persistent
storage API introduced in v1.12. This allows the application to rejoin
the same network if the board is reset.

The host stack now supports more flexible choices for how to pass
attributes to bt_gatt_notify().


The frdm_kl25z board now supports USB.

Nordic board Kconfig files can now select CONFIG_BOARD_HAS_DCDC,
which will enable the DC/DC converter.


There is a new CONFIG_SPEED_OPTIMIZATIONS flag, which requests the
build system to optimize for speed. (The default is to optimize for
binary size.)

The warning output for when the value a user sets for a Kconfig option
differs from the actual value has been improved.


Zephyr's Kconfig documentation now includes output for choices. For
example, here is the page documenting the architecture choice:


Device Tree:

The RISCV32 QEMU target now has DT support for flash, SRAM, and UART.

nRF52 SoCs now have device tree support for GPIO.


A variety of nRF peripheral accesses throughout the tree were replaced
with calls to inline accessors in the vendor HAL. The stated reason
given is to enable easier testing.

The nRF PWM driver now has prescaler support.

The mcux Ethernet driver now uses the carrier detection API calls
described below in the new networking features.

A new driver for the TI SimpleLink WiFi offload chip was merged; so
far, this only supports the network management commands related to
WiFi which were introduced for v1.12 (see include/net/wifi_mgmt.h
for details).

A variety of USB-related changes were merged.

The USB subsystem now sports new USBD_DESCR_xxx_DEFINE macros for
declaring descriptors of various types; behind the scenes, these use
linker magic to ensure that the defined descriptors end up in
contiguous memory. This allowed migrating descriptors formerly defined
in an increasingly large subsys/usb/usb_descriptor.c into the files
for the individual USB classes, etc. that defined them.

As all Zephyr USB controllers support USB v2.0, the USB protocol
version reported in the device descriptor has been updated to that
value, increasing it from its former setting of v1.1.

The HID interrupt endpoint size configuration option
CONFIG_HID_INTERRUPT_EP_MPS is now visible and thus configurable by

Interface descriptors are now configurable at runtime.


Ethernet drivers can now signal detection and loss of a carrier via
new net_eth_carrier_on() and net_eth_carrier_off() routines. This is
used by the network management APIs to generate interface "up" and
"down" events.


The DHCP implementation uses these events to obtain new addresses when
a network interface reappears after going down.

The network shell's conn command now unconditionally prints the
state of each TCP connection.

A variety of performance improvements were merged into the networking
layer; these speed things up by avoiding unnecessary work, like
duplicated filling in of packet headers and checksums. Better
management of some internal caches when multiple networking interfaces
are running on board was also merged.


The BBC micro:bit now supports servomotors; see samples/basic/servo_motor.


A variety of updates were merged to the Kconfiglib dependency vendored
into Zephyr, along with its users; these are mostly related to
hardening warnings into errors and improving error and warning output.


The long-ranging work on issue 6991:


continues with several samples being refactored, moved or otherwise
cleaned up to better fit in a test management system.

Bug Fixes


The PendSV interrupt handler on ARM now prevents other operating
system interrupts from running before accessing kernel state,
preventing races.


The USB Bluetooth device class implementation saw a few
fixes. Notably, it now has a transmit thread as well as a receive
thread, fixing an issue where bt_send() was incorrectly called
from interrupt context, and properly reserves some headroom needed in
its net_buf structures.


The CONFIG_COMPILER_OPT option now allows setting multiple compiler
options, separated by whitespace.

Numerous fixes and updates were merged affecting usage of Kconfig
options throughout the tree.

The "minimal" C library that ships with Zephyr is no longer built as
part of the "app" target, which is reserved as much as possible for
user applications. Any applications that may have been relying on this
behavior may need updates, as the C library is now part of its own
Zephyr library.


Bluetooth drivers now have access to bt_hci_cmd_send() and
bt_hci_cmd_send_sync() routines via <hci.h>; allowing them to,
well, send HCI commands. HCI drivers can now also declare "quirks", or
deviations from standard behavior, with BT_QUIRK_NO_RESET being the
first user.

The Nordic RTC timer driver saw a fix for the number of hardware
cycles per tick; the PWM driver also has improved accuracy after a
clock frequency fix.

A build issue in the Bluetooth HCI implementation using SPI as a
transport was fixed.

The lis2dh accelerometer driver seems to be working again, after
seeing build breakage and I2C protocol usage fixes.


A fix was merged partially restoring the behavior of
CONFIG_MULTITHREADING=n following the scheduler rewrite. (Some
former behavior related to semaphores was not restored, forcing flash
drivers elsewhere in the tree to behave differently depending on
whether this option is enabled.)

A race condition which could cause k_poll() to return NULL when a
timeout is set has been fixed.


The TCP stack now properly responds to Zero Window Probe segments (see
https://tools.ietf.org/html/rfc6429 for details on these).

Some use-after free bugs in network statistics calculations were fixed.

IPv4 and UDP checksums are now calculated only when needed in the DHCPv4 core.


The mbedtls_sslclient networking sample now uses a hardware
entropy source at system startup to seed the random number generator
when one is available, rather than relying on sys_rand32_get(),
which doesn't guarantee cryptographically strong output.

Individual Changes

Patches by area (226 patches total):

- Arches: 26
- Bluetooth: 25
- Boards: 5
- Build: 14
- Continuous Integration: 2
- Device Tree: 11
- Documentation: 12
- Drivers: 59
- External: 3
- Kernel: 5
- Libraries: 2
- Miscellaneous: 3
- Networking: 27
- Samples: 12
- Scripts: 11
- Storage: 1
- Testing: 8

Arches (26):

- a7de06a6 native_posix: irq_offload to use a sw interrupt
- 477b5497 native: Add command line options to control real timeness
- ab81d2c7 arch: arm: block ARM_MPU K-option in Cortex-M0
- 7b56b448 arch: arm: accelerate _get_num_regions() for Cortex-M0+, M3, and M4
- dbede45d arch: arm: improve inline comment in _arm_mpu_config/enable
- 61439b01 arch: arm: remove redundant flag
- 41070c3b arch/arm: Fix locking in __pendsv
- 8c53f242 arch: arm: set VECTOR_ADDRESS to _vector_start
- 28007296 arch/stm32: remove irq definition files
- 3a87e0ed native: Fix entropy generator kconfig warning
- ebbb744b native: Fix host BT driver kconfig warning
- 070c1ae0 soc: nRF52x: Add Kconfig options to enable DC/DC converter
- f177fb88 arch: arc: Fix reference to removed NSIM Kconfig symbol
- 77643677 esp32: update to ESP-IDF v3.0-dev-2648-gb2ff235b
- 31aa9b9a arch: arm: atmel_sam: Use a single RAM region when possible
- e86c53b4 arch: arm: atmel_sam: Map the whole RAM in MPU
- bb55155d arch: arm: core: cortex_m: add a barrier before the dummy
FP instruction
- 158ea44e arch: arm: improve help text for ARM_SECURE_FIRMWARE
- dd640f14 arch: arm: introduce ARM_NONSECURE_FIRMWARE option
- 13dc3762 arch: arm: introduce ARMV8_M_SE option
- 0a2dcaaf arch: arm: introduce dependencies for CPU_CORTEX_M_HAS_SPLIM option
- f630559e arch: arm: Define and implement API for test target (Secure)
- d426adcc arch: arm: refactor function to align with the adopted api
- 87936612 arch: arm: implement cmse address range check (secure)
- fe3cd4c8 arch: arm: convenience wrappers for C variable Non-Secure permissions
- 7a864bb7 arch: arm: define and implement ARM IRQ target state API

Bluetooth (25):

- c3edc82f Bluetooth: GATT: Allow Characterist to be used with bt_gatt_notify
- 679a0b39 Bluetooth: GATT: Allow Characterist to be used with bt_gatt_indicate
- 68de9d5d Bluetooth: Use Characteristic attribute whenever possible
- 7d989657 Bluetooth: Add HCI User Channel driver for native POSIX port
- ea5b8667 Bluetooth: hci: spi: Select BT_RECV_IS_RX_THREAD
- edb2ad11 Bluetooth: controller: Remove redundant include of cmsis.h
- dc95e1ba Bluetooth: controller: Add Tx Power Kconfig option
- 362a6b34 Bluetooth: controller: Fix to use max. tx power in DTM test mode
- bb4ed94c bluetooth: tester: Increase system workqueue stack size
- e1b77247 Bluetooth: GATT: Fix notifications
- b1b10171 Bluetooth: Export HCI command APIs through public hci.h header file
- b20aff2f Bluetooth: Introduce HCI driver quirks
- 660c5c92 Bluetooth: controller: Remove include guards in internal files
- 37e6162c bluetooth: tester: Fix bt_gatt_service_register call with
invalid params
- 3904442e bluetooth: tester: Remove redundant config option from qemu.conf
- aa190cd5 bluetooth: tester: Set configuration file for qemu_cortex_m3 target
- 48b7f236 Bluetooth: Fix assertion condition in bt_gatt_discover
- bc606d22 Bluetooth: controller: Use nRFx functions for RTC reg with
- 347f3262 Bluetooth: controller: Use nRFx functions for ECB reg with sideeffect
- 17429725 Bluetooth: controller: Use SOC series macro instead of board macro
- 5f146e49 Bluetooth: controller: Use SOC series macro instead of the
board macro
- 88f0fbdc Bluetooth: controller: Use nRFx functions for RTC reg w sideeffects
- 1c5bb494 Bluetooth: controller: Use nRFx functions for CCM reg w sideeffects
- c97645c8 Bluetooth: controller: Use nRFx functions for TIMER reg w sideeffects
- 15ae4fa3 Bluetooth: controller: Use nRFx functions for PPI reg with sideef

Boards (5):

- fb3aedde boards: lpcxpresso54114_m0: do not set as default
- a58043e1 boards: cc3220sf_launchxl: Restore removal of CONFIG_XIP setting
- 558eac2f boards: arm: stm32: Added pwm to supported list
- 2055b84f boards: frdm_kl25z: add USB support
- 74c44b29 boards: arm: nrf52840: default IEEE802154_NRF5 if IEEE802154 enabled

Build (14):

- d94231f6 cmake: libc: minimal: Move sources from 'app' to a new CMake library
- 025a1e90 cmake: fix CONF_FILE parsing to allow for cmake lists
- ee9af86f cmake: Improve user error feedback when -H$ZEPHYR_BASE is specified
- a74e80fa cmake: Removing the need for always rebuild
- f38e388a cmake: Update to dependency handling for syscalls.json
- 8f3fea30 cmake: bluetooth: Don't #include gatt files from src files
- 7f5203d3 kconfig: Remove UART_QMSI_{0,1}_NAME Kconfig reference
- 2e0af08e build: remove unused CMakeLists.txt
- d62117e5 kconfig: Change how BT affects SYSTEM_WORKQUEUE_PRIORITY
- b35a41f9 include: linker: add sections for USB device stack
- 5bfc7ff2 kconfig: Fail in CI if Kconfig files reference undefined symbols
- 92a6898b cmake: allow multiple compiler options
- e8413d18 kconfig: add a compiler speed optimization
- 3c1a78ea cmake: replace PROJECT_SOURCE_DIR with ZEPHYR_BASE

Continuous Integration (2):

- 33fa63e4 sanitycheck: Add progress to verbose mode
- 5dce5ea5 ci: user latest docker file

Device Tree (11):

- e5b0e9ac DTS: interrupt controller: Define IRQ priorities for CAVS & DW ICTL
- 4ec773f2 DTS: intel_s1000: Clean up I2C and UART stuff from soc.h
- 71e66f06 dts: stm32: Add Timer and PWM binding
- 0e8d97f1 dts: stm32f0: Add PWM nodes
- da0caab3 dts: stm32f1: Add PWM nodes
- bfa1941e dts: stm32f3: Add PWM nodes
- 7a60a2c4 dts: stm32f4: Add PWM nodes
- c7d2dc23 dts: stm32l4: Add PWM nodes
- 5c6ccf4a dts: stm32: Enable PWM nodes on selected boards
- b7c4c030 dts: riscv32: riscv32-qemu: Add device tree support
- 0824ec64 dt: nrf52840: remove 0x from USBD address

Documentation (12):

- 5917f9b6 doc: Makefile: Remove CONFIG_SHELL assignment
- 953dfe75 doc: Makefile: Remove the 'doxy-code' target
- fa121da1 doc: Makefile: Remove the 'prep' target
- 9af9b1fb doc: Makefile: Lowercase internal Make variables
- a760c5b0 doc: Makefile: Remove latex_paper_size (PAPER) option
- 4dcf928a doc: fix doxygen error for device.h macros
- 92f146ea doc: update application docs wrt CONF_FILE
- ef75956d doc: update known-issues filter
- f5e38130 docs: Fix mailbox k_mbox_msg.tx_block documentation
- d901add4 doc: update .gitignore file list
- a3d83ec9 doc: update doc build tools documentation
- de6d61d1 doc: remove local copy of jquery.js

Drivers (59):

- e16037d8 drivers: sensor: lis2dh: Fix of compilation issue
- 87bd2c25 drivers: sensor: lis2dh: Fix I2C burst read/write operations
- e7206318 drivers: eth: mcux: Inform IP stack when carrier is lost
- 51fecf80 usb: bluetooth: Add TX thread
- 00a6b4c5 usb: bluetooth: Fix assert due to unreserved headroom
- 452cb618 usb: bluetooth: Use transfer API for ACL packets
- 1ce6a6ea subsys: usb: update bcdUSB to 2.00
- 7b7784e1 drivers: dma_cavs: Add support for circular list
- 3f3a907b drivers: timer: Use sys_clock_hw_cycles_per_tick in nrf_rtc_timer.
- c524ff6b subsys: console: getchar: Use consistent var names for RX path
- 0bdcef9e pwm: stm32: Use macro to simplify registration
- f34e74db pwm: stm32: Add support for all PWMs up to PWM20
- 20365bac pwm: stm32: Do not hardcode the prescalers
- c65499d4 pwm: stm32: Add clock group information
- 07908748 pwm: stm32: Add STM32F0-specific clocks
- bef42fad pwm: stm32: Fix driver to compile with STM32F0
- 18f24f08 pinmux: stm32f3: Add PA8_PWM1_CH1
- 653d75cf pwm: stm32: Add PWM fixup for STM32* and remove Kconfig options
- e7252fbb drivers: uart: Refactor nrf uart shim
- 3f99eefe drivers: uart: Rename nrf5 namings to nrfx
- 1f22a418 gpio: doc: Be explicit about how EDGE and DOUBLE_EDGE work together
- 1002e904 drivers/exti: stm32: Use CMSIS IRQ defines instead of zephyr
- d84795b0 drivers/dma: stm32: Use CMSIS IRQ defines instead of zephyr
- f5310d5b drivers: pwm: pwm_nrf5_sw: Fix calculation of cycles per second
- fc1898cc drivers: pwm: pwm_nrf5_sw: Add prescaler support
- 2e6386f5 drivers: ieee802154: Remove GPIO_MCUX_PORT{A,B}_NAME
Kconfig references
- 02b5f3ed drivers: gpio: Fix GPIO_QMSI_{0,1}_NAME Kconfig references
- 2a834995 drivers: sensors: Consistently quote "GPIO_0" string default
- 8df42eb4 drivers: Replace ff hex constants with 0xff
- a55c72d3 subsys: usb/class/hid: make interrupt endpoint size configurable
- 6c60abb0 drivers: gpio: add dts support for nrf52 gpio
- 2fe51996 drivers/flash: Remove irrelevant option in w25qxxdv driver
- cf14a60f include: usb: add descriptor and data section macros
- 0fca1644 subsys: usb: rework usb string descriptor fixup
- 589dbc4c subsys: usb: add function to find and fix USB descriptors
- 6807f3a8 subsys: usb: move descriptor parts to the class drivers
- 7c708604 include: driver: usb: add check for endpoint capabilities
- 52eacf16 driver: usb: add check for endpoint capabilities
- 18b27b7f subsys: usb: fetch endpoint address from usb_ep_cfg_data
- bf332d00 subsys: usb: validate and update endpoint address
- 12375490 subsys: usb: configure Interface descriptor at runtime
- 1383dad8 subsys: usb: rework composite device support
- 32cac08e usb: class: adapt functions for new composite interface
- 391cf424 usb: tests: Add missing sections to sanitycheck
- 085a8b75 usb: hid: fix write to interrupt IN endpoint
- 408ea146 drivers: flash: nrf: Avoid locking when not threaded
- 49554dd3 drivers: usb_dc_stm32: Change SYS_LOG_LEVEL
- 785faea8 drivers: timer: nRFx: Use nrf_rtc hal for registers w sideeffects
- 53220198 drivers: clock_control: Use nrf_clock HAL for registers w sideeffects
- 78bf7518 drivers: entropy: nrf5: Use nrf_rng hal for registers w sideeffects
- 88de5bd8 drivers: serial: Remove SOC_NRF52810 Kconfig reference
- 392da5ba drivers: flash: w25qxxdv: Avoid locking when not threaded
- fc4fc655 drivers: serial: Revert change to init level for nrfx uart driver.
- 03f2eb7f stm32_pwm: add pinmux port definition for pwm4
- 80b8c501 drivers/serial: stm32: simplify check of TEACK/REACK flags
- 13a96574 drivers/serial: stm32: Put LPUART code under LPUART Kconfig symbol
- ebc31f62 drivers: can: Prepare STM32 driver for other series than STM32F0
- c601f3be can: Add can support for STM32L432
- 7688f490 drivers: usb_dc_stm32: change all endpoints to bidirectional

External (3):

- 4db7cce0 ext: lib: mgmt: Remove MDLOG Kconfig reference
- 354c8222 ext: hal: nordic: Update nrfx to version 1.1.0
- fb6f9b78 ext: Kconfig: Remove redundant 'default n' properties

Kernel (5):

- fd559355 kernel: work_q: Document implications of default sys work_q priority
- b173e435 kernel/queue: Fix spurious NULL exit condition when using timeouts
- 55a7e46b kernel/poll: Remove POLLING thread state bit
- 2e405fbc native_posix & kernel: Remove legacy preemption checking
- 3d14615f kernel: Restore CONFIG_MULTITHREADING=n behavior

Libraries (2):

- 99cef4c6 lib: Fix malformed JSON_LIBARY Kconfig default
- 6245d6c4 libc: minimal: Add typedefs for "least" types

Miscellaneous (3):

- 0f9a6426 release: Post-release patch level update
- 5890004e release: 1.12 doc cleanup
- c16bce7a samples, subsys, tests: Use ARRAY_SIZE() whenever possible

Networking (27):

- c0109fd6 net/ethernet: There is no need to fill in the header in all frags
- 9e0cfaf0 net/arp: There is no need to fill in the header in all frags
- 06fbcb1c net/arp: Removing header filling duplicate
- 97699537 net/arp: Clear cache per-iface when relevant
- a999d53a net/icmpv6: Removing duplicate checksum calculation
- d4e0a687 net/pkt: Simplify a tiny bit how TC priority is set
- e1c11499 net/pkt: Use IS_ENABLED instead of ifdef
- eb3ecf6e net: shell: conn: Always show TCP state
- 3122112a net: ethernet: Provide stubs for ethernet carrier functions
- b93d29df net: ethernet: Add carrier detection to L2
- fa882418 net: dhcpv4: Fix IPv4 and UDP checksum calculation
- 5cda31c8 net: dhcpv4: Detect network interface on/off events
- 4dd61f88 net: tcp: Process zero window probes when our recv_wnd == 0
- 3cf1b07d net: stats: do not use deallocated packet pointer
- 30c4aae9 net: samples: increase main stack size for echo_client
- d4943989 net: stats: handle_na_input: unref packet after stats are updated
- ce6f9819 net: Remove redundant NETWORKING dependency
- 1a96f2b4 net: ethernet: Show interface for dropped RX packet
- 4ae875f9 net: arp: Timeout too long ARP request
- 699023a9 net: ethernet: Fix asserts in net_eth_fill_header()
- e62972bb net: ethernet: net_eth_fill_header: Remove superfluous "frag" param
- 268c0e33 net: tcp: Add MSS option on sending SYN request
- f8dc4b6b net: bluetooth: Enforce the minimum user_data size at Kconfig
- c0e0d613 net: rpl: Fix malformed Kconfig default
- 3bc77e88 net: drivers: wifi: SimpleLink WiFi Offload Driver (wifi_mgmt only)
- 7934e249 net: lwm2m: retry registration update 6 seconds before expiration
- 1da4ddba net: pkt: Fix comment typo in word tailroom

Samples (12):

- 57f67903 samples: can: move CAN sample under drivers
- 3f8352f2 samples: remove sample.tc
- f37287bb samples: cleanup sample test naming
- 10d8e711 samples: move grove samples to sensors and display
- 59309c1a samples: sockets: dumb_http_server: Use consistent logging settings
- fb4227bd samples: mbedtls_sslclient: Use entropy driver to kickstart RNG
- 416614e2 samples: net: echo-client: Increase buf count for frdm-k64f
- 7a073bf9 samples: bluetooth: Fix microbit/nrf5 UART flow control assignments
- e5b5f85c samples: servo_motor: Add support for the BBC micro:bit
- 1bbfdf1d samples: mesh/onoff-app: Enable persistent storage support
- 98465702 samples: net: wifi: Add a cc3220sf_launchxl conf file
- af70e8f7 samples: net: Check the return value of close()

Scripts (11):

- cb95ea0b kconfiglib: Update to add list of choices
- 31ab6bff genrest: Generate documentation and links for choices
- 20721f39 scripts: kconfig: Improve the 'user value != actual value' warning
- ad29ec69 scripts: extract: globals.py: fix node name when it includes "@"
- f971aaca scripts: kconfig: Turn most warnings into errors
- 7f84001f menuconfig: Fix searching for nonexistent objects
- f425c0aa scripts: kconfig: Disable the "FOO set more than once" warning
- 59c8ae8c kconfiglib: Fix incorrectly ordered props. for some multi.def symbols
- ea108107 scripts: kconfig: Extend the assignment-failed warning
- 80f19cca kconfiglib: Correctly report choice locations in some warnings
- 4dcde2e6 menuconfig: Allow searches from the info dialog and vice versa

Storage (1):

- 72959543 settings: fix typo in header file

Testing (8):

- 9b2880fe tests: posix: fix meta-data and rename test file
- 252be0b9 tests/kernel/sched/preempt: enable test for native_posix
- e8a906c2 tests: disable preempt testcase for native_posix
- 4a2d109a native tests: fix kernel sched preempt for arch posix
- 791daa70 tests: sprintf: remove kconfig options
- 072a43d1 tests: Do not build arm_irq_vector_table .config's for ARC
- 7bbd3a79 tests/kernel: Add a test for CONFIG_MULTITHREADING=n
- a3fe7af2 tests: obj_tracing: Enhance object counter logic

Join users@lists.zephyrproject.org to automatically receive all group messages.