Zephyr news, 21 May 2018

Marti Bolivar

Hello and happy v1.12 release candidacy,

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

An HTML version is available here:


The goals are to give a human-readable summary of what's been merged
into master, breaking it 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.


This newsletter covers changes in Zephyr between these two
commits (inclusive):

- e15a4923 ("ci: Clean the capability cache when the ccache is cleaned"),
merged 14 May 2018
- e7509c17 ("release: Move version to 1.12.0-rc1"),
merged 19 May 2018

Development since the last newsletter has been active, with 300+
patches merged before last Friday's release feature freeze and
subsequent tagging of v1.12.0-rc1.

If you're unfamiliar with Zephyr's release process, see the
Development-Model page on the wiki for more details on these terms:


The v1.12 release was originally the candidate for the first Long-Term
Support release. However, the release of the first LTS has been
postponed for various reasons, including ongoing work in:

- architectural updates to the networking stack:
- device driver API stabilization:
- moving all boards to use Device tree:

Along with other issues tracked using the LTS label in Zephyr's
GitHub issues:


An online meeting is being scheduled for further revisiting and
discussing what is required for the final LTS release; details are
expected to be released in the next day or two.

Some timelines are already available; for example, the networking
architectural updates are targeting completion of major new features in
v1.14, according to a presentation given to Zephyr's Technical Steering
Committee by Andrei Laperie of Intel:


Important Changes


OpenAMP (and its libmetal dependency) was merged to enable message-based
cross-core communication. This carries BSD-3-Clause and BSD-2-Clause

An usage sample is in samples/subsys/openamp:


New Zephyr SDK:

Zephyr SDK version 0.9.3 has been released. Linux users should upgrade
using the updated installation instructions:


Non-volatile Storage (NVS):

A long-running pull request to add a new storage mechanism for
persistent data was merged. The new Non-Volatile Storage (NVS)
subsystem is meant as an alternative to the existing FAT and NFFS file
systems, as well as the Flash Circular Buffer (FCB) library which was
ported to Zephyr from the MyNewt RTOS.

For more details, refer to the NVS subsystem documentation:


This would seem to pair well with the storage API changes discussed in the
previous newsletter, which introduced greater abstraction over the storage

k_call_stacks_analyze() deprecated:

The k_call_stacks_analyze() API was deprecated. Users are recommended to
switch to using k_thread_foreach():


(Perhaps re-implementing or calling into a stack usage dumping routine for
each thread.)

Userspace changes:

Numerous userspace-related features and optimizations were merged.

New API was merged for memory management from specified memory pools. The
main functions are:

- k_mem_pool_malloc():
- k_mem_pool_free():

This is used to allow dynamic allocation of kernel objects from userspace.

Cleanup functions defined on a per-kernel-object-type basis can now
be invoked when an object loses all permissions. This is used as a
framework for automatic resource release for dynamically-allocated
userspace objects.

New APIs were added for userspace allocation and freeing of kernel
objects of various types:

- k_pipe_alloc_init() and k_pipe_cleanup() for pipes:

- k_msgq_alloc_init() and k_msgq_cleanup() for message queues:

- k_stack_alloc_init() and k_stack_cleanup() for stack objects:


Additional APIs for allowing userspace access to queues includes:

- k_queue_alloc_append() and k_queue_alloc_prepend()


- k_fifo_alloc_put():

- k_lifo_alloc_put():

The k_poll Polling API is now also accessible from user mode:


An optimization was merged which avoids executing user/supervisor
boundary checks when invoking system calls from privileged code in
translation units defined under arch/.

Access to the k_object_access_revoke() routine from userspace was
itself revoked, closing a hole where one thread could inappropriately
revoke another's access to a kernel object. Userspace threads may
revoke access to their own objects with k_object_release().

TCP TIME_WAIT config changes:

Configuration for how long Zephyr's TCP stack remains in the TIME_WAIT
state during connection closure is now managed through the single


This replaces the previous CONFIG_NET_TCP_TIME_WAIT and
CONFIG_NET_TCP_2MSL_TIME options. Applications using the old options will
need updates.



Support for Arm's v8-M cores continues, with support for secure fault
handling on Cortex-M23 along with other behind-the-scenes work on
memory access privilege checks.

