diff --git a/ChangeLog b/ChangeLog index 7466baf3d0..991873f17b 100755 --- a/ChangeLog +++ b/ChangeLog @@ -584,7 +584,7 @@ * Added fixed precision math support * Added some color converson routines into what may become a real graphics library someday. * Added a framebuffer driver for the DM320 (untested on initial check-in) - * Network: add support for outgoing multicast addresses + * Network: Add support for outgoing multicast addresses * Added some rasterizers to the graphics library 0.4.0 2008-12-06 Gregory Nutt @@ -924,7 +924,7 @@ context switches and background/user context switches. This change should improve the performance of those background/user context switches by a factor of about two. - * arch/arm/src/stm32/: fix several typos in the serial logic. It turns out + * arch/arm/src/stm32/: Fix several typos in the serial logic. It turns out that these typose don't make any difference as long as you use only one serial port and all uarts are configured the same. But the typos are bugs waiting to happen in any other configuration. @@ -1591,7 +1591,7 @@ where the GPL driver(s) can be re-installed into the NuttX source tree. By re-installing the driver, you agree to the GPL licsensing and all of its implications. - * Makefile, apps/Makefile, tools/configure.sh: add logic to copy + * Makefile, apps/Makefile, tools/configure.sh: Add logic to copy configs///appdir to apps/.config and to simply the application configuration logic. * examples/nsh and apps/nshlib: Move the core NuttShell (NSH) logic @@ -1617,7 +1617,7 @@ without the SDcard (but one issue still exists in STM32) * arch/arm/src/stm32/stm32_tim.*: Added basic timer support TIM1..TIM8 with output PWMs and interrupt logic - * config/vsn/src: added basic support for Sensor Interface (GPIO and + * config/vsn/src: Added basic support for Sensor Interface (GPIO and PWM Power Output, and the sif utility program) * fs/: Reorgnize header so that file systems can be built outside of the nuttx source tree @@ -6362,7 +6362,7 @@ from Max Holtzberg (2014-1-4). * configs/olimex-stm32-p107/nsh/Make.defs: Add native Windows build support for the Olimex STM32 P107. From Max Holtzberg (2014-1-4). - * Makefile.win: Changes for native Windows build: fix creation of + * Makefile.win: Changes for native Windows build: Fix creation of a .version file if one does not exist. Make sure that the APPDIR environment variable is set before configuring. From Max Holtzberg (2014-1-4). @@ -9341,11 +9341,11 @@ That is because not handles not only the case of semaphore wait being awakened by a signal, but also the case with sem_timedwait.c when the semaphore wait is awakened by a timeout (2014-12-28). - * arch/arm/src/stm32/stm32_ltdc.c: stm32: fix faulty access to non- + * arch/arm/src/stm32/stm32_ltdc.c: stm32: Fix faulty access to non- existing layer. This disables operation that requires double layer support, when configured for single layer only. From Marco Krahl (2014-12-29). - * arch/arm/src/stm32/stm32_ltdc.c: stm32: fix wait upon vertical blank. + * arch/arm/src/stm32/stm32_ltdc.c: stm32: Fix wait upon vertical blank. This should never have occurred before. From Marco Krahl (2014-12-29). * configs/stm32f429i-disco/ltdc/defconfig and src/stm32_boot.c: stm32f429i-disco: change ltdc initializing during boot up. This moves @@ -9465,7 +9465,7 @@ * arch/arm/src/tiva/tm4c_ethernet.c: When calling into the stack from the worker thread, it is necessary to have the stack locked (2015-01-18). - * nuttx/arch/arm/src/stm32/stm32_serial.c: fix declaration and + * nuttx/arch/arm/src/stm32/stm32_serial.c: Fix declaration and definition of up_receive() and up_dma_receive() to match fields of uart_ops_s from nuttx/include/nuttx/serial/serial.h. From Freddie Chopin (2015-01-19). @@ -10323,7 +10323,7 @@ LED, PWM, and UART0 have been tested. The SPI pins are mapped correctly but have not yet been tested. From Michael Hope as SourceForge patch 51 (2015-05-07). - * arch/arm/src/kl/kl_pwm.c: fix PWM debugging. TPM1 and TPM2 have two + * arch/arm/src/kl/kl_pwm.c: Fix PWM debugging. TPM1 and TPM2 have two channels instead of six and will hard fault if you try to read the missing channels. From Michael Hope (2015-05-07). * arch/arm/src/kl/kl_lowputc.c: enable the clocks to UART1 and UART2. @@ -11954,7 +11954,7 @@ stm32_pwm.c. From Konstantin Berezenko (2016-06-09). * arch/arm/src/kinetis: Support up to 8 channels per timer. From kfazz (2016-06-09). - * lib/: crc16: fix error. From Paul Alexander Patience (2016-06-10). + * lib/: crc16: Fix error. From Paul Alexander Patience (2016-06-10). * lib/: Add crc64 support. From Paul Alexander Patience (2016-06-10). * arch/arm/src/kinetis: Added kl_dumpgpio functionality as kinetis_pindump. From kfazz (2016-06-10). @@ -12243,7 +12243,7 @@ * drivers/syslog: Add a SYSLOG character device that can be used to re- direct output to the SYSLOG (2016-07-05). * net/netdev: Break out internal interface psock_ioctl() (2016-07-06). - * configs/stm32f4disovery: add can driver for stm32f4discovery. From + * configs/stm32f4disovery: Add can driver for stm32f4discovery. From Matthias Renner (2016-07-06). * configs/freedom-k64f: Increase MCU clock to 120MHz (2016-07-06). * arch/arm/src/stm32: Add support for Tickless mode (two timer @@ -12598,7 +12598,7 @@ feature is EXPERIMENTAL because (1) it is untested and (2) has some know design issues that must be addressed before it can be of use (2016-08-28). - * CXXFLAGS: add -fcheck-new whenever -fno-exceptions is used. From Beat + * CXXFLAGS: Add -fcheck-new whenever -fno-exceptions is used. From Beat Küng (2016-08-23). * tools/mkfsdata.pl was still generating the old-style apps/include inclusion paths (2016-08-23). @@ -12769,7 +12769,7 @@ Mateusz Szafoni (2016-10-06). * STM32 SPI: stm32_modifycr2 should be available on all platforms if DMA is enabled. (2016-10-06). - * STM32 DMA2D: fix an error in up_dma2dcreatelayer where an invalid + * STM32 DMA2D: Fix an error in up_dma2dcreatelayer where an invalid pointer was returned when a certain underlying function failed. From Jens Gräf (2016-10-07). @@ -12808,10 +12808,10 @@ * libc/locale: Add clocale header file (2016-10-18). * libc/wchar: Add functions btowc, mbrtowc, mbtowc, wcscmp, wcscoll, wmemmove. From Alan Carvalho de Assis (2016-10-18). - * usbhost/enumerate: fix possible buffer overwrite. From Janne Rosberg + * usbhost/enumerate: Fix possible buffer overwrite. From Janne Rosberg (2016-10-18). * configs/Board.mk: Add extra clean operations (2016-10-18). - * usbhost/composite: fix compile; missing semicolons. From Jann + * usbhost/composite: Fix compile; missing semicolons. From Jann Rosberg (2016-10-18). * libc/stdio: Include wchar.h in lib_libvsprintf.c to fix compilation error. From Alan Carvalho de Assis (2016-10-18). @@ -12843,7 +12843,7 @@ From Alan Carvalho de Assis (2016-10-19). * syslog: Fixes required for file syslog output. From Max Kriegleder (2016-10-19). - * arch/arm/src/stm32: add TIM8 to STM32F103V pinmap. From Maciej Wójcik + * arch/arm/src/stm32: Add TIM8 to STM32F103V pinmap. From Maciej Wójcik (2016-10-19). * libc/locale: Allows c++ code to compile with or without CONFIG_LIBC_LOCALE and will generate a link error if CONFIG_LIBC_LOCALE @@ -12989,24 +12989,24 @@ * arch/arm/src/armv7-r: Fix compilation error. This commit fixes compilation errors on MPU support for ARMv7-R. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: fix invalid drbar handling. In ARMv7-R, + * arch/arm/src/armv7-r: Fix invalid drbar handling. In ARMv7-R, [31:5] bits of DRBAR is physical base address and other bits are reserved and SBZ. Thus, there is no point in passing other than the base address. From Heesub Shin (2016-11-06). * arch/arm/src/armv7-r: Remove the redundant update on SCTLR. mpu_control() is invoking cp15_wrsctlr() around SCTLR update redundantly. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: add new Kconfig entries for d/i-cache. + * arch/arm/src/armv7-r: Add new Kconfig entries for d/i-cache. Unlike in ARMv7-A/M, Kconfig entries for data and instruction caches are currently missing in ARMv7-R. This commit adds those missing Kconfig entries. Actual implmenetation for those functions will be added in the subsequent patches. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: add cache handling functions. This commit + * arch/arm/src/armv7-r: Add cache handling functions. This commit adds functions for enabling and disabling d/i-caches which were missing for ARMv7-R. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: fix typo in mpu support. s/ARMV7M/ARMV7R/g. + * arch/arm/src/armv7-r: Fix typo in mpu support. s/ARMV7M/ARMV7R/g. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: fix CPSR corruption after exception handling. + * arch/arm/src/armv7-r: Fix CPSR corruption after exception handling. A sporadic hang with consequent crash was observed when booting. It seemed to be caused by the corrupted or wrong CPSR restored on return from exception. NuttX restores the context using code like this: @@ -13027,7 +13027,7 @@ result in the corruption of cpsr and thus unexpected behavior. From Heesub Shin (2016-11-06). - * arch/arm/src/armv7-r: fix to restore the Thumb flag in CPSR. Thumb + * arch/arm/src/armv7-r: Fix to restore the Thumb flag in CPSR. Thumb flag in CPSR is not restored back when the context switch occurs while executing thumb instruction. From Heesub Shin (2016-11-06). * sched/wqueue: When queuing new LP work, don't signal any threads @@ -13271,9 +13271,9 @@ CONFIG_NET_MULTIBUFFER (2016-11-29). * stm32_otghshost: if STM32F446 increase number of channels to 16. From Janne Rosberg (2016-11-30). - * usbhost_composite: fix end offset in usbhost_copyinterface(). From + * usbhost_composite: Fix end offset in usbhost_copyinterface(). From Janne Rosberg (2016-11-30). - * usbhost_cdcacm: add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to supported + * usbhost_cdcacm: Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to supported class and proto. From Janne Rosberg (2016-11-30). * LPC43 SD/MMC: Correct some git definitions on SMMC control register in lpc43_sdmmc.h. From Alan Carvalho de Assis (2016-11-30). @@ -13850,7 +13850,7 @@ * STM32L4: Bring LPTIM driver in from the Motorola MDK (2017-02-18). * drivers/sensors: Add driver for the ST L3GD20 3 axis gyro. From raiden00 (2017-02-19). - * config/stm32f429i-disco: add support for the L3GD20 driver. From + * config/stm32f429i-disco: Add support for the L3GD20 driver. From raiden00 (2017-02-19). * STM32L4 COMP: Port from Motorola MDK (2017-02-19). * Add twr-k64f120m config and fix some ENET related problems. From Marc @@ -14004,7 +14004,7 @@ standardized approach. From Mark Schulte (2017-03-01). * Fix open() a block device with CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y. From Masayuki Ishikawa (2017-03-01). - * net/: fixed a nullptr-dereference on iob_clone. From Pascal Speck + * net/: Fixed a nullptr-dereference on iob_clone. From Pascal Speck (2017-03-01). * configs/: All functions that used to return an xcpt_t old handler value, not return NULL. The oldhandler value is no longer useful with the @@ -14089,7 +14089,1305 @@ Janne Rosberg. Adapt Janne Rosberg's patch to STM32 OTGHS host to OTGFS host, and to similar USB host implementations for STM32 L4 and F7 (2017-03-07). - * usbhost_cdcacm: fix tx outbuffer overflow and remove now invalid + * usbhost_cdcacm: Fix tx outbuffer overflow and remove now invalid assert. From Janne Rosberg (2017-03-07). -7.21 2017-xx-xx Gregory Nutt +7.21 2017-06-05 Gregory Nutt + + * tools/kconfig2html: Need to increase the maximum number of default + values (2017-03-08). + * C library: Add strerror_r() (2017-03-08). + * C Library: Add wcstoull(), swprintf(), wcstod(), wcstof(), wcstol(), + wcstold(), wcstoul(), wcstoll() functions. Add mbsnrtowcs() and + wcsnrtombs() (just returning success). Add mbtowc() and wctomb() to + C++ std namespace. From Alan Carvalho de Assis (2017-03-08). + * Kinetis: Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with + _PIN_OUTPUT_OPENDRAIN. From David Sidrane (2017-03-08). + * Ensure interrupts are back on BEFORE running code dependant on + clock_systimer. From David Sidrane (2017-03-08). + * Enable compilation of libc++ same way as uClibc++. From Alan + Carvalho de Assis (2017-03-08). + * Add LPC4337FET256. From Andreas Bihlmaier (2017-03-09). + * Change Kconfig type of ADC0_MASK from hex to int; add ADC driver + options to lpc43xx. From Andreas Bihlmaier (2017-03-09). + * Add missing PINCONF_INBUFFER in several places of + lpc4310203050_pinconfig.h. From Andreas Bihlmaier (2017-03-09). + * Rename LPC43_GPDMA_GLOBAL_CONFIG (already slipped previous commit C + file); fix GPDMA_CONTROL_SBSIZE_*, improve usability of + GPDMA_CONTROL_{S,D} macros. From Andreas Bihlmaier (2017-03-09). + * Fix errors in LPC43 SCT and SGPIO headers. From Andreas Bihlmaier + (2017-03-09). + * Fix logic error in lpc43_adc. From Andreas Bihlmaier (2017-03-09). + * Fix logic in preprocessor checks and correct arguments to + lpc43_pin_config initialization. From Andreas Bihlmaier (2017-03-09). + * Use correct macro for irqid (fortunately both point to + LPC43_IRQ_EXTINT+18). From Andreas Bihlmaier (2017-03-09). + * Actually write modified value to register. From Andreas Bihlmaier + (2017-03-09). + * Increase number of supported PWM channels from 4 to 6. From Andreas + Bihlmaier (2017-03-09). + * Fix as5048b by adding missing frequency parameter. From Andreas + Bihlmaier (2017-03-09). + * Kinetis: Allow Board to add Pullups on SDHC lines. From David + Sidrane (2017-03-09). + * EZ80F910200KITG: Missing support logic in configs/Kconfig (2017-03-09). + * Olimex-STM32-P407: Update USB host support (2017-03-09). + * Olimex STM32 P407: USB host support for USB FLASH sticks is now + supported in the base nsh configuration (2017-03-09). + * STM32, STM32 F7, and STM32 L4: Back out part of + 3331e9c49aaaa6dcc3aefa6a9e2c80422ffedcd3. Returning immediately in + the case of a NAK makes the Mass Storage Class driver unreliable. + The retry/timeout logic is necessary. This implementation tries to + implement a compromise: If a NAK is received after some data is + received, then the partial data received is returned as with + 3331e9c49aaaa6dcc3aefa6a9e2c80422ffedcd3. If if a NAK is received + with no data, then no longer returns the NAK error immediately but + retries until data is received or a timeout occurs. Initial testing + indicates that this fixes the issues the MSC. However, I have + concerns that if multiple sectors are read in one transfer, there + could be NAKs between sectors as well and, in that case, then change + will still cause failures (2017-03-09). + * STM32F2: Add USB OTG HS support for stm32f20xxx cores. From Simon + Piriou (2017-03-09). + * Remove all references to arch_usbhost_initialize(). That was + incorrectly called from apps/examples/hidkbd. That is violation of + the OS interfacing rules and will no longer be supported. USB host + should be initialized as part of the board bring-up logic was with + any other devices and should not involve illegal calls from + applications into the OS (2017-03-09). + * STM32, STM32 F7, STM32 L4: OTG host drivers: Do not do data toggle + if interrupt transfer is NAKed. Sugested by webbbn@gmail.com + (2017-03-09). + * apps/examples/usbterm is gone because it can be configured to perform + an illegal call into the OS. Remove all traces of + CONFIG_EXAMPLES_USBTERM* and all of the illegal device support + (2017-03-09). + * Save elapsed time before handling I2C in stm32_i2c_sem_waitstop(). + This patch follows the same logic as in previous fix to + stm32_i2c_sem_waitdone(). It is possible that a context switch + occurs after I2C registers are read but before elapsed time is saved + in stm32_i2c_sem_waitstop(). It is then possible that the registers + were read only once with "elapsed time" equal 0. When scheduler + resumes this thread it is quite possible that now "elapsed time" will + be well above timeout threshold. In that case the function returns + and reports a timeout, even though the registers were not read + "recently". Fix this by inverting the order of operations in the loop + - save elapsed time before reading registers. This way a context + switch anywhere in the loop will not cause an erroneous "timeout" + error. From Freddie Chopin (2017-03-10). + * pthreads: Fix pthread_mutexattr_init(). It was not initializing the + protocol field when priority inheritance is enabled (2017-03-10). + * Priority inheritance: When CONFIG_SEM_PREALLOCHOLDERS==0, there is + only a single, hard-allocated holder structure. This is problem + because in sem_wait() the holder is released, but needs to remain in + the holder container until sem_restorebaseprio() is called. The call + to sem_restorebaseprio() must be one of the last things the + sem_wait() does because it can cause the task to be suspended. If in + sem_wait(), a new task gets the semaphore count then it will fail to + allocate the holder and will not participate in priority + inheritance. This fix is to add two hard-allocated holders in the + sem_t structure: One of the old holder and one for the new holder + (2017-03-10). + * STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to + similar STM32 I2C drivers. From David Sidrane (2017-03-10). + * Priority Inversion fixes: Initalization. From David Sidrane + (2017-03-10). + * configs: Add Particle Photon board support. From Simon Piriou + (2017-03-10). + * tools/testbuild.sh: Add debug option (-d) (2017-03-10). + * multiple fixes in nrf24l01 driver: (1) signal POLLIN if there is + already data in the FIFO, (2) send ETIMEDOUT to userspace after 2 + seconds if TX IRQ was not received, (3) handle FIFO overflow, (4) + handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing + static, duplicate define, missing \n). From Leif Jakob (2017-03-10). + * STM32 F33 ADC: Correct bad definitions of base addresses; Fix + naming collision by changing colliding STM32_ADC12_BASE to + STM32_ADC12_CMN_BASE (2017-03-10). + * photon: Add iwdg timer support. From Simon Piriou (2017-03-11). + * photon: Add usb otg hs support and usbnsh app. From Simon Piriou + (2017-03-11). + * photon: Add LEDs and BUTTONS support. From Simon Piriou (2017-03-11). + * As discovered by dcabecinhas. This fix assume the 8 byte alignment + options for size stack size or this will overwrite the first word + after TOS. See + https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778. + From David Sidrane (2017-03-11). + * STM32F20xxx: Add BOARD_DISABLE_USBOTG_HSULPI flag. From Simon + Piriou (2017-03-11). + * STM32: Propagate STM32 F2 changes of last PR to STM32 F4 and F7 + OTGHS (2017-03-11). + * STM32 OTG HS: A little research reveals that only the F2 RCC + initialization set the OTGHSULPIEN bit and Photon is the only F2 + board configuration that uses OTG. Therefore, we can simplify the + conditional logic of the last PR. Negative logic was used (#ifndef + BOARD_DISABLE_USBOTG_HSULPI) to prevent bad settings in other + configurations. But giveh these facts, the preferred positive logic + now makes more sense (#ifdef BOARD_ENABLE_USBOTG_HSULPI) (2017-03-11). + * STM32: OTG host implementations of stm32_in_transfer() must obey the + polling interval for the case of isochronous and interrupt endpoints + (2017-03-12). + * Photon: Add basic support for wlan chip. From Simon Piriou + (2017-03-12). + * Networking: Add registration support for integrated ieee80211 + wireless drivers. Rename CONFIG_IEEE802154 to + CONFIG_WIRELESS_IEEE8021514 following the convention of including the + location of the configuration variable as a part of its name + (2017-03-12). + * If whence is SEEK_END, the file offset shall be set to the size of + the file plus offset. Noted by eunb.song@samsung.com (2017-03-13). + * Move IEEE 802.11 wireless IOCTLs from include/nuttx/net/ioctl to + include/nuttx/wireless/wireless.h. Add some Linux compatible + structures to use with the IOCTL commands. (2017-03-13). + * semaphore: sem_holder sem_findholder missing inintalization of + pholder. sem_findholder would fail and code optimization covered + this up. From David Sidrane (2017-03-13). + * Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0. From + David Sidrane (2017-03-13). + * semaphore: sem_boostholderprio prevent overrun of pend_reprios. The + second case rtcb->sched_priority <= htcb->sched_priority did not + check if there is sufficient space in the pend_reprios array. From + David Sidrane (2017-03-13). + * Include C++ library to 'make export'. From Alan Carvalho de Assis + (2017-03-13). + * arch/arm/src/xmc4: Initial, partial support for Infineon XMC4xxx + (2017-03-14). + * photon: Porting wlan device. From Simon Piriou (2017-03-14). + * lp_worker: Guard from pend_reprios overlow. From David Sidrane + (2017-03-15). + * wireless/ieee802154: Renamed file ieee802154_device to + radio802154_device. From Anthony Merlino (2017-03-15). + * Add option to enable wireless debug output (2017-03-15). + * wireless/ieee802.15.4: Refactors ieee802154_dev character driver to + be radio802154_device. From Anthony Merlino (2017-03-15). + * Integrate use of new wireless debug macros. Replace ad hoc debug + macros. Convert obsolete dbg() macros to current info(), warn(), + err() macros (2017-03-15). + * sem_holder: Fixes improper restoration of base_priority in the case + of CONFIG_SEM_PREALLOCHOLDERS=0. The call to + sem_restorebaseprio_task context switches in the + sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to + releasing the holder. So the running task is left as a holder as is + the started task. Leaving both slots filled thus failing to perform + the boost/or restoration on the correct tcb. This PR fixes this by + releasing the running task slot prior to reprioritization that can + lead to the context switch. To faclitate this, the interface to + sem_restorebaseprio needed to take the tcb from the holder prior to + the holder being freed. In the failure case where sched_verifytcb + fails it added the overhead of looking up the holder. There is also + the additional thunking on the foreach to get from holer to + holder->tcb. An alternate approach could be to leve the interface + the same and allocate a holder on the stack of sem_restoreholderprioB + copy the sem's holder to it, free it as is done in this pr and and + then pass that address sem_restoreholderprio as the holder. It could + then get the holder's tcb but we would keep the same sem_findholder + in sched_verifytcb. From David Sidrane (2017-03-15). + * ARM: Remove redundant interrupt stack coloring. From David + Cabecinhas (2017-03-16). + * ARM: Set EABI stack alignment for all ARM architectures (remove OABI + code). From David Cabecinhas (2017-03-16). + * Remove redundant interrupt stack coloring and OABI code. From David + Cabecinhas (2017-03-16). + * Fixed descritpions of NUC100/120. From no1wudi (2017-03-16). + * XMC4500 Relax: Add basic board support infrastructure of Infineon + XMC4500 Relax Lite v1 (2017-03-16). + * Fix mksyscall host binary name. From Alan Carvalho de Assis + (2017-03-16). + * sem_holder: The logic for the list version is unchanged. From David + Sidrane (2017-03-16). + * sem_holder: Fixes improper restoration of base_priority. From David + Sidrane (2017-03-17). + * C Library: printf: Fix precision for string formatting. Fixes use + of format precision to truncate input string. From Jussi Kivilinna + (2017-03-17). + * vsnprintf(): If size is zero, then vsnprintf() should return the + size of the required buffer without writing anything. This is same + fix that was done for snprintf in 2014 by commit + 59846a8fe928abb389e3776ebdbb52022da45be3. From Jussi Kivilinna + (2017-03-17). + * Adds driver support for the XBox One controller. Currently only the + latest version (XBox One X) controller works. The older XBox One + controllers do not enumerate correctly. From Brian Webb (2017-03-17). + * USB Host driver for the XBox One game controller. From Brian Webb + (2017-03-18). + * ARM: Fix off-by-one interrupt stack allocation in 8-byte aligned + architectures. From David Cabecinhas (2017-03-18). + * configs/nucleo_f334r8: Add ADC example. From Mateusz Szafoni + (2017-03-18). + * mtd/progmem: Fix incorrect target address calculation. + progmem_read/write() is incorrectly calculating the target address, + expecting the offset argument is given in a block number. This is + completely wrong and as a result invalid flash region is accessed. + Byte-oriented read/write interfaces of mtd device accept the target + address in a byte offset, not a block number. From Heesub Shin + (2017-03-18). + * STM32F33: Move DMA logic to a separate files + add ADC support. From + Mateusz Szafoni (2017-03-18). + * Nucleo-F334R8: Add COMP support. From Mateusz Szafoni (2017-03-19). + * STM32F3: Add COMP support. From Mateusz Szafoni (2017-03-19). + * XMC4xxx/XMC4500 Relax: First, clean build of basic NSH configurtion + (2017-03-20). + * XMC4500-Relax: Add LED support (2017-03-20). + * input/mxt: Prevent overriding i2c transfer return value. + put_reg/get_reg function was overriding i2c transfer error code with + i2creset return value, that lead to OK status although actual + transfer failed. From Juha Niskanen (2017-03-21). + * drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha + Niskanen in the MaxTouch driver (2017-03-21). + * drivers/lcd/st7565.c: Extend to include support for the AQM_1248A. + From Masayuki Ishikawa (2017-03-21). + * Fixed wrong assert on udp dgram send. From Pascal Speck (2017-03-21). + * sem_holder: Indexing error. From David Sidrane (2017-03-21). + + if (sem->holder[0].htcb != NULL || sem->holder[**1**].htcb != NULL) + * sched/semaphore: Convert strange use of DEBUGASSERT to DEBUGPANIC + (2017-03-21). + * sched/semaphore: Fix a warning aout an unused variable when priority + inheritance is enabled (2017-03-21). + * Clicker2-STM32: Add support for Mikroelektronika Clicker 2 for + STM32. From Anthony Merlino (2017-03-21). + * Implement DMA support for the stm32f4 I2C. Max and I have verified + that it works on our systems. From rg (2017-03-21). + * drivers/lcd/st7565.c: Use ST7565_POWERCTRL_INT instead of + ST7565_POWERCTRL_BRF. From Masayuki Ishikawa (2017-03-21). + * SMP Kconfig: Change the minimum SMP_NCPUS to 1. From Masayuki + Ishikawa (2017-03-xx). + * SMP: Setting CONFIG_SMP_NCPUS=1 should only be permitted in a debug + configuration (2017-03-22). + * Clicker2-STM32: Create src/, kernel/, and scripts/ directories + (2017-03-22). + * Clicker2-STM32: Add an NSH configuration (2017-03-22). + * Clicker2 STM32: Add SPI support (2017-03-22). + * XMC4xxx: Add FPU support. From David S. Alessio (2017-03-22). + * Clicker2-STM32: Add definitions for remaining mikroBUS pins + (2017-03-22). + * STM32: Fix erase sector number for microcontrolers with more than 11 + sectors. Erase a sector from the second bank cause the bit 4 of SNB + being set but never unsed, so trying to erase a sector from the first + bank was acually eraseing a sector from the second bank. From José + Roberto de Souza (2017-03-22). + * STM32: Make up_progmem thread safe. Writing to a flash sector while + starting the erase of other sector have a undefined behavior so lets + add a semaphore and syncronize access to Flash registers. But for + the semaphore to work it needs to be initialized so each board needs + call stm32_flash_initialize() on initialization, so to avoid runtime + problems it is only using semaphore and making it thread safe if + initialized, after all boards starts to call stm32_flash_initialize() + we can remove the boolean and the check. From José Roberto de Souza + (2017-03-22). + * STM32: Add workaround for flash data cache corruption on + read-while-write. This is a known hardware issue on some STM32 see + the errata of your model and if you make use of both memory banks you + should enable it. From José Roberto de Souza (2017-03-22). + * Clicker2-STM32: Add framework for MRF24J40 support. Untested and + still some missing logic (2017-03-22). + * STM32 Flash fixes. From José Roberto de Souza (2017-03-22). + * STM32F7: In stm32_allocateheap.c There are 5 not 4 configurations. + From David Sidrane (2017-03-23). + * Clicker2-STM32: Add logic to register the MRF24J40 radio character + device (2017-03-23). + * Clicker2-STM32: Add some mostly bogus MAC initializatinon logic + (2017-03-23). + * STM32 I2C: Do not allow CONFIG_I2C_POLLED and CONFIG_I2C_DMA. From + rg (2017-03-23). + * stm32_flash: Need conditinal on non F4 targets. From David Sidrane + (2017-03-23). + * stm32_i2c_alt: Duplicate non CS dev of regval. From David Sidrane + (2017-03-23). + * stm32f40xxx_i2c: Duplicate non CS dev of regval. From David Sidrane + (2017-03-23). + * stm32_i2c_alt: Move def of regval to top func def per CS. From + David Sidrane (2017-03-31). + * stm322_flash: Missing unlock on F1 HSI off path. From David Sidrane + (2017-03-24). + * Fix compile error when disabled the flash data cache corruption for + stm32 f1xx. From no1wudi (2017-03-24). + * The interrupt occurs over the counter overflow. From Aleksandr + Vyhovanec (2017-03-24). + * I needed to use DS3231, I remember that in past it worked ok, but now + for stm32f4xx is used another driver (chip + specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work. After + investigating a problem I found that I2C driver (isr routine) has a + few places there it sends stop bit even if not all messages are + managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding + stm32_i2c_sendstart after data reading helps to make DS3231 working. + From Alexander Oryshchenko; verified by David Sidrane (2017-03-24). + * wireless/ieee802154: Adds IOCTL definitions for accessing PHY + layer. From Anthony Merlino (2017-03-24). + * Add ffsl(), ffsll(), fls(), flsl(), flsll() and use GCC's + __builtin_ctz/__builtin_clz for faster implementation of these. From + Jussi Kivilinna (2017-03-24). + * MRF24J40/Clicker2: Add an MRF24J40 radio configuration to the + Clicker2 STM32 board. Fix a few errors discovered during build + (2017-03-24). + * configs/: Rename all stm32_wireless.c files to stm32_cc3000.c + (2017-03-24). + * configs/: Rename all xyz_wifi.c files to stm32_cc3000.c (2017-03-24). + * Clicker2-STM32: Add usbnsh configuration (2017-03-25). + * drivers/analog: Add basic COMP driver. From Mateusz Szafoni + (2017-03-25). + * STM32F33: Support for COMP character driver. From Mateusz Szafoni + (2017-03-25). + * Nucleo-F334R8: Use new COMP driver. From Mateusz Szafoni + (2017-03-25). + * stm32/Kconfig: Update COMP and OPAMP definitions. From Mateusz + Szafoni (2017-03-26). + * pthreads: Add more robustness characteristics: pthread_mutex_lock() + and trylock() will now return EOWNERDEAD if the mutex is locked by a + thread that no longer exists. Add pthread_mutex_consistent() to + recover from this situation (2017-03-26). + * pthread: Fix return value of pthread_give/takesemaphore(). Add + option to pthread_takesemaphore to ignore EINTR or not (2017-03-26). + * pthreads: Partial implementation of final part of robust mutexes: + Keep list of all mutexes held by a thread in a list in the TCB + (2017-03-26). + * when pthread exits or is cancelled, mutexes held by thread are marked + inconsistent and the highest priority thread waiting for the mutex is + awakened (2017-03-26). + * pthreads: Add a configuration option to disable robust mutexes and + revert to the traditional unsafe mutexes (2017-03-26). + * pthread mutexes: Add option to support both unsafe and robust + mutexes via pthread_mutexattr_get/setrobust() (2017-03-26). + * pthread mutexes: Finish logic to support configuration mutex + robustness (2017-03-27). + * Rename CONFIG_MUTEX_TYPES to CONFIG_PTHREAD_MUTEX_TYPES (2017-03-27). + * Make sure that CONFIG_PTHREAD_MUTEX_ROBUST=y is selected every + configuration that enabled pthreads (2017-03-27). + * Add syscall support for pthread_mutex_consistent() (2017-03-27). + * Include wcstold in C++ cwchar header file. From Alan Carvalho de + Assis (2017-03-27). + * AT86RF23x: Clean-up, standardize lower half interface. Take + advantage of new OS features for interrupt parameter passing + (2017-03-xx). + * MRF24J40: Take advantage of new OS features for interrupt parameter + passing (2017-03-27). + * lcd/: PCF8574 backpack logic needs to include poll.h + CONFIG_DISABLE_POLL is not set (2017-03-27). + * drivers/analog: Add driver for the LTC1767L ADC. From Martin + Lederhilger (2017-03-28). + * realloc(): When realloc() has to fall back to calling malloc(), size + including overhead was being provided to malloc(), causing a slightly + larger allocation than needed. Noted by initialkjc@yahoo.com + (2017-03-28). + * Fix PTHREAD_MUTEX_INITIALIZER which was not updated with last mutex + changes. From Jussi Kivilinna (2017-03-28). + * STM32 F7: Add stm32 RNG support. This is copied from stm32l4. + Tested on STM32F746ZG board. From Juha Niskanen (2017-03-29). + * STM32 RNG: Fix semaphore initial value and disable priority + inheritance. From Juha Niskanen (2017-03-29). + * Fix an assertion noted by Jussi Kivilinna. This was a consequence of + the recent robust mutex changes. If robust mutexes are selected, + then each mutex that a thread takes is retained in a list in threads + TCB. If the thread exits and that list is not empty, then we know + that the thread exitted while holding mutexes. And, in that case, + each will be marked as inconsistent and the any waiter for the thread + is awakened. For the case of pthread_mutex_trywait(), the mutex was + not being added to the list! while not usually a fatal error, this + was caught by an assertion when pthread_mutex_unlock() was called: + It tried to remove the mutex from the TCB list and it was not there + when, of course, it shoule be. The fix was to add + pthread_mutex_trytake() which does sem_trywait() and if successful, + does correctly add the mutext to the TCB list. This should + eliminated the assertion (2017-03-29). + * 6loWPAN: IEEE802.15.4 MAC driver will need a special form of the + network device structure to manage fragmentation of the large packet + into frames (2017-03-29). + * wireless/ieee802154: Adds MAC character driver structure. + Nonfunctional. From Anthony Merlino (2017-03-29). + * configs/clicker2-STM32: Adds logic to create an 802.15.4 MAC and + register a character driver. From Anthony Merlino (2017-03-29). + * net/local: connect: Fix warning with gcc-arm-none-eabi-5-2016q1. + Using compiler from gcc-arm-none-eabi-5-2016q1 toolchain: + + gcc version 5.3.1 20160307 (release) [ARM/embedded-5-branch revision 234589] (GNU Tools for ARM Embedded Processors) + + gives error: + + local/local_connect.c:188:7: error: '_local_semtake' is static but used in inline function 'local_stream_connect' which is not static [-Werror] + + this is due to compiler enforcing ISO/IEC 9899:1999 6.7.4.3: "An + inline definition of a function with external linkage shall not + contain a definition of a modifiable object with static storage + duration, and shall not contain a reference to an identifier with + internal linkage." Fix by making inlined caller to have internal + linkage as well. From Juha Niskanen (2017-03-30). + * Add entropy pool and strong random number generator. Entropy pool + gathers environmental noise from device drivers, user-space, etc., + and returns good random numbers, suitable for cryptographic use. + Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm + for CSPRNG output. Patch also adds /dev/urandom support for using + entropy pool RNG and new 'getrandom' system call for getting + randomness without file-descriptor usage (thus avoiding + file-descriptor exhaustion attacks). The 'getrandom' interface is + similar as 'getentropy' and 'getrandom' available on OpenBSD and + Linux respectively. From Jussi Kivilinna (2017-03-30). + * Change STM32 tickless to use only one timer. From Konstantin + Berezenko (2017-03-30). + * drivers/sensors: Add driver for ST HTS221 humidity sensor. From Juha + Niskanen (2017-03-30). + * HTS221 driver: Modify to use new interrupt parameter passing hooks + (2017-03-31). + * drivers/sensors: Add driver for ST LPS25H pressure sensor. From + Juha Niskanen (2017-03-31). + * drivers/usbmisc: Add driver for Fairchild FUSB301 USB type-C + controller. From Harri Luhtala . Tested + with earlier version of NuttX; with current version checked that it + compiles. Via Juha Niskane (2017-03-31). + * Add user-space networking stack API (usrsock). User-space networking + stack API allows user-space daemon to provide TCP/IP stack + implementation for NuttX network. Main use for this is to allow use + and seamless integration of HW-provided TCP/IP stacks to NuttX. For + example, user-space daemon can translate /dev/usrsock API requests to + HW TCP/IP API requests while rest of the user-space can access + standard socket API, with socket descriptors that can be used with + NuttX system calls. From Jussi Kivilinna (2017-03-31). + * STM32F7: Add support for LSE RTC and enable RTC subseconds. From + Jussi Kivilinna (2017-03-31). + * TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled + (2017-03-31). + * net/: Fix MULTINIC/MULTILINK selection when 6loWPAN selected + (2017-03-31). + * net/: Permit net/neighbor to build when IPv6 is defined, but not + Ethernet. Needs more work to support 6loWPAN (2017-03-31). + * stm32f7: Serial fix for dropped data: (1) Revert the inherited dma + bug from the stm32. see + https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d + + for details. And (2) Most all CR1-CR3 settings can not be configured + while UE is true. Threfore we make all operation atomic and disable + UE and restore it's originalstate on exit. From David Sidrane + (2017-03-31). + * stm32f7: stm32_sdmmc removed stray semicolon. From David Sidrane + (2017-03-31). + * 6loWPAN: Contiki 6loWPAN port is now complete (but completely + untested) (2017-04-02). + * iee802154 loopback: Eliminate dependency on CONFIG_NET_LOOPBACK + (2017-04-02). + * drivers/sensors: Add driver for ST LIS2DH accelerometer. From Timo + Voutilainen et al. via Juha Niskanen + (2017-04-03). + * net/socket/accept: Fix building with CONFIG_NET_LOCAL_STREAM. From + Jussi Kivilinna (2017-04-03). + * STM32: Fix IWDG and WWDG debug mode stop for STM32L15XX. From Juha + Niskanen (2017-04-03). + * STM32: Add STM32L162VE to chip.h. From Juha Niskanen (2017-04-03). + * iee802154 loopback: Eliminate dependency on CONFIG_NET_LOOPBACK + (2017-04-02). + * sim: Add a configuration for testing 6loWPAN (2017-04-03). + * wireless/ieee802154: Add initialization logic for loopback driver; + configs/sim: Add configuration for testing 6loWPAN; net/sixlowpan: + Fix for compilation with debug output enabled (2017-04-03). + * 6loWPAN: Updates/fixes from initial testing with the IEEE802.15.4 + loopback driver (2017-04-03). + * STM32: Add I2C3 SDA pin mapping for STM32F411. From no1wudi + (2017-04-04). + * sensors: lis2dh: Fix hardfault when reading from unconfigured + sensor. From Juha Niskanen (2017-04-04). + * STM32: stm32_flash: Add EEPROM writing for STM32L15XX. From Juha + Niskanen (2017-04-04). + * 6loWPAN: Add option to dump buffers (2017-04-04). + * STM32: stm32l15xx_rcc: Add support for using MSI as system clock. + From Juha Niskanen (2017-04-05). + * STM32: stm32l15xxx_rcc: configure medium performance voltage range + and zero wait-state when allowed by SYSCLK setting. Zero wait-state + for flash can be configured when: (1) Range 1 and SYSCLK <= 16 Mhz, + (2) Range 2 and SYSCLK <= 8 Mhz, or (3) Range 3 and SYSCLK <= 4.2 + Mhz. Medium performance voltage range (1.5V) can be configured when + SYSCLK is up to 16 Mhz and PLLVCO up to 48 Mhz. From Juha Niskanen + (2017-04-05). + * wireless/ieee802154: Initial MAC char driver write functionality. + From Anthony Merlino (2017-04-05). + * photon: wlan support. From Simon Piriou (2017-04-03). + * Document set [{+|-}{e|x|xe|ex}] [ ]. From David Sidrane + (2017-04-05). + * STM32: Fix SYSCFG_CFGR1_I2C_PBXFMP_SHIFT value. From Alan Carvalho + de Assis (2017-04-06). + * STM32F7: Serial: Add interface to get uart_dev_t by USART number, + stm32_serial_get_uart. From Jussi Kivilinna (2017-04-06). + * STM32F7: Default CONFIG_STM32F7_DMACAPABLE to 'n'. STM32F7 does not + have CCM RAM but DTCM, so this option does not need to enabled. DTCM + RAM is DMA-able through CPU AHBS bus. From Jussi Kivilinna + (2017-04-06). + * STM32F7: Fix UART7 and UART8 IFLOWCONTROL options. From Jussi + Kivilinna (2017-04-06). + * STM32F7: Add warning for RXDMA + IFLOWCONTROL combination. + Combination of RXDMA + IFLOWCONTROL does not work as one might + expect. Since RXDMA uses circular DMA-buffer, DMA will always keep + reading new data from USART peripheral even if DMA buffer underruns. + Thus this combination only does following: RTS is asserted on USART + setup and deasserted on shutdown and does not perform actual RTS + flow-control. Data loss can be demonstrated by doing long up_mdelay + inside irq critical section and feeding data to RXDMA+IFLOWCONTROL + UART. From Jussi Kivilinna (2017-04-06). + * sim/sixlowpan: Now supports apps/examples/udpblaster too (2017-04-06). + * SAMV7: Watchdog: Fix Forbidden Window Value. According the Datasheet + the WDD Value is the lower bound of a so called Forbidden Window and + to disable this we have to set the WDD Value greater than or equal to + the WDV Value. This seems to be a bug in the datasheet. It looks + like we have to set it to a greater value than the WDV to really + disable this Thing. When triggering the Watchdog faster than the + (very slow) clock source of the Watchdog fires, this Forbidden Window + Feature resets the System if WDD equals to WDV. This Changeset + disables the Forbidden Window by setting the WDD Value to the Maximum + (0xfff) Value possible. From Frank Benkert (2017-04-06). + * RTC: Add interface for check if RTC time has been set. New interface + allows checking if RTC time has been set. This allows to application + to detect if RTC has valid time (after reset) or should application + attempt to get real time by other means (for example, by launching + ntpclient or GPS). From Jussi Kivilinna (2017-04-06). + * 6loWPAN: Add network IOCTL support to set the node address + (2017-04-06). + * EFM32 I2C: Fix timeout calculation. From Masayuki Ishikawa + (2017-04-06). + * Disable serial console on stm32f103-minimum usbnsh example project + config. Devices enumerate after this change. From Bob Ryan + (2017-04-07). + * pthreads: Adding rwlock implementation. Adding an implementation for + read/write locks into the pthread library. These locks are writer + priority, such that if any writers come in they are given priority + for writing. From Mark Schulte (2017-04-07). + * pthread rwlock bugfixes. From Mark Schulte (2017-04-07). + * 6loWPAN: Add calculation of TCP header size. It is not a constant + (2017-04-07). + * Restore TCP_HDRLEN to MSS calculation. Also add to UDP MSS + calculation where it never appearred. Add some missing MSS and + RDVWNDO definitions for 6loWOPAN (2017-04-08). + * pthread.h: Remove duplicate, possible erroneous definition of + PTHREAD_MUTEX_INITIALIZER that crept in with some recent changes + (2017-04-08). + * pthread.h: Fix rwlock initializer. From Mark Schulte (2017-04-08). + * Add configuration/build support for an IEEE802.15.4 network device + (2017-04-08). + * Fix some old-style interrupt handling logic in drivers/net/skeleton.c + (2017-04-08). + * wireless/ieee802154: Add a implementation of the IEEE802.15.4 + network driver. This is very incomplete on the initial commit + (2017-04-08). + * Buttons: Change return value of board_buttons() and the type of + btn_buttonset_t to uint32_t so that more than 8 buttons can be + supported (2017-04-09). + * Add support for NuttX controlled LEDS and for board_initialize. + Separate initialization logic to stm32_bringup.c so that in + initialization can occur either through board_initialize() or through + board_app_initialize(). Same as with most other newer board + configurations (2017-04-09). + * net procfs: Some long lines were being generated that cause + buffer-related problems and corrupted output (2017-04-09). + * stm32 COMP: Logic in stm32_comp.h must be configured on + CONFIG_STM32_COMP or otherwise it causes an error via #error on every + platform without COMP support (2017-04-09). + * Photon: Add logic to automatically mount the procfs file system on + startup. Fix some LED-related configuration conflicts (2017-04-09). + * Buttons: Correct some comments left after last button-related + change: 32- vs 8-bit bit set (2017-04-09). + * pthread: Use cancel cleanup handlers in rwlock. From Juha Niskanen + (2017-04-10). + * STM32F7: serial: disallow broken configuration combination of + CONFIG_STM32F7_FLOWCONTROL_BROKEN=y and + CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS not set. From Jussi Kivilinna + (2017-04-11). + * STM32F7: serial: do not stop processing input in SW flow-control + mode. From Jussi Kivilinna (2017-04-11). + * STM32XX: Fix Pending Register definition. From Alan Carvalho de + Assis (2017-04-11). + * Add logic to disable cancellation points within the OS. This is + useful when an internal OS function that is NOT a cancellation point + calls an OS function which is a cancellation point. In that case, + irrecoverable states may occur if the cancellation is within the OS. + From Juha Niskanen (2017-04-11). + * Fix LLVM libc++ undefined reference to __cxa_guard_*. From Alan + Carvalho de Assis (2017-04-11). + * libc/netdb: in dns_query_callback, ret != -EADDRNOTAVAIL condition + consumes error returns including EAGAIN in this case, dns query + retransmission doesn't work. From Ritajina (2017-04-12). + * STM32L4 DMA: Correct bad channel definition. From Sebastien Lorquet + (2017-04-12). + * TUN driver: Implement TAP (OSI layer 2) mode. Enable by setting the + IFF_TAP flag instead of the IFF_TUN flag in ifr_flags. From Thomas + Keh (2017-04-13). + * Adds USB host support to stm32f411-disco board. From Brian Webb + (2017-04-13). + * ieee802.15.4 radio: Add data structure definitions for Radio IOCTLs + (2017-04-13). + * ieee802.15.4 MAC: Add data structure definitions for MAC IOCTLs + (2017-04-13). + * ieee802154 radio: Implement IOCTL decode and dispatch in all radio + drivers (2017-04-13). + * drivers/net/skeleton.c: Add support for IOCTL handling (2017-04-13). + * ieee802.15.4 netdev: Add IOCTL support (2017-04-13). + * ieee802.15.4 radio: Remove interface methods that duplicate IOCTL + commands (2017-04-13). + * ieee802.15.4: de-couple MAC driver interface. Now works more like + other drivers (2017-04-13). + * sched: Fix tg_flags check with GROUP_FLAG_NOCLDWAIT. From Masayuki + Ishikawa (2017-04-14). + * Add basic support for STM32F0. From Alan Carvalho de Assis + (2017-04-14). + * Add stm32f0discovery board support. From Alan Carvalho de Assis + (2017-04-14). + * arch/arm/Kconfig: Add option for STM32F0 (2017-04-14). + * IEEE802.15.4: There is only one instance of the IEEE802.15.4 MAC + lower level. There is no need for the interface to be indirect via a + vtable. In this case, standard global functions should be used + (2017-04-14). + * ieee802.15.4: New global functions exported by the lower MAC layer + should be private to the MAC module. Function prototypes moved from + include/nuttx/wireless/ieee802154/ieee802154_mac.h to + wireless/ieee802154/mac802154.h (2017-04-14). + * radio802154_device.c now accesses the PHY layer via the IOCTL helper + functions (2017-04-14). + * photon: Add sdpcm + thread support for wlan. From Simon Piriou + (2017-04-13). + * Not a clean fix, but at least makes DHCP working with + CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier (2017-04-15). + * networking: IPv4 change of last PR should also be applied to + corresponding IPv6 logic (2017-04-15). + * 6loWPAN: Add some checks for the case where there are multiple + network devices and multiple link layer protocols (2017-04-15). + * net/: Add IOCTL support for forwarding IEEE802.15.4 MAC and PHY + IOCTLs (2017-04-15). + * Argument of network device IOCTL should be unsigned long, just as + will all other IOCTL methods (2017-04-15). + * wireless/ieee802154: Adds ability to receive notifications from MAC + char driver. From Anthony Merlino (2017-04-05). + * wireless/ieee802154/mrf24j40: Added bind method. From Anthony + Merlino (2017-04-15). + * wireless/ieee802154: Starts adding MAC request data functionality. + From Anthony Merlino (2017-04-15). + * wireless/ieee802154: Starts defining interface between PHY layer and + next highest layer. From Anthony Merlino (2017-04-15). + * wireless/ieee802154: Skeleton code for request associate. From + Anthony Merlino (2017-04-15). + * wireless/ieee802154: Bind MAC phyif to radio. From Anthony Merlino + (2017-04-15). + * STM32: Provide TIM5 definition for STM32F429. From Matias v01d + (2017-04-15). + * photon: Add sdpcm tx basic support. From Simon Piriou (2017-04-16). + * photon: Request firmware version and MAC address. From Simon Piriou + (2017-04-16). + * 6loWPAN network driver: Still only a skeleton but has some added + thought experimentation (2017-04-16). + * 6loWPAN: Correct ordering of headers. fragmentation header was + coming out before FCF (2017-04-16). + * wireless/ieee802154: Continues development on transmit structure. + From Anthony Merlino (2017-04-17). + * STM32F0: Enable the clock for all GPIO ports. From Alan Carvalho de + Assis (2017-04-17). + * STM32F0: Fix HSI clock definition. From Alan Carvalho de Assis + (2017-04-17). + * STM32F0: Fix System Clock value to 48MHz and remove MCLK + definition. From Alan Carvalho de Assis (2017-04-17). + * Update coding standard document to discuss un-named structure fields + (2017-04-17). + * STM32F0: Add basic support for STM32F07x family (2017-04-17). + * STM32F0: Move enabling of GPIO peripherals form UART setup to + clockconfig. This is not a UART function. It is needed by all + peripherals (2017-04-xx). + * STM32F0: Add logic to enable other USARTs. No UART4/5. Rather + USART4/5 (2017-04-17). + * STM32F7: Warn if no DMA2 configured when using ADC with DMA. Also + correct ADC channel numbers that DMA callback passes to upper half + driver. From Juha Niskanen (2017-04-18). + * STM32F7: stm32_adc: Do not override ADCPRE_DIV when measuring + internal voltage. From Juha Niskanen (2017-04-18). + * Move CONFIG_ADC_NO_START_CONV from drivers/adc/Kconfig to + arch/arm/src/stm32[f7]/Kconfig as STM32[F7]_ADC_NO_START_CONV. + Refresh all configurations with any reference to + CONFIG_ADC_NO_START_CONV (2017-04-18). + * STM32F0: The STM32F2 does not have use alternate function groupings + as does the F1. Rather, it is like other members of the STM32 family + with An alternate setting AF0-AF7 for each pin (2017-04-18). + * Nucleo-F072RB: Add board configuration (2017-04-18). + * wireless/ieee802154: Lots of small fixes to eliminate build issues. + Generally cleans things up and fixes lots of small issues preventing a + successful build. Does not completely build, but there are + significantly less errors. From Anthony Merlino (2017-04-18). + * Coding standard: Defining structures within the scope of another + structure is discouraged (2017-04-18). + * Nucleo-F072RB: Enable board_app_inititalize, procfs, and built-in + functions (2017-04-19). + * wireless/ieee802154: Simplifies MAC callback interface. Adds + missing data type definitions. From Anthony Merlino (2017-04-19). + * wireless/ieee802154: Renames mac802154_devwrapper_s to + mac802154_chardevice_s. From Anthony Merlino (2017-04-19). + * wireless/ieee802154: Changes radio interface to match MAC callback + design. From Anthony Merlino (2017-04-19). + * 6loWPAN: Fix a missing source address in header. Correct + calculation of payload size (2017-04-19). + * SAMV7 EMAC: Add conditional logic to account the fact that the + SAMV71 has 6 rather than 3 queues after version 1. From Ian McAfee + (2017-04-19). + * wireless/ieee802154: Starts structuring transmission completion + handling. From Anthony Merlino (2017-04-19). + * 6loWPAN: Add an IOCTL to set the IEEE802.15.4 PAN ID (2017-04-19). + * STM32 L1: stm32l15xx_rcc: Allow board to configure HSE clock in + bypass-mode. Allows using MCO output from ST-link chip (on Nucleo + and Discovery boards) as HSE input. From Juha Niskanen (2017-04-20). + * Add support for STM32L152CC, STM32L152RC and STM32L152VC. Update + some bits and comments for other STM32L1 parts in chip.h. From Juha + Niskanen (2017-04-20). + * UART 16550: Missing left parenthesis in function prototype. This is + Bitbucket Issue #41 (2017-04-20). + * procfs: Fix wrong member IDs are displayed when 'cat + /proc//group/status'. From Nobutaka Toyoshima (2017-04-28). + * STM32F0: Add support for HSI48 (2017-04-20). + * STM32F0: Add an untested port of the F1 USB device to the STM32F0 + (2017-04-20). + * Move include/nuttx/net/iob.h to include/drivers/iob.h; rename + CONFIG_NET_IOB to CONFIG_DRIVERS_IOB (2017-04-20). + * Move net/iob to drivers/iob so that the I/O buffering feature can be + available to other drivers when networking is disabled (2017-04-20). + * VFS poll(): Add some error handling logic (2017-04-20). + * Add support for the STM32F09X family. From Juha Niskanen (2017-04-21). + * clock: Add clock_resynchronize and use subseconds RTC. Add + clock_resynchronize for better synchronization of CLOCK_REALTIME and + CLOCK_MONOTONIC to match RTC after resume from low-power state. Add + up_rtc_getdatetime_with_subseconds under + CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and + resynchronizing) system clock with subseconds accuracy RTC. From + Jussi Kivilinna (2017-04-21). + * clock: Add new type ssystime_t for relative 64-bit ticks, change + ticks<->time conversion functions to use ssystime_t. From Jussi + Kivilinna (2017-04-21). + * clock: add testing for 32-bit overflow of 64-bit system timer. From + Jussi Kivilinna (2017-04-21). + * wireless/ieee802154: Simplifies TX completion interface. Documents + and cleans up some functions. From Anthony Merlino (2017-04-21). + * Remove the 6loWPAN PANID IOCTLs they are redundant (2017-04-21). + * 6loWPAN: Remove the PAN ID from the 6loWPAN data structure. This is + owned by the radio driver. Rather, use an IOCTL to obtain the PAN ID + from the downstream radio driver (2017-04-21). + * photon: Add basic wlan scan function. From Simon Piriou (2017-04-22). + * 6loWPAN: Separate MAC-related definitions from sixlowpan.h. Put in + ieee802154.h (2017-04-22). + * net/: network drver now retains Ethernet MAC address in a union so + that other link layer addresses may be used in a MULTILINK + environment (2017-04-22). + * 6loWPAN: Add IEEE802.15.4 Rime address to union of link layer + addresses in the network driver (2017-04-22). + * SAM3/4: Fixed configurations for TWI master. Obviously an + incomplete port from SAMA5 (2017-04-23). + * SAM3/4: Remove inappropriate semicolon. From kc_dtm (2017-04-23). + * configs/photon: Add DOWNLOAD function to upload firmware through + DFU. From Simon Piriou (2017-04-23). + * drivers/ieee80211/: Change all occurrences of _info, _warn, and _err + to wlinfo, wlwarn, and wlerr (2017-04-23). + * USBMSC: Fix a wrong lun number issue. From Masayuki Ishikawa + (2017-04-24). + * sched: Fix CHILD_FLAG_EXITED in include/nuttx/sched.h. From + Masayuki Ishikawa (2017-04-24). + * wireless/ieee80211: Add skeleton for a broadcom network driver + (2017-04-24). + * wiress/ieee80211: Broadcom network driver needs to register as an + ieee802.11 driver, not an Ethernet driver (2017-04-24). + * wireless/ieee80211: Add broadcom network device registration logic + (2017-04-24). + * drivers/wireless/bcmf: Register network driver + update defconfig + file. From Simon Piriou (2017-04-24). + * procfs: Fix incorrect uptime with CONFIG_SYSTEM_TIME64. From + Masayuki Ishikawa (2017-04-25). + * configs/photon/wlan: Minor config changes to get a clean build + (2017-04-25). + * STM32L4: Add support for the STM32L496XX family. From Juha Niskanen + (2017-04-25). + * configs/photon: Rename ld.script to photon_jtag.ld for symmetry + (2017-04-25). + * configs/photon/src/stm32_wlan.c: Remove unused, inappropriate + network driver registration (2017-04-25). + * netdev_register: If there is only one ieee80211 and both + CONFIG_ETHERNET and CONFIG_DRIVERS_IEEE8011, then use the wlan0 + naming, not the eth0 naming (2017-04-25). + * configs/nucle-f072rb/nsh: Correct amount of available SRAM in + defconfig (2017-04-26). + * CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too + (2017-04-26). + * drivers/wireless/bcmf: Enable DMA for SDIO transfers. From Simon + Piriou (2017-04-26). + * configs: Remove all setenv.bat files. Remove all references to + setenv.sh and setenv.bat from all config README files (2017-04-26). + * drivers/syslog: Use monotonic clock for timestamp when available. + From Jussi Kivilinna (2017-04-26). + * Enable wireless IOCTL commands in photon/wlan configuration + (2017-04-26). + * Network IOCTLs: Correct a compilation error when wireless IOCTLs are + enabled (2017-04-26). + * binfmt/elf: Fix offset value when calling elf_read() in + elf_symname(). From Masayuki Ishikawa (2017-04-26). + * STM32, STM32F7, STM32L4: Remove incorrect comment about STM32L1 + LSE/RTC/LCD. From Juha Niskanen (2017-04-27). + * STM32L4: Add some defines for the new peripherals in STM32L496 + parts. From Juha Niskanen (2017-04-27). + * STM32F0: Fix some missing settings in the clock configuration logic + (2017-04-27). + * IOCTLS. Separate wireless character driver IOCTL commands from + wireless network driver IOCTL commands. Move from wireless.h to + ioctl.h (2017-04-27). + * IEEE 802.15.4: Move MAC character driver IOCTL commands from + ieee802154_mac.h to ieee802154_ioctl.h (2017-04-27). + * Wireless IOCTLs: Correct use of _WLIOC where _WLCIOC is required + (2017-04-27). + * net/socket: Fix cloning of local and raw sockets. From Jussi + Kivilinna (2017-04-28). + * STM32L4: stm32l4_i2c: Add I2C4 code. From Juha Niskanen (2017-04-28). + * STM32L4: I2C was not using current interrupt handling parameter + passing logic (2017-04-28). + * vfs/poll: round timeout up to next full tick. Calling poll() with + timeout less than half tick (thus MSEC2TICK(timeout) => 0) caused + returning error with EAGAIN. Instead of rounding timeout down, value + should be rounded up. Open Group spec for poll says: + "Implementations may place limitations on the granularity of timeout + intervals. If the requested timeout interval requires a finer + granularity than the implementation supports, the actual timeout + interval will be rounded up to the next supported value." From Jussi + Kivilinna (2017-04-28). + * In last change to poll(), converted timeout to unsigned to eliminate + the possibility of overflow of signed overflow (2017-04-28). + * drivers/wireless/bcmf: Add escan ioctls support + cleanup. From + Simon Piriou (2017-04-28). + * Add all network IOCTLs to include/sys/ioctl.h (2017-04-28). + * Add all ieee802.15.4 IOCTLs to include/sys/ioctl.h (2017-04-28). + * 6loWPAN: Can't reuse same header on each fragment. DSN needs to + increment (2017-04-29). + * SPI: Add an instance argument to the SPIDEV definitions (2017-04-29). + * STM32F0: Add some protection. There is only one interrupt for + USART3-8. Current interrupt handling logic will support only one + interrupt in that range (2017-04-29). + * STM32F0 I2C: Initial cut at driver. Still a work in progress. From + Alan Carvalho de Assis (2017-04-29). + * STM32F33: Add OPAMP support. From Mateusz Szafoni (2017-04-30). + * drivers/analog: Add basic OPAMP driver. From Mateusz Szafoni + (2017-04-30). + * Nucleo-F334R8: Add OPAMP support. From Mateusz Szafoni (2017-04-30). + * Nucleo-F072RB: Add support for the I2C driver used by I2C tools + (2017-04-20). + * drivers/i2c: Fix compile issus if CONFIG_DISABLE_PSEUDOFS_OPERATIONS + is enabled (2017-04-xx). + * STM32F0 I2C: Update driver to use the standard interrupt parameter + passing logic (2017-04-30). + * STM32F0 I2C: Pin definitions should specify open drain (and probably + 50Mhz) (2017-04-30). + * EFM32, STM32, and STM32 F7 I2C: Update to use the standard parameter + passing to interrupt handlers (2017-04-30). + * drivers/wireless/bcmf: Add netdev support for Broadcom FullMAC + driver. From Simon Piriou (2017-04-30). + * Tiva I2C: Update to use the standard parameter passing to interrupt + handlers (2017-04-30). + * ieee802.11: Bring some BSD licensed header files in from FreeBSD + (2017-04-30). + * Clicker2-STM32: Add protected build knsh configuration (2017-05-01). + * STM32F0: Fix I2C frequency table. From Alan Carvalho de Assis + (2017-05-01). + * STM32F0: I2C frequency quantization. Add logic to get closer if an + oddball frequency is used (2017-05-01). + * pthread: Fix compilation error on pthread_cond_wait when + CONFIG_CANCELLATION_POINTS and CONFIG_PTHREAD_MUTEX_UNSAFE are + enabled. From EunBong Song (2017-05-02). + * binfmt/elf: Fix offset value when calling elf_read() in + elf_sectname(). From Masayuki Ishikawa (2017-05-02). + * configs: Add nucleo-l496zg board files. From Juha Niskanen + (2017-05-02). + * configs: Add nucleo-f091rc board files. From Juha Niskanen + (2017-05-02). + * STM32L4: Don't think these chips have DPFPU, DTCM or ITCM. From + Juha Niskanen (2017-05-02). + * STM32L4: Add GPIO_PORTI definition. From Juha Niskanen (2017-05-02). + * STM32L4: Delete more references to DFPU, ITCM, and DTCM (2017-05-02). + * wireless/ieee802154: Changes transmit data path to use IOBs and + exposes function for getting size of MAC header. From Anthony + Merlino (2017-05-02). + * Extend wireless.h with definitions needed by wext. From Simon Piriou + (2017-05-02). + * drivers/wireless/bcmf: implement basic wext interface for + authentication. From Simon Piriou (2017-05-02). + * First attempt at a nucleo-l432kc board. From Sebastien Lorquet + (2017-05-02). + * STM32F7: Flash: macro naming errors, there is no FLASH_CONFIG_F for + F7. From Juha Niskanen (2017-05-02). + * STM32L4: stm32l4x6xx_pinmap: Update I2C4 and DCMI pins. From Juha + Niskanen (2017-05-02). + * 6loWPAN: Add basic call path to interface with the MAC layer through + the MAC network driver. Logic has not yet been implemented. This is + just a structural change in preparation for additional changes + (2017-05-02). + * wireless/ieee802154: Sets up default PIB attributes. From Anthony + Merlino (2017-05-02). + * wireless/ieee802154: Finishes some IOCTL logic for MAC layer. From + Anthony Merlino (2017-05-02). + * 6loWPAN: Changes to use new MAC interfaces. Incomplete and needs + some clean-up of dangling, unused definitions (2017-05-03). + * wireless/ieee802154: Starts work on setting PIB attributes. From + Anthony Merlino (2017-05-03). + * 6loWPAN: Fixes hang in loopback test (2017-05-03). + * drivers/wireless/bcmf: Fix frame not freed when dropped + cleanup. + From Simon Piriou (2017-05-03). + * STM32L4: stm32l4_i2c: Change wrong macro to CONFIG_I2C_POLLED. From + Juha Niskanen (2017-05-04). + * STM32L4: modularize Kconfig to support different product + lines/families. This is modeled after STM32F7. Idea is to declare + each chip in Kconfig but allow for flash size override. Commit adds + many STM32L4_HAVE_XXX feature test macros. From Juha Niskanen + (2017-05-02). + * STM32L4: Changes needed for STM32L452 and Nucleo-L452RE board. GPIO + and UART seem similar across STMicro product matrix, so renamed files + accordingly. RCC is cloned just in case, while conflicting + differences there seem to be very minor. From Juha Niskanen + (2017-05-02). + * STM32L4: Flash: update override config macros and add + FLASH_CONFIG_B. From Juha Niskanen (2017-05-02). + * configs: Add nucleo-l452re board files. From Juha Niskanen + (2017-05-04). + * fixedmath: Add square root and b32_t conversion operators. From + Jussi Kivilinna (2017-05-04). + * Fix STM32F7 I2C interrupt handler. From Jussi Kivilinna (2017-05-04). + * STM32F7 serial: Allow configuring Rx DMA buffer size. From Jussi + Kivilinna (2017-05-04). + * 6loWPAN: Replace Rime address naming with more consistent + short/exended address terminology (2017-05-04). + * 6loWPAN: Remove all ieee802.15.4 MAC knowledge from 6loWPAN. Now + relies on wires/ieee802154 for all MAC-related operations (2017-05-04). + * 6loWPAN: Local address length is fixed by the configuration. The + remote address be with short or extended (2017-05-04). + * STM32L4: Separate SYSCFG into product line specific files for + clarity. From Juha Niskanen (2017-05-05). + * STM32L4: firewall for stm32l4x3xx. Not tested for any product + family, but now it at least compiles. L496 devices can have one bit + wider Volatile Data Segment. From Juha Niskanen (2017-05-05). + * STM32L4: Add more chips to Kconfig. This also removes + DPFPU/DTCM/ITCM features again, fixing a recent git history hickup. + From Juha Niskanen (2017-05-05). + * configs/nucleo-l496zg: Kconfig was copied from nucleo-144. Removed + as most options have not been tested. From Juha Niskanen (2017-05-05). + * nucleo-144: Default for choice in Kconfig was not one of the + possible choices (2017-05-05). + * Kinetis: Add TPM to K66 chip. From David Sidrane (2017-05-05). + * Kinetis: Fixed CLKSRC Bit Names. From David Sidrane (2017-05-05). + * Kinetis: Add OSC_DIV to the kinetis_osc header. From David Sidrane + (2017-05-05). + * Kinetis: Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock + configuration. From David Sidrane (2017-05-05). + * Kinetis: Added HW flow control and termios. From David Sidrane + (2017-05-05). + * wireless/ieee802154: Changes rxenable at radio layer. From Anthony + Merlino (2017-05-03). + * wireless/ieee802154: Finishes promiscuous mode IOCTL. From Anthony + Merlino (2017-05-03). + * wireless/ieee802154: Removes radio IOCTL. Starts bringing radio and + MAC closer with well-defined interface. From Anthony Merlino + (2017-05-05). + * STM32L4: Add support for many new MCUs from STM32L4X3XX product line + and Nucleo-L452 board. From Juha Niskanen (2017-05-05). + * 6loWPAN: Use information in struct ieee802154_data_ind_s when + reassembling a packet (2017-05-05). + * ieee 802.15.4: Add a pool-based memory allocator for RX frame + meta-data (2017-05-05). + * kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as + Open Drain. The output structure of the GPIO for I2C needs to be + open drain. When left at the default, one can observe on a scope the + slave contending with the push-pull during the ACK. From David + Sidrane (2017-05-05). + * wireless/ieee802154: Removes msdu_length from meta-data since it is + intrinsically in the IOB. From Anthony Merlino (2017-05-06). + * wireless/ieee802154: Reworks data_ind allocation to include IOB + allocation/deallocation. Hides private data. From Anthony Merlino + (2017-05-05). + * wireless/ieee802154: Completes Rx data flow through MAC layer to + callback. From Anthony Merlino (2017-05-06). + * Kinetis: Add ARCH_HAVE_I2CRESET. From David Sidrane (2017-05-06). + * Reworks data_ind allocation to include IOB allocation/deallocation. + Hides private data. From Anthony Merlino (2017-05-06). + * STM32: Serial Allow configuring Rx DMA buffer size. From David + Sidrane (2017-05-06). + * 6loWPAN: Minor cleanup and re-verification of all compression modes + after so many recent changes (2017-05-06). + * Update the C coding standard document (2017-05-06). + * IEEE 802.15.4 network driver. Remove support for multicast address + filtering; doesn't work that way on an IEEE 802.15.4 network + (2017-05-08). + * STM32: Serial DMA buffer round off not up. From David Sidrane + (2017-05-08). + * STM32 TIM: Add method to get timer width. Freerun timer: Use timer + width to get the correct clock rollover point (2017-05-08). + * wireless/ieee802154: Finishes MAC processing of received data frame. + From Anthony Merlino (2017-05-08). + * wireless/ieee802154: Finishes MAC char driver read functionality. + From Anthony Merlino (2017-05-08). + * wireless/ieee802154: MRF24J40: Finishes receive functionality, + supports promicuous mode, and rxonidle attributes. From Anthony + Merlino (2017-05-08). + * wireless/ieee802154: Completes basic receive functionality. From + Anthony Merlino (2017-05-08). + * Final fixes to get the nucleo-l432kc config build. Execution not + tested yet. From Sebastien Lorquet (2017-05-09). + * Adapt stm32l43x pin definitions. From Sebastien Lorquet (2017-05-09). + * More unbuilt stm32 -> stm32l4 changes. From Sebastien Lorquet + (2017-05-09). + * Restore settings for UARTs 4 and 5. From Sebastien Lorquet + (2017-05-09). + * IOBs: Move from driver/iob to a better location in mm/iob + (2017-05-09). + * STM32L4: Add dbgmcu header files. From Juha Niskanen (2017-05-09). + * wireless/ieee802154: Fixes missing handle of read/write being able to + be interrupted. From Anthony Merlino (2017-05-09). + * wireless/ieee802154: Starts implementing START.request primitive. + From Anthony Merlino (2017-05-09). + * drivers/serial: I discovered a problem in the file + drivers/serial/serial.c concerning the function uart_close(…). In the + case that a serial device is opened with the flag O_NONBLOCK the + function uart_close(…) blocks until all data in the buffer is + transmitted. The function close(…) called on an handle opened with + O_NONBLOCK should not block. The problem occurred with a CDC/ACM + device. From Stefan Kolb (2017-05-10). + * mtd/config: erase block between block read and write. From Juha + Niskanen (2017-05-10). + * Moved LIS3DSH from the I2C-dependent block to the SPI-block to make + Make.defs consistent with the driver (SPI only) and + drivers/sensors/Kconfig. From Floxx (2017-05-10). + * syslog: Add option to buffer SYSLOG output to avoid interleaving + (2017-05-10). + * syslog buffering: Use IOBs to buffer data, not an on-stack buffer + (2017-05-10). + * STM32L4: Add internal flash write support. From Juha Niskanen + (2017-05-11). + * When syslog message has addition characters after last new-line. With + buffering those now get lost as vsyslog does not flush output after + lib_sprintf. Additional trailing characters could be ANSI escape + sequence to reset state that message setups. For example, macro here + uses colors and resets state after actual message (including '\n'): + With flushing added to vsyslog, then there is problem that next + syslog line might come from other task before reset sequence, causing + wrong line getting color. This could be avoided by not flushing on + '\n' but only if IOB is full and/or at end of vsyslog. Would this + make sense?. From Jussi Kivilinna (2017-05-11). + * Syslog: Need inclusion of errno.h for fix building with + CONFIG_SYSLOG_TIMESTMAP=y (2017-05-11). + * mtd: Build RAMTRON and AT45DB drivers only if selected. From Juha + Niskanen (2017-05-11). + * mtd/config: Fix byte read interface test. From Juha Niskanen + (2017-05-11). + * mtd: Fix some unallocated and NULL pointer issues. rwb->wrflush and + rwb->wrmaxblocks in rwbuffer could get unallocated values from + ftl_initialize() in some configurations. Also fixes related assert: + + up_assert: Assertion failed at file:rwbuffer.c line: 643 + + that can happen with the following configuration: + + CONFIG_FTL_WRITEBUFFER=y + CONFIG_DRVR_WRITEBUFFER=y + # CONFIG_FS_WRITABLE is not set + + These problems are caused by CONFIG variable differences between the + buffer layers. TODO: This is not a perfect solution. readahead + support has similar issues. From Juha Niskanen (2017-05-11). + * STM32L4: port stm32l4_serial_get_uart function from STM32F7. From + Juha Niskanen (2017-05-12). + * syslog: Avoid flushing syslog_stream buffer, if possible, until + lib_vsprintf() completely parses the format. This assures that the + flush will flush the entire output, even data that may potentially + follow the linefeed. And, in that case, it cannot be interleaved + with other devug output. Suggested by Jussi Kivilinna (2017-05-12). + * syslog: There is yet another place where the output can get split. + That is in syslog_dev_write(): It will break up the stream to insert + a CR before the LF. This can that can be avoid be generating the + CR-LF sequence in the buffer and then detecting and ignoring valid + CR-LF sequences, rather than expecting syslog_dev_write() to insert + the CR in this case. I don't like the idea that syslog_dev_write() + still scans the entire output buffer to expand CR-LF sequence. This + seems really wasteful, especially in this case where we can be sure + that the is no CR or LF without a matching LF or CR. Bu, I think, + the existing behavior in syslog_dev_write() must be retained because + it is needed in other contexts (2017-05-12). + * Bitbucket Issue 47: Some of last syslog changes needed to be + condition on #ifdef CONFIG_SYSLOG_BUFFER in order to be built without + syslog buffering enabled (2017-05-12). + * Move CAN subsystem to its own directory and put device drivers + there. From Alan Carvalho de Assis (2017-05-12). + * locale.h: Add a bogus definition of locale_t. From (2017-05-12). + * kinetis K66: Fixed TMP2_CH1 definition. From David Sidrane + (2017-05-12). + * kinetis K66: Define ALT1 to match ref manual. From David Sidrane + (2017-05-12). + * kinetis K66: GPIO and pin mux cleanup. From David Sidrane + (2017-05-13). + * STM32F410: Add support for STM32F410. STM32F410 is a version of + STM32F4 with 32 KB of RAM and 62 or 128 KB of flash. From Gwenhael + Goavec-Merou (2017-05-13). + * Kconfig/deconfigs: Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that + the toolchain is based on GNU gcc/as/ld. This is in addition to the + CPU-specific versions of the same definition (2017-05-13). + * Remove CONFIG_ARM_TOOLCHAIN_GNU; replace with + CONFIG_ARCH_TOOLCHAIN_GNU (2017-05-13). + * Tiva I2C: Correct an error in conditional compilation (2017-05-13). + * Kconfig: Rename CONFIG_ARM_TOOLCHAIN_IAR to + CONFIG_ARCH_TOOLCHAIN_IAR (2017-05-13). + * Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h + to apps/include/platform/cxxinitialize.h (2017-05-13). + * libc/wchar: Versions mbrlen and mbsrtowcs taken and adapted from + FreeBSD code (at https://github.com/freebsd/freebsd/). From Matias + v01d (2017-05-13). + * tcp: wait for 3-Way Handshare before accept() returns. From Simon + Piriou (2017-05-14). + * configs/photon/wlan: disable network logs and add nsh over telnet. + From Simon Piriou (2017-05-14). + * TCP: Send RST if applicaiton 'unlistens()' before we complete the + connection sequence (2017-05-14). + * drivers: fix some bad NULL checks. From Juha Niskanen (2017-05-15). + * drivers: rename newly introduced up_i2creset to I2C_RESET. From + Juha Niskanen (2017-05-15). + * TCP: An RST received during the 3-way handshake requires a little + more clean-up (2017-05-15). + * STM32 CAN: I had the problem that the transmit FIFO size (= actual + elements in FIFO) was slowly increasing over time, and was full after + a few hours. The reason was that the code hit the line + "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so + can_xmit thinks it has sent the packet to the hardware, but actually + has not. Therefore the transmit interrupt never happens which would + call can_txdone, and so the size of the FIFO size does not decrease. + The reason why the code actually hit the mentioned line above, is + because stm32can_txready uses a different (incomplete) condition than + stm32can_send to determine if the mailbox can be used for sending, + and thus can_xmit forwards the packet to stm32can_send. + stm32can_txready considered mailboxes OK for sending if the mailbox + was empty, but did not consider that mailboxes may not yet be used if + the request completed bit is set - stm32can_txinterrupt has to + process these mailboxes first. Note that I have also modified + stm32can_txinterrupt - I removed the if condition, because the CAN + controller retries to send the packet until it succeeds. Also if the + condition would not evaluate to true, can_txdone would not be called + and the FIFO size would not decrease also. From Lederhilger Martin + (2017-05-16). + * drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY + for DIOC_GETPRIV command. It should returns OK if DIOC_GETPRIV + command succeeds. From EunBong Song (2017-05-16). + * There can be a failure in IOB allocation to some asynchronous + behavior caused by the use of sem_post(). Consider this scenario: + (1) Task A holds an IOB.  There are no further IOBs.  The value of + semcount is zero. Task B calls iob_alloc().  Since there are not + IOBs, it calls sem_wait().  The value of semcount is now -1. (2) + Task A frees the IOB.  iob_free() adds the IOB to the free list and + calls sem_post() this makes Task B ready to run and sets semcount to + zero NOT 1.  There is one IOB in the free list and semcount is zero. + When Task B wakes up it would increment the sem_count back to the + correct value. (3) But an interrupt or another task runs occurs + before Task B executes.  The interrupt or other tak takes the IOB off + of the free list and decrements the semcount.  But since semcount is + then < 0, this causes the assertion because that is an invalid state + in the interrupt handler. So I think that the root cause is that + there the asynchrony between incrementing the semcount. This change + separates the list of IOBs: Currently there is only a free list of + IOBs. The problem, I believe, is because of asynchronies due + sem_post() post cause the semcount and the list content to become out + of sync. This change adds a new 'committed' list: When there is a + task waiting for an IOB, it will go into the committed list rather + than the free list before the semaphore is posted. On the waiting + side, when awakened from the semaphore wait, it will expect to find + its IOB in the committed list, rather than free list. In this way, + the content of the free list and the value of the semaphore count + always remain in sync (2017-05-16). + * stm32_serial: Fix freezing serial port. Serial interrupt + enable/disable functions do not disable interrupts and can freeze + device when serial interrupt is received while execution is at those + functions. Trivially triggered with two or more threads write to + regular syslog stream and to emergency stream. In this case, freeze + happens because of mismatch of priv->ie (TXEIE == 0) and actually + enabled interrupts in USART registers (TXEIE == 1), which leads to + unhandled TXE interrupt and causes interrupt storm for USART. From + Jussi Kivilinna (2017-05-17). + * STM32 Ethernet: Add support for KSZ8081 PHY interrupts. From + Sebastien Lorquet (2017-05-17). + * IPv6: Fix net_ipv6_pref2mask(). From Masayuki Ishikawa (2017-05-18). + * net procfs: Fix buffer corruption and refactor netdev_statistics.c. + From Masayuki Ishikawa (2017-05-19). + * binfmt: Fix .dtor memory allocation. From Masayuki Ishikawa + (2017-05-19). + * stm32_i2c: make private symbols static. From Juha Niskanen + (2017-05-19). + * network IOCTL commands: The only place in net/netdev/netdev_ioctl.c + where the interface state should change is for SIOCSIFFLAGS. The + other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR .. should not + change the link state. From Sebastien Lorquet (2017-05-19). + * drivers/wireless/ieee80211: Add support for AP scanning. From Simon + Piriou (2017-05-21). + * drivers/audio: Add cs43l22 audio driver STM32F4: Add i2s driver. + From Taras Drozdovsky (2017-05-21). + * This is based on a patch by Taras Drozdovsky. Basically, the delay + that was added during the integration of the CDC/ACM host driver was + interfering with streaming audio. That delay was put there to + prevent build endpoints from hogging the system bandwidth. So what + do we do? Do we hog the bandwidth or do we insert arbitrarity + delays. I think both ideas such (2017-05-21). + * Replace sprintf() with snprintf() in pipe.c. From Nobutaka Toyoshima + (2017-05-22). + * drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c. From Masayuki + Ishikawa (2017-05-22). + * FAT: Fix 'Missing unlock' in fs_fat32.c. From Masayuki Ishikawa + (2017-05-22). + * netdb: Fix time info in lib_dnscache.c. From Masayuki Ishikawa + (2017-05-23). + * STM32L4: Add IWDG peripheral. This is the same as for STM32 except + that prescale and reload can be changed after watchdog has been + started, as this seems to work on L4. From Juha Niskanen (2017-05-23). + * drivers/can: Add Microchip MCP2515 CAN Bus controller driver. From + Alan Carvalho de Assis (2017-05-23). + * button_upper: Fix interrupt enabling for poll-events. From Jussi + Kivilinna (2017-05-24). + * netdb: Fix bugs in lib_gethostbynamer.c. This fix sets h_name in + struct hostent returned by gethostbyname(). From Masayuki Ishikawa + (2017-05-25). + * TCP: Fix tcp_findlistner() in dual stack mode. From Masayuki + Ishikawa (2017-05-25). + * TCP: tcp_input() now receives IP domain as an input parameter vs. + deriving from the IP header length (2017-05-25). + * Kinetis ADC: Various corrections and updates. From David Sidrane + (2017-05-25). + * drivers/lcd: Add driver for Nokia 5110 (Philips PCD8544). From Alan + Carvalho de Assis (2017-05-26). + * configs/stm32f103-miniumum: Add board support to use the Nokia 5110 + LCD display driver. From Alan Carvalho de Assis (2017-05-26). + * configs/pic32mx7mmb: Add support for the Pinquino toolchain + (2017-05-27). + * configs/pic32mx7mmb: Repartition files to match newer + configurations. Add support for PROCFS file system. Default is now + Pinguino toolchain. Verify networking (2017-05-27). + * pthread_trylock: Fixes a problem in pthread_trylock() noted by + initialkjc@yahoo.com. When CONFIG_PTHREAD_MUTEX_UNSAFE=y, the + special return value EAGAIN was not being detected due to differences + in reporting of returned values (2017-05-29). + * vfs: fdopen: Add missing file stream flags clearing. Clear file + stream structure regardless of config options. Structure clearing is + needed as previous use of stream list entry might leave fs_flags + set. From Harri Luhtala (2017-05-31). + * drivers/input: Add Cypress MBR3108 CapSense touch button driver. + From Juha Niskanen (2017-05-31). + * STM32L4: gpio: put back EXTI line source selection. From Juha + Niskanen (2017-05-31). + * mtd/smart: Fix use of uninitialized variable. From Jussi Kivilinna + (2017-05-31). + * drivers/mtd/w25.c: Erase sector only if it is not in erased state. + From Jussi Kivilinna (2017-05-31). + * stm32f7: Add SPI DMA support. From Jussi Kivilinna (2017-05-31). + * drivers/mtd/w25.c: Enable short delay after sector/chip erase. From + Jussi Kivilinna (2017-05-31). + * pthread robust mutexes: Fix memmory trashing problem: the main task + may also use mutexes; need to check thread type before accessing + pthread-specific mutex data structures. Problem noted by Jussi + Kivilinna (2017-05-31). + * STM32L4 RTC: store RTC MAGIC to backup reg, not to address zero. + From Juha Niskanen (2017-06-01). + * drivers/{sensors,usbmisc}: Fix uninitialized I2C frequency. From + Juha Niskanen (2017-06-01). + * mtd/config: Add some error checks for I/O errors. From Juha + Niskanen (2017-06-01). + * pthread mutex: Remove bogus DEBUGASSERT. Problem noted by Jussi + Kivilinna (2017-06-01). + * Tiva SSI: Resolves issue 52 'Copy-Paste error in + tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev + (2017-06-01). + * nucleo-f4x1re User LEDS: Issue #51 reports compilation problems with + stm32_userled.c. Reported by Gappi92 (2017-06-01). + * tools/: Add initialconfig.c so that perhaps in the future we will be + able to use this to generate a new configuration from scratch (rather + than having to derive new configurations from existing + configurations). NOTE: Not yet intregated into the build system + (2017-06-02). + +7.22 2017-xx-xx Gregory Nutt diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1491d3b2fe..2fe4d5a538 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: March 8, 2017

