Zephyr 1.5.0
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:
Kernel
- 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.
Architectures
- 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.
Boards
- 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.
Networking
- 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.
Bluetooth
- 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.
Libraries
- File system: Imported Open Source FAT FS 0.12a code.
- Encryption: Imported mbedTLS library.
- Encryption: Updated tinycrypt library to 2.0.
Documentation
- 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
Stories
- 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
nanokernel - 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
support - 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
callbacks - ZEP-655 - QMSI shim driver: PWM: Implement suspend and resume
callbacks - ZEP-658 - QMSI shim driver: GPIO: Implement suspend and resume
callbacks - ZEP-659 - QMSI shim driver: UART: Implement suspend and resume
callbacks - ZEP-662 - QMSI shim driver: Pinmux: Implement suspend and resume
callbacks
Epic
- 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
Bug
- 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
debugging - 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
values - ZEP-456 - doc: IDT security section dissapeared
- ZEP-457 - doc: contribute/doxygen/typedefs.rst: examples files are
broken - 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
mode - ZEP-474 - ND: Neighbor cache is not getting cleared
- ZEP-475 - Issue with timer callback routine: Condition checked is
incorrect - 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
temperature - 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
buffer - ZEP-525 - srctree changes are breaking applications
- ZEP-526 - build "kernel event logger" sample app failed for
BOARD=quark_d2000_crb - ZEP-534 - Scan for consistent use of "platform/board/SoC" in
documentation - 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
ARM - ZEP-556 - System hangs during I2C transfer
- ZEP-565 - Ethernet/IPv4/TCP: last commits are breaking network
support - 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
values - 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
directory - 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
'uart_qmsi_pm_save_config' - 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
GPS0 - 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