@nashif nashif released this Apr 20, 2017 · 18087 commits to master since this release

Assets 2

The Zephyr Engineering team is glad to announce the release of Zephyr
Kernel 1.5.0. This is the first release to follow the 3-month release
cadence. This release includes numerous fixes and support for major
features. Additional changes include support for new drivers, sensors,
and boards.

Major enhancements included with the release:

  • TCP Support
  • Integration of the Paho MQTT Library support with QoS
  • Flash Filesystem Support
  • Integration of the mbedTLS library for encryption
  • Improved BR/EDR support (for L2CAP, in particular).
  • Support for the Altera Nios II/f soft CPU architecture

A detailed list of changes since v1.4.0 by component follows:


  • Added nano_fifo_put_list() APIs, which allows queuing a list of
    elements on a nanokernel FIFO.
  • Removed unused memory pool structure field.
  • Enhanced memory pool code.


  • ARM: Updated to include floating point registers.
Altera Nios II/f soft CPU architecture support

:   -   Internal Interrupt Controller
    -   Avalon Timer
    -   Avalon JTAG UART (polling mode) as default for
        qemu-system-nios2, and 16550 UART as default for
        Altera MAX10.


  • Added Nios II QEMU board.
  • Added configuration for Altera MAX10 FPGA.

Drivers and Sensors

  • Sensors: Added driver for I2C HMC5883L magnetometer.
  • Sensors: Added driver for I2C TMP112 temperature sensor.
  • Sensors: Added driver for MAX44009 light sensor.
  • Sensors: Added driver for LPS25HB.
  • HAL: Updated QMSI drivers to 1.1
  • Added DMA QMSI shim driver.
  • Added Quark SE USB device controller driver.
  • Added suspend/resume to QMSI drivers.
  • Added Guard for critical sections of the QMSI drivers.
  • Added Zephyr File System API.
  • Added driver for ENC28J60 Ethernet SPI module.


  • TCP Support
  • Connection handling fixes in IP stack.
  • Allow sending zero length user data IP packet.

Network Buffers

  • New net_buf_simple API for light-weight on-stack (or static)
    buffers where a net_buf (and its associated pool) is overkill. The
    net_buf API now uses as an internal implementation
    detail net_buf_simple.
  • Add support for network buffer fragmentation.
  • Add more net_buf big endian helpers.


  • Multiple fixes & improvements to the nble driver.
  • New API for dealing with Out of Band data (like the local address).
  • Various smaller fixes & improvements in many places.

Build and Infrastructure

  • Added “qemugdb” target to start a local GDB on port 1234.
  • Added script to filter known issues in the build output.
  • Sanity: Added “-R” option to build all test with assertions.


  • File system: Imported Open Source FAT FS 0.12a code.
  • Encryption: Imported mbedTLS library.
  • Encryption: Updated tinycrypt library to 2.0.


  • Fixed all the documentations warnings during build.
  • Fixed several typos, trademarks and grammar.
  • Moved all the boards documentation to the wiki.
  • Moved Code Contribution documentation to the wiki.
  • Added package “ncurses” to the list of requirements.
  • Updated Mac OS X instructions.

Test and Samples

  • Samples: Replaced old debug macro to use new SYS_LOG macro.
  • Added TMP112 sensor application.
  • Added Quark SE power management sample application.
  • Added DMA memory to memory transfer sample.
  • Added sample for MAX44009 light sensor.
  • Added MQTT publisher and subscriber samples.
  • Added mbedTLS sample client.

