diff --git a/ChangeLog b/ChangeLog index 8b34e9d8a6..1d2f3dffd3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21798,4 +21798,813 @@ and DMA transfers. There is other stuff to add (high speed, low voltage, DDR etc.) later, From Dave Marples (2018-11-13). -7.28 2019-xx-xx Gregory Nutt +7.28 2019-01-19 Gregory Nutt + + * arch/arm/src/imxrt: Add PIT, GPT, and QIMER(TMR) header files From David + Sidrane (2018-11-13). + * libs/libc/netdb: Make DNS retries configurable From Juha Niskanen + (2018-11-14). + * drivers/input/button_upper.c: Fix two bad NULL checks From Juha + Niskanen (2018-11-14). + * Assertions: Identify the running task correctly when dumping task state + information. It takes time to switch to the target task after + g_readytorun has been modified. If panic/assert happen during this + period, the dump will contain the incorrect and confusing information due + to the difference between the real running task and the return value of + this_task(). This change resolve this problem by adding g_running_task to + track the real running task through the context switch. From Xiang Xiao + (2018-11-15). + * arch/arm/src/stm32: STM32F446 & STM32F469 correct PC1 SPI assignments + From David Sidrane (2018-11-15). + * arch/arm/src/imxr: Add FLEXPWM From David Sidrane (2018-11-15). + * libs/libc/netdb/lib_dnsquery.c: Harden against DNS spoofing. This + commit implements most of the RFC 5452 guidelines for making DNS more + resilient. We now verify response matches against what was queried and + use unpredictable query IDs. It is also checked that response come from + correct DNS server. Also fixes a buffer overflow when querying hostnames + longer than CONFIG_NETDB_DNSCLIENT_NAMESIZE. From Juha Niskanen + (2018-11-16). + * fs/dirent: Corrects a problem with opendir() noted by Petteri Aimonen in + Bitbucket Issue 132: "opendir() fails for FAT filesystem with trailing + slash in path". I see the following behaviour on NuttX 7.26, where I + have SD card mounted on /flash and a directory called "frm" on it: + + opendir("/flash") returns (DIR *) 0x1000c580 + opendir("/flash/") returns (DIR *) 0x1000c5d0 + opendir("/flash/frm") returns (DIR *) 0x1000c620 + opendir("/flash/frm/") returns (DIR *) 0x0 + + From POSIX specs for opendir(): "A pathname ... that ends with one or + more trailing slashes shall be resolved as if a single dot character + ( '.' ) were appended to the pathname." + + So for mount points, opendir() works correctly, but for FAT32 filesystem + it fails to open directory if the path has a trailing slash... + + NOTE: You would not see this problem if you call opendir() indirectly in + NSH (like 'ls -R /') because NSH contains logic to remove trailing '/' + characters from paths. From Gregory Nutt (2018-11-16). + * arch/arm/src/max36xx: Brings in WIP port for the Maxim Integrated + MAX326xx MCU family. Not really very much in place yet so marked + EXPERIMENTAL in Kconfig file. From Gregory Nutt (2018-11-16). + * configs/stm32f429i-disco/lvgl/defconfig: Fix lvgl demo removing + STM32_FB_CMAP. From Alan Carvalho de Assis (2018-11-17). + * arch/arm/src/stm32/stm32_pwm.c: STM32 MOE is not being appropriately + handled for PWM for advanced timers. It is only ever reset and so no PWM + train is generated. This change addresses this. Noted by Dave Marples. + From Mateusz Szafoni (2018-11-17). + * arch/arm/stm32: stm32_flash_writeprotect supported the same for + STM32F20XX as STM32F4XXX From Anthony Merlino (2018-11-17). + * configs/max32660-evysy/: Add support for the Maxim Integrated + MAX32660-EVSYS board. From Gregory Nutt (2018-11-17). + * Improve LED handling #if~#endif in nrf52_autoleds.c and nrf52_userleds.c + - Add Adafruit Feather nRF52 board LED support + - Add Adafruit Feather nRF52 board + - Add nrf52-generic + - Replace 'pca10040' with 'generic' + - Copy from nrf52-pca10040 to nrf52-generic + From Zou Hanya (2018-11-18). + * arch/arm/src/tiva: After commit + 51b78034ac8d1fdf598107bf4093f0beccd5b80b, my tiva console does not work - + enter key produces garbage characters. This commit fixes the problem for + me. From Lwazi Dube (2018-11-18). + * tools/nxstyle.c: Add logic to detect long lines. From Gregory Nutt + (2018-11-19). + * arch/arm/src/stm32f7: Ported the QEncoder from F4 to F7 From Eduard + Niesner (2018-11-19). + * tools/nxstyle.c: Add -h for help. From Gregory Nutt (2018-11-19). + * arch/arm/src/imxrt: Add ADC chip header From David Sidrane (2018-11-20). + * configs/imxrt1050-evk: GPIO device driver support added and tested by + Pavlina Koleva and Ivan Ucherdzhiev From Pavlina Koleva (2018-11-20). + * arch/arm/src/armv7-m/arch_invalidate_dcache.c, + drivers/mmcsd/mmcsd_sdio.c, and other files in arch/: This commit adds a + new function arch_invalidate_dcache_by_addr(). It takes the same + parameters as arch_invalidate_dcache(), but performs invalidation of only + the lines in cache that need to be invalidated. This new function could + be used as a a direct replacement for arch_invalidate_dcache(). + + The user of this invalidation are mmcsd_sdio currently. The mmcsd_sdio + driver makes calls for dcache invalidation through the chip specific + architecture function SDIO_DMARECVSETUP(). I changed the arch/arm/stm32f7 + chips to use arch_invalidate_dcache_by_addr() instead of + arch_invalidate_dcache(). + + This commit includes additional changes to mmcsd_sdio.c. I created + SDIO_DMADELYDINVLDT() (DMA delayed invalidate) to invalidate store-into + mode dcaches after the DMA transfer. I have been using + SDIO_DMADELYDINVLDT() for several weeks now and it has fixed the problems + that I previously reported regarding non-cache aligned buffer + invalidation errors (for my store-through dcache). However, it does not + permit use of unaligned DMA buffers for store-into mode dcaches. + + SDIO_DMADELYDINVLDT() is a NoOp unless the chip specific Kconfig file + selects CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT. I have modified all the + stm32f7 chips to select it. From Bob Feretich (2018-11-20). + * All network drivers! Change pre-processor logic that selects the high + priority work queue or gives preferential treatment to the high priority + work. All network logic must run on the low priority work queue! Or + suffer the consequences. From Gregory Nutt (2018-11-21). + * configs/stm32vldiscovery/scripts/stm32vldiscovery.ld: Fix SRAM and FLASH + size in the linker script. There is STM32F100RB with 8KB RAM and 128KB + FLASH on the STM32VL Discovery kit. Invalid memory size could cause a + hard fault. From Matous Pokorny (2018-11-21). + * arch/mips/src/pic32m[x|z]/pic32m[x|z]-ethernet.c: Fix a comparison in a + debug assertion. Should be <= vs <. Noted by Anonymous in Bitbucket + Isue 134. From Gregory Nutt (2018-11-21). + * sched/signal/sig_timedwait.c: Remove unnecessary disable of + pre-emption. From Gregory Nutt (2018-11-23). + * libs/libc/netdb: Support multiple IP addresses per hostname From Juha + Niskanen (2018-11-23). + * configs/stm32vldiscovery: Fix memory size configuration and + documentation. There is STM32F100RB instead of STM32F100RC on the STM32 + VL Discovery kit. From Matous Pokorny (2018-11-23). + * Improvements in STM32 ADC, minor changes in STM32 PWM, DMA, HRTIM and add + some highpri ADC examples: + - arch/arch/src/stm32/stm32_adc: fix RCC reset logic + - arch/arch/src/stm32/stm32_adc: move sample time change functions to + low-level ADC ops + - arch/arch/src/stm32/stm32_adc: configurable ADC DMA mode (one shot + mode, circular mode) + - arch/arch/src/stm32/stm32_pwm: remove llops_get interface. We can use + structure casting to get pwm low-level ops + - arch/arch/src/stm32/stm32_pwm: add timer enable/disable and frequency + update to low-level ops + - arch/src/arm/stm32: remove redundant stm32f33xxx_dma.c + - arch/arm/src/stm32/stm32f40xxx_dma.c: add interfaces to interact with + highp priority DMA interupts + - arch/src/arm/stm32/stm32_hrtim: do not enable timers on startup if + option from Kconfig selected and add interface to enable/disable timers + - configs/nucleo-f334r8/highpri: update configuration due to changes in + stm32_adc + - configs/stm32f334-disco/buckboost: update configuration due to changes in + stm32_adc + - configs/nucleo-f334r8/highpri: add support for ADC injected sequence, + add triggering from TIM1 + - configs/nucleo-f302r8/highpri: add high priority ADC interrupts example + - configs/stm32f429i-disco/highpri: add high priority ADC interrupts + example + From Mateusz Szafoni (2018-11-23). + * fs/procfs/fs_procfsproc: Extended the process ID ProcFS output to show + per-thread maximum time for pre-emption disabled and maximum time within + a critical section. From Gregory Nutt (2018-11-24). + * sched/sched/sched_critmonitor.c: Adds data collection logic in support + of monitoring critical sections and pre-emption state. From Gregory Nutt + (2018-11-24). + * configs/stm32f4discovery: Add timing support for the critical section + monitor using the DWT CYCNT register. From Gregory Nutt (2018-11-24). + * fs/procfs/fs_procfscritmon.c and sched/sched/sched_critmonitor.c: Add + support for global pre-emption and global critical sections to monitor as + suggested by Xiang Xaio. From Gregory Nutt (2018-11-24). + * Critical Section Monitor: Add low level timer support for simulation. + From Gregory Nutt (2018-11-24). + * arch/: Update all _exit() implementations for all architectures so that + they correctly called the scheduler instrumentation layer for the new + task that runs when the old one exits. This missing instrumentation was + confusing the Critical Section Monitor logic with uses this + instrumentation to track the state of critical sections. From Gregory + Nutt (2018-11-24). + * drivers/lcd: Add support to Alphanumeric Sitronix ST7032i display From + Alan Carvalho de Assis (2018-11-24). + * configs/stm32f4discovery: Add board support to display ST7032i From + Alan Carvalho de Assis (2018-11-24). + * wireless/bluetooth/bt_conn.c: Fix uninitialized variable. From Lwazi + Dube (2018-11-25). + * sched/irq/Make.defs: Fix warning about irq_csection.o appearing multiple + times in the same rule. From Gregory Nutt (2018-11-25). + * sched/irq and sched/sched: Measurement of interrupt handler duration + used to be available only in Tickless mode since it used the high + resolution Tickless timer to measure interrupt time. This commit adds + CONFIG_SCHED_IRQMONITOR_GETTIME which, if enabled, will force the + interrupt duration calculation to use the same high-resolution, + platform-specific timer as is used with the Critical Section Monitor. + This leads to two improvements: (1) You can now measure interrupt + duration in non-Tickless mode, and (2) in either mode, the interrupt + duration and the critical section measures will use the same + high-resolution timer and should, therefore, never be any discrepancy due + to different clock sources. From Gregory Nutt (2018-11-26). + * wireless/bluetooth/bt_att.c: Fix uninitialized variable. From Lwazi + Dube (2018-11-27). + * net/socket/net_clone.c: On a failure to start the TCP monitor, the clone + socket is closed but is not properly freed, leaving it attached to a TCP + connection structure with the wrong reference count. From Gregory Nutt + (2018-11-27). + * arch/arm/src/max326xx: Fixes for GPIO configuration problems and serial + driver problems. I now get the NuttShell prompt (if I also band on ENTER + to force all of the characters out). Progress, but not yet ready. From + Gregory Nutt (2018-11-27). + * arch/arm/src/max326xx and configs/max32660-evsys/src: Fix some issues + with GPIO setup of output pins. Correct polarity of on-board LED + output. The on-board LED is now functional. From Gregory Nutt + (2018-11-28). + * arch/arm/src/max326xx: WFI instruction in IDLE loop seems to interfere + with stability. Commented out for now. Needs to be investigated + further. From Gregory Nutt (2018-11-28). + * arch/arm/src/max326xx: Fixes UART interrupt problems. With these + changes, the NSH configuration appears stable and is no longer + conditioned on EXPERIMENTAL. From Gregory Nutt (2018-11-29). + * fs/procfs: Remove the unnecessary critical section From Xiang Xiao + (2018-11-29). + * sched/sched_foreach.c: sched_foreach() should not have to hold the + critical section over the entire traversal. It should be acceptable to + simply only the critical section while one entry is being processed (the + caller can always call sched_foreach within a critical section is greater + stability is needed). From Gregory Nutt (2018-11-29). + * wireless/bluetooth/bt_hcicore.c: Add second RX work function From Lwazi + Dube (2018-11-30). + * include/nuttx/wireless/bluetooth/bt_gatt.h: Fix struct name. From Lwazi + Dube (2018-11-30). + * sched/: Add debug assertions before each call to up_block_task() to + assure that there is no attempt to block an IDLE task. From Dave Marples + (2018-11-30). + * arch/mips/src/mips32/Kconfig: Allow Penguino for windows for the Windows + Ubuntu platform as well. From Gregory Nutt (2018-11-30). + * arch/arm/src/max326xx/max32660/max32660_spim.c: SPI0 master mode support + is complete (sans DMA and completely untested). From Gregory + Nutt (2018-11-30). + * configs/max32660-evsys/src: Add framework for SPI support. From Gregory + Nutt (2018-11-30). + * configs/max32660-evsys: Added support for an SPI-based micro-SD card. + Does not yet work (SPI hangs with no data transferred). From Gregory + Nutt (2018-11-30). + * drivers/lcd/Kconfig and several other places: Rename CONFIG_LCD_CONSOLE + to CONFIG_SLCD_CONSOLE. The original name CONFIG_LCD_CONSOLE is + incorrect because it runs on SLCD display. This patch fix it and update + its dependences From Alan Carvalho de Assis (2018-11-30). + * configs/stm32f4discovery: If the Critical Section Monitor, modify the + ITM_LAR register to assure that the DWT cycle counter is enabled. + Suggested by Dave Marples. From Gregory Nutt (2018-11-30). + * arch/arm/src/armv7-m/itm.h: Fix missing space causing macro issues From + Alan Carvalho de Assis (2018-12-01). + * configs: Add support for nucleo-f103rb, nucleo-f207zg and nucleo-l152re + From Mateusz Szafoni (2018-12-01). + * tools/convert-comments.c: Add a tool to convert C++-style comments to + C89 C-style comments. From Gregory Nutt (2018-12-01). + * configs/nucleo-f207zg, configs/nucleo-f103rb: Add ADC and PWM examples; + arch/arm/src/stm32_adc.c: There is no DMA CFG bit for the basic IPv1 + ADC. From Mateusz Szafoni (2018-12-02). + * Use STM32 DMA IP core version instead of chip family names and some minor + improvements: + - arch/arm/src/stm32/chip/stm32_adc.h: raise error if two IP cores selected + - arch/arm/src/stm32/Kconfig: hide TIMER menu, HRTIM menu and USB Host + debug menu if peripherals not enabled + - configs/stm32f429i-disco/highpri/defconfig: fix configuration warning + From Mateusz Szafoni (2018-12-02). + * drivers/spi/Kconfig and include/nuttx/spi/spi.h: Extend the HW features + supported by SPI. It now supports a deferred DMA trigger hardware + configuration. arch/arm/src/stm32/stm32_spi.c: Implements the new + deferred DMA trigger feature. From Dave Marples (2018-12-02). + * include/nuttx/wireless/bluetooth and include/nuttx/wireless/bluetooth: + Add SIOCBTCONNECT and SIOCBTDISCONNECT ioctl commands From Lwazi Dube + (2018-12-02). + * arch/arm/src/stm32/stm32_adc.c: Refactor adc_reset. It should be easier + to maintain this code if it's divided into smaller functions From + Mateusz Szafoni (2018-12-02). + * arch/arm/include/tiva: Started integration of support for the CC13x0, + CC13x2, and CC26x2. From Gregory Nutt (2018-12-03). + * tools/detab.c: Add detab.c which will convert all tabs in a file to + spaces. From Gregory Nutt (2018-12-03). + * tools/lowhex.c: Add lowhex.c that will convert hexadecimal constants in + a file to use lower case representation. From Gregory Nutt (2018-12-03). + * STM32F7, STM32H7, and STM32L4: Port Dave Marples STM32 fix to other + STM32 SPI drivers From Gregory Nutt (2018-12-03). + * configs/launchxl-cc1312r1/: Add a configuration for the + LAUNCHXL-CC1312R1 board. This is a very stripped down configuration. It + was needed to support verification of the CC13xx configuration logic and + will be needed to support completion of the CC13xx port. From Gregory + Nutt (2018-12-03). + * arch/: In the current implementation we only use very high priority + interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but that means + there are loads of lower priority ones that are effectively unused. I + have *not* changed the semantics of these levels but have 'shifted' them + to be based around the midpoint of the available interrupts (0x80) rather + than at the top end....that allows for interrupts to be defined above + (or, indeed, below) them as needed by the application. This should have + no functional effect on existing code but adds in a clean capability to + define higher priority interrupts. From Dave Marples (2018-12-03). + * arch/arm/src/stm32f0/stm32f0_clockconfig.c: Fixes the problem in GPIO + port clocks. Only port A clock was enabled although the comment states + otherwise. From Juha Paalijärvi (2018-12-04). + * arch/arm/src/tiva: Remove option CONFIG_TIVA_BOARD_CLOCKCONFIG. It is + not used and unnecessary. Fix some naming. up_clockconfig() is + inappropriate. Change tiva_clockconfig() to tiva_clock_reconfigure() + then we can change up_clockconfig() to tive_clock_configure(). From + Gregory Nutt (2018-12-04). + * arch/arm/include/stm32/chip.h: Remove redundant STM32 family + definitions. It is already done in arch/arm/src/stm32/Kconfig From + Mateusz Szafoni (2018-12-05). + * stm32f7: I2C out of bounds access on priv->msgv. Error in if statement. + It was checking for msgc > 0. If message count is 1, only index 0 is + valid on priv->msgv. Therefore random values in memory were used to set + next_norestart. From David Sidrane (2018-12-05). + * STM32H7 and STM32L4: Applied David Sidrane's I2C to + arch/arm/src/stm32h7/stm32_i2c.c and arch/arm/src/stm32l4/stm32l4_i2c.c. + Those easy because F7 patch applied with no problem (after changing path + and file names appropriately). The patch could not be applied to the + following. The logic is different. I don't know if a similar change is + needed there or not. + - arch/arm/src/stm32/stm32f30xxx_i2c.c + - arch/arm/src/stm32/stm32f40xxx_i2c.c + - arch/arm/src/stm32/stm32_i2c.c + - arch/arm/src/stm32/stm32_i2c_alt.c + - arch/arm/src/stm32f0/stm32f0_i2c.c + From Gregory Nutt (2018-12-05). + * arch/arm/src/armv7-m: This commit changes the lazy and non-lazy + exception handler to remove a couple of cpsid instructions from them on + ARMv7-m. If my understanding is correct then these interrupt + manipulations aren't doing anything anyway because prioritization stops + secondary interrupts arriving and, even if they did work, they would have + introduced race conditions for the period of time between the interrupt + arriving and further interrupts being disabled. From Dave Marples + (2018-12-06). + * arch/arm/src: Remove all driver-specific logic to set the interrupt + priority. There is no good reason to change the interrupt priority + unless you just want to debug a difficult problem. OR if you want to use + high priority interrupts. In that case the specific interrupt priorities + will need to be set by board-specific logic. From Gregory Nutt + (2018-12-06). + * fs/cromfs/fs_cromfs.c: Fixes hardfault From David Sidrane (2018-12-06). + * libs/libc/stdio/lib_libfread.c: fread() should always set EOF if fewer + than the requested number of bytes was not read. Per Anthony Merlino. + From Gregory Nutt (2018-12-07). + * arch/mips/include/pic32mz/chip.h: Add a missing " in an error message. + From Ouss4 (2018-12-07). + * arch/mips/src/pic32mz: Add support for the I2C bus. From Ouss4 + (2018-12-07). + * arch/arm/src: In most I2C drivers, correct upper index value in I2C + trace dump. Eliminates the extra NONE event from the trace dump output. + From Ouss4 (2018-12-08). + * wireless/bluetooth and include/nuttx/wireless/bluetooth: Remove + unnecessary gatt ioctls From Lwazi Dube (2018-12-08). + * STM32F3 and STM32F4 I2C: Remove the extra NONE event from the trace dump + output. From Ouss4 (2018-12-08). + * STM32 I2C (alternate): Remove the extra NONE event from the trace dump + output. From Ouss4 (2018-12-08). + * Improvements in STM32 ADC: + - arch/arm/src/stm32/stm32_adc.c: Start conversion on startup is now + possible if TIM triggering selected. This can be useful to start ADC + TIM conversion for ADC IPv2 when opening ADC device. + - arch/arm/src/stm32/stm32_adc.c: Fix compilation errors for chips with + one ADV TIM + - configs/nucleo-f303re: Refresh ADC example + - configs/nucleo-f334r8: Refresh ADC example + From Mateusz Szafoni (2018-12-09). + * configs/nucleo-f334r8: Add example for the SPWM generation (custom STM32 + PWM usage). From Mateusz Szafoni (2018-12-09). + * arch/arm/src/stm32/stm32_pwm: Fix compilation errors if the upper-half + PWM logic is not enabled. From Mateusz Szafoni (2018-12-09). + * include/nuttx/drivers/pwm.h: Remove dependency on CONFIG_PWM for the + upper-half PWM header. This allows compilation for the lower-level PWM + drivers even if the upper-half PWM logic is not used. From Mateusz + Szafoni (2018-12-09). + * arch/arm/src/stm32/stm32_tim.c: Fix compilation error if there is no + TIM8. From Mateusz Szafoni (2018-12-09). + * configs/nucleo-f334r8/highpri: Remove the upper-half ADC from + configuration. From Mateusz Szafoni (2018-12-09). + * configs/nucleo-f302r8/highpri: Remove the upper-half ADC from + configuration. From Mateusz Szafoni (2018-12-09). + * configs/stm32f429i-disco/highpri: remove the upper-half ADC from + configuration From Mateusz Szafoni (2018-12-09). + * include/nuttx/net/arp.h: Fix whitespace after ARPHRD_IEEE80211 From + Daniel Agar (2018-12-09). + * fs/vfs: dup() and dup2() were broken some time back. fs_dupfd() was + return returning OK on success, not the file descriptor of the duplicated + fd. From David Sidrane (2018-12-10). + * drivers/wireless/bluetooth/bt_uart_cc2564.c: Add cc2564 driver. From + Lwazi Dube (2018-12-11). + * drivers/1wire/ds28e17.c: Optimize I2C write followed by read to same + address. From Juha Niskanen (2018-12-11). + * arch/arm/src/stm32/Kconfig: Simplify ARM core selection logic From + Mateusz Szafoni (2018-12-12). + * drivers/mtd/at25.c: Added support for AT25DF081A serial flash chip. + From Marc Rosen (2018-12-12). + * fs/nxffs/nxffs_ioctl.c: Pass unrecognized IOCTL commands to the + contained MTD driver. From Daniel P. Carvalho (2018-12-12). + * arch/arm/src/stm32/Kconfig: USB Host is an option. From David Sidrane + (2018-12-12). + * drivers/mtd/at25.c: Fixed missing opening parenthesis. From Marc Rosen + (2018-12-13). + * gencromfs.c:1171:3: warning: ignoring return value of 'asprintf', + declared with attribute warn_unused_result [-Wunused-result]. From David + Sidrane (2018-12-13). + * arch/arm/src/tiva/common/tiva_hciuart.c: Port bluetooth HCI uart + interface from stm32 to tiva From Lwazi Dube (2018-12-15). + * arch/arm/src/stm32f0l0: Rename stm32f0 to stm32f0l0 to make a space + for STM32 L0. Rename files, functions and defines, removing the f0_ + from the names in order to make them MCU agnostic. From Gregory Nutt + (2018-12-16). + * Numerous files: Fixes usage of CONFIG_BIG_ENDIAN; should be + CONFIG_ENDIAN_BIG From Anthony Merlino (2018-12-16). + * net/sixlowpan: Fixes decompression of ipaddr from MAC address. The + logic used to populate the IP from the radio address should match + sixlowpan_ipfromsaddr/sixlowpan_ipfromeaddr From Anthony Merlino + (2018-12-16). + * Fix lc823450 related: + - configs/lc823450-xgevk: Fix IOB params in rndis/defconfig. These + prameters work for HTTP audio streaming. + - arch/arm/src/lc823450: Fix up_allocate_heap() in + lc823450_allocateheap2.c. This change fixes heap size and also + implements up_addregion(). From Masayuki Ishikawa (2018-12-18). + * sixlowpan: Fixes logic surrounding the Universal/Local bit. This bit + represents whether the IID is locally/globally administered. The U/L + bit is bit 1 of the MSB of the EUI-64. It should only be inverted in + cases where there is a full EUI-64. In cases where the IID is derived + from say, a short address, this bit should be forced to 0, indicating + that it is locally administered. See: + - https://tools.ietf.org/html/rfc4291#section-2.5.1 + - https://tools.ietf.org/html/rfc4944#section-6 + - https://tools.ietf.org/html/rfc2464#section-4 + From Anthony Merlino (2018-12-18). + * sched/task/task_spawn.c: Correct description of input parameters to + task_spawn_exec(). Noted by: JeongchanKim From Gregory Nutt + (2018-12-18). + * sixlowpan/ieee802154: IEEE802.15.4 stores and uses addresses in little + endian order. From Anthony Merlino (2018-12-18). + * crypto/aes.c: This commit provides an improved AES cipher API in + addition to the existing routines. The reasons for this new API are: + 1) better performance, giving the possibility to avoid re-setting-up + the key for each AES block when the same key is used multiple times. + This is important for the current single user of AES, which is related + to storage and FTL. And 2) suitable for simultaneous use of multiple + AES keys, which will be required by the upcoming crypto framework. It + retains compatibility with the previous API, so there is no need to + change anything else right now. From Sebastien Lorquet (2018-12-18). + * arch/ assertions: Correct duplicated logic from commit + dbf01d12b7321d1b48b68d3b69842a853b049376. Checking for PID == zero is + not a valid way to test for the IDLE task in all configurations! This + is only true in the single CPU configuration. In multiple CPU + configurations, there will be a separate IDLE task for each CPU with a + different PID and an alternative check must be used. NOTE: The logic + fixed in somes places still lacks sufficient intelligence to find the + right stack for the CPU IDLE thread and could still show the wrong + stack. From Gregory Nutt (2018-12-18). + * Change rndis mac: + - configs/lc823450-xgevk: Change RNDIS MAC address assignment. In + previous implementation, mac[0] was assigned to 0xaa for RNDIS host + to avoid MAC address conflicts with RNDIS device.. However, I + noticed that this assignment causes a random MAC address generation + on ubuntu16.04 or later which is inconvenient to set up network + interface. This new assignment scheme fixes this issue. + - configs/viewtool-stm32f107: Change RNDIS MAC address assignment. + Same issue. + From Masayuki Ishikawa (2018-12-19). + * crtypo/: This change: + - Avoids the use of up_aesinitialize() entirely, which resolves + dependency problems, because this function does not make sure that an + actual hardware aes implementation was made available: each SoC is + now responsible to ensure the AES hardware is initialized before + first use. This applies to lpc43xx, stm32 and sam34. + - Remove definitions of the NEVER used aes_init and aes_update + operations. The new AES API will be more suitable. + - Change the unusual naming in stm32 (avoiding possible naming clashes) + - Change the unusual naming in sam34 (avoiding possible naming clashes) + - Add some FAR to pointers and enforce the 80 col limit in stm32 and sam + From Sebastien Lorquet (2018-12-19). + * arch/arm/src/stm32: Add support for DMA v1 CSELR support. From + Mateusz Szafoni (2018-12-19). + * Brings in initial WIP support for the STML0. This initial commit is + unverified and, hence it it marked "EXPERIMENTAL." From Mateusz + Szafoni (2018-12-19). + * configs/: Hook new STM32L0 boards into the configuration system. + nucleo boards use as default ST LINK MCO as clock input from MCU and + for this HSEBYP must be enabled + - configs/nucleo-l073rz: Add basic support for nucleo-l073rz + - configs/b-l072z-lrwan1: Add basic support for b-l072z-lrwan1. + From Mateusz Szafoni (2018-12-19). + * sixlowpan: Address comment regarding avoiding double lookup of address + context. From Anthony Merlino (2018-12-19). + * Revert "This patch prevent heap corruption as in below case." This + solution to the problem noted by EunBong Song results in major memory + fragmentation and and out-of-memory conditions on the PX4 platform. On + that platform the lower priority work queue is very low priority and + essentially never runs when the system is busy. As a result, the + systems gets slowly starved of memory until failures and bad behaviors + begin to occur. This reverts commit + 91aa26774b291fa553f701ce5222e56a6156c323. From Gregory Nutt + (2018-12-20). + * mm/mm_heap/mm_sem.c: This is a candidate replacement for the reverted + change 91aa26774b291fa553f701ce5222e56a6156c323. This change adds a + check to mm_trysemaphore() (the root implementation of both + kmm_trysemaphore() and umm_trysemaphore()). It checks if the that task + that is apparently executing is marked as RUNNING. If not, how could + the non-running task be trying to get the MM semaphore? I think only + in the exact scenario that Eunbong Song has described. So I think the + solution should provide the same protection as + 91aa26774b291fa553f701ce5222e56a6156c323 but without the horrific + consequences to memory usage. From Gregory Nutt (2018-12-20). + * sched/Kconfig and sched/init/os_bringup.c: Allow the init task + priority to be set. From David Sidrane (2018-12-20). + * arch/arm/src/stm32/chip/stm32_dma_v1.h: Add missing DMA channel + configuration. + * mm/mm_heap/mm_sem.c: Defer freeing if mm is held by a not running + task. When the holder is running we can add a holder count. If there + is no holder OR it is not running we want to try to take the semaphore. + There will not be a count if the task is the holder and not running + because it already holds the count. This will result it the deferred + free. We will take it when not held and do the free when we can get + the count because there was no holder. From David Sidrane (2018-12-20). + * Extends the MTD configdata device with the following features / + additions: + 1. Configurable option to use named config items instead of enumerated + ID/Instance numbers. + 2. Ability to iterate through the existing configdata items in the + /dev/config device. + 3. Ability to "unset" a configdata item. + 4. Ability to perform "flash_eraseall" on the /dev/config device. + From Ken Pettit (2018-12-20). + * drivers/analog/lmp92001.c: Add support for the TI LMP92001 device. + * arch/arm/src/samd2l2/sam_i2c_master.c: Corrects behavior of the + I2C_M_NOSTART flag. Also adds a release a bus on RXNACK and corrects + typo priv->flags to msg->flags as priv->flags is never set. From + Alexander Vasiliev (2018-12-22). + * arch/arm/src/samd5e5/sam_i2c_master.c: Alexander Vasiliev's fix to the + SAMD21 I2C Master (commit b1110ba91c549572e94c24ebed202643233deee3) + should probably also be applied to the SAMD51 I2C Master which is + identical. From Gregory Nutt (2018-12-22). + * Fix lc823450 start: + - arch/arm/src/lc823450: Use CONFIG_STACK_COLORATION instead of + CONFIG_DEBUG_STACK + - arch/arm/src/lc823450: Fix go_os_start() in lc823450_start.c. I + found a bug in go_os_start() that it returns immediately because it + does not compare r1 to zero. This commit fixes this bug. Also, this + commit fixes its description. + From Masayuki Ishikawa (2018-12-25). + * arch/arm/src: Masayuki Ishikawa's change to go_os_start() should be + applied to all MCU-specific start-up functions that support + go_os_start(). From Gregory Nutt (2018-12-25). + * configs/stm32f4discovery: Add loadable app build support in + Make.defs From Masayuki Ishikawa (2018-12-25). + * arch/arm/src/samd2l2/chip: Adds a complete ADC header file for SAMD21 + and a partially complete ADC header file for the SAML21. From + Alexander Vasiliev (2018-12-26). + * net/sixlowpan: Record and restore d_buf on entry/exit of + sixlowpan_input. This avoids an issue where d_buf gets set to NULL by + sixlowpan, and then is used by forwarding logic from another network + interface before getting set back to the drivers internal b From + Anthony Merlino (2018-12-26). + * tools/gencromfs.c: Fix build on macOS From David Sidrane (2018-12-26). + * sched/pthread: Implement pthread_key_delete(). This involves some + minor changes to the group data structure. From Gregory Nutt + (2018-12-28). + * arch/arm/src/imxrt/chip/imxrt106x_pinmux.h: Add FLEXCAN3 to pinmux. + From David Sidrane (2018-12-28). + * arch/arm/src/tiva/: Add support for LM3S9B92. From Lwazi Dube + (2018-12-28). + * Add some conditional compilation to logic added with commit + 1cf992ed04c230e639bf29e55f2ec110cb9c4340 to better 'idiot-proof' the + LM3S support. From Gregory Nutt (2018-12-28). + * arch/arm/src/samd2l2, configs/samd20-xplained, samd21-xplained, + saml21-xplained: Fix SAMD2L2 arch to use calibrated oscillator value. + Now SAMD20 and SAMD21 should work fine without external crystal. Note + that SAML21 Xplained board has an external crystal and doesn't need + this change, unless you don't want to use the crystal. From Alexander + Vasiliev (2018-12-29). + * drivers/mtd/smart.c: Fix smart_write_alloc_sector sector size + calculation. From Daniel P. Carvalho (2018-12-29). + * mm/mm_heap/mm_sem.c and sched/task/task_getpid.c: Commits + 43d37c866bdaefeff659dec20ed380389c4880d5 and + f37202cbc0f72526ecfa58e5d27c5b4973289140 resolved some problems with + the original fix of 91aa26774b291fa553f701ce5222e56a6156c323. However, + Those changes used an internal OS interface (sched_self()) which is not + available when the the user-space memory manager is built in the + PROTECTED or KERNEL builds and resulted in build failures. This commit + repartitions the logic by moving some of the changes from mm_sem.c into + task_getpid.c. The logic is equivalent for the case of + mm_trysemaphore(), but now has wider impact (since it potentially + affects all callers of getpid()). Hence, this change may also + introduce some other issues that will need to be addressed. From + Gregory Nutt (2018-12-30). + * arch/arm/src/samd2l2/sam_i2c_master.h: Export + sam_i2c_master_initialize(int bus) to be used by board config. From + Alan Carvalho de Assis (2018-12-30). + * drivers/eeprom/i2c_xx24xx.c and include/nuttx/eeprom/i2c_xx24xx.h: Add + support to Microchip AT24CM02 From Alan Carvalho de Assis (2018-12-30). + * configs/saml21-xplained/include/board.h: Fix removed MAXCOARSESTEP + from saml21-xplained board From Alan Carvalho de Assis (2018-12-30). + * arch/arm/src/tiva/common/lmxx_tm4c_gpioirq.c: Fix tiva gpio + interrupts From Lwazi Dube (2018-12-30). + * configs/: Commit fd68d74264c breaks all STM32 board configurations + that use STM32 USB host. That is because that commit requires + CONFIG_STM_USBHOST to be set to build in USB host support, but did not + update the necessary board defconfig files to add that required + configuration. From Gregory Nutt (2018-12-30). + * drivers/net/tun.c: Fixes a problem reported by Masayuki Ishikwawa: + Recently I noticed that ARP response packet is corrupted when I tried + to run bluekitchen with the latest tun.c in TAP mode. If I revert + commit 8193c28e9126c9cb89042e80d6ebab7485a831e4, then it works again. + From Xiang Xiao (2018-12-30). + * arch/arm/include/tiva and src/tiva: Improve GPIO interrupt support by + removing unnecessary, hard-coded per-MCU defines and using the existing + Kconfig configuration options instead. From Lwazi Dube (2018-12-31). + * drivers/power/mcp73871.c: Add support to Microchip MPC73871 Battery + Charger. From Alan Carvalho de Assis (2018-12-31). + * configs/tm4c1294-launchpad/src: Add IRQBUTTONS support to tm4c1294 + launchpad. From Lwazi Dube (2018-12-31). + * arch/arm/src/stm32: Unified naming for DAC interfaces From Mateusz + Szafoni (2019-01-02). + * drivers/usbdev/cdcacm.c: When implemented usb cdc on nrf52840, + I found some issues with cdc driver: + 1. Lost data when receiving buffer is full; + 2. Low-water mask implement issue; + 3. Re-flush cdc buffer when enabling + 4. Serial dma is conflict with cdc , modify the serial.h + From Levin Li (2019-01-02). + * drivers/mtd/mtd_config.c: Check return value mtdconfig_readbytes(). + From Jussi Kivilinna (2019-01-02). + * configs/pizero: Remove the partial support for the Raspberry Pi Zero. + This port was started with the best of intentions but was never + completed. The board support can still be found in the Obsoleted + repository. From Gregory Nutt (2019-01-02). + * arch/arm/src/bcm2708 and arch/arm/include/bcm2708: Remove all support + for the BCM2708/2835. This was added only for support of the Pi Zero + board which was previously removed. The support was minimal and + unverified. The removed files can still be found in the Obsoleted + directory. From Gregory Nutt (2019-01-02). + * arch/arm/src/stm32f7: stm32f7 enable separate DMA per SPI + configuration From Daniel Agar (2019-01-02). + * lc823450 spif boot: + - arch/arm/src/lc823450: Add support for SPI flash boot. Also, remove + unnecessary code for the SPI flash boot. + - configs/lc823450-xgevk: Add linker script for SPI flash boot + From Masayuki Ishikawa (2019-01-04). + * drivers/power/battery_gauge.c: Add missing initialization of + semaphore. From Alan Carvalho de Assis (2019-01-04). + * drivers/power/battery_charger.c: Add missing initialization of + semaphore. From Alan Carvalho de Assis (2019-01-04). + * tools/mkconfig.c: Add definitions to distinguish between tristate 'y' + and 'm' options. From Gregory Nutt (2019-01-05). + * drivers/power/mcp73871.c: Fix MCP73871 driver to register correctly as + a battery charger. The first element of a 'struct + battery_charger_dev_s' should be a pointer to operations structure. + From Alan Carvalho de Assis (2019-01-05). + * drivers/net/telnet.c: Add NAWS and poll interface to telnet for screen + size negotation used with termcurses. From Ken Pettit (2019-01-05). + * arch/arm/src/samv7/sam_serial.c: Fix case where TTYS0 is not defined. + From Ken Pettit (2019-01-05). + * arch/arm/src/armv7-a/arm_mmu.c: Fix end address calculation for + mmu_invalidate_region() API From Petro Karashchenko (2019-01-06). + * arch/arm/src/armv7-a/mmu.h: Use TLBIMVA vs TLBIMVAAIS to invalidate + the Cortex-A8 cache. From Petro Karashchenko (2019-01-06). + * Initial changes for BeagleBone Black board support (TI AM335x family + based on Cortex-A8): + - configs/beaglebone-black: Adds initial support for the BeagleBone + Black board. + - arch/arm/src/am335x: Adds initial support for the TI AM355x family. + From Petro Karashchenko (2019-01-06). + * drivers/telnet/telnet.c: telnet.c priv only used if + CONFIG_TELNET_SUPPORT_NAWS From Daniel Agar (2019-01-06). + * arch/arm/src/am335x/chip/am3358_memorymap.h: Code cleanup for + beaglebone black port. From Petro Karashchenko (2019-01-06). + * arch/arm/src/am335x/am335x_irq.c: Uncomment code for interrupt + enable/disable. From Petro Karashchenko (2019-01-06). + * drivers/timers/mcp7941x.c: Add support for the MCP741x external RTC. + From Ouss4 (2019-01-06). + * configs/lc823450-xgevk: Enable NFS client for rndis. Also, some stack + size were adjusted to work with NFS From Masayuki Ishikawa (2019-01-07). + * include/dsp.h: Fix missing semicolon error in dsp.h From MYAPICI + (2019-01-07). + * fix stm32 tim bug. From lihaichen (2019-01-07). + * drivers telnet common_ioctl() - inode only used with + CONFIG_TELNET_SUPPORT_NAWS From Daniel Agar (2019-01-07). + * mm/mm_heap/mm_calloc.c: Verify that the number of elements times the + size of an element will not overflow type size_t. This is required by + the SEI CERT C coding style and resolves anonymous Bitbucket Issue + #139 From Gregory Nutt (2019-01-07). + * Revert "arch/arm/armv7-m: MPU: mpu_log2regionceil needs take into + account the offset too". Masayuki Ishikawa reports that this commit + breaks ALL PROTECTED mode builds. It violates the basic requirements + of the use of the MPU in protected mode. Those basic requirements are: + 1. The MPU region must be aligned to the base address of the memory + region being mapped (it may NEVER extend before the memory region). + That is, the following MUST always be zero: + (base & ((1 << l2size) - 1)) + 2. The MPU region must never extend beyond the end of the memory + region. That is, the following must be true: size >= (1 << l2size) + This reverts commit 8b63d0230936bd7d6bd94f4c76b9402946f69b21. From + Gregory Nutt (2019-01-08). + * drivers/net/telnet.c: Add missing logic to set read event flags in + poll() method. From Ken Pettit (2019-01-08). + * drivers/timers/mcp794xx.c: Rename the module to mcp794xx. From Ouss4 + (2019-01-08). + * Revert "arch/: The protoype of mpu_log2regionfloor() changed; an + additional parameter was added. However, none of the calls to + mpu_log2regionfloor() were updated to pass the new, additional + parameter." Commit 8b63d0230936bd7d6bd94f4c76b9402946f69b21 was + reverted. This related commit must now also be reverted to avoid + compilation errors. This reverts commit + e8270defc9b26f7a7199288fa9ba203a96ed63d4. From Gregory Nutt + (2019-01-08). + * drivers/mtd/s25fl1.c: Minor change for the s25fl1 QSPI FLASH driver + which fixes additional sectorshift vs. pageshift confusion. From Ken + Pettit (2019-01-09). + * STM32F7 and L4 I2cC: Use clock_t for ticks instead of uint32_t to hold + system time. From Jussi Kivilinna (2019-01-09). + * Drivers for Sensirion SCD30, SGP30 and SPS30 sensors: + - drivers/sensors: add driver for Sensirion SCD30 CO2 sensor + - drivers/sensors: add driver for Sensirion SGP30 gas sensor + - drivers/sensors: add driver for Sensirion SPS30 particulate matter + sensor + From Jussi Kivilinna (2019-01-09). + * Adds the ARM mbed littlefs to NuttX: + - depends on !DISABLE_MOUNTPOINT && MTD_BYTE_WRITE + - register_mtddriver("/dev/w25", mtd, 0755, NULL); + mount("/dev/w25", "/w25", "littlefs", 0, NULL); + From lihaichen (2019-01-09). + * arch/arm/src/stm32f0l0: Add support for GPIO EXTI. From Mateusz + Sfafoni (2019-01-09). + * configs/nucleo-l073rz: Support for nrf24l01. From Mateusz Sfafoni + (2019-01-09). + * configs/b-l072z-lrwan1/include/board.h: Add note about onboard Murata + CMWX1ZZABZ-09 module and definitions for available peripherals. From + Mateusz Sfafoni (2019-01-09). + * include/nuttx/compiler.h: Correct support of C-version-specific + features. Cannot depend on GCC version because -std=c89 may be used on + comomand line. Need instead to use __STDC_VERSION__ to determine if a + feature is supported. Also add conditional support inline, depending + on C99. From Gregory Nutt (2019-01-09). + * With these changes, I am able to access NSH on Beaglebone Black. I + still observe data abort crash if I compile the code with optimization + enabled. The next steps are to investigate the optimization issue and + add Watchdog module. Currently, NSH does not run for a long time. + - arch/arm/src/am335x/am335x_irq.c: Correct interrupt processing routine + - configs/beaglebone-black/nsh/defconfig: Enable debug compilation + options. Otherwise data abort crash is observed + - arch/arm/src/am335x/am335x_timerisr.c: Make sure that Timer 1 + interrupts are disabled before any access to peripheral registers + From Petro Karashchenko (2019-01-09). + * drivers/mtd/smart.c: Fix for the SmartFS MTD layer size mapping + issue. With this patch, existing SmartFS drives should still mount and + work properly, plus the larger sector sizes are now supported + correctly. From Ken Pettit (2019-01-10). + * stm32f0l0: Fix GPIO EXTI lines assignment for STM32 M0. From Mateuz + Szafoni (2019-01-12). + * drivers/timers/mcp794xx.c: Fix MCP794xx driver to wait for OSCRUN and + fix tm_year. From Abdelatif Guettouche (2019-01-12). + * net/sixlowpan: sixlowpan_input should always return 0 if the incoming + frame was consumed. From Anthony Merlino (2019-01-13). + * configs/lc823450-xgevk: Fix overlapped memory settings in memory.ld + From Masayuki Ishikawa (2019-01-14). + * configs/stm32f4discovery: Update nsh configuration: (1) Add + CONFIG_BOARD_INITIALIZE=y, (2) Add CONFIG_EXAMPLES_HELLO=y From + Masayuki Ishikawa (2019-01-14). + * configs/stm32f4discovery: Update rndis configuration: + - Add NFS and adjusted stack size for usermain and telnetd client. + - Add support for loadable application and ping. + From Masayuki Ishikawa (2019-01-14). + * drivers/lcd/st7032.c: Fix seek method. Was not taking into account + the offset for the SEEK_END case. Did not account for negative + offsets. On errors, it was clobbering the filep->f_pos setting. From + Gregory Nutt (2019-01-14). + * drivers/lcd/pcf8574_lcd_backpack.c: Fix seek method. Had the same + problems as noted for st7032.c driver. From Gregory Nutt (2019-01-14). + * arch/arm/src/am335x: Add minimal wdog logic needed to disable the + watchdog timer. Otherwise, the board is rebooted after certain time + expires while NuttX is running. From Petro Karashchenko (2019-01-15). + * drivers/lcd/tda19988: This commit brings in a complete, but untested, + implementation of a driver for the TI TDA19988 HDMI Encoder. This + encoder is used on the Beaglebone Black board. Since this driver is + untested, it requires CONFIG_EXPERIMENTAL in the configuration. From + Gregory Nutt (2019-01-15). + * arch/arm/src/samd2l2/sam_i2c_master.c: Adds calculation of a timeout + and disables interrupts in case of error. From Alexander Vasiliev + (2019-01-15). + * include/nuttx/lcd/edid.h: Add EDID definitions From Gregory Nutt + (2019-01-15). + * nucleo-f767zi: Use on board USB UART as default console. Board is + powered by USB which can be used as UART link for upload and console. + Previously it was set to use Arduino shield which developer may not + have. From Phil Coval (2019-01-15). + * nucleo-144-f767-netnsh: Add ethernet config based on nsh configuration + plus stm32f769i-disco/nsh-ethernet. From Phil Coval (2019-01-15). + * stm32: Align ethernet config name to netnsh. nsh-ethernet was only + used for stm32f7*-disco, other configurations with network enabled are + commonly named netnsh or derived: (eg: nucleo-144/f7670-netnsh) From + Phil Coval (2019-01-16). + * arch/arm/src/am335x/am335x_timerisr.c: Switch to DMTimer2 for system + tick generation. U-Boot does not enable DMTimer1ms clocks hence it is + not possible to use it until implementation in am335x_clockconfig.c is + ready From Petro Karashchenko (2019-01-16). + * arch/arm/src/imxrt/chip/imxrt_flexpwm.h: Correct duplicated + definitions From David Sidrane (2019-01-16). + * arch/arm/src/imxrt/imxrt_serial.c: Fix TTYS0 defined definitions of + higher numbered ports From David Sidrane (2019-01-16). + * arch/arm/src/imxrt/imxrt_serial.c: Support independent input and + output flow control. From David Sidrane (2019-01-16). + * arch/arm/src/imxrt/imxrt_usdhc.c and related board.h files: Use single + define for USB pin definitions. From David Sidrane (2019-01-16). + * arch/arm/src/imxrt: ADD GPIO Support Input daisy selection From David + Sidrane (2019-01-16). + * arch/arm/src/imxrt/imxrt_lpspi.c: Removed unused clock, that borked + the build From David Sidrane (2019-01-16). + * arch/arm/src/imxrt/Make.defs: Include up_systemreset and + up_stackcheck.c From David Sidrane (2019-01-16). + * arch/arm/src/imxrt/imxrt_lpi2c.c: I2C Reset rework From David Sidrane + (2019-01-16). + * arch/arm/src/imxrt/imxrt_periphclks.h: Ensure C++ compatibility. From + David Sidrane (2019-01-16). + * arch/arm/src/tiva: Support for the CC13x0 and CC13x2 families is + basically code complete except for integration with ROM DriverLib. + And, of course, completely untested. Support for the CC26x2, which is + nearly identical to the CC13x2 is fragmentary. From Gregory Nutt + (2019-01-17). + +7.29 2019-xx-xx Gregory Nutt