1.. _zephyr_1.5:
2
3Zephyr Kernel 1.5.0
4####################
5
6The Zephyr Engineering team is glad to announce the release of Zephyr Kernel
71.5.0. This is the first release to follow the 3-month release cadence.
8This release includes numerous fixes and support for major features.
9Additional changes include support for new drivers, sensors, and boards.
10
11Major enhancements included with the release:
12
13- TCP Support
14- Integration of the Paho MQTT Library support with QoS
15- Flash Filesystem Support
16- Integration of the mbedTLS library for encryption
17- Improved BR/EDR support (for L2CAP, in particular).
18- Support for the Altera Nios II/f soft CPU architecture
19
20A detailed list of changes since v1.4.0 by component follows:
21
22Kernel
23******
24
25- Added nano_fifo_put_list() APIs, which allows queuing  a list of elements
26  on a nanokernel FIFO.
27- Removed unused memory pool structure field.
28- Enhanced memory pool code.
29
30Architectures
31*************
32
33- ARM: Updated to include floating point registers.
34- Altera Nios II/f soft CPU architecture support
35   -  Internal Interrupt Controller
36   -  Avalon Timer
37   -  Avalon JTAG UART (polling mode) as default for qemu-system-nios2,
38      and 16550 UART as default for Altera MAX10.
39
40Boards
41******
42
43- Added Nios II QEMU board.
44- Added configuration for Altera MAX10 FPGA.
45
46Drivers and Sensors
47*******************
48
49- Sensors: Added driver for I2C HMC5883L magnetometer.
50- Sensors: Added driver for I2C TMP112 temperature sensor.
51- Sensors: Added driver for MAX44009 light sensor.
52- Sensors: Added driver for LPS25HB.
53- HAL: Updated QMSI drivers to 1.1
54- Added DMA QMSI shim driver.
55- Added Quark SE USB device controller driver.
56- Added suspend/resume to QMSI drivers.
57- Added Guard for critical sections of the QMSI drivers.
58- Added Zephyr File System API.
59- Added driver for ENC28J60 Ethernet SPI module.
60
61Networking
62**********
63
64- TCP Support
65- Connection handling fixes in IP stack.
66- Allow sending zero length user data IP packet.
67
68Network Buffers
69
70- New net_buf_simple API for light-weight on-stack (or static) buffers where a
71  net_buf (and its associated pool) is overkill. The net_buf API now uses as
72  an internal implementation detail net_buf_simple.
73- Add support for network buffer fragmentation.
74- Add more net_buf big endian helpers.
75
76Bluetooth
77*********
78
79- Multiple fixes & improvements to the nble driver.
80- New API for dealing with Out of Band data (like the local address).
81- Various smaller fixes & improvements in many places.
82
83Build and Infrastructure
84************************
85
86- Added "qemugdb" target to start a local GDB on port 1234.
87- Added script to filter known issues in the build output.
88- Sanity: Added "-R" option to build all test with assertions.
89
90Libraries
91*********
92
93- File system: Imported Open Source FAT FS 0.12a code.
94- Encryption: Imported mbedTLS library.
95- Encryption: Updated TinyCrypt library to 2.0.
96
97Documentation
98*************
99
100- Fixed all the documentations warnings during build.
101- Fixed several typos, trademarks and grammar.
102- Moved all the boards documentation to the wiki.
103- Moved Code Contribution documentation to the wiki.
104- Added package "ncurses" to the list of requirements.
105- Updated macOS instructions.
106
107Test and Samples
108****************
109
110- Samples: Replaced old debug macro to use new SYS_LOG macro.
111- Added TMP112 sensor application.
112- Added Quark SE power management sample application.
113- Added DMA memory to memory transfer sample.
114- Added sample for MAX44009 light sensor.
115- Added MQTT publisher and subscriber samples.
116- Added mbedTLS sample client.
117
118JIRA Related Items
119******************
120
121
122Stories
123========
124
125* ``ZEP-49`` - x86: unify separate SysV and IAMCU code
126* ``ZEP-55`` - enable nanokernel test_context on ARC
127* ``ZEP-58`` - investigate use of -fomit-frame-pointer
128* ``ZEP-60`` - irq priorities should be rebased to safe values
129* ``ZEP-69`` - Extend PWM API to use arbitrary unit of time
130* ``ZEP-203`` - clean up APIs for static exceptions
131* ``ZEP-225`` - Add kernel API to put SoC to Deep Sleep (DS) State
132* ``ZEP-226`` - Update sample PMA to support device suspend/resume
133* ``ZEP-227`` - Add kernel API to put SoC to Low Power State (LPS)
134* ``ZEP-228`` - File system interface designed after POSIX
135* ``ZEP-232`` - Support for USB communications device class ACM
136* ``ZEP-234`` - provide a direct memory access (DMA) interface
137* ``ZEP-243`` - Create Wiki Structure for Boards
138* ``ZEP-249`` - nios2: Enable altera_max10 board in sanitycheck runs for nanokernel
139* ``ZEP-254`` - nios2: define NANO_ESF struct and populate _default_esf
140* ``ZEP-270`` - nios2: determine optimal value for PERFOPT_ALIGN
141* ``ZEP-271`` - nios2: enable microkernel & test cases
142* ``ZEP-272`` - nios2: add global pointer support
143* ``ZEP-273`` - nios2: implement flashing scripts
144* ``ZEP-274`` - nios2: document GDB debugging procedure
145* ``ZEP-275`` - nios2: scope support for instruction/data caches
146* ``ZEP-279`` - nios2: demonstrate nanokernel hello world
147* ``ZEP-285`` - FAT filesystem support on top of SPI Flash
148* ``ZEP-289`` - nios2: implement kernel_event_logger
149* ``ZEP-291`` - Driver for the ENC28J60 ethernet device
150* ``ZEP-304`` - Investigate QEMU support for Nios II
151* ``ZEP-327`` - Encryption Libraries needed for Thread support
152* ``ZEP-340`` - TLS/SSL
153* ``ZEP-354`` - Provide a DMA driver for Quark SE core
154* ``ZEP-356`` - DMA device support
155* ``ZEP-357`` - Support for the MAX44009 sensor
156* ``ZEP-358`` - Add support for TMP112 sensor
157* ``ZEP-412`` - Add driver API reentrancy support to RTC driver for LMT
158* ``ZEP-414`` - Add driver API reentrancy support to flash driver
159* ``ZEP-415`` - aaU, I want to use the NATS messaging protocol to send sensor data to the cloud
160* ``ZEP-416`` - MQTT client capability: QoS1, QoS2
161* ``ZEP-424`` - AON counter driver needs to add driver API reentrancy support
162* ``ZEP-430`` - Add driver API reentrancy support to PWM shim driver
163* ``ZEP-434`` - Driver for HMC5883L magnetometer
164* ``ZEP-440`` - Add driver API reentrancy support to WDT shim driver
165* ``ZEP-441`` - Add driver API reentrancy support to GPIO shim drivers
166* ``ZEP-489`` - nios2: handle unimplemented multiply/divide instructions
167* ``ZEP-500`` - Domain Name System client library
168* ``ZEP-506`` - nios2: support bare metal boot and XIP on Altera MAX10
169* ``ZEP-511`` - Add Deep Sleep support in PMA
170* ``ZEP-512`` - Add suspend/resume support for some core devices to enable Deep Sleep support in PMA
171* ``ZEP-541`` - Integrate QMSI releases to Zephyr
172* ``ZEP-567`` - netz sample code
173* ``ZEP-568`` - MQTT QoS sample app
174* ``ZEP-573`` - IoT applications must use netz API
175* ``ZEP-590`` - Update Zephyr's TinyCrypt to version 2.0
176* ``ZEP-643`` - Add file system API documentation
177* ``ZEP-650`` - Quark SE: Implement PM reference application
178* ``ZEP-652`` - QMSI shim driver: RTC: Implement suspend and resume callbacks
179* ``ZEP-655`` - QMSI shim driver: PWM: Implement suspend and resume callbacks
180* ``ZEP-658`` - QMSI shim driver: GPIO: Implement suspend and resume callbacks
181* ``ZEP-659`` - QMSI shim driver: UART: Implement suspend and resume callbacks
182* ``ZEP-662`` - QMSI shim driver: Pinmux: Implement suspend and resume callbacks
183
184Epic
185====
186
187* ``ZEP-278`` - Enable Nios II CPU on Altera Max10
188* ``ZEP-284`` - Flash Filesystem Support
189* ``ZEP-305`` - Device Suspend / Resume infrastructure
190* ``ZEP-306`` - PWM Enabling
191* ``ZEP-406`` - Drivers shall be re-entrant
192
193Bug
194===
195
196* ``ZEP-68`` - Final image contains duplicates of some routines
197* ``ZEP-156`` - PWM Set Value API behaves incorrectly
198* ``ZEP-158`` - PWM Set Duty Cycle API does not work
199* ``ZEP-180`` - make menuconfig user provided options are ignored at building time
200* ``ZEP-187`` - BLE APIs are not documented
201* ``ZEP-218`` - [drivers/nble][PTS_TEST] Fix responding with the wrong error codes to the Prepare Write Request
202* ``ZEP-221`` - [drivers/nble][PTS_TEST] Implement Execute Write Request handler
203* ``ZEP-369`` - When building out of the tree, application object files are not placed into outdir
204* ``ZEP-379`` - _k_command_stack may be improperly initialized when debugging
205* ``ZEP-384`` - D2000 hangs after I2C communication with BMC150 sensor
206* ``ZEP-401`` - PWM driver turns off pin if off time is 0 in set_values
207* ``ZEP-423`` - Quark D2000 CRB documentation should include instructions to flash bootloader
208* ``ZEP-435`` - Ethernet/IPv4/TCP: ip_buf_appdatalen returns wrong values
209* ``ZEP-456` - doc: ``IDT security``` section disappeared
210* ``ZEP-457`` - doc: contribute/doxygen/typedefs.rst: examples files are broken
211* ``ZEP-459`` - doc: kconfig reference entries in HTML are lacking a title
212* ``ZEP-460`` - doc: document parameters of DEVICE* macros
213* ``ZEP-461`` - Release 1.4.0 has broken the BMI160 sample as well as an application based on it
214* ``ZEP-463`` - Getting started guide "next" link doesn't take you to "Checking Out the Source Code Anonymously" section
215* ``ZEP-469`` - Ethernet/IPv4/TCP: net_receive & net_reply in server mode
216* ``ZEP-474`` - ND: Neighbor cache is not getting cleared
217* ``ZEP-475`` - Issue with timer callback routine: Condition checked is incorrect
218* ``ZEP-478`` - Linux setup docs missing step to install curses development package for Fedora
219* ``ZEP-497`` - Ethernet/IPv4/TCP: failed to get free buffer
220* ``ZEP-499`` - TMP007 driver returns invalid values for negative temperature
221* ``ZEP-514`` - memory corruption in microkernel memory pool defrag()
222* ``ZEP-516`` - Ubuntu setup instructions missing 'upgrade' step
223* ``ZEP-518`` - SPI not working on Arduino101
224* ``ZEP-522`` - TCP/client-mode: disconnect
225* ``ZEP-523`` - FIFOs defined by DEFINE_FIFO macro use the same memory buffer
226* ``ZEP-525`` - srctree changes are breaking applications
227* ``ZEP-526`` - build "kernel event logger" sample app failed for BOARD=quark_d2000_crb
228* ``ZEP-534`` - Scan for consistent use of "platform/board/SoC" in documentation
229* ``ZEP-537`` - doc: create external wiki page "Maintainers"
230* ``ZEP-545`` - Wrong default value of CONFIG_ADC_QMSI_SAMPLE_WIDTH for x86 QMSI ADC
231* ``ZEP-547`` - [nble] Failed to start encryption after reconnection
232* ``ZEP-554`` - samples/drivers/aon_counter check README file
233* ``ZEP-555`` - correct libgcc not getting linked for CONFIG_FLOAT=y on ARM
234* ``ZEP-556`` - System hangs during I2C transfer
235* ``ZEP-565`` - Ethernet/IPv4/TCP: last commits are breaking network support
236* ``ZEP-571`` - ARC kernel BAT failed due to race in nested interrupts
237* ``ZEP-572`` - X86 kernel BAT failed: Kernel Allocation Failure!
238* ``ZEP-575`` - Ethernet/IPv4/UDP: ip_buf_appdatalen returns wrong values
239* ``ZEP-595`` - UART: usb simulated uart doesn't work in poll mode
240* ``ZEP-598`` - CoAP Link format filtering is not supported
241* ``ZEP-611`` - Links on downloads page are not named consistently
242* ``ZEP-616`` - OS X setup instructions not working on El Capitan
243* ``ZEP-617`` - MQTT samples build fail because netz.h file missing.
244* ``ZEP-621`` - samples/static_lib: fatal error: stdio.h: No such file or directory
245* ``ZEP-623`` - MQTT sample mqtt.h missing "mqtt_unsubscribe" function
246* ``ZEP-632`` - MQTT fail to re-connect to the broker.
247* ``ZEP-633`` - samples/usb/cdc_acm: undefined reference to 'uart_qmsi_pm_save_config'
248* ``ZEP-642`` - Inconsistent interpretation of pwm_pin_set_values arguments among drivers
249* ``ZEP-645`` - ARC QMSI ADC shim driver fails to read sample data
250* ``ZEP-646`` - I2C fail to read GY2561 sensor when GY2561 & GY271 sensor are attached to I2C bus.
251* ``ZEP-647`` - Power management state storage should use GPS1 instead of GPS0
252* ``ZEP-669`` - MQTT fail to pingreq if broker deliver topic to client but client doesn't read it.
253* ``ZEP-673`` - Sanity crashes and doesn't kill qemu upon timeout
254* ``ZEP-679`` - HMC5883L I2C Register Read Order
255* ``ZEP-681`` - MQTT client sample throws too many warnings when build.
256* ``ZEP-687`` - docs: Subsystems/Networking section is almost empty
257* ``ZEP-689`` - Builds on em_starterkit fail
258* ``ZEP-695`` - FatFs doesn't compile using Newlib
259* ``ZEP-697`` - samples/net/test_15_4 cannot be built by sanitycheck
260* ``ZEP-703`` - USB sample apps are broken after QMSI update
261* ``ZEP-704`` - test_atomic does not complete on ARC
262* ``ZEP-708`` - tests/kernel/test_ipm fails on Arduino 101
263* ``ZEP-739`` - warnings when building samples for quark_se devboard
264
265Known issues
266============
267
268* ``ZEP-517`` - build on windows failed "zephyr/Makefile:869: \*\*\* multiple target patterns"
269   - No workaround, will fix in future release.
270
271* ``ZEP-711`` - I2c: fails to write with mode fast plus
272   - No workaround need it, there is no support for high speed mode.
273
274* ``ZEP-724`` - build on windows failed: 'make: execvp: uname: File or path name too long'
275   - No workaround, will fix in future release.
276
277* ``ZEP-467`` - Hang using UART and console.
278   - No workaround, will fix in future release.
279
280* ``ZEP-599`` - Periodic call-back function for periodic REST resources is not getting invoked
281   - No workaround, will fix in future release.
282
283* ``ZEP-471`` - Ethernet packet with multicast address is not working
284   - No workaround, will fix in future release.
285
286* ``ZEP-473`` - Destination multicast address is not correct
287   - No workaround, will fix in future release.
288