FOUNDRIES.IO INSIGHTS

Zephyr Development News 11 June 2018

By Marti Bolivar | June 11, 2018

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

We’ve renamed the series to “Zephyr Development News” to avoid a name clash with a publication produced by another entity.

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

As announced previously on the mailing lists, Zephyr v1.12.0 has been tagged. Hurray!

This newsletter covers changes in the following inclusive range, which closes out the v1.12 release candidate period:

  • 6a138977 susbys: disk: Fix misleading menuconfig prompts
  • f58d9cab release: Update VERSION for 1.12.0 release

Important Changes

The areas most affected during this period, as might be expected, were documentation and testing. There were also a fairly large number of ARC architecture changes.

Features

Continuous Integration:

Sanitycheck can now export tests in CSV format.

Bug Fixes

Arches:

A variety of ARC fixes were merged. These fix overflows in the privileged stack, IRQ offloading, the ADC and watchdog timer priority levels, reset instability, and a couple of issues related to exception handling.

A bug preventing i.MX RT SoCs from booting correctly was fixed as well; this also has the nice benefit of eliminating a vast number of Kconfig warnings emitted when building for other boards.

Bluetooth:

A fix for a Coverity bug related to corrupted flash storage of persistent settings was merged, along with a fix to retransmit interval handling in the Mesh implementation, and an invalid pointer access after disconnect in the ATT code.

Build:

A fix to the kernel helpers for the GCC toolchain was merged which resolves unaligned access issues on GCC >= 7.

Continuous Integration:

A sanitycheck bug leading to false positive test pass reporting was fixed.

Documentation:

The final batch of documentation patches covered release notes, issues in the Getting Started guide, initial documentation for the experimental West meta-tool, updates to the security documentation, and some watchdog API documentation.

Kernel:

Architecture-specific attempts to provide thread arguments using its initial stack layout were replaced with common code, trading off extra memory to fix broken and incomplete implementations in some architectures.

Libraries:

A fix was merged for a readdir() buffer out of bounds access discovered by Coverity.

Networking:

An LWM2M bug was fixed which fixes mandatory rate limiting on the frequency of notifications for observed object instance attributes. The LWM2M engine thread priority was also lowered, fixing a thread starvation issue when running LWM2M concurrently with Bluetooth (e.g. as part of a 6LoWPAN setup).

The IPv4 stack now correctly updates the time-to-live value based on the received packet header; a similar fix was merged for IPv6 hop limits.

Samples:

Some last-minute changes were merged to crypto and networking samples.

The crypto changes appear to have been merged because samples/drivers/crypto is in fact being used as a test case in addition to serving as sample code, so they perhaps could be considered test fixes.

The networking changes were fixes for bugs discovered by Coverity.

Testing:

A variety of patches fixing up and tuning the test cases were merged in the final days of v1.12 development.

Individual Changes

Patches by area (76 patches total):

  • Arches: 11
  • Bluetooth: 3
  • Boards: 1
  • Build: 1
  • Continuous Integration: 2
  • Documentation: 22
  • Firmware Update: 1
  • Kernel: 2
  • Libraries: 1
  • Miscellaneous: 3
  • Networking: 5
  • Samples: 8
  • Scripts: 1
  • Storage: 2
  • Testing: 13

Arches (11):

  • b423ee5f nxp_imx: Move i.MX RT PLL selects to Kconfig.soc
  • c5cb8e94 arch/arc: Set the right priority for WDT on quark_se
  • 718597fe arch/arm: Fix THREAD_MONITOR entry struct
  • 7f7718a0 arch: stm32: remove .hex binary build by default
  • 5b6f8605 arch: arc: use a separate stack for exception handling
  • 5dd552e6 arch: arc: STACK_CHECK_FAIL of STACK_CHECK not hang the system
  • fb3d2d37 arch: arc: remove unused codes
  • c63298ea arch: arc: improve the reset code
  • 1c4fe3ed arch/arc: Set the right priority for ADC/AON on quark_se
  • 97d04364 arch: arc: use top of isr stack as exception stack and bug fixes
  • d5bc9d7b arch: arc: adjust privileged stack size of arc to 384 bytes

Bluetooth (3):

  • ae829b26 Bluetooth: Fix unchecked settings value lengths
  • ed5fb3ff Bluetooth: Mesh: Fix (re)transmit interval handling
  • 1218648e Bluetooth: ATT: Fix clearing context at disconnect

Boards (1):

  • f0bafc30 boards: make em_starterkit_em7d default test platform

Build (1):

  • a37e0372 toolchain: gcc: Add compiler barrier at the end of UNALIGNED_PUT()