There is a new CONFIG_PLATFORM_SPECIFIC_INIT available on Arm
targets. When enabled, the user must provide a _PlatformInit
routine, which will be called at Zephyr startup before anything else

Support was added to enable a Zephyr image running on an NXP LPC-based
SoC to boot a slave Cortex M0+ core. (Board support was added for the
slave core as lpcxpresso54114_m0.)


The Mesh shell now supports the recently-merged persistent storage

Device Tree and Drivers:

Zephyr now supports the automobile Controller Area Network (CAN)
protocol. The API is specified in include/can.h. The new API is

GPIO bindings were added for QMSI (Intel Quark) based devices, with
nodes added for quark_se_c1000_ss.

Device tree bindings were added for real-time clocks (RTCs), as well
as NXP Kinetis and QMSI based RTCs. SoC support was added for
KW41Z and quark_se_c1000_ss.

Additional patches continuing the work migrating LED and buttons
definitions to device tree were merged for mimxrt1050_evk and
lpcxpresso54114. Device tree support for sensors on the argonkey board
was also merged, along with em_starterkit device tree optimizations,
and bindings for LSM6DSL sensors and Kinetis watchdogs. A shim driver
using the newly-stabilized watchdog API was added for NXP MCUx
devices. SOC support is provided for K64 and KW2XD.

USBD (USB device) and USBFSOTG (USB full-speed On-the-Go) support was
added for NXP Kinetis SoCs. USB support was also enabled for STMicro

WiFi support for the WINC1500 network controller was merged. This chip
can be used to add networking via SPI. This is the first user of the
new WiFi API which was merged during the v1.12 development
cycle. Support can be enabled using CONFIG_WIFI_WINC1500.

A driver was added for ILI9340 LCD displays.

External Libraries:

The OpenThread library version was bumped to db4759cc, to pull in some
bug fixes.

The Atmel WINC1500 WiFi driver was merged as part of enabling WiFI on
that chip. This is a BSD-3-Clause licensed HAL.


In a highly significant but (hopefully mostly) behind-the-scenes change,
the scheduler was rewritten:


A new k_thread_foreach() API was merged, which allows iterating over


This requires CONFIG_THREAD_MONITOR to be enabled. Creation
and termination of existing threads is blocked via irq_lock() while
the routine is executing.


The red-black tree implementation in include/misc/rb.h now has
RB_FOR_EACH() and RB_FOR_EACH_CONTAINER() macros, for iterating over
red-black tree nodes and the structs which contain them.

The POSIX compatibility layer has additional file system support
APIs. Pulling in the POSIX headers defines macros which map POSIX
names to Zephyr-specific file system APIs appropriately. This includes
support for basic syscalls such as open(), read(), write(), close(),
and friends, and also allows for directory operations such as
rename(), stat(), and mkdir(). Refer to the headers in include/posix
for more information.

There is also now support for the POSIX mutex APIs.


A new API was added for a singly-linked-list like type which allows
storing two flags in each node, by relying on 4-byte pointer
aligment. For details, refer to include/misc/sflist.h.


The LWM2M subsystem now includes support for marking resources as
optional. Any resources so marked are not initialized by the core
LWM2M subsystem; applications must initialize them using
lwm2m_engine_set_res_data() and lwm2m_engine_get_res_data(). This
also enables remote administration of these resources by the LWM2M
server through CREATE operations. It also enables future work where
BOOTSTRAP operations will behave differently when encountering
optional resources. As part of these changes, various object resources
throughout the LWM2M core and in supported IPSO objects were marked
optional appropriately.

The 802.15.4 subsystem now supports source address filtering and
performing energy detection scans when OpenThread is in use.


New samples include:

- a RPL border router application, samples/net/rpl_border_router:

- A WiFi shell sample, samples/net/wifi:

- An OpenAMP usage sample, samples/subsys/openamp:

- An MCUX IPM mailbox example, samples/subsys/ipc/ipm_mcux:

- A sample for the 96Boards ArgonKey, samples/boards/96b_argonkey:

- A CAN sample, samples/can, tested on stm32f072b_disco:


The flash, debug, and debugserver handlers now use a new meta-tool
called "west". This is still a behind-the-scenes change; further work
expected before the v1.12 release will add documentation for this


The effort adding descriptions, cleanups, and other improvements to
Zephyr's test cases to use them from a higher-level test management
system continues.