+

Last Updated: June 5, 2017

@@ -317,7 +317,7 @@

-

  • POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, cancellation points, environment variables, filesystem.
  • +
  • POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, robust mutexes, cancellation points, environment variables, filesystem.
  • @@ -772,6 +772,14 @@

    + +
    + +

    +

  • User space stacks.
  • +

    + +
    @@ -792,7 +800,23 @@

    -

  • DNS name resolution.
  • +
  • DNS name resolution / NetDB
  • +

    + + + +
    + +

    +

  • IEEE 802.11 FullMac
  • +

    + + + +
    + +

    +

  • IEEE 802.15.4 MAC + 6loWPAN
  • @@ -1339,11 +1363,11 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.20. - NuttX 7.20 is the 120th release of NuttX. - It was released on March 8, 2016, and is available for download from the + The current release is NuttX 7.21. + NuttX 7.21 is the 121st release of NuttX. + It was released on June 5, 2016, and is available for download from the Bitbucket.org website. - Note that the release consists of two tarballs: nuttx-7.20.tar.gz and apps-7.20.tar.gz. + Note that the release consists of two tarballs: nuttx-7.21.tar.gz and apps-7.21.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

    @@ -1352,7 +1376,7 @@ +
  • Infineon + +
  • Intel
  • STMicroelectronics (Continued)
      +
    • STMicro STM32F4x1 (STM32 F4 family, ARM Cortex-M4)
    • +
    • STMicro STM32F410 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32F407x (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 F427/F437 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 F429 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 F446 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 F46xx (STM32 F4 family, ARM Cortex-M4)
    • +
    • STMicro STM32 L4x2 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 L476 (STM32 F4 family, ARM Cortex-M4)
    • +
    • STMicro STM32 L496 (STM32 F4 family, ARM Cortex-M4)
    • STMicro STM32 F745/F746 (STM32 F7 family, ARM Cortex-M7)
    • STMicro STM32 F756 (STM32 F7 family, ARM Cortex-M7)
    • STMicro STM32 F76xx/F77xx (STM32 F7 family, ARM Cortex-M7)
    • @@ -2792,7 +2825,7 @@ nsh>

        - The STM32L-Discovery and 32L152CDISCOVERY kits are functionally equivalent. + The STM32L-Discovery and STM32L152C DISCOVERY kits are functionally equivalent. The difference is the internal Flash memory size (STM32L152RBT6 with 128 Kbytes or STM32L152RCT6 with 256 Kbytes). Both boards feature:

        @@ -2807,6 +2840,7 @@ nsh>

        STATUS. Initial support for the STM32L-Discovery was released in NuttX-6.28. + Addition (architecture-only) support for the STM32L152xC family was added in NuttX-7.21. This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. @@ -2855,6 +2889,44 @@ nsh>

        + + +
        +
        + + +
        + +

        + STMicro STM32F0xx (STM32 F0, ARM Cortex-M0). + Support for the STM32 F0 family was contributed by Alan Carvalho de Assis in NuttX-7.21. + There are ports to three different boards in this respository: +

        +
          +
        • + STM32F0-Discovery + This board features the STM32 2F051R8 and was used by Alan to produce the initial STM32 F0 port. + However, its very limited 8KB SRAM makes this port unsuitable for for usages. + Contributed by Alan Carvalho de Assis in NuttX-7.21. +
        • +
        • + Nucleo-F072RB + With 16KB of SRAM the STM32 F072RB makes a much more usable platform. +
        • +
        • + Nucleo-F091RC + With 32KB of SRAM the STM32 F091RC this board is a great match for NuttX. + Contributed by Juha Niskanen in NuttX-7.21. +
        • +
        +

        STATUS: + In this initial release, the level of support for the STM32 F0 family is minimal. + Certainly enough is in place to support a robust NSH configuration. + There are also unverified I2C and USB device drivers available in NuttX-7.21. +

        + + +

        @@ -3176,11 +3248,18 @@ nsh>

        STMicro STM32F205 (STM32 F2 family). - Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10 + Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10. +

        +

        + Particle.io Phone. + Support for the Particle.io Photon board was contributed by Simon Pirious in NuttX-7.21. + The Photon board features the STM32F205RG MCU. + The STM32F205RG is a 120 MHz Cortex-M3 operation with 1Mbit Flash memory and 128kbytes. + The board port includes support for the on-board Broadcom BCM43362 WiFi and fully usable FullMac network support.

          STATUS: - There are currently on board configurations for any board using the STM32F205. + In addition to the above-mention WiFI support, the Photon board support includes buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations available for nsh, usbnsh, and wlan configurations. See the Photon https://bitbucket.org/nuttx/nuttx/src/master/configs/photon/README.txt" target="_blank">README file for additional information. @@ -3481,6 +3560,26 @@ nsh> ARM Cortex-M4. + + +
          + +

          + Infineon XMC45xx. + An initial but still incomplete port to the XMC4500 Relax board was released with NuttX-7.21 (although it is not really ready for prime time). + Much is functional but there are still some issues with the output to the NSH serial console. +

          +

          + This initial porting effort uses the Infineon XMC4500 Relax v1 board as described on the manufacturer's website. + The current status of the board is available in the board README file +

          + + + + +
          +
          +
          @@ -3499,6 +3598,7 @@ nsh>
        +

        @@ -3711,6 +3811,7 @@ nsh>

        +

        @@ -3719,26 +3820,53 @@ nsh>

        - STMicro STM32401x (STM32 F4 family). + STMicro STM324x1 (STM32 F4 family).

          Nucleo F401RE. - This port uses the STMicro Nucleo F401RE board featuring the STM32F104RE MCU. - Refer to the STMicro web site for further information about this board. + This port uses the STMicro Nucleo F401RE board featuring the STM32F401RE MCU. + Refer to the STMicro web site for further information about this board. +

          +

          + Nucleo F411RE. + This port uses the STMicro Nucleo F411RE board featuring the STM32F411RE MCU. + Refer to the STMicro web site for further information about this board.

          STATUS:

          • NuttX-7.2 The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett. +
          • +
          • NuttX-7.6 + The basic port for STMicro Nucleo F401RE board was added by Serg Podtynnyi. +
          • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

          + + +
          +
          + + +
          + +

          + STMicro STM32410 (STM32 F4 family). +

          +

            +

            + Architecture-only support was contributed to NuttX-7.21 by Gwenhael Goavec-Merou. +

            + + +

            @@ -3867,6 +3995,20 @@ nsh> Support for the Olimex STM32 P407 development board appeared in NuttX-7.19. See the NuttX board README file for further information about the NuttX port.

            +

            + MikroElektronika Clicker2 for STM32. + This is yet another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board. + This board has been used primarily with the MRF24J40 Click board for the development of IEEE 802.15.4 MAC and 6loWPAN support. +

            + See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port. +

            +
              +

              + STATUS: + The basic port for the Clicker2 STM32 was contributed by Anthony Merlino and was first released in NuttX-7.21. + All compatible drivers for the STM32 F4 family may be used with this board as well. +

              +
            @@ -4041,6 +4183,61 @@ nsh> + +
            +
            + + +
            + +

            + STMicro STM32 L4x2. + Architecture support for STM32 L4x2 family was contributed by Juha Niskanen in NuttX-7.21. + Two boards are currently supported. +

            +
              +
            • +

              + Nucleo-L432KC. + Board support for the STMicro Nucleo-L432KC board from ST Micro was contributed by JSebastien Lorquet in NuttX-7.21. See the STMicro website and the board README file for further information. +

              +
            • +
            • +

              + Nucleo-L452RE. + Board support for the STMicro Nucleo-L452RE board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the STMicro website and the board README file for further information. +

              +
            • +
            +

            + See also the status above for the STM32 L476 most of which also applies to these parts. +

            + + + + +
            +
            + + +
            + +

            + STMicro STM32 L496. + Architecture support for STM32 L496 was contributed by Juha Niskanen along with board support for the Nucleo-L496ZG in NuttX-7.21: +

            +
              +
            • +

              + Nucleo-L496ZG. + Board support for the STMicro Nucleo-L496ZG board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the STMicro website and the board README file for further information. + See also the status above for the STM32 L476 most of which also applies to this part. +

              +
            • +
            + + +

            diff --git a/ReleaseNotes b/ReleaseNotes index b15cf3cd68..ee3b1e2418 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -2025,7 +2025,7 @@ standard I/O buffer flushing. See the ChangeLog for further details. NuttX-6.4 --------- -The 71st release of NuttX, Version 6.4, was made on June 6, 2011 +The 71st release of NuttX, Version 6.4, was made on June 5, 2011 and is available for download from the SourceForge website. The 6.4 release includes several new features: @@ -13546,3 +13546,991 @@ detailed bugfix information): - In apps/examples/mtdpart/mtdpart_main.c where CONFIG_EXAMPLES_MTDPART_NPARTITIONS defining is checked should be #ifndef instead of #ifdef. Noted by Oleg Evseev. + +NuttX-7.21 Release Notes +------------------------ + +The 121st release of NuttX, Version 7.21, was made on June 6, 2017, +and is available for download from the Bitbucket.org website. Note +that release consists of two tarballs: nuttx-7.21.tar.gz and +apps-7.21.tar.gz. These are available from: + + https://bitbucket.org/nuttx/nuttx/downloads + https://bitbucket.org/nuttx/apps/downloads + +Both may be needed (see the top-level nuttx/README.txt file for build +information). + +Additional new features and extended functionality: + + * Core OS: + + - pthread rwlocks: Add an implementation for read/write locks + (rwlocks) into the pthread library. These locks are writer + priority, such that if any writers come in they are given priority + for writing. From Mark Schulte. + - pthread robust mutexes: Implement robust mutex support: + pthread_mutex_lock() and trylock() will return EOWNERDEAD if the + mutex is locked by a thread that no longer exists. Add + pthread_mutex_consistent() to recover from this situation. Keep + list of all mutexes held by a thread in a list in the pthread's TCB. + When pthread exits or is cancelled, mutexes held by thread are + marked inconsistent and the highest priority thread waiting for the + mutex is awakened. There is a configuration option to (a) support + only robust mutexes, (b) support only traditional unsafe mutexes, + or (c) Support both unsafe and robust mutexes via + pthread_mutexattr_get/setrobust(). + - pthread cancellation points: Add logic to disable cancellation + points within the OS. This is useful when an internal OS function + that is NOT a cancellation point calls an OS function which is a + cancellation point. In that case, irrecoverable states may occur if + the cancellation is within the OS. From Juha Niskanen. + - clock: Add clock_resynchronize and use subseconds RTC. Add + clock_resynchronize for better synchronization of CLOCK_REALTIME and + CLOCK_MONOTONIC to match RTC after resume from low-power state. Add + up_rtc_getdatetime_with_subseconds under + CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and + resynchronizing) system clock with subseconds accuracy RTC. From + Jussi Kivilinna. + - clock: Add new type ssystime_t for relative 64-bit ticks, change + ticks<->time conversion functions to use ssystime_t. From Jussi + Kivilinna. + - clock: Add testing for 32-bit overflow of 64-bit system timer. From + Jussi Kivilinna. + + * File Systems/Block and MTD Drivers + + - drivers/mtd/w25.c: Erase sector only if it is not in erased state. + From Jussi Kivilinna. + + * Graphics/Display Drivers: + + - drivers/lcd: Extend st7565 driver to include support for the + AQM_1248A. From Masayuki Ishikawa. + - drivers/lcd: Add driver for Nokia 5110 (Philips PCD8544). From Alan + Carvalho de Assis. + + * Networking/Network Drivers: + + - Extensive modifications to support wireless network (see below). + - TUN driver: Implement TAP (OSI layer 2) mode. Enable by setting the + IFF_TAP flag instead of the IFF_TUN flag in ifr_flags. From Thomas + Keh. + - Add user-space networking stack API (usrsock). User-space + networking stack API allows user-space daemon to provide TCP/IP + stack implementation for NuttX network. Main use for this is to + allow use and seamless integration of HW-provided TCP/IP stacks to + NuttX. For example, user-space daemon can translate /dev/usrsock + API requests to HW TCP/IP API requests while rest of the user-space + can access standard socket API, with socket descriptors that can be + used with NuttX system calls. From Jussi Kivilinna. + - net/: Network driver now retains Ethernet MAC address in a union so + that other link layer addresses may be used in a MULTILINK + environment. + + * Wireless Networking/Wireless Drivers: + + - BCM43362: Support for Broadcom's BCM43362 WiFi chip was contributed + by Simon Piriou as part of the port of the Particle Photon board. + Only station functionality is available at present. This work + includes not on the WiFi driver, but the support Particle Photon + board, the infrasture for IEEE 802.11 FullMAC networking including + the network device interface, WiFi configuration, AP scanning and + authentication and association with an AP. + - IEEE 802.11 networking tools and support. + - IEEE 802.15.4 MAC support. This is an effort that was started some + time back by Sebastien Lorquet (with some help from Matte Poppe). + Recently, Anthony Merlino has taken on this effort and has made + some significant progress. Using the Microchip MRF24J40 module with + the Mikroe Clicker2-STM32 board along with a PC-based IEEE 802.15.4 + sniffer, Anthonly has verified correct transmittion and receipt of + basic frames. + - Microchip MRF24J40: As mentioned above, this IEEE 802.15.4 radio + driver is now basically functional. + - IEEE 802.15.4 Network Driver: A driver that interfaces the NuttX + network with the IEEE 802.15.4 MAC has been developed but is still + incomplete and has not been verified. + - IEEE 802.15.4 Network Loopback Driver: A simple IEEE 802.15.4 MAC + loopback driver was developed. This driver allowed for parallel + development of the IEEE 802.15.4 MAC and 6loWPAN. + - 6loWPAN: The Contiki 6loWPAN stack has been ported so that works + within the NuttX networking framework and interfaces with the new + IEEE 802.15.4 MAC via the network driver. Live testing with + IEEE 802.15.4 radios has not yet been done; all testing has used + the loopback driver. There are no known problems and the stack + is ready for additional testing. + - Add option to enable wireless debug output. + + * Other Common Device Drivers: + + - Add entropy pool and strong random number generator. Entropy pool + gathers environmental noise from device drivers, user-space, etc., + and returns good random numbers, suitable for cryptographic use. + Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm + for CSPRNG output. Patch also adds /dev/urandom support for using + entropy pool RNG and new 'getrandom' system call for getting + randomness without file-descriptor usage (thus avoiding file- + descriptor exhaustion attacks). The 'getrandom' interface is similar + as 'getentropy' and 'getrandom' available on OpenBSD and Linux + respectively. From Jussi Kivilinna. + - XBox One controller: Adds USB host driver support for the XBox One + controller. Currently only the latest version (XBox One X) + controller works. The older XBox One controllers do not enumerate + correctly. From Brian Webb. + - drivers/analog: Add basic COMP driver. From Mateusz Szafoni. + - drivers/analog: Add driver for the LTC1767L ADC. From Martin + Lederhilger. + - drivers/analog: Add basic OPAMP driver. From Mateusz Szafoni. + - drivers/sensors: Add driver for ST HTS221 humidity sensor. From + Juha Niskanen. + - drivers/sensors: Add driver for ST LPS25H pressure sensor. From + Juha Niskanen. + - drivers/sensors: Add driver for ST LIS2DH accelerometer. From Timo + Voutilainen. + - drivers/usbmisc: Add driver for Fairchild FUSB301 USB type-C + controller. From Harri Luhtala. + - RTC: Add interface for check if RTC time has been set. New + interface allows checking if RTC time has been set. This allows to + application to detect if RTC has valid time (after reset) or should + application attempt to get real time by other means (for example, by + launching ntpclient or GPS). From Jussi Kivilinna. + - Buttons: Change return value of board_buttons() and the type of + btn_buttonset_t to uint32_t so that more than 8 buttons can be + supported. + - drivers/syslog: Use monotonic clock for timestamp when available. + From Jussi Kivilinna. + - SPI: Add an instance argument to the SPIDEV definitions. Thus, + instead of specifying a FLASH device, for example, as SPI_FLASH, you + would now use SPI_FLASH(0) where the "instance" argument now + distinguishes multiple FLASH devices on the same SPI bus. From + Sebastien Lorquet. + - IOBs: Move from net/iob to a better location in mm/iob where they + can be shared outside of the networking logic. Current also used + by IEEE 802.15.4 MAC and by syslog (when buffering enabled). + - syslog: Add option to buffer SYSLOG output to avoid interleaving. + Uses new shareable IOBs. Additional logic to assure that the the + write from the buffer is a single atomic write in normal debug + output. + - drivers/can: Move CAN subsystem to its own directory and put device + drivers there. From Alan Carvalho de Assis. + - drivers/can: Add Microchip MCP2515 CAN Bus controller driver. From + Alan Carvalho de Assis. + - drivers/audio: Add cs43l22 audio driver. From Taras Drozdovsky. + - drivers/input: Add Cypress MBR3108 CapSense touch button driver. + From Juha Niskanen. + + * Simulation + + - configs/sim/sixlowpan: Configuration for testing the 6loWPAN with + the IEEE 802.15.4 loopback network driver. + + * Infineon XMC4xxx: + + - arch/arm/src/xmc4: Initial, partial support for Infineon XMC4xxx. + + * Infineon XMC4xxx Boards: + + - XMC4500 Relax: Add basic board support infrastructure of Infineon + XMC4500 Relax Lite v1. Basic serial, LED, and button button support + for a simple NSH configuration. There are still stome remaining + issues with serial communications. + + * MicroChip PIC32MX Boards: + + - pic32mx7mmb: Add support for the Pinquino toolchain. + - pic32mx7mmb: Add support for PROCFS file system. + + * NXP Freescale Kinetis: + + - Kinetis: Allow board to add pullups on SDHC lines. From David + Sidrane. + - Kinetis: Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock + configuration. From David Sidrane. + + * NXP Freescale Kinetis Drivers: + + - Kinetis: Add Timer PWM Module (TPM) to K66 chip. From David + Sidrane. + - Kinetis: Added HW flow control and termios. From David Sidrane. + - Kinetis: Add ARCH_HAVE_I2CRESET. From David Sidrane. + + * NXP Freescale LPC43xx: + + - Add support for LPC4337FET256. From Andreas Bihlmaier. + + * STMicro STM32: + + - Change STM32 tickless to use only one timer. From Konstantin + Berezenko. + - STM32 F7: Add support for LSE RTC and enable RTC subseconds. From + Jussi Kivilinna. + - STM32 L1: stm32l15xx_rcc: Add support for using MSI as system + clock. From Juha Niskanen. + - STM32 L1: stm32l15xxx_rcc: configure medium performance voltage + range and zero wait-state when allowed by SYSCLK setting. Zero + wait-state for flash can be configured when: (1) Range 1 and + SYSCLK <= 16 Mhz, (2) Range 2 and SYSCLK <= 8 Mhz, or (3) Range 3 + and SYSCLK <= 4.2 Mhz. Medium performance voltage range (1.5V) + can be configured when SYSCLK is up to 16 Mhz and PLLVCO up to + 48 Mhz. From Juha Niskanen. + - STM32 F0: Add basic support for STM32F0. From Alan Carvalho de + Assis. + - STM32 F0: Add basic support for STM32F07x family. + - STM32 L1: stm32l15xx_rcc: Allow board to configure HSE clock in + bypass-mode. Allows using MCO output from ST-link chip (on Nucleo + and Discovery boards) as HSE input. From Juha Niskanen. + - STM32 L1: Add support for STM32L152CC, STM32L152RC and STM32L152VC. + From Juha Niskanen. + - STM32 F0: Add support for HSI48. + - STM32 L4: Add support for the STM32L496XX family. From Juha + Niskanen. + - STM32 L4: modularize Kconfig to support different product + lines/families. This is modeled after STM32F7. Idea is to declare + each chip in Kconfig but allow for flash size override. Commit adds + many STM32L4_HAVE_XXX feature test macros. From Juha Niskanen. + - STM32 L4: Separate SYSCFG into product line specific files for + clarity. From Juha Niskanen. + - STM32 L4: Add support for many new MCUs from the STM32L4X3XX + product line. From Juha Niskanen. + - STM32 L4: Add dbgmcu header files. From Juha Niskanen. + - STM32 F410: Add support for STM32F410. STM32F410 is a version of + STM32F4 with 32 KB of RAM and 62 or 128 KB of flash. From Gwenhael + Goavec-Merou. + + * STMicro STM32 Drivers: + + - SDIO: Extensions to support the SDIO interface to the BCM43362 from + Simon Piriou. + - STM32 F2: Add USB OTG HS support for stm32f20xxx cores. From Simon + Piriou. + - STM32 F2, F4, and F7: Add BOARD_DISABLE_USBOTG_HSULPI flag. From + Simon Piriou. + - STM32 F33: Move DMA logic to a separate files + add ADC support. + From Mateusz Szafoni. + - STM32 F3: Add COMP support. From Mateusz Szafoni. + - STM32 F33: Support for COMP character driver. From Mateusz Szafoni. + - STM32 F4: Implement DMA support for the STM32F4 I2C. From rg. + - STM32 F7: Add stm32 RNG support. This is copied from stm32l4. + Tested on STM32F746ZG board. From Juha Niskanen. + - STM32 L1: Add STM32L162VE to chip.h. From Juha Niskanen. + - STM32 F4: Add I2C3 SDA pin mapping for STM32F411. From no1wudi. + - STM32 L1: stm32_flash: Add EEPROM writing for STM32L15XX. From + Juha Niskanen. + - STM32 F7: Serial: Add interface to get uart_dev_t by USART number, + stm32_serial_get_uart. From Jussi Kivilinna. + - STM32 F4: Provide TIM5 definition for STM32F429. From Matias v01d. + - STM32 F0: Add an untested port of the F1 USB device to the STM32F0. + - STM32 F0: Add support for the STM32F09X family. From Juha + Niskanen. + - STM32 F0: Initial cut at I2C driver. Still a work in progress. + From Alan Carvalho de Assis. + - STM32 F33: Add OPAMP support. From Mateusz Szafoni. + - STM32 L4: stm32l4_i2c: Add I2C4 code. From Juha Niskanen. + - STM32 L4: Add GPIO_PORTI definition. From Juha Niskanen. + - STM32 F7 Serial: Allow configuring Rx DMA buffer size. From Jussi + Kivilinna. + - STM32 L4: Firewall for stm32l4x3xx. Not tested for any product + family, but now it at least compiles. L496 devices can have one bit + wider Volatile Data Segment. From Juha Niskanen. + - STM32 TIM: Add method to get timer width. Freerun timer: Use timer + width to get the correct clock rollover point. + - STM32 L4: Add internal flash write support. From Juha Niskanen. + - STM32 L4: Port stm32l4_serial_get_uart function from STM32F7. From + Juha Niskanen. + - STM32 Ethernet: Add support for KSZ8081 PHY interrupts. From + Sebastien Lorquet. + - STM32 F4: Add i2s driver. From Taras Drozdovsky. + - STM32 L4: Add IWDG peripheral. This is the same as for STM32 + except that prescale and reload can be changed after watchdog has + been started, as this seems to work on L4. From Juha Niskanen. + - STM32 F7: Add SPI DMA support. From Jussi Kivilinna. + + * STMicro STM32 Boards: + + - Support for the Particle Photon board was contributed by Simon + Piriou. The Photon board is based on a STM32F205G MCU with and on- + board BCM43362 WiFi chip that interfaces via the STM32's SDIO + interface. Board configuration support includes, in addition, + buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations + available for nsh, usbnsh, and wlan configurations. + - Clicker2-STM32: Support for the Mikroelektronika Clicker 2 for + STM32 was added by Anthony Merlino. This board, along with the + MRF24J40 Click board is the platform used to deveop the IEEE + 802.15.4 support. The boad configuration includes the MRF24J40 + intialization logic and SPI support. Configurations exist for nsh, + knsh, usbnsh, and mrf24j40-radio. + - Nucleo_F334R8: Add ADC example. From Mateusz Szafoni. + - Nucleo-F334R8: Add COMP support. From Mateusz Szafoni. + - Nucleo-F334R8: Use new COMP driver. From Mateusz Szafoni. + - Adds USB host support to stm32f411-disco board. From Brian Webb. + - Add stm32f0discovery board support. From Alan Carvalho de Assis. + - Nucleo-F072RB: Add board configuration. + - Nucleo-F334R8: Add OPAMP support. From Mateusz Szafoni. + - Nucleo-F072RB: Add support for the I2C driver used by I2C tools. + - Nucleo-L496ZG: Add nucleo-l496zg board files. From Juha Niskanen. + - Nucleo-F091RC: Add nucleo-f091rc board files. From Juha Niskanen. + - Nucleo-L432KC: Add nucleo-l432kc board files. From Sebastien + Lorquet. + - Nucleo-L452RE: Add nucleo-l452re board files. From Juha Niskanen. + - stm32f103-miniumum: Add board support to use the Nokia 5110 + LCD display driver. From Alan Carvalho de Assis. + + * C Library/Header Files: + + - C library: Add strerror_r(). + - C Library: Add wcstoull(), swprintf(), wcstod(), wcstof(), wcstol(), + wcstold(), wcstoul(), wcstoll() functions. Add mbsnrtowcs() and + wcsnrtombs() (just returning success). Add mbtowc() and wctomb() to + C++ std namespace. From Alan Carvalho de Assis. + - C Library: Add ffsl(), ffsll(), fls(), flsl(), flsll() and use + GCC's __builtin_ctz/__builtin_clz for faster implementation of these. + From Jussi Kivilinna. + - fixedmath: Add square root and b32_t conversion operators. From + Jussi Kivilinna. + - locale.h: Add a bogus definition of locale_t. + - C library: Versions mbrlen and mbsrtowcs taken and adapted from + FreeBSD code (at https://github.com/freebsd/freebsd/). From Matias + v01d. + + * Build/Configuration System: + + - Include C++ library in 'make export'. From Alan Carvalho de Assis. + - configs: Remove all setenv.sh and setenv.bat files. Remove all + references to setenv.sh and setenv.bat from all config README files. + - Kconfig/deconfigs: Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that + the toolchain is based on GNU gcc/as/ld. This is in addition to the + CPU-specific versions of the same definition. + - Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h + to apps/include/platform/cxxinitialize.h. + + * Tools: + + - Add initialconfig.c so that perhaps in the future we will be able to + use this to generate a new configuration from scratch (rather than + having to derive new configurations from existing configurations). + NOTE: Not yet intregated into the build system. + + * NSH: apps/nshlib: + + - Added support for set [{+|-}{e|x|xe|ex}] [ ]. Set the + 'exit on error control' and/or 'print a trace' of commands when + parsing scripts in NSH. The settinngs are in effect from the point + of exection, until they are changed again, or in the case of the init + script, the settings are returned to the default settings when it + exits. Included child scripts will run with the parents settings and + changes made in the child script will effect the parent on return. + Use 'set -e' to enable and 'set +e' to disable (ignore) the exit + condition on commands. The default is -e. Errors cause script to + exit. Use 'set -x' to enable and 'set +x' to disable (silence) + printing a trace of the script commands as they are ececuted. The + default is +x. No printing of a trace of script commands as they are + executed. From David Sidrane. + - Print expanded variables if -x. From David Sidrane. + - ifconfig command: Extend ifconfig to support 6loWPAN. Adapt to + some changes in configuration variable usage. + - Network initialization: If IEEE802.11 selected use wlan0 instead of + eth0 for network device name. + - Network initialization: NSH now has configuration options to select + the wireless properties. It builds the configuration structure and + passes this to wpa_driver_wext_associate() so that it will set the + network as configured. + - Network initialization: Add a new option CONFIG_NSH_NETLOCAL that + will suppress some built in operations and will support manual + configuration of a wireless network through command line tools. + + * Examples/Tests: apps/examples: + + - examples/xbc_text: Adds a test program for the XBox One controller + driver. From Brian Webb. + - examples/ostest: Add a test of robust mutexes. + - examples/ostest: Add tests for pthread_rwlock. Adding tests to be + used to verify the pthread_rwlock lock works. From Mark Schulte. + - examples/ostest: Additional test for rwlock and one for cancel + cleanup handlers. From Juha Niskanen. + - examples/usrsocktest: Add application for USRSOCK testing. From + Jussi Kivilinna. + - examples/nettest: Adapt for use in testing 6loWPAN. + - examples/nettest: If doing loopback, but not using the official + loopback device, then use the server should use the configured client + IP address. + - examples/udpblaster: Several fixes to work with 6loWPAN. + - examples/udpblaster: Add logic to bind the local UDP socket to a + well-known address. + - examples/configdata: Add stacksize and priority. From Juha Niskanen. + + * Network Utilies: apps/netuils: + + - netutils/netlib: Add IEEE 802.11 wireless IOCTL wrappers. + - netutils/netlib: Add a helper function to convert a string to a + 6loWPAN node address. + - netlib and NSH: Add logic to get/set the IEEE802.15.4 PAN ID. + - netutils/dhcpc: Make the network device name a configuration + option. Was hardcoded to eth0 but may, instead, need to be wlan0. + - netutils/dhcpc: Remove hard-coded interface device. Now passed as + a parameter to dhcpc_open(). From Sebastien Lorquet. + + * Wireless Utilies: apps/wireless: + + - wireless/wapi: Port of Wapi wireless services. The original + depended on features not supported by NuttX: Removed logic that + depends on Linux netlink. Removed functionality that depended on + the Linux procfs: This includes only 1) listing of available + interfaces and 2) listing of all routes. + - wireless/wapi: Create command line Wapi application based on + Wapi sample code. + - wireless/wapi: wpa_driver_wext_associate() now accepts a + configuration parameter that can be used to specify the wireless + properties. + - wireless/wapi: Add basic wapi_event_stream_extract implementation. + From Simon Piriou. + - wireless/ieee802154: Add iwpan and i8sak tools. iwpan is similar + in concept to wapi. From Anthony Merlino (i8sak was originally + by Sebastien Lorquet). + - wireless/ieee802154/libmac: IEEE 802.15.4 MAC library. + - wireless/wext: Add drivers_wext from the WPA supplicant; Integrate + into NSH. From Simon Piriou. + + * System Unitilities (apps/system) + + - apps/system/dhcpc: Add a command to renew or establish a lease on an + IPv4 address. + - apps/system/ntpc: Add a command to start or stop the NTPC daemon. + - apps/system/ramtest: Make stacksize and priority conigurable. + + * Platform-Specific Support (apps/platform) + + - apps/platform: Create gnu/ subdirectory that contains the one and + only GNU C++ initialization function. Remove all other C++ + initialization functions. + +Bugfixes. Only the most critical bugfixes are listed here (see the +ChangeLog for the complete list of bugfixes and for additional, more +detailed bugfix information): + + * Core OS: + + - Priority inheritance: When CONFIG_SEM_PREALLOCHOLDERS==0, there is + only a single, hard-allocated holder structure. This is problem + because in sem_wait() the holder is released, but needs to remain in + the holder container until sem_restorebaseprio() is called. The call + to sem_restorebaseprio() must be one of the last things the + sem_wait() does because it can cause the task to be suspended. If in + sem_wait(), a new task gets the semaphore count then it will fail to + allocate the holder and will not participate in priority + inheritance. This fix is to add two hard-allocated holders in the + sem_t structure: One of the old holder and one for the new holder. + - Priority inheritance: sem_holder sem_findholder missing + inintalization of pholder. sem_findholder would fail and code + optimization covered this up. From David Sidrane. + - Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0. From + David Sidrane. + - Priority inheritance: sem_boostholderprio prevent overrun of + pend_reprios. The second case rtcb->sched_priority <= + htcb->sched_priority did not check if there is sufficient space in + the pend_reprios array. From David Sidrane. + - lp_worker: Guard from pend_reprios overlow. From David Sidrane. + - Priority inheritance: Fixes improper restoration of base_priority in + the case of CONFIG_SEM_PREALLOCHOLDERS=0. The call to + sem_restorebaseprio_task context switches in the + sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to + releasing the holder. So the running task is left as a holder as is + the started task. Leaving both slots filled thus failing to perform + the boost/or restoration on the correct tcb. This PR fixes this by + releasing the running task slot prior to reprioritization that can + lead to the context switch. To faclitate this, the interface to + sem_restorebaseprio needed to take the tcb from the holder prior to + the holder being freed. In the failure case where sched_verifytcb + fails it added the overhead of looking up the holder. There is also + the additional thunking on the foreach to get from holer to + holder->tcb. An alternate approach could be to leve the interface + the same and allocate a holder on the stack of sem_restoreholderprioB + copy the sem's holder to it, free it as is done in this pr and and + then pass that address sem_restoreholderprio as the holder. It could + then get the holder's tcb but we would keep the same sem_findholder + in sched_verifytcb. From David Sidrane. + - Priority inheritance: Fixes improper restoration of base_priority. + From David Sidrane. + - sem_holder: Indexing error. From David Sidrane. + + if (sem->holder[0].htcb != NULL || sem->holder[**1**].htcb != NULL) + - realloc(): When realloc() has to fall back to calling malloc(), size + including overhead was being provided to malloc(), causing a slightly + larger allocation than needed. Noted by initialkjc@yahoo.com. + - scheduler: Fix tg_flags check with GROUP_FLAG_NOCLDWAIT. From Masayuki + Ishikawa. + - scheduler: Fix CHILD_FLAG_EXITED in include/nuttx/sched.h. From + Masayuki Ishikawa. + - binfmt/elf: Fix offset value when calling elf_read() in + elf_symname(). From Masayuki Ishikawa. + - binfmt/elf: Fix offset value when calling elf_read() in + elf_sectname(). From Masayuki Ishikawa. + - There can be a failure in IOB allocation to some asynchronous + behavior caused by the use of sem_post(). Consider this scenario: + (1) Task A holds an IOB.  There are no further IOBs.  The value of + semcount is zero. Task B calls iob_alloc().  Since there are not + IOBs, it calls sem_wait().  The value of semcount is now -1. (2) + Task A frees the IOB.  iob_free() adds the IOB to the free list and + calls sem_post() this makes Task B ready to run and sets semcount to + zero NOT 1.  There is one IOB in the free list and semcount is zero. + When Task B wakes up it would increment the sem_count back to the + correct value. (3) But an interrupt or another task runs occurs + before Task B executes.  The interrupt or other tak takes the IOB off + of the free list and decrements the semcount.  But since semcount is + then < 0, this causes the assertion because that is an invalid state + in the interrupt handler. So I think that the root cause is that + there the asynchrony between incrementing the semcount. This change + separates the list of IOBs: Currently there is only a free list of + IOBs. The problem, I believe, is because of asynchronies due + sem_post() post cause the semcount and the list content to become out + of sync. This change adds a new 'committed' list: When there is a + task waiting for an IOB, it will go into the committed list rather + than the free list before the semaphore is posted. On the waiting + side, when awakened from the semaphore wait, it will expect to find + its IOB in the committed list, rather than free list. In this way, + the content of the free list and the value of the semaphore count + always remain in sync. + - binfmt: Fix .dtor memory allocation. From Masayuki Ishikawa. + + * File System/Block and MTD Drivers: + + - SmartFS: If whence is SEEK_END, the file offset shall be set to the + size of the file plus offset. Noted by eunb.song@samsung.com. + - mtd/progmem: Fix incorrect target address calculation. + progmem_read/write() is incorrectly calculating the target address, + expecting the offset argument is given in a block number. This is + completely wrong and as a result invalid flash region is accessed. + Byte-oriented read/write interfaces of mtd device accept the target + address in a byte offset, not a block number. From Heesub Shin. + - procfs: Fix wrong member IDs are displayed when 'cat + /proc//group/status'. From Nobutaka Toyoshima. + - procfs: Fix incorrect uptime with CONFIG_SYSTEM_TIME64. From + Masayuki Ishikawa. + - vfs/poll: round timeout up to next full tick. Calling poll() with + timeout less than half tick (thus MSEC2TICK(timeout) => 0) caused + returning error with EAGAIN. Instead of rounding timeout down, value + should be rounded up. Open Group spec for poll says: + "Implementations may place limitations on the granularity of timeout + intervals. If the requested timeout interval requires a finer + granularity than the implementation supports, the actual timeout + interval will be rounded up to the next supported value." From Jussi + Kivilinna. + - mtd/config: erase block between block read and write. From Juha + Niskanen. + - mtd: Build RAMTRON and AT45DB drivers only if selected. From Juha + Niskanen. + - mtd/config: Fix byte read interface test. From Juha Niskanen. + - mtd: Fix some unallocated and NULL pointer issues. rwb->wrflush and + rwb->wrmaxblocks in rwbuffer could get unallocated values from + ftl_initialize() in some configurations. Also fixes related assert: + + up_assert: Assertion failed at file:rwbuffer.c line: 643 + + that can happen with the following configuration: + + CONFIG_FTL_WRITEBUFFER=y + CONFIG_DRVR_WRITEBUFFER=y + # CONFIG_FS_WRITABLE is not set + + These problems are caused by CONFIG variable differences between the + buffer layers. TODO: This is not a perfect solution. readahead + support has similar issues. From Juha Niskanen. + - net procfs: Fix buffer corruption and refactor netdev_statistics.c. + From Masayuki Ishikawa. + - FAT: Fix 'Missing unlock' in fs_fat32.c. From Masayuki Ishikawa. + - VFS fdopen: Add missing file stream flags clearing. Clear file + stream structure regardless of config options. Structure clearing is + needed as previous use of stream list entry might leave fs_flags + set. From Harri Luhtala. + - mtd/smart: Fix use of uninitialized variable. From Jussi Kivilinna. + - mtd/w25.c: Enable short delay after sector/chip erase. From Jussi + Kivilinna. + - mtd/config: Add some error checks for I/O errors. From Juha + Niskanen. + + * Graphics/Graphic Drivers: + + - net procfs: Some long lines were being generated that cause buffer- + related problems and corrupted output. + + * Networking/Network Drivers: + + - Fixed wrong assert on udp dgram send. From Pascal Speck. + - TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled. + - net/socket/accept: Fix building with CONFIG_NET_LOCAL_STREAM. From + Jussi Kivilinna. + - Argument of network device IOCTL should be unsigned long, just as + will all other IOCTL methods. + - net/socket: Fix cloning of local and raw sockets. From Jussi + Kivilinna. + - TCP: Wait for 3-Way Handshare before accept() returns. From Simon + Piriou. + - TCP: Send RST if applicaiton 'unlistens()' before we complete the + connection sequence. + - TCP: An RST received during the 3-way handshake requires a little + more clean-up. + - IPv6: Fix net_ipv6_pref2mask(). From Masayuki Ishikawa. + - network IOCTL commands: The only place in net/netdev/netdev_ioctl.c + where the interface state should change is for SIOCSIFFLAGS. The + other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR .. should not + change the link state. From Sebastien Lorquet. + - TCP: Fix tcp_findlistner() in dual stack mode. From Masayuki + Ishikawa. + + * Common Drivers: + + - Fix as5048b by adding missing frequency parameter. From Andreas + Bihlmaier. + - multiple fixes in nrf24l01 driver: (1) signal POLLIN if there is + already data in the FIFO, (2) send ETIMEDOUT to userspace after 2 + seconds if TX IRQ was not received, (3) handle FIFO overflow, (4) + handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing + static, duplicate define, missing \n). From Leif Jakob. + - input/mxt: Prevent overriding i2c transfer return value. + put_reg/get_reg function was overriding i2c transfer error code with + i2creset return value, that lead to OK status although actual + transfer failed. From Juha Niskanen. + - drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha + Niskanen in the MaxTouch driver. + - UART 16550: Missing left parenthesis in function prototype. This is + Bitbucket Issue #41. + - USBMSC: Fix a wrong lun number issue. From Masayuki Ishikawa. + - drivers/i2c: Fix compile issues if CONFIG_DISABLE_PSEUDOFS_OPERATIONS + is enabled. + - drivers/serial: I discovered a problem in the file + drivers/serial/serial.c concerning the function uart_close(…). In the + case that a serial device is opened with the flag O_NONBLOCK the + function uart_close(…) blocks until all data in the buffer is + transmitted. The function close(…) called on an handle opened with + O_NONBLOCK should not block. The problem occurred with a CDC/ACM + device. From Stefan Kolb. + - drivers: Fix some bad NULL checks. From Juha Niskanen. + - drivers: Rename newly introduced up_i2creset to I2C_RESET. From + Juha Niskanen. + - drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY + for DIOC_GETPRIV command. It should returns OK if DIOC_GETPRIV + command succeeds. From EunBong Song. + - Replace sprintf() with snprintf() in pipe.c. From Nobutaka Toyoshima. + - drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c. From Masayuki + Ishikawa. + - button_upper: Fix interrupt enabling for poll-events. From Jussi + Kivilinna. + - drivers/{sensors,usbmisc}: Fix uninitialized I2C frequency. From + Juha Niskanen. + + * ARM: + + - Set EABI stack alignment for all ARM architectures (remove OABI + code). From David Cabecinhas. + - Remove redundant interrupt stack coloring and OABI code. From David + Cabecinhas. + - Fix off-by-one interrupt stack allocation in 8-byte aligned + architectures. From David Cabecinhas. + + * ARMv6-M: + + - CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too. + + * Microchip/Atmel SAM3/4 Drivers: + + - SAM3/4: Fixed configurations for TWI master. Obviously an + incomplete port from SAMA5. + + * Microchip/Atmel SAMv7 Drivers: + + - SAMV7: Watchdog: Fix Forbidden Window Value. According the Datasheet + the WDD Value is the lower bound of a so called Forbidden Window and + to disable this we have to set the WDD Value greater than or equal to + the WDV Value. This seems to be a bug in the datasheet. It looks + like we have to set it to a greater value than the WDV to really + disable this Thing. When triggering the Watchdog faster than the + (very slow) clock source of the Watchdog fires, this Forbidden Window + Feature resets the System if WDD equals to WDV. This Changeset + disables the Forbidden Window by setting the WDD Value to the Maximum + (0xfff) Value possible. From Frank Benkert. + - SAMV7 EMAC: Add conditional logic to account the fact that the + SAMV71 has 6 rather than 3 queues after version 1. From Ian McAfee. + + * NXP/Freescale Kinetis Drivers: + + - Kinetis: Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with + _PIN_OUTPUT_OPENDRAIN. From David Sidrane. + - Ensure interrupts are back on BEFORE running code dependant on + clock_systimer. From David Sidrane. + - Kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as + Open Drain. The output structure of the GPIO for I2C needs to be + open drain. When left at the default, one can observe on a scope the + slave contending with the push-pull during the ACK. From David + Sidrane. + - Kinetis K66: Fixed TMP2_CH1 definition. From David Sidrane. + - Kinetis K66: Define ALT1 to match ref manual. From David Sidrane. + - Kinetis K66: GPIO and pin mux cleanup. From David Sidrane. + - Kinetis ADC: Various corrections and updates. From David Sidrane. + + * NXP/Freescale LPC43xx: + + - Add missing PINCONF_INBUFFER in several places of + lpc4310203050_pinconfig.h. From Andreas Bihlmaier. + - Fix logic in preprocessor checks and correct arguments to + lpc43_pin_config initialization. From Andreas Bihlmaier. + + * NXP/Freescale LPC43xx Drivers: + + - Fix logic error in lpc43_adc. From Andreas Bihlmaier. + - Use correct macro for irqid (fortunately both point to + LPC43_IRQ_EXTINT+18). From Andreas Bihlmaier. + - Actually write modified value to register. From Andreas Bihlmaier. + - Increase number of supported PWM channels from 4 to 6. From Andreas + Bihlmaier. + + * Silicon Labs EFM32 Drivers: + + - EFM32 I2C: Fix timeout calculation. From Masayuki Ishikawa. + + * STMicro STM32: + + - As discovered by dcabecinhas. This fix assume the 8 byte alignment + options for size stack size or this will overwrite the first word + after TOS. See + https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778. + From David Sidrane. + - STM32 F7: In stm32_allocateheap.c There are 5 not 4 configurations. + From David Sidrane. + + * STMicro STM32 Drivers: + + - STM32, STM32 F7, STM32 L4: OTG host drivers: Do not do data toggle + if interrupt transfer is NAKed. Sugested by webbbn@gmail.com. + - Save elapsed time before handling I2C in stm32_i2c_sem_waitstop(). + This change follows the same logic as in previous fix to + stm32_i2c_sem_waitdone(). It is possible that a context switch + occurs after I2C registers are read but before elapsed time is saved + in stm32_i2c_sem_waitstop(). It is then possible that the registers + were read only once with "elapsed time" equal 0. When scheduler + resumes this thread it is quite possible that now "elapsed time" will + be well above timeout threshold. In that case the function returns + and reports a timeout, even though the registers were not read + "recently". Fix this by inverting the order of operations in the loop + - save elapsed time before reading registers. This way a context + switch anywhere in the loop will not cause an erroneous "timeout" + error. From Freddie Chopin. + - STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to + similar STM32 I2C drivers. From David Sidrane. + - STM32: OTG host implementations of stm32_in_transfer() must obey the + polling interval for the case of isochronous and interrupt endpoints. + - STM32: Fix erase sector number for microcontrolers with more than 11 + sectors. Erase a sector from the second bank cause the bit 4 of SNB + being set but never unsed, so trying to erase a sector from the first + bank was acually eraseing a sector from the second bank. From José + Roberto de Souza. + - STM32: Make up_progmem thread safe. Writing to a flash sector while + starting the erase of other sector have a undefined behavior so lets + add a semaphore and syncronize access to Flash registers. But for + the semaphore to work it needs to be initialized so each board needs + call stm32_flash_initialize() on initialization, so to avoid runtime + problems it is only using semaphore and making it thread safe if + initialized, after all boards starts to call stm32_flash_initialize() + we can remove the boolean and the check. From José Roberto de Souza. + - STM32: Add workaround for flash data cache corruption on + read-while-write. This is a known hardware issue on some STM32 see + the errata of your model and if you make use of both memory banks you + should enable it. From José Roberto de Souza. + - STM32 Flash fixes. From José Roberto de Souza. + - STM32 Flash: Missing unlock on F1 HSI off path. From David Sidrane. + - STM32 F4 I2C: I needed to use DS3231, I remember that in past it + worked ok, but now for stm32f4xx is used another driver (chip + specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work. After + investigating a problem I found that I2C driver (isr routine) has a + few places there it sends stop bit even if not all messages are + managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding + stm32_i2c_sendstart after data reading helps to make DS3231 working. + From Alexander Oryshchenko; verified by David Sidrane. + - STM32 F7 Serial: Serial fix for dropped data: (1) Revert the + inherited dma bug from the stm32. see + https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d + for details. And (2) Most all CR1-CR3 settings can not be configured + while UE is true. Threfore we make all operation atomic and disable + UE and restore it's originalstate on exit. From David Sidrane. + - STM32 L1: Fix IWDG and WWDG debug mode stop for STM32L15XX. From + Juha Niskanen. + - STM32 F7: Fix UART7 and UART8 IFLOWCONTROL options. From Jussi + Kivilinna. + - STM32 F7: Add warning for RXDMA + IFLOWCONTROL combination. + Combination of RXDMA + IFLOWCONTROL does not work as one might + expect. Since RXDMA uses circular DMA-buffer, DMA will always keep + reading new data from USART peripheral even if DMA buffer underruns. + Thus this combination only does following: RTS is asserted on USART + setup and deasserted on shutdown and does not perform actual RTS + flow-control. Data loss can be demonstrated by doing long up_mdelay + inside irq critical section and feeding data to RXDMA+IFLOWCONTROL + UART. From Jussi Kivilinna. + - STM32 F7 Serial: Do not stop processing input in SW flow-control + mode. From Jussi Kivilinna. + - STM32 L4 DMA: Correct bad channel definition. From Sebastien Lorquet. + - STM32 F7: Warn if no DMA2 configured when using ADC with DMA. Also + correct ADC channel numbers that DMA callback passes to upper half + driver. From Juha Niskanen. + - STM32 F7 ADC: Do not override ADCPRE_DIV when measuring + internal voltage. From Juha Niskanen. + - STM32 L4: Don't think these chips have DPFPU, DTCM or ITCM. From + Juha Niskanen. + - STM32 F7 Flash: macro naming errors, there is no FLASH_CONFIG_F for + F7. From Juha Niskanen. + - STM32 L4: stm32l4x6xx_pinmap: Update I2C4 and DCMI pins. From Juha + Niskanen. + - STM32 L4: stm32l4_i2c: change wrong macro to CONFIG_I2C_POLLED. From + Juha Niskanen. + - Fix STM32F7 I2C interrupt handler. From Jussi Kivilinna. + - STM32: Serial Allow configuring Rx DMA buffer size. From David + Sidrane. + - STM32 CAN: I had the problem that the transmit FIFO size (= actual + elements in FIFO) was slowly increasing over time, and was full after + a few hours. The reason was that the code hit the line + "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so + can_xmit thinks it has sent the packet to the hardware, but actually + has not. Therefore the transmit interrupt never happens which would + call can_txdone, and so the size of the FIFO size does not decrease. + The reason why the code actually hit the mentioned line above, is + because stm32can_txready uses a different (incomplete) condition than + stm32can_send to determine if the mailbox can be used for sending, + and thus can_xmit forwards the packet to stm32can_send. + stm32can_txready considered mailboxes OK for sending if the mailbox + was empty, but did not consider that mailboxes may not yet be used if + the request completed bit is set - stm32can_txinterrupt has to + process these mailboxes first. Note that I have also modified + stm32can_txinterrupt - I removed the if condition, because the CAN + controller retries to send the packet until it succeeds. Also if the + condition would not evaluate to true, can_txdone would not be called + and the FIFO size would not decrease also. From Lederhilger Martin. + - STM32 Serial: Fix freezing serial port. Serial interrupt + enable/disable functions do not disable interrupts and can freeze + device when serial interrupt is received while execution is at those + functions. Trivially triggered with two or more threads write to + regular syslog stream and to emergency stream. In this case, freeze + happens because of mismatch of priv->ie (TXEIE == 0) and actually + enabled interrupts in USART registers (TXEIE == 1), which leads to + unhandled TXE interrupt and causes interrupt storm for USART. From + Jussi Kivilinna. + - STM32 I2C: Make private symbols static. From Juha Niskanen. + - STM32 L4 GPIO: Put back EXTI line source selection. From Juha + Niskanen. + - STM32 L4 RTC: Store RTC MAGIC to backup reg, not to address zero. + From Juha Niskanen. + + * STMicro STM32 Boards: + + - Disable serial console on stm32f103-minimum usbnsh example project + config. Devices enumerate after this change. From Bob Ryan. + - Nucleo-144: Default for choice in Kconfig was not one of the + possible choices. + - Nucleo-F4X1RE User LEDS: Issue #51 reports compilation problems with + stm32_userled.c. Reported by Gappi92. + + * TI Tiva Drivers: + + - Tiva I2C: Correct an error in conditional compilation. + - Tiva SSI: Resolves issue 52 'Copy-Paste error in + tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev. + + * C Library/Header Files: + + - C Library vsnprintf(): Fix precision for string formatting. Fixes + use of format precision to truncate input string. From Jussi + Kivilinna. + - C Library vsnprintf(): If size is zero, then vsnprintf() should + return the size of the required buffer without writing anything. + From Jussi Kivilinna. + - C Library netdb: in dns_query_callback, ret != -EADDRNOTAVAIL + condition consumes error returns including EAGAIN in this case, + dns query retransmission doesn't work. From Ritajina. + - C Library netdb: Fix time info in lib_dnscache.c. From Masayuki + Ishikawa. + - C Library netdb: Fix bugs in lib_gethostbynamer.c. This fix sets + h_name in struct hostent returned by gethostbyname(). From Masayuki + Ishikawa. + - C Library Defect Workaround: replace '%6.6u' format with an + equivalent '%06u'. From Tomasz Wozniak. + + * Tools + + - Fix mksyscall host binary name. From Alan Carvalho de Assis. + + * Applications (apps/) + + - Fix some calls to task_create(): argv[0] is the first parameter, not + the name of the task. + - Bitbucket Issue 5: I found an unexpected behavior in apps/ + configuration generation. Adding external symbolic link in apps/ + directory and using Make.defs for Kconfig generation, Kconfig file + has a wrong path in the source argument. It contains original dir + path outside of the source tree instead path to sub-directory in + apps/. The problem is connected with make/system symbolic link path + resolution. Corrected by a patch submitted by Artur Madrzak with + Issue 5. + - apps/: Make more globals static to avoid name clashes. From Juha + Niskanen. + + * NSH: apps/nshlib: + + - NSH library: In nsh_argexand(), if CONFIG_NSH_ARGCAT is defined but + CONFIG_NSH_CMDPARMS defined and/or CONFIG_DISABLE_ENVIRON not + defined, then there is a situation that causes an infinite loop in + the parser. Noted by Freddie Chopin. + - NSH library: Fix building when CONFIG_NET_USRSOCK enabled with other + link-layers. From Jussi Kivilinna. + - NSH library: Fix some warnings about integer/pointer casts of + different sizes (probably only effects 64-bit simulation). + - NSH library: Fix open flags in nsh_codeccmd.c. From Masayuki + Ishikawa. + - I need to look at the registers that are at or around 0xe000ef90. + Using mw and xd, I see that nsh does not support pointers greater + than 0x7fffffff. A quick look at the source shows that the pointers + for those two commands are set with calls to strtol() rather than + strtoul(). Changing the two pointer-setting instances to strtoul() + fixes the problem, at least for my architecture/config. From Ian + McAfee. + - NSH library: Fix a resource leak in cmd_hexdump(). From Nobutaka + Toyoshima. + + * Examples/Tests: apps/examples: + + - apps/examples/hidkbd: Remove call to arch_usbhost_initialize(). + That is violation of the OS interfacing rules and will no longer be + supported. USB host should be initialized as part of the normal + board bring-up logic as with any other devices and should not involve + illegal calls from applications into the OS. + - apps/examples/usbterm: Removed because it is not very useful and + because it can be configured to use an illegal call into the OS. + - examples/mm: Fix Makefile. Built-in was not being registered. + - examples/hidkbd: Add some missing configuration settings. + - examples/random: Avoid stack overflows. From Juha Niskanen. + - examples/nettest: Fix an error in pre-processor expression. + - examples/mtdpart: Prevent part array overflow. mtdpart examples + create partions and allocate from 1 index not a 0 index to part[] + array. This cause buffer overflow for part array. This change fixes + this problem. From EunBong Song. + - examples/can: Fix can example app to print data when + CONFIG_EXAMPLE_CAN_READ is defined. From Alan Carvalho de Assis. + + * Network Utilies: apps/netuils: + + - Not a clean fix, but at least makes DHCP working with + CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier. + - Ensure netlib will not be broken when setip will not bring the + network up anymore. From Sebastien Lorquet. + + * CAN Utilies: apps/canutils: + + - Fix libcanard github download link to get it compiling correctly. + From Alan Carvalho de Assis. + - Fix to use the new canardInit() function. From Alan Carvalho de + Assis. + + * System Unitilities (apps/system) + + - system/dhcpc: Add missing argument of fprintf. + + * Tools (apps/tools): + + - The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR, + which is not a windows shell variable, and is left uninitialized, but + in fact should be the current directory. From Sebastien Lorquet. diff --git a/libc/stdio/lib_libfflush.c b/libc/stdio/lib_libfflush.c index 22172a66c7..3eef605340 100644 --- a/libc/stdio/lib_libfflush.c +++ b/libc/stdio/lib_libfflush.c @@ -137,7 +137,7 @@ ssize_t lib_fflush(FAR FILE *stream, bool bforce) */ stream->fs_flags |= __FS_FLAG_ERROR; - ret = -get_errno();; + ret = -get_errno(); goto errout_with_sem; }