microPlatform update 34

Posted on Nov 16, 2018

5 min read

Summary

Zephyr microPlatform changes for 34

A somewhat smaller update of Zephyr as part of the v1.14 development cycle -- no changes to MCUboot or the sample applications.

Linux microPlatform changes for 34

LMP Unified Linux Kernel updated to the 4.18.18 stable release. Core layer updates based on the latest OE/Yocto master/thud changes.

Zephyr microPlatform

Highlights

  • Zephyr v1.14 development snapshot

Components

MCUboot

Features

Not addressed in this update

Bugs

Not addressed in this update

Zephyr

Features

Zephyr SDK 0.9.5 is now required

All Zephyr SDK users must update to version 0.9.5. Here is a summary of changes between 0.9.3 and 0.9.5:

  • New QEMU release (based on 3.0.0+git 19b599f7664b2ebfd0f405fb79c14dd241557452)
  • New OpenOCD based master with Zephyr related changes (commit: 05e0d633)
  • New DTC version 1.4.7+git (commit 2e930b7f8f6421638869a04b00297034c42e1a82)
  • Upgrade arc binutils to 2018.03-rc2
  • Added Qemu ROMs to support E1000 ethernet.

Download the new SDK at: https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/tag/0.9.5

Build will abort if Python3 is not found

Previously, users who didn't have Python3 installed would receive a warning and the build would continue. This has been changed: the build now aborts instead, avoiding any confusing error messages later in the build.

Support out-of-tree shield configurations

Out-of-tree shields can now be stored in out-of-tree board directories under boards/shields/*. Using this configuration, Zephyr will look for shields in both the normal location as well as the out-of-tree location.

Console subsystem receives POSIX-like read/write interfaces

For now the TTY device gets read/write calls, but the getchar/putchar calls will stay for convenience. The console subsystem also added the ability to set receive and transmit timeouts.

MCUMGR library updated to latest master

MCUMGR was updated to the latest master at https://github.com/apache/mynewt-mcumgr at commit 62516893. This adds the following support:

  • ability to resume partial upload
  • option to not compile taskstat and echo commands
POSIX generic file descriptor table support

Zephyr sees the addition of a table to maintain file descriptors across several POSIX-compatible objects using I/O (fd-based read/write operations). This unified file descriptor is intended for use with files, sockets, special devices, etc. It is currently implemented by the sockets layer.

New PCI shell

A basic 'lspci' command was added to the shell to list PCI devices. This command can be enabled with the new Kconfig PCI_SHELL. Example below:

uart:~$ lspci 0:1 8086:7010 class: 0x1, 1, 4, I/O, addrs: 0xC000-0xC00F, IRQ -1

Coccinelle improvements

Zephyr uses the Coccinelle tool (which can do pattern matching and text transformation) for static code analysis. The scripts live under scripts/coccinelle/ and saw these improvements:

  • Use BIT() helper macro instead of hardcoding using bitshifting
  • Added cases of NULL dereference checks
  • Make sure memset has a (void) cast to ignore its return value
  • Use unsigned int as the return value for irq_lock()
  • Find cases of missing locks
  • Find cases of unsigned < 0
  • Remove redundant semicolons
  • Check legal usage of sizeof expression
Several device tree improvements
  • Binding added for pwm-leds
  • Kinetis saw basic DTS support for RNGA and TRNG
  • cc3220sf_launchxl added support for leds / buttons
  • hexiwear_k64: added PWM LED to DTS

Bugs

Several bugs were squashed in this latest merge-up

The qemu_riscv32 configuration broke during the move to QEMU 3.0. The fix changes the RISC-V QEMU to use the hifive1 board configuration.

The apollo_lake board was seeing build errors related to GPIO and DTS changes. These were fixed.

The size of the Arm MPU thread user stack region was fixed.

Several fixes to the NVS subsystem related to write block size:

  • Error out if write block size is not supported
  • Fix ATE read/write when write block size > 8 bytes
  • increase NVS_BLOCK_SIZE to help support hardware with 16-byte write block size.

hawkBit and MQTT sample application

Features

Not addressed in this update

Bugs

Not addressed in this update

LWM2M sample application

Features

Not addressed in this update

Bugs

Not addressed in this update

Linux microPlatform

Highlights

  • LMP Unified Linux Kernel updated to 4.18.18.
  • Docker updated to the 18.09.0 release.
  • Docker Compose updated to the 1.23.1 release.
  • Default golang version updated to the 1.11 series.
  • Support for the official Raspberry Pi Touch Display.
  • Core layer series now fully based on the OE/Yocto thud release.

Components

Meta Freescale

Features

Layer Update

Linux-fslc updated to 4.18.12. Initial NXP BSP support for i.MX 8.

Bugs

Not addressed in this update

Meta RISC-V

Features

Layer Update

Riscv-pk updated to the latest revision (7bee30c1ff).

Bugs

Not addressed in this update

Meta Virtualization

Features

Layer Update

Ceph update to 13.2.2. Cri-o updated to 1.12. Docker updated to 18.09.0. Kubernetes updated to v1.12.

Bugs

Not addressed in this update

Meta OpenEmbedded Layer

Features

Layer Update

Adduser updated to 3.118. Libgit2 updated to 0.27.5. Libssh updated to 0.8.4. Mbedtls updated to 2.13.0.

Bugs

Not addressed in this update

OpenEmbedded-Core Layer

Features

Layer Update

Default golang version updated to the 1.11 series. Elfutils updated to 0.174. Git updated to 2.18.1. Glide updated to 0.13.2. Tzcode and tzdata updated to 2018g.

Bugs

binutils

Multiple issues.

curl

Multiple issues.

qemu

Qemu emulator built with the NE2000 NIC emulation support is vulnerable to an integer overflow, which could lead to buffer overflow issue.

systemd

Multiple issues.

unzip

Buffer overflow in list.c, when a ZIP archive has a crafted relationship between the compressed-size value and the uncompressed-size value.

nasm

Memory corruption (crashed) of nasm when handling a crafted file due to function assemble_file(inname, depend_ptr) at asm/nasm.c:482.

elfutils

Multiple issues.

ghostscript

Multiple issues.

openssl

Multiple issues.

Meta Updater Layer

Features

Layer Update

Aktualizr updated to the 3c1c77c005 revision.

Bugs

Not addressed in this update

Meta Linaro

Features

Layer Update

Optee OS, client and test updated to v3.3.0.

Bugs

Not addressed in this update

Meta LMP Layer

Features

Layer Update

LMP Unified Linux Kernel updated to 4.18.18. Python3-docker updated to 3.5.1. Python3-docker-compose updated to 1.23.1. Python3-requests updated to 2.20. Support for the official Raspberry Pi Touch Display.

Bugs

Not addressed in this update

Related posts