JIRA Related Items


  • ZEP-49 - x86: unify separate SysV and IAMCU code
  • ZEP-55 - enable nanokernel test_context on ARC
  • ZEP-58 - investigate use of -fomit-frame-pointer
  • ZEP-60 - irq priorities should be rebased to safe values
  • ZEP-69 - Extend PWM API to use arbitrary unit of time
  • ZEP-203 - clean up APIs for static exceptions
  • ZEP-225 - Add kernel API to put SoC to Deep Sleep (DS) State
  • ZEP-226 - Update sample PMA to support device suspend/resume
  • ZEP-227 - Add kernel API to put SoC to Low Power State (LPS)
  • ZEP-228 - File system interface designed after POSIX
  • ZEP-232 - Support for USB communications device class ACM
  • ZEP-234 - provide a direct memory access (DMA) interface
  • ZEP-243 - Create Wiki Structure for Boards
  • ZEP-249 - nios2: Enable altera_max10 board in sanitycheck runs for
  • ZEP-254 - nios2: define NANO_ESF struct and populate _default_esf
  • ZEP-270 - nios2: determine optimal value for PERFOPT_ALIGN
  • ZEP-271 - nios2: enable microkernel & test cases
  • ZEP-272 - nios2: add global pointer support
  • ZEP-273 - nios2: implement flashing scripts
  • ZEP-274 - nios2: document GDB debugging procedure
  • ZEP-275 - nios2: scope support for instruction/data caches
  • ZEP-279 - nios2: demonstrate nanokernel hello world
  • ZEP-285 - FAT filesystem support on top of SPI Flash
  • ZEP-289 - nios2: implement kernel_event_logger
  • ZEP-291 - Driver for the ENC28J60 ethernet device
  • ZEP-304 - Investigate QEMU support for Nios II
  • ZEP-327 - Encryption Libraries needed for Thread support
  • ZEP-340 - TLS/SSL
  • ZEP-354 - Provide a DMA driver for Quark SE core
  • ZEP-356 - DMA device support
  • ZEP-357 - Support for the MAX44009 sensor
  • ZEP-358 - Add support for TMP112 sensor
  • ZEP-412 - Add driver API reentrancy support to RTC driver for LMT
  • ZEP-414 - Add driver API reentrancy support to flash driver
  • ZEP-415 - aaU, I want to use the NATS messaging protocol to send
    sensor data to the cloud
  • ZEP-416 - MQTT client capability: QoS1, QoS2
  • ZEP-424 - AON counter driver needs to add driver API reentrancy
  • ZEP-430 - Add driver API reentrancy support to PWM shim driver
  • ZEP-434 - Driver for HMC5883L magnetometer
  • ZEP-440 - Add driver API reentrancy support to WDT shim driver
  • ZEP-441 - Add driver API reentrancy support to GPIO shim drivers
  • ZEP-489 - nios2: handle unimplemented multiply/divide instructions
  • ZEP-500 - Domain Name System client library
  • ZEP-506 - nios2: support baremetal boot and XIP on Altera MAX10
  • ZEP-511 - Add Deep Sleep support in PMA
  • ZEP-512 - Add suspend/resume support for some core devices to enable
    Deep Sleep support in PMA
  • ZEP-541 - Integrate QMSI releases to Zephyr
  • ZEP-567 - netz sample code
  • ZEP-568 - MQTT QoS sample app
  • ZEP-573 - IoT applications must use netz API
  • ZEP-590 - Update Zephyr's tinycrypt to version 2.0
  • ZEP-643 - Add file system API documentation
  • ZEP-650 - Quark SE: Implement PM reference application
  • ZEP-652 - QMSI shim driver: RTC: Implement suspend and resume
  • ZEP-655 - QMSI shim driver: PWM: Implement suspend and resume
  • ZEP-658 - QMSI shim driver: GPIO: Implement suspend and resume
  • ZEP-659 - QMSI shim driver: UART: Implement suspend and resume
  • ZEP-662 - QMSI shim driver: Pinmux: Implement suspend and resume


  • ZEP-278 - Enable Nios II CPU on Altera Max10
  • ZEP-284 - Flash Filesystem Support
  • ZEP-305 - Device Suspend / Resume infrastructure
  • ZEP-306 - PWM Enabling
  • ZEP-406 - Drivers shall be re-entrant


  • ZEP-68 - Final image contains duplicates of some routines
  • ZEP-156 - PWM Set Value API behaves incorrectly
  • ZEP-158 - PWM Set Duty Cycle API does not work
  • ZEP-180 - make menuconfig user provided options are ignored at
    building time
  • ZEP-187 - BLE APIs are not documented
  • ZEP-218 - [drivers/nble][PTS_TEST] Fix responding with the
    wrong error codes to the Prepare Write Request
  • ZEP-221 - [drivers/nble][PTS_TEST] Implement Execute Write
    Request handler
  • ZEP-369 - When building out of the tree, application object files
    are not placed into outdir
  • ZEP-379 - _k_command_stack may be improperly initialized when
  • ZEP-384 - D2000 hangs after I2C communication with BMC150 sensor
  • ZEP-401 - PWM driver turns off pin if off time is 0 in set_values
  • ZEP-423 - Quark D2000 CRB documentation should include instructions
    to flash bootloader
  • ZEP-435 - Ethernet/IPv4/TCP: ip_buf_appdatalen returns wrong
  • ZEP-456 - doc: IDT security section dissapeared
  • ZEP-457 - doc: contribute/doxygen/typedefs.rst: examples files are
  • ZEP-459 - doc: kconfig reference entries in HTML are lacking a title
  • ZEP-460 - doc: document parameters of DEVICE* macros
  • ZEP-461 - Release 1.4.0 has broken the BMI160 sample as well as an
    application based on it
  • ZEP-463 - Getting started guide "next" link doesn't take you to
    "Checking Out the Source Code Anonymously" section
  • ZEP-469 - Ethernet/IPv4/TCP: net_receive & net_reply in server
  • ZEP-474 - ND: Neighbor cache is not getting cleared
  • ZEP-475 - Issue with timer callback routine: Condition checked is
  • ZEP-478 - Linux setup docs missing step to install curses
    development package for Fedora
  • ZEP-497 - Ethernet/IPv4/TCP: failed to get free buffer
  • ZEP-499 - TMP007 driver returns invalid values for negative
  • ZEP-514 - memory corruption in microkernel memory pool defrag()
  • ZEP-516 - Ubuntu setup instructions missing 'upgrade' step
  • ZEP-518 - SPI not working on Arduino101
  • ZEP-522 - TCP/client-mode: disconnect
  • ZEP-523 - FIFOs defined by DEFINE_FIFO macro use the same memory
  • ZEP-525 - srctree changes are breaking applications
  • ZEP-526 - build "kernel event logger" sample app failed for
  • ZEP-534 - Scan for consistent use of "platform/board/SoC" in
  • ZEP-537 - doc: create external wiki page "Maintainers"
  • ZEP-545 - Wrong default value of CONFIG_ADC_QMSI_SAMPLE_WIDTH
    for x86 QMSI ADC
  • ZEP-547 - [nble] Failed to start encryption after reconnection
  • ZEP-554 - samples/drivers/aon_counter check readme file
  • ZEP-555 - correct libgcc not getting linked for CONFIG_FLOAT=y on
  • ZEP-556 - System hangs during I2C transfer
  • ZEP-565 - Ethernet/IPv4/TCP: last commits are breaking network
  • ZEP-571 - ARC kernel BAT failed due to race in nested interrupts
  • ZEP-572 - X86 kernel BAT failed: Kernel Allocation Failure!
  • ZEP-575 - Ethernet/IPv4/UDP: ip_buf_appdatalen returns wrong
  • ZEP-595 - UART: usb simulated uart doesn't work in poll mode
  • ZEP-598 - CoAP Link format filtering is not supported
  • ZEP-611 - Links on downloads page are not named consistently
  • ZEP-616 - OS X setup instructions not working on El Capitan
  • ZEP-617 - MQTT samples build fail because netz.h file missing.
  • ZEP-621 - samples/static_lib: fatal error: stdio.h: No such file or
  • ZEP-623 - MQTT sample mqtt.h missing "mqtt_unsubscribe" function
  • ZEP-632 - MQTT fail to re-connect to the broker.
  • ZEP-633 - samples/usb/cdc_acm: undefined reference to
  • ZEP-642 - Inconsistent interpretation of pwm_pin_set_values
    arguments among drivers
  • ZEP-645 - ARC QMSI ADC shim driver fails to read sample data
  • ZEP-646 - I2C fail to read GY2561 sensor when GY2561 & GY271 sensor
    are attached to I2C bus.
  • ZEP-647 - Power management state storage should use GPS1 instead of
  • ZEP-669 - MQTT fail to pingreq if broker deliver topic to client but
    client doesn't read it.
  • ZEP-673 - Sanity crashes and doesn't kill qemu upon timeout
  • ZEP-679 - HMC5883L I2C Register Read Order
  • ZEP-681 - MQTT client sample throws too many warnings when build.
  • ZEP-687 - docs: Subsystems/Networking section is almost empty
  • ZEP-689 - Builds on em_starterkit fail
  • ZEP-695 - FatFs doesn't compile using Newlib
  • ZEP-697 - samples/net/test_15_4 cannot be built by sanitycheck
  • ZEP-703 - USB sample apps are broken after QMSI update
  • ZEP-704 - test_atomic does not complete on ARC
  • ZEP-708 - tests/kernel/test_ipm fails on Arduino 101
  • ZEP-739 - warnings when building samples for quark_se devboard