Bug Fixes

Numerous drivers cleanups and bug fixes went in, affecting various

Various Arm-specific fixes went in as part of the v8-M work.

A new CONFIG_BT_MESH_IVU_DIVIDER went in, which fixes an issue related
to re-initializing initialization vectors. Various other Bluetooth
cleanups and fixes went in, including removals of deprecated APIs and
unused variables and documentation fixes.

Numerous fixes and additional Doxygen descriptions went into the test

Networking fixes include net-app fixes for TLS warnings, source IPv4
address selection, build fixes with TCP disabled, and byte order
handling; ethernet MAC address setting; LWM2M port handling fixes;
dropping of invalid packets; and a couple of ICMPv6 fixes.

Various build fixes, error handling and Kconfig dependency management
improvements, k_call_stacks_analyze() removals, and more were added to
the samples.

Individual Changes

Patches by area (309 patches total):

- Arches: 29
- Bluetooth: 7
- Boards: 21
- Build: 5
- Continuous Integration: 2
- Device Tree: 28
- Documentation: 12
- Drivers: 54
- External: 6
- Firmware Update: 1
- Kernel: 25
- Libraries: 11
- Maintainers: 2
- Miscellaneous: 4
- Networking: 31
- Samples: 29
- Scripts: 21
- Storage: 2
- Testing: 19

Arches (29):

- 6307b8b9 arch: arc: refactor the soc part of em_starterkit
- 47d3a90d arch: arc: reuse GCC_M_CPU in cmake file and remove unused comments
- 5eb5bb7d arch: arc: add the missing SPI_DW_SPI_CLOCK in dts.fixup
- c13b12eb arch: arc: explictly list all def config
- 9bc1dc72 arch: arm: Secure fault handling for Cortex-M23
- 0a25ad15 arch: arm: fix bug in AIRCR config on init
- 361f4ac9 arch: arm: improve fault dump for secure firmware
- 70b45c63 arch: arm: distinguish integrity signatures with/without FP
- 7c91a4a5 arch: arm: fix SecureFault IRQn for non-CMSIS compliant MCUs
- 5ab3960c arch: Cmake: Add __ZEPHYR_SUPERVISOR__ macro for arch files.
- 0b7e22bd arch: arm: Add platform init hook at __start
- fd4759b5 arch: nxp: lpc54xxx: Rename SoC bits from LPC54114 to LPC54114_M4
- a5c12b6c arch/arm/soc/nordic_nrf/nrf52: NFCT pins configuration
- 0daf69bb xtensa: fix CONFIG_INIT_STACKS for IRQ stack
- 29ed87c9 native: entropy: warn of security risk
- 167efd70 arm: mpu: nxp: set bus master 4 to write and read access
- d6f14291 arch: nxp_kinetis: enable USB device driver
- c842f32d arch: arm: Define & implement API for test target (Non-Secure)
- 600d731c arch: arm: select CPU_CORTEX_M_HAS_CMSE in ARMv8-m
- 8e0c830d arch: arm: implement cmse address range check
- b8ec6da3 arch: arm: convenience wrappers for C variable permissions checks
- e9ca0a7d nxp_kinetis: Enable mcux watchdog driver on k64, kw2xd socs
- 02253c23 nxp_kinetis: Fix rtc base address in kw41z dts.fixup
- b7312d1b arch: arm: lpc: Added support for Cortex-M0+ on lpc54114 soc
- 7514a92c arch: arm: nxp_lpc: Added support for init of slave core
- 53f91976 arch/x86: Use dts to set gpio options for quark_se and quark_d2000
- 250c4a87 arch: Use dts to set rtc priorities for Intel quark, x86 and arc
- bd9706cd arch/arc: Use dts to set gpio priorities for quark_se_c1000_ss
- 60d509f3 arch: Use dts to set i2c priorities for quark_se/quark_d2000

Bluetooth (7):

- 0fb9ea03 subsys: bluetooth: Remove deprcated k_call_stacks_analyze API
- a3c1b3db Bluetooth: Mesh: Expose bt_mesh_is_provisioned() publicly
- 4b4b6762 Bluetooth: GATT: Fix documentation of bt_gatt_notify
- cfb34d2b Bluetooth: Mesh: shell: Add persistent storage support
- 2b73c97d Bluetooth: Mesh: Fix IV Update duration tracking
- 20ea1b86 Bluetooth: Mesh: Remove redundant ivu_unknown variable
- df4220b2 Bluetooth: L2CAP: Add support for dynamically allocated PSM values