Continuous Integration (2):

  • 5d6e7eb7 sanitycheck: export list of tests as CSV
  • b20c4846 sanitycheck: fail on faults/panics/oopses

Documentation (22):

  • 65e191fa api: watchdog: fix wdt_install_timeout doxygen comment
  • 265f502b releasenotes: update with doc issues addressed
  • 72d4d8bc doc: release notes: Fill in summary, arch, and kernel sections for 1.12
  • d04a7efd releasenotes: updated documentation changes
  • 59027fb6 doc: relnotes: Correct a couple of headline items
  • b0abf365 doc: relnotes: 1.12 Bluetooth release notes
  • 2825f79a doc: security: Update security overview for recent features
  • 8b9042c4 doc: security: Remove revision history
  • 3fc206fa getting_started: fix UNIX-ism
  • 9ca4d840 getting_started: fixes for intro section
  • 64ab1326 getting_started: fixes and cleanups for installation_linux
  • c6c15013 getting_started: building: fix inaccuracies
  • e8d0e72a doc: extensions: fix :app: behavior for zephyr-app-commands
  • e802d8de doc: conf.py: remove unused import
  • 1c852ddf doc: conf.py: make sure west is importable from Python
  • 3a766aed doc: conf.py: add sphinx.ext.autodoc extension
  • 869e9cce doc: add initial west documentation
  • f8251693 conf.py: clean up exit if ZEPHYR_BASE is unset
  • d6f2858a doc: relnotes: Add security vulnerability information
  • 8e892068 doc: release notes: Update 1.12 release notes with GitHub issues
  • d3afa353 doc: release notes: Update 1.12 release notes with more GitHub issues
  • 51ae306b doc: release notes: Finalize 1.12 release notes and docs

Firmware Update (1):

  • 2cba7017 subsys: mgmt: Remove unnecessary comparison

Kernel (2):

  • 0e23ad88 kernel: k_work: k_work_init() should initialize all fields
  • 2dd91eca kernel: move thread monitor init to common code

Libraries (1):

  • bf1e0198 lib: posix: fix out-of-bound write

Miscellaneous (3):

  • eb9df85f release: Move version to 1.12.0-rc3
  • 3b1fb7f9 release: update footprint data
  • f58d9cab release: Update VERSION for 1.12.0 release

Networking (5):

  • 95555221 net: shell: Correct help text for “mem” command
  • a957107d net: lwm2m: lower priority of engine thread
  • d9a14f5a net: ipv6: Set hop limit in net_pkt according to IPv6 header
  • e72dcf02 net: ipv4: Set TTL in net_pkt according to IPv4 header
  • ed3ea06f net: lwm2m: fix observer attribute update logic

Samples (8):

  • cf3da3c6 samples: crypto: Ensure cap_flags is always initialized
  • 858cd199 samples: drivers: crypto: Do not show colors in logs
  • d06eecbe samples: drivers: crypto: Update expected sample output
  • d05442ee samples: crypto: adapt harness
  • fd561dd5 samples: net: Check the return value of nats_publish
  • e7a3d01d samples: net: dumb_http_server: Handle recv() errors
  • b7ad50b4 samples: net: rpl_border_router: Fix out-of-bounds write
  • 7cfd5a41 samples: net: hrpl_border_router: Fix NULL pointer dereference

Scripts (1):

  • c6c856bc scripts: west: cherry-pick upstream 321ab2e17

Storage (2):

  • 6a138977 susbys: disk: Fix misleading menuconfig prompts
  • bfdb6aca subsys: settings: Fix file exist error.

Testing (13):

  • 9cefce81 tests: remove obsolete k_thread_cancel
  • a803af2f tests/kernel/preempt: Add yield and sleep cases
  • a026b9ea tests: crypto: Fully initialize variables using named initializers
  • a07d0731 tests: mbox_api: Fully initialize k_box_msg struct
  • a803335a tests: net: Increase the stack size of frdm-k64f
  • b43000f5 tests: net: trickle: Fix running on frdm-k64f
  • 59bf65f4 tests: net: Fix tests so they can be run in real hw
  • 3057da07 tests: logger-hook: increase ztest stack size
  • bb631076 tests: arm: irq_vector_table: Fix Kconfig override
  • fb2e142b tests: fix test identifiers
  • 33aa9053 tests: kernel: fifo_timeout: Do not potentially dereference NULL ptrs
  • 144a4390 tests: fix the bug of sentinel.conf
  • a91f1e5e tests: modify the test conditions for emsk_em7d_v22
comments powered by Disqus