From 87e37a37f8066a1a30486b1e3602a8d68f7174f1 Mon Sep 17 00:00:00 2001 From: MrKevinWeiss Date: Wed, 24 Jul 2019 13:22:44 +0200 Subject: [PATCH] release-notes.txt: add notes for 2019.07 release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Martine Lenders Co-authored-by: Gaƫtan Harter Co-authored-by: Lanzieri Rodriguez --- release-notes.txt | 510 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 510 insertions(+) diff --git a/release-notes.txt b/release-notes.txt index 52af314f9161..f5ac2bae4396 100644 --- a/release-notes.txt +++ b/release-notes.txt @@ -1,3 +1,513 @@ +RIOT-2019.07 - Release Notes +============================ +RIOT is a multi-threading operating system which enables soft real-time +capabilities and comes with support for a range of devices that are typically +found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as +light-weight 32-bit processors. + +RIOT is based on the following design principles: energy-efficiency, soft +real-time capabilities, small memory footprint, modularity, and uniform API +access, independent of the underlying hardware (with partial POSIX compliance). + +RIOT is developed by an international open-source community which is +independent of specific vendors (e.g. similarly to the Linux community) and is +licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect +business models around the free open-source software platform provided by RIOT. + + +About this release: +=================== + +The 2019.07 release includes a number of new features including many new +boards and cpu, riotboot added to many new and old boards, USB is now available, +BLE improvements, Ethernet on stm32 platforms, as well as many bug fixes and +documentation updates. Testing has also improved with both On-Target Testing +increasing and now Hardware Assisted Automated Tests being run. + +About 300 pull requests with about 659 commits have been merged since the last +release and about 50 issues have been solved. 26 people contributed with code +in 106 days. Approximately 1377 files have been touched with 181993 insertions +and 19668 deletions. + + +Notations used below: +===================== + + means new feature/item + * means modified feature/item + - means removed feature/item + +New features and changes +======================== + +System libraries +---------------- + + Add OCB encryption mode + + sys/shell: add loramac shell command + * Fletcher16: extend with multi-part functions + + USBUS: Initial work towards an USB stack + + usbus: Initial simple auto init structure + * sys: make uart_stdio RX optional + + sys/event: add event_wait_until() + + sys/bluetil: add bluetil_addr_from_str() + + usbus: Add CDC-ECM (Ethernet Control Model) function + * usbus: simplify adding entry to list + * sys/stdio_ethos: replace USE_ETHOS_FOR_STDIO by stdio_ethos pseudomodule + +Networking +---------- + * gnrc_ipv6_nib: add address from netif to address validation timer + + netdev_ieee802154: add txpower and page + + net/lorawan/hdr: add lorawan header helpers + + ble/nimble: add support for build-in IPSS service + * pkg/semtech-loramac: rework interaction with the MAC + * pkg/semtech-loramac: provide basic persistence for MAC state + * RPL: API update suggestions + + ipv6_ext: add fragmentation extension definitions + * net/sock_util: Accept NULL pointers in urlsplit + + sys/net: add netopt options for lorawan + * gnrc_tftp: Fix out-of-bounds memory access when comparing modes + - gnrc_pktbuf: remove gnrc_pktbuf_duplicate_upto + - gnrc_ipv6: remove obsolete and harmful reception code + * gnrc_tftp: set port on server init + + ble/softdevice: add ble_nordic_softdevice feature + * net/mqttsn: fix client ID length to comply to the standard + + gnrc_tftp: Add minimum packet length check + +Packages +-------- + * pkg/monocypher: bump version to 2.0.5 + * ble/nimble: bump version to 9d4bda2 + * openthread: update to release 20180926 + * minmea: bump version to current master + + nanocbor: Initial support for the nanocbor package + * pkg/lua: Make the module searchers conform to the API + +Boards +------ + + boards/stm32l0538-disco: add initial support + + boards/nucleo-l4r5zi: initial basic support + + boards/particle-{xenon,argon,boron}: add initial support + * boards/kw41z: add common configuration and use it with existing + kw41z boards + + added SPI support for Nucleo-F767ZI + + boards: Add support for the Arduino-Leonardo + * boards/nucleof7*: SPI and refactoring + + boards/stm32: introduce and use new common rtt configuration header + + boards/stm32l0/l4: add rtt feature + + boards: add support for i-nucleo-lrwan1 (Arduino-like shield) + + boards/nrf52840-mdk: added I2C config + + boards/lsn50: add support for Dragino LSN50 LoRa Sensor Node + * boards/stm32l0: introduce common clock configuration and apply it to + related boards + * boards/b-l072z-lrwan1: use STM32 common i2C configuration + + Add usbdev feature to Sodaq boards + + boards/pba-d-01-kw2x: add riotboot support + + sensebox: add usbdev feature + + boards/stm32f429i-disc1: add i2c configuration + + boards/nucleo-l476rg: add riotboot + + boards/same54-xpro: add riotboot support + + boards: Add FLASHFILE support + + boards/nucleo-l476rg: Add DMA support + + nrf52: Add suspend/resume detection to usbdev + + nrf5x: Add UART modecfg feature implementation + + boards/stm32f3: add support for riotboot feature + + boards/lobaro-lorabox: add sx1272 radio driver dependency + to netdev_default + + boards/stm32l4: add riotboot support + + boards/microbit: add QEMU emulation + + boards/frdm-kw41z-k64f: add riotboot + * boards/sltb001a: reset before flashing + +CPU +--- + * cpu/esp8266: added/changed helper functions + + cpu/cc2538: Add periph_uart_mode implementation + * saml1x: enable pm_layered by default + + cpu/cc26x0: implement uart_mode() + + cpu/sam0: add support for SAMD5x/SAME5x + + sam0_common: add uart modecfg support + + cpu/stm32f3: add support for flashpage and flashpage_raw + * cpu/stm32l{1,4}: refactor flashpage numof macros + * cpu/stm32: optimize stop mode for stm32f* + * cpu/nrf5x_common: map hwrng to SoC library if SoftDevice is present + +Device Drivers +-------------- + + devfs: add /dev/urandom and /dev/hwrng + * drivers/mrf24j40 : support of NETOPT_LAST_ED_LEVEL + + drivers/mrf24j40: add external PA/LNA control on MC/MD/ME devices + * drivers/at86rf2xx: enable NETOPT_RX_END_IRQ and fix RSSI values + * drivers/adt7310: Replace binary literal with hex literal + + drivers/ds75lx: add basic driver for temperature sensor + + drivers/include: add header definition for wdt + + drivers/at: Add 'at_recv_bytes_until_string' function + + sx127x: add several NETOPT for GNRC LoRaWAN + * drivers/sx127x: fix device reset + + drivers: stm32 eth peripheral driver + + drivers/periph/gpio_util: add gpio_util_shiftin() + +Build System / Tooling +---------------------- + * makefiles/docker: export BOARDS + + makefiles: add bootloaders to the list of applications + * Makefile.include: allow overwriting flash-recipe + * dist/tools/buildsystem_sanity_check: add an export variable check + * sys/Makefile.include: include riotboot headers when + FEATURES_REQUIRED=riotboot + + make: add print-versions helper target + + make: add LOG_LEVEL to overridable variables + * riotboot/Makefile.include: increase RIOTBOOT_HDR_LEN for ARMv7*-M + * dist/tools/build_system_sanity_check: BUG fix errors being ignored + * boards/common: use Makefile.features + + make: add termdeps target + * periph_common: add as dependency to periph drivers + + nrf52: Add USB peripheral driver + + makefiles/boards.inc.mk: list boards variables + + makefiles/app_dirs.inc.mk: target to list supported applications/boards + + Makefile.features: add a common file for the features parsing + + Makefile.features: add declarative FEATURES_ variables definition + + makefiles/utils/variables: add functions to help managing variables + * Migrate all boards to define FLASHFILE + * tools/openocd.sh: try to probe the board for real flash address + +Testing +------- + * tests/periph_flashpage: add RWWEE automatic test if hw supports it + * tests/pthread_tls: allow negative key values + * tests/gnrc_udp: include `gnrc_pktbuf_cmd` per default + + tests/periph_hwrng: add automated python test + * tests/periph_timer: include kw41z boards in low-power timer boards + * tests/pkg_c25519: increase timeout for arduino-mega2560 + + tests/xtimer_usleep: fail with negative offsets + + unittests: add tsrb tests + + tests/stdin: add non regression test for stdin module + + tests/xtimer_mutex_lock_timeout: add simple case test + + Add NimBLE heart rate sensor example (GATT notifications) + * tests/driver_rn2xx3: fix invalid element index for txmode + * tests/pkg_semtech-loramac: don't init the mac from main + * tests/devfs: move tests-devfs out of unittests + + examples/lorawan: fix semtech_loramac_send TX ret code + * tests/unittests: split remaining packages tests to different test + directory + +API Changes +======================== +- uart_stdio RX is now optional +- CPU_MODEL declared in boards/Makefile.features + + +```c +- void isrpipe_init(isrpipe_t *isrpipe, char *buf, size_t bufsize); ++ void isrpipe_init(isrpipe_t *isrpipe, uint8_t *buf, size_t bufsize); + +- int isrpipe_write_one(isrpipe_t *isrpipe, char c); ++ int isrpipe_write_one(isrpipe_t *isrpipe, uint8_t c); + +- int isrpipe_read(isrpipe_t *isrpipe, char *buf, size_t count); ++ int isrpipe_read(isrpipe_t *isrpipe, uint8_t *buf, size_t count); + +- int isrpipe_read_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\ + int32_t timeout); ++ int isrpipe_read_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\ + uint32_t timeout); + +- int isrpipe_read_all_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\ + uint32_t timeout); ++ int isrpipe_read_all_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\ + uint32_t timeout); + +typedef struct tsrb { +... +- char *buf; /**< Buffer to operate on. */ ++ uint8_t *buf; /**< Buffer to operate on. */ +... +} tsrb_t + +- int tsrb_get(tsrb_t *rb, char *dst, size_t n); ++ int tsrb_get(tsrb_t *rb, uint8_t *dst, size_t n); + +- int tsrb_add_one(tsrb_t *rb, char c); ++ int tsrb_add_one(tsrb_t *rb, uint8_t c); + +- int tsrb_add(tsrb_t *rb, const char *src, size_t n); ++ int tsrb_add(tsrb_t *rb, const uint8_t *src, size_t n); + +typedef struct { +... +- uint16_t (*calc_rank)(gnrc_rpl_parent_t *parent, uint16_t base_rank); +- gnrc_rpl_parent_t *(*which_parent)(gnrc_rpl_parent_t *, gnrc_rpl_parent_t *); ++ uint16_t (*calc_rank)(gnrc_rpl_dodag_t *dodag, uint16_t base_rank); + +- void (*reset)(gnrc_rpl_dodag_t *); /**< resets the OF */ ++ void (*reset)(gnrc_rpl_dodag_t *dodag); +... +- void (*init)(void); /**< OF specific init function */ ++ void (*init)(gnrc_rpl_dodag_t *dodag); +} gnrc_rpl_of_t; + +- thread_state_t ++ thread_status_t + +- void sched_set_status(thread_t *process, thread_state_t status); ++ void sched_set_status(thread_t *process, thread_status_t status); + +struct _thread { +... +- thread_state_t status; ++ thread_status_t status; +... +} + +- bool mrf24j40_cca(mrf24j40_t *dev); ++ bool mrf24j40_cca(mrf24j40_t *dev, int8_t *rssi); +``` + +Deprecations +======================== + +Warnings +-------- +`gnrc_tftp` module +`ubjson` module + +Removals +-------- +`gcoap_req_send()` replaced with `gcoap_req_send2()->gcoap_req_send2()` + +Known issues +============ + +Networking related issues +------------------------- +#11860: send data with UDP at 10HZ, the program die +#11859: examples: dtls-echo fails silently when DTLS_ECC flag enabled +#11519: shell/ping6: Incorrect handling of unexpected pongs +#11405: nrfmin: communication not possible after multicast ping with no interval +#11390: gnrc networking crashs on nRF51dk +#11212: POSIX sockets + lwIP: bad file descriptor +#11033: 6lo: RIOT does not receive packets from Linux when short_addr is set +#10969: net: netdev_driver_t::send() doc unclear +#10861: cpu/esp8266: Tracking open problems of esp_wifi netdev driver +#10809: openthread: does not build on current Arch +#10410: Missing drop implementations in netdev_driver_t::recv +#10389: gnrc_sock_udp: Possible Race condition on copy in application buffer +#10380: netdev_ieee802154: Mismatch between radio ll address and in memory + address +#10370: gomach: Resetting netif with cli doesn't return +#10338: xbee: setting PAN ID sometimes fails +#9709: examples: failed assertion in dtls-echo example +#9656: gnrc/netif: various problems after resetting interface a second time +#8779: CC2538 RF overlapping PIN usage +#8752: mrf24j40: does not link for examples/default +#8631: at86rf2xx/kw2xrf: scalar NETOPT options checked as arrays +#8271: app/netdev: application stops working after receiving frames with + assertion or completely without error +#8242: at86rf2xx: Dead lock when sending while receiving +#8199: gcoap example request on tap I/F fails with NIB issue +#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no + configured prefix +#8130: gcoap: can't build with network stacks other than GNRC +#8086: gnrc_rpl_p2p: port to nib and fix compile errors +#7737: pkg: libcoap is partially broken and outdated +#7474: 6lo gnrc fragmentation expects driver to block on TX +#6018: nRF52 gnrc 6lowpan ble memory leak +#5863: OSX + SAMR21-xpro: shell cannot handle command inputs larger than 64 + chars +#5748: gnrc: nodes crashing with too small packet buffer +#5486: at86rf2xx: lost interrupts +#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers +#5051: Forwarding a packet back to its link layer source should not be allowed +#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up routing +#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the + address + +Timer related issues +-------------------- +#10545: periph_timer: systematic proportional error in timer_set +#10523: saml21 system time vs rtc +#10351: samd21/periph/rtt: Interrupt flags are not correctly cleared +#10073: xtimer_usleep wrong delay time +#9187: sys/newlib: gettimeofday() returns time since boot, not current wall + time. +#9052: misc issues with tests/trickle +#9049: xtimer mis-scaling with long sleep times +#8746: stm32_common/periph/rtc: current implementation broken/poor accuracy +#8388: xtimer_periodic_wakeup is not interrupt safe +#8251: telosb: xtimer config wrong when running on a tmote sky +#7347: xtimer_usleep stuck for small values +#7114: xtimer: add's items to the wrong list if the timer overflows between + _xtimer_now() and irq_disable() +#6442: cpu/native: timer interrupt issue +#6052: tests: xtimer_drift gets stuck +#5338: xtimer: xtimer_now() not ISR safe +#5103: xtimer: weird behavior of tests/xtimer_drift, bug? + +Drivers related issues +---------------------- +#11763: spi_transfer_reg behavior doesn't follow doc +#11104: STM32: SPI clock not returning to idle state and generating additional + clock cycles +#10620: rn2xx3: rn2xx3_write_cmd_no_wait can't be correct +#9546: dht: driver for dht11 sensor sometimes stuck in dht_read() on Atmel SAM + R21 +#9419: cpu/msp430: GPIO driver doesn't work properly +#8213: at86rf2xx: Basic mode and NETOPT_AUTOACK +#8045: stm32/periph/uart: extra byte transmitted on first transmission +#8028: diskio: failed assertion in send_cmd() on lpc2387 +#4876: at86rf2xx: Simultaneous use of different transceiver types is not + supported +#3366: periph/i2c: handle NACK + +Native related issues +--------------------- +#11603: NATIVEINCLUDES Does not include USEMODULE_INCLUDES from + log_printfnoformat +#7206: native: race-condition in IPC +#5796: native: tlsf: early malloc will lead to a crash +#495: native not float safe + +Other platforms related issues +------------------------------ +#10842: Preemption of malloc on AVR +#10258: Incorrect default $PORT building for esp32-wroom-32 on macOS +#10122: Indeterministic hard fault in _mutex_lock(), with nRF52 SoftDevice +#10076: cpu/cortexm_common: irq_enable returns the current state of interrupts + (not previous) +#8408: pkg/fatfs: linker error when build tests/pkg_fatfs_vfs for msb430 based + boards +#8052: mips: several issues +#7753: pic32-wifire: race-condition when linking in concurrent build +#7020: isr_rfcoreerrors while pinging between CC2538DKs +#6567: periph/spi: Switching between CPOL=0,1 problems on Kinetis with software + CS +#5774: cpu: cortexm_common: context switching code breaks when compiling with + LTO +#4954: chronos: compiling with -O0 breaks +#1891: newlib-nano: Printf formatting does not work properly for some numeric + types + +Build system related issues +--------------------------- +#10857: frdm-kw41z: requires newer flasher than openocd `0.10` from `ubuntu- + bionic`. +#10850: Tracking: remove harmful use of `export` in make and immediate + evaluation +#10459: make: `make clean all` does not make sense and should be removed +#10047: Make warns to expect errors when disabling optional modules +#9913: Build dependencies - processing order issues +#9742: `buildtest` uses wrong build directory +#9645: Different build behavior between `murdock` and `riot/riotbuild:latest` + image +#9589: application/Makefile: environment settings after inclusion of + Makefile.include +#8913: make: use of immediate value of variables before they have their final + value +#8122: doxygen: riot.css modified by 'make doc' +#7918: Usage of GCC extension for binary constants +#6120: Windows AVR Mega development makefile Error +#5848: arduino: Race condition in sys/arduino/Makefile.include +#5776: make: Predefining CFLAGS are parsed weirdly +#4053: macros: RIOT_FILE_RELATIVE printing wrong file name for headers +* buildtest with BUILD_IN_DOCKER hides host toolchain errors + +Other issues +------------ +#11861: msba2: floating point tests fail +#11842: buildtest with BUILD_IN_DOCKER hides host toolchain errors +#11820: stm32l152re: hard-fault unless power-cycled after flash, or depending on + optimization +#11691: murdock and tests using `utf-8` characters +#11631: examples / tests: return value of `gnrc_netif_hdr_build()` not checked + in udp.c +#11447: frdm-k64f: hwrng support broken, applications using RNG crash +#11423: cpu/kinetis: features provided not properly defined according to series +#11243: sys/riotboot: documentation issues +#10751: Possible memset optimized out in crypto code +#10731: nanocoap: incomplete response to /.well-known/core request +#10639: sys/stdio_uart: dropped data when received at once +#10510: xtimer_set_msg: crash when using same message for 2 timers +#10175: No error returned from aes_init when a key with a bad size is used +#10121: RIOT cannot compile with the latest version of macOS (10.14) and Xcode + 10 +#9882: sys/tsrb is not thread safe on AVR +#9518: periph/i2c: tracking bugs and untested acks +#9371: assert: c99 static_assert macro doesn't function for multiple + static_asserts in the same scope +#8975: dist/tools/openocd: cannot debug some stlink based boards +#8589: Why using -F in avrdude? +#8436: Kinetis PhyNode: failed to flash binary > 256K +#8107: crypto/ccm: bugs in the implementation of CCM mode +#7220: sys/fmt: Missing tests for fmt_float, fmt_lpad +#6533: tests/lwip target board for python test is hardcoded to native +#5218: some use of asm keyword might be missing volatile +#5009: RIOT is saw-toothing in energy consumption (even when idling) +#4866: periph: GPIO drivers are not thread safe +#4512: pkg: tests: RELIC unittests fail on iotlab-m3 +#4488: Making the newlib thread-safe +#3256: make: Setting constants on compile time doesn't really set them + everywhere +#2346: Tracker: Reduce scope on unintended COMMON variables +#1263: sys: the TLSF implementation contains (a) read-before-write error(s) + +Fixed Issues from the last release (2019.04) +============================================ + +#11626: tests/pkg_semtech-loramac: hardfault on lobaro-lorabox +#11605: ruuvitag: Shell test fails without auto_init +#11530: pkg/semtech_loramac: deadlock with UNCONFIRMED messages +#11525: API change, uart input not working anymore on previously working setups +#11508: core: thread_state_t makes RIOT not compilable on MAC OSX +#11498: Cannot compile OpenThread example without the CLI-APP. +#11494: emcute_mqttsn example setup contains invalid steps +#11344: RTT: `make test` not working +#11274: riotboot_flashwrite: Failure on the nrf52 +#11091: gnrc_minimal on nRF52DK do not work anymore +#11059: board/sltb001a: cannot flash with JLink when 'hello-world' is running + and no error +#11043: boards/z1: tests/rng resets board +#10878: nrfmin can get stuck and never reach RX (while TX works) +#10800: iotlab-m3: thread tests failing +#10559: I2C API write_regs does not fit implementation +#10468: Tinycryt upstream rewrote history in master branch +#8653: msba2: default example fails on assert + +Acknowledgements +================ +We would like to thank all companies that provided us with hardware for porting +and testing RIOT-OS. Further thanks go to companies and institutions that +directly sponsored development time. And finally, big thanks to all of you +contributing in so many different ways to make RIOT worthwhile! +A special thanks to @fjmolinas, @leandrolanzieri, @cladmi, @jia200x, @miri64 +for helping run the release tests + +More information +================ +http://www.riot-os.org + +Mailing lists +------------- +* RIOT OS kernel developers list + devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) +* RIOT OS users list + users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) +* RIOT commits + commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) +* Github notifications + notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications) + +IRC +--- +* Join the RIOT IRC channel at: irc.freenode.net, #riot-os + +License +======= +* The code developed by the RIOT community is licensed under the GNU Lesser + General Public License (LGPL) version 2.1 as published by the Free Software + Foundation. +* Some external sources and packages are published under a separate license. + +All code files contain licensing information. + RIOT-2019.04 - Release Notes ============================ RIOT is a multi-threading operating system which enables soft real-time