Boards (21):

- 2368edd8 mimxrt1050_evk: Move led and button definitions to dts
- b8196c89 boards: em_starterkit: add pmod mux init
- ef19b90a boards: nucleo_f413zh: enable usb
- 5ec02d14 boards: 96b_carbon: add gpios in bt controller node
- d3ea9102 boards/96b_carbon: Update doc with USB support
- 45cfea6f board: lpcxpresso54114: Move led and button definitions to dts
- 0f4a2b75 board: lpcxpresso54114: Rename to lpcxpresso54114_m4
- 5b6fde14 boards: arm: nrf: Enable mcumgr UART
- 48cc4620 boards: frdm_kw41z: enable xoroshiro on board level only
- 11c68a10 boards/arm/nrf52xx_boards: makes GPIO_AS_PINRESET common
- 103cbe8c boards: minnowboard: do not run net/bluetooth tests
- c976dbb2 boards: Document watchdog driver support on k64, kw2xd boards
- c3ce923f arm: lpcxpresso54114_m0: Add board support for slave core
- 3053f351 boards: nios2: altera_max10: Enable device support for altera_max10
- 4687c989 boards: nios2: qemu: Enable device support for qemu
- ce13fc8e boards: stm32: argonkey: Enable STM32 I2C interrupt support
- 17c15ff1 boards: stm32: argonkey: Add dts support to sensors
- c9262bb4 board: argonkey: add LSM6DSL configuration in Kconfig.defconfig
- f8288abd boards/qemu_x86: Enable fast scheduler options
- 59dc82e0 boards: adjust openocd runner arg syntax
- e73637af boards: stm: Add CAN support for stm32f072b micro controller

Build (5):

- c674167f cmake: extensions: Added a new macro zephyr_library_ifdef
- cc8b7265 cmake: Add new generate_inc_file_for_gen_target function
- 4dc9e5b2 kconfig: Get rid of 'option env' bounce symbols
- 64badd97 cmake: flash: save runner configuration to CMake cache
- aa262894 kconfig: Get rid of leading/trailing whitespace in prompts

Continuous Integration (2):

- e15a4923 ci: Clean the capability cache when the ccache is cleaned
- df9210ca ci: use new docker file with new SDK

Device Tree (28):

- e524f0b8 dts: x86: derive RAM and ROM size from dts instead of Kconfig
- 99e1f849 dts: optimize the dts for em_starterkit
- 9c7d92a6 dts: fixes in the dts of em_starterkit em9d configuration
- 532e4d22 dts: optimize and bug fixes the dts of em_starterkit
- 8cf04a18 dts/bindings: Add reset/irq gpios to zephyr,bt-hci-spi yaml
- 48e2dba2 dts: xtensa: fix build error.
- d8983e6d dts/st,stm32-usb: Add use-prop-name to disconnect-gpios
- 9c27ae71 dts: bindings: add yaml file for Kinetis USBD support
- d8cd1195 dts: arm: nxp: use DT to configure USBD on Kinetis SoC
- ae71554b dts: stm32l4: add node and fixup for i2c4
- d75291ef yaml: rtc: Add yaml definitions for RTC
- 1fe586f6 dts: nxp: kw41z: Fixup NXP Kinetis RTCs on KW41Z
- 7960f791 dts: Add kinetis watchdog bindings and update k64, kw2xd soc nodes
- 8f908f38 dts: nios2f: Add device tree support
- 29489246 dts: nios2-qemu: add device tree support
- 9e1f1acc dts/x86: Add Copyright headers to x86 dtsi files
- b8e8077c dts: Adding priority cell to Intel's IOAPIC IRQ controllers
- e4aced51 dts/x86: Enable generating the IRQ priority on all SoCs
- 878d0fb8 dts: Add yaml descriptor for the QMSI GPIO driver
- 69e5b3ec dts/x86: Fix GPIO nodes for intel_curie and quark_d2000
- 1f2553ba dts: Add yaml descriptor for the QMSI RTC driver
- 16c455e4 dts/arc: Add rtc node to quark_se_c1000_ss
- 43878fd8 dts/bindings: Remove useless attribute in QMSI uart node descriptor
- 8bbb80e3 dts/x86: Fix UART nodes for ia32, atom and quark_x1000
- 29e51982 dts/arc: Add the GPIO nodes to quark_se_c1000_ss
- 17a2c1e6 dts: Add yaml descriptor for the QMSI SS GPIO driver
- 0ce2cc19 dts/x86: Update i2c nodes with interrupts for quark_se and
- 36b0c321 dts: bindings: Add SPI yaml file for LSM6DSL sensor

Documentation (12):

- 9af44d82 doc: add native posix command line help
- 15f2035c doc: update the doc of em_starterkit
- 9342e3d3 doc: getting_started: Remove redundant and erronous doc's
- 2a892d5d doc: update mac instructions
- 941007d4 doc: Update Zephyr SDK version
- b98388c6 doc: networking: qemu_setup: Update details and add DNS information
- aa9fe261 doc: genrest: Show properties on the correct symbol definition
- 39f396a8 doc: tests: remove obsolete and bogus test groups
- 09c81379 doc: genrest: Speed up documentation rebuilding
- d1d0dd45 doc: fix missing NVS API documentation
- ef927a87 doc: fix missing networking API documentation
- f93ca237 doc: mark bt_test_cb API as not documented

Drivers (54):

- 3f249755 drivers: spi: fix the bug of slave selection in spi_dw
- 63ffbe9d usb: usb_device.c: rewrite if condition judgment
- 4b0b65c1 subsys: usb: check for invalid descriptor type request
- b0db28b5 drivers: Cmake: Add __ZEPHYR_SUPERVISOR__ macro for driver files.
- 931630ca usb: webusb: Define and use MS descriptor structures
- df5e0e00 usb: webusb: Use sizeof instead of magic numbers
- 7fa8537d usb: webusb: Trivial cleanup
- 7de55a07 pwm: stm32: Fix type for PMW3 support
- 82c0b8cb drivers/bluetooth/hci: Name the choice of BT HCI driver bus
- 49d82086 drivers/dma: dma_stm32f4x: check stream id boundaries
- e2393a00 drivers: timer: nRFx: Remove redundant code
- 05c45e35 drivers: serial: Fix race condition in nRF5 UART TX
- e61c4812 drivers: crypto: crypto_tc_shim: Set output length for all operations
- ab16853b drivers: crypto: crypto_mtls_shim: Set output length for
all operations
- 845ac3ef drivers: spi: Fix TOCTOU while transceiving SPI messages
- cd580e0b drivers/adc: Uneven buffers will lead to buffer overflow
- 9bdf1cdb drivers/wifi: Add winc1500 WiFi driver
- 2a1d222a drivers/wifi: Generalize GPIO configuration for the WINC1500 driver
- 0294c673 drivers/wifi: Move configure macros to Kconfig
- 8e65f6ab drivers/wifi: Let's go away from SPI legacy API in WINC1500
- 1e4ba823 drivers/wifi: Remove useless gpio configuration call in
winc1500 driver
- 569e70aa drivers/wifi: Split case logic into functions in winc1500 driver
- 5f9ccad9 drivers/wifi: Switch info level to debug level in winc1500 driver
- 24bb24e6 drivers/wifi: WINC1500 driver is not using WAKE pin
- 21455032 drivers/winc1500: Implement wifi mgmt offloaded API
- ce947431 drivers/wifi: Move all winc1500 related code to its own directory
- 5dc6f99c drivers: usb: add usb device driver for Kinetis USBFSOTG Controller
- 06840af1 drivers: usb: kinetis: fixup endpoint config, stall and read
- 50990cdf drivers/ieee802154: KW41Z drivers is missing hw ACK caps
- e681f9cb pwm: stm32: fix off-by-one on PWM period
- af601c22 i2c: stm32: add support for I2C4
- 70fdb7f2 pinmux: stm32l4: add I2C4 pinmux on PD12/PD13
- d0fa5872 watchdog: iwdg: honor IWDG_STM32_START_AT_BOOT
- 35cb2ba3 watchdog: stm32: fix style issue
- 4aaaccc7 rtc: Kconfig: Split off QMSI into separate Kconfig
- 27bdb833 rtc: Add prescalar configuration option
- 7b92d3fb rtc: nxp: Add RTC driver for NXP Kinetis
- 39d63d31 clock_control: Add support for getting LPO frequency in
mcux sim driver
- 474a618f watchdog: Introduce mcux wdog shim driver
- 5477ee45 mcux: Add MCUX IPM driver for lpc and kinetis socs
- 375e8d73 spi_handlers: fix some build issues
- 7e5b021b drivers: adc: fix TOCTOU attacks
- c4a62e04 drivers: serial: nrf: Fix is_pending handling
- 17c64566 drivers/uart: Use dts to set uart priorities for QMSI driver
- 61ef30d1 drivers/uart: Use dts to set uart options for ns16550 driver
- ed26b957 drivers/gpio: Removing dts generated options in QMSI Kconfig
- 00bbbae4 drivers/serial: Add port 2 instance in ns16550 driver
- ca16779d driver: ILI9340 LCD display driver
- 05234e35 driver: sample: ILI9340 sample application
- 9e12807a API: can: Add API for Controller Area Network driver
- 023e4518 drivers: can: Add Kconfig for CAN driver
- d3101b1f drivers: can: Add syscall handlers for CAN API
- 50f8296b drivers: can: Add dts bindings for CAN
- 2976ac35 drivers: can: Add CAN driver support for STM32

External (6):

- 4dd8d684 ext: Add dual core startup code for lpc54114 based on mcux 2.3.0
- 6871057e ext: Modified lpc54114 startup code from mcux for use with Zephyr.
- 4d1da3f7 ext: Add winc1500 driver from Atmel
- 89ac6b5d ext/hal: Add WINC1500 README for non-Apache 2.0 licensed contribution
- 3ddfd171 ext: Import libmetal for IPC/open-amp
- 17b64baf ext: Import OpenAMP for IPC

Firmware Update (1):

- 05148610 mgmt: Fix smp_bt.c build

Kernel (25):

- 110b8e42 kernel: Add k_thread_foreach API
- 149a3296 kernel: Deprecate k_call_stacks_analyze() API
- 8618716c kernel: Cmake: Add __ZEPHYR_SUPERVISOR__ macro for kernel files.
- d70196ba linker-defs: Increase the number of kernel objects
- 5133cf56 kernel: thread: Move out the function _thread_entry() to lib
- 577d5ddb userspace: fix kobj detection declared extern
- a2480bd4 mempool: add API for malloc semantics
- e9cfc54d kernel: remove k_object_access_revoke() as syscall
- 337e7433 userspace: automatic resource release framework
- 92e5bd74 kernel: internal APIs for thread resource pools
- 97bf001f userspace: get dynamic objs from thread rsrc pools
- 44fe8122 kernel: pipes: add k_pipe_alloc_init()
- 0fe789ff kernel: add k_msgq_alloc_init()
- f3bee951 kernel: stacks: add k_stack_alloc() init
- 47fa8eb9 userspace: generate list of kernel object sizes
- 85699f7c kernel: Fix compile warning with _impl_k_object_alloc
- 2b9b4b2c k_queue: allow user mode access via allocators
- 8345e5eb syscalls: remove policy from handler checks
- 3772f771 k_poll: expose to user mode
- 4ca0e070 kernel: Add _unpend_all convenience wrapper to scheduler API
- ccf3bf7e kernel: Fix sloppy wait queue API
- 9666c30d kernel: mem_slab: Reschedule in k_mem_slab_free only when necessary.
- c0ba11b2 kernel: Don't _arch_switch() to yourself
- 1acd8c29 kernel: Scheduler rewrite
- 3ce9c84b kernel: Wait queues aren't dlists anymore

Libraries (11):

- bcdfa76f lib: posix: Fix pthread_attr_init() return code
- 2514f3c8 libc: minimal: fix fwrite()
- ba240502 lib: rbtree: Add RB_FOR_EACH macro for iterative enumeration
- eb0aaca6 lib: posix: Add Posix Style File System API support
- eb8ba696 lib: posix: Implement posix mutex APIs
- 4e3d99ed lib: posix: Use default attribute for mutex
- 0f1d30aa lib: posix: Do not redefine PATH_MAX in unistd.h
- d33b49d4 lib/rbtree: Fix crash condition with empty trees and rb_min/max()
- 6040bf77 lib/rbtree: Fix & document insert comparison order
- 12d6329e lib/rbtree: Add RB_FOR_EACH_CONTAINER()
- f4b6daff lib/posix: Port wait_q usage to new API

Maintainers (2):

- 8b29cb84 CODEOWNERS: fix path syntax
- a631e1a1 CODEOWNERS: Fix nxp related directories

Miscellaneous (4):

- 62bff616 subsys: shell: Remove deprcated k_call_stacks_analyze API
- 79215adc list_gen: slist: mark some APIs are private
- c8010e48 sflist: slist-alike that stores flags
- e7509c17 release: Move version to 1.12.0-rc1

Networking (31):

- 9e09e2a1 OpenThread: Change SETTINGS_CONFIG_PAGE_SIZE to target specific value
- 2c987298 net: tcp: expose some TCP helper functions
- 8a21d386 net: app: fix build warning in _net_app_ssl_mainloop()
- e50cacb3 net: app: Select proper source IPv4 address in client
- 0db9af5a net: lwm2m: return error from lwm2m_engine_get_* functions
- 0d67f6a7 net: lwm2m: introduce FLAG_OPTIONAL to denote optional resources
- 4fb16db2 net: lwm2m: mark OPTIONAL resources for LwM2M Security
- 9506b427 net: lwm2m: mark OPTIONAL resources for LwM2M Server
- 12901396 net: lwm2m: mark OPTIONAL resources for LwM2M Device
- 7a1024e5 net: lwm2m: mark OPTIONAL resources for LwM2M Firmware Update
- a5bdbc17 net: lwm2m: mark OPTIONAL resources for IPSO Light Control
- b6774f0e net: lwm2m: mark OPTIONAL resources for IPSO Temperature
- 07ec5567 net: lwm2m: remove unused OBJ_FIELD_MULTI_DATA macro
- bb98d876 net: coap: add COAP_INIT_ACK_TIMEOUT_MS setting
- d07391d3 net: coap: clear more fields in coap_reply_clear()
- 89f57c22 net: tcp: Define single config option for TIME_WAIT delay
- d6dfde36 net/ethernet: Fix mac address setting through ethernet mgmt
- 49bd1e9c ieee802154: Add support for filtering source short/ieee addresses
- 69e69b7f ieee802154: Add support for energy detection scan on driver API
- cc8fab8d net: app: client: fix local port byte-order in bind_local()
- 9cbe86f8 net: app: client: handle client_addr port in net_app_init_client()
- a0210343 net: lwm2m: honor CONFIG_LWM2M_LOCAL_PORT when starting client
- 21fdf536 net: lwm2m: default LWM2M_LOCAL_PORT to 0 (random)
- a58781f5 net: lwm2m: add LWM2M_FIRMWARE_UPDATE_PULL_LOCAL_PORT setting
- 198b3586 net: lwm2m: simplify registration client
- 68ef8f06 net: conn: Drop invalid packet
- 3c09bee9 net: app: server: Fix compile error if TCP is disabled
- c0af4de7 net: openthread: Bump OpenThread commit to db4759cc
- 5f534dc6 net: openthread: Add function for getting current radio channel
- 38866179 net: icmpv6: Fix error condition
- 3a6944d8 net: icmpv6: replace NET_ASSERT with NET_ERR

Samples (29):

- 994be4dc samples: net: dns: Fix compile error
- 3df9201e samples: net: dns_resolver: Add config options for tests
- 677262e9 samples: net: lwm2m: adjust BT RX buffer count /sizes for BT
- 769c3a8b samples: boards: Remove deprcated k_call_stacks_analyze API
- ef4cb15f samples: subsys: debug: sysview: Adapt k_thread_foreach API
- d257b946 samples: net: mbedtls_sslclient: Fix prj.conf file
- 16a8a309 samples: sockets: dumb_http_server: Improve error handling
- b56b1436 samples: sockets: Make more errors fatal
- 3b8c6c70 samples: usb: webusb: Add MS-OS descriptors for compatible IDs
- 6164c60c samples: usb: webusb: Add MS OS v1.0 descriptors too
- 092f7160 samples: sockets: dumb_http_server: Disable TIME_WAIT delay
- 6cadd380 samples: net: Fix echo_server reply packet preparation
- b2fa9ada samples: smp_svr: Rename conf file
- 5ebf1a2c samples: smp_svr: Add sample.yaml
- ddc30c8e samples: leds_demo: depend on netif and gpio
- 9c113d29 samples: drivers: crypto: Print output length for all operations
- bdfbbfee samples: sensor: vl53l0x: trivial README.rst fix
- 7588680a samples: olimex_stm32_e407: ccm: trivial README.rst fix
- 554999d3 samples/net: Add a simple sample to run wifi shell module
- 45156f6e samples: cdc_acm: enable sanitycheck for Kinetis boards
- 08795cf2 samples: net: rpl: Simple RPL border router application
- 2ef50442 samples: net: rpl: Enhance RPL border router application
- 26ebb918 samples: net: rpl: Add observer support to node application
- 37b7caa6 sample: Add MCUX IPM sample application
- 0b76b128 samples: sockets: big_http_download: Update for DHCPv4 support.
- 02bb83be samples/boards: Add ArgonKey test
- ca9a98e6 samples/subsys/console: Remove unused tx_sem semaphore
- 5eb88298 sample: add OpenAMP sample application
- 2de9f2f8 samples: can: Add example code for CAN driver

Scripts (21):

- e307ba34 kconfiglib: Record which MenuNode has each property
- 6d4d8ce0 menuconfig: Show properties on the correct symbol definition
- b58cbfd6 menuconfig: Add .config loading dialog
- 2715a011 scripts: runner: add __str__ for RunnerCaps
- 1430e0c7 scripts: runner: core: don't print unless self.debug
- b6af8eb9 scripts: create meta-tool package, "west"
- 641ae471 scripts: west: add cmake utility module
- 9e7d16ac scripts: make runner a west subpackage
- 3919e70e scripts: west: remove redundant quote_sh_list definition
- 4a354e89 scripts: west: runner: add get_runner_cls()
- b611e5b1 scripts: west: add flash, debug, debugserver commands
- fbd2e92b scripts: remove zephyr_flash_debug.py
- 367c0bab scripts: west: remove command from runner arguments
- a81f0559 scripts: west: trivial fix to runner comments
- bc587d92 scripts: west: add subprocess.call wrapper to runner classes
- a9aa250b scripts: west: clean up intel_s1000 runner
- bc7b1c59 scripts: west: fix some intel_s1000 runner issues
- c9dfbfaf scripts: west: convert runner to use log module
- 5317f76d scripts: west: introduce common runner configuration
- 68e5933e scripts: west: add build directory to runner configuration
- 38e8f06f scripts: west: add context-sensitive runner help

Storage (2):

- b1e45b41 subsys: fs: Add Non Volatile Storage (NVS) for zephyr
- 72050f46 settings: Make it safe to call settings_subsys_init() multiple times

Testing (19):

- bb717783 tests: kernel: profiling: Add test for k_thread_foreach API
- 43775402 tests: Kconfig: Added a new Kconfig for qemu_x86
- 2db1c080 tests: drivers: build_all: Ensure correct builds.
- c07ec386 tests: subsys: fs: Enable proper configuration for qemu_x86.
- e2db76c9 tests/net: Fix ethernet mgmt mac change test
- a1fc3969 tests: common: fixed pointer formatting
- 36eb4dd0 tests: samples: exclude usb_kw24d512 from wpanusb sample
- eeeffcaf tests: rtc: Adjust RTC samples tests for NXP RTC
- fb74866c tests: watchdog: Update test to work with the mcux watchdog driver
- 3f43fc77 tests: watchdog: Replace platform whitelists with depends_on
- c18a1132 HACK: tests: disable output disasm for 1 ARC test
- ad6b8904 tests: kernel: Add description for test cases
- 55cf6dd7 tests: posix: Add test for Posix File System API's
- 8b31cdad tests: kernel: Add description for test cases
- c1200cd3 tests: posix: fs: Add description for test cases
- 7393cb24 tests: threads: Add test case to verify k_wakeup()
- f0eaa8e8 tests: mutex: Add test case to test mutex API
- 5e87c08a tests: posix: Increase sram size
- 0c80ee08 tests/kernel: Bump stack sizes for a few tests on qemu_x86

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