Update changelog in preparation for nuttx-7.24 release.

This commit is contained in:
Gregory Nutt 2018-03-01 11:43:01 -06:00
parent b4a5cbb9de
commit d9337f9146

715
ChangeLog
View File

@ -18158,4 +18158,717 @@
I2S aliases to follow other arch names. From Alan Carvalho de Assis
(2017-11-30).
7.24 2018-xx-xx Gregory Nutt <gnutt@nuttx.org>
7.24 2018-03-01 Gregory Nutt <gnutt@nuttx.org>
* drivers/pipes: poll: fix off-by-one error in calculation of bytes in the
buffer. Buffer calculation in pipe poll setup is off-by-one when read
indexis larger than write index. This causes poll() not getting POLLIN when
buffer has one byte as calculation gives zero bytes in buffer. From Jussi
Kivilinna (2017-12-07).
* This adds basic architectural support for the LPC546xx family and
includes support for the LPCXpresso-LPC54628 board. The basic NSH port is
almost complete... still lacking GPIO support and LED support. There are
still no significant drivers available.
* SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore(). These
APIs are simplified version of enter_critical_section() and
leave_critical_section() to protect data (e.g. registers) in SMP mode. By
using these APIs inside drivers, performance will be improved. From
Masayuki Ishikawa (2017-12-07).
* sixlowpan: Completes configuration options for specifying preloaded
address contexts for compression From Anthony Merlino (2017-12-07).
* configs/photon: Adds BOARD_TIMn_FREQUENCY macros From Anthony Merlino
(2017-12-07).
* arch/arm/src/lc823450 SMP improvements. (1) Apply irq_spin APIs to
modifyregXX, (2) Do not use modifyreg32() to enable Mutex, (3) Modify IRQ
control for i2s. Interrupt will be handled on CPU0 with this change. (4)
Apply irq_spin APIs to dma/syscontrol/usbdev. (5) Assign CPU1 to lpwork.
This change will improve load balancing for networking with RNDIS. From
Masayuki Ishikawa (2017-12-08).
* drivers/audio/wm8776.c: Improve stability in SMP mode. Apply irq_spin
APIs to improbe performance.
Repeat to process a message to avoid deadlock. From Masayuki Ishikawa
(2017-12-08).
* configs/lc823450-xgevk: Enable SPINLOCK_IRQ and NXPLAYER in rndis. From
Masayuki Ishikawa (2017-12-08).
* arch/arm/src/xmc4: Only setup USB clock when USB PLL is enabled From
Alan Carvalho de Assis (2017-12-08).
* arch/arm/src/lpc54628: LPCXpresso-LPC54628 NSH configuration is fully
functional. From Gregory Nutt (2017-12-10).
* arch/arm/src/lpc54xx: Add basic build support for EMC and external
SDRAM. From Gregory Nutt (2017-12-10).
* configs/lpcxpresso-lp54629: Add logic to configure EMC pins.
arch/arm/src/lpc54xx: Update pin configuration for EMC pins. All should
have the input file offset and fast slew rate. From Gregory Nutt
(2017-12-11).
* arch/arm/src/lpc54xx: Add skeleton of SPI driver just as a starting
point. From Gregory Nutt (2017-12-11).
* arch/arm/src/lpc54xx: SDRAM is now fully functional on this board! From
Gregory Nutt (2017-12-12).
* arch/arm/src/lpc54xx: Add the ported LPC1788 LCD driver to use the
LPC54xx pin definitions and SYSCON. From Gregory Nutt (2017-12-12).
* configs/lpcxpresso-lpc54628: Add the fb configuration testing the LCD.
From Gregory Nutt (2017-12-13).
* arch/arm/src/lpc54xx: Fix some LCD clocking. There is now recognizable
albeit corrupted data on the display. From Gregory Nutt (2017-12-13).
* arch/arm/src/lpc43xx: Adapt LPC176x RTC driver for the LPC43xx. From
Gintaras Drukteinis (2017-12-14).
*arch/arm/src/lpc54xx: LCD.. Fix some miconceptions about how the video
address lines are used. Fix some LCD BPP and BRG vs RGB settings. From
Gregory Nutt (2017-12-14).
* fs/fat: CONFIG_FAT_MAXFNAME may not exceed NAME_MAX (CONFIG_NAME_MAX)
From Gregory Nutt (2017-12-15).
* arch/arm/src/lpc54xx: Complete coding of the I2C driver. I2C now appears
to be functional. config/lpcxpresso-lpc54628: Add support for I2C2 and
for the I2C tool to the nsh configuration. From Gregory Nutt (2017-12-15).
* arch/arm/src/stm32f7: Completes support for the STM32F72x/73x family.
From Bob Feretich (2017-12-16).
* arch/arm/src/lpc54xx: Implement GPIO interrupt support.
configs/lpcxpress-lpc54628: Add support for the USER button. Enable the
apps/examples/button test in the NSH configuration. From Gregory Nutt
(2017-12-16).
* arch/arm/src/lpc54xx: Fix some GPIO interrupt configuration errors. Add
logic to acknowledge rising/falling edge events.
config/lpcxpresso-lpc545628: Add an intermediate interrupt handler to
support acknowledgment of rising and falling edge interrupts. From Gregory
Nutt (2017-12-16).
* confgs/indium-f7: Adds support for the RAF Research Indium-F7 board.
From Bob Feretich (2017-12-16).
* configs/*/include; Remove prototype of xyz_boardinitialize() from
board.h files. The authoritative prototype is in
arch/arm/src/xyz/xyz_start.h From Gregory Nutt (2017-12-16).
* fs/nfs/nfs_vfsops.c: Correctly infer file type. The file type is in
struct nfs_statinfo_s's ns_type field, not in the ns_mode field. From
Michael Jung (2017-12-17).
* drivers/input/ft5x06.c: Add a driver for the FT5x06 capacitive,
multi-touch, touchscreen controller. configs/lpcxpresso-lpc54628: Add
support for the the FT5x06. Enable the driver as well as the apps/examples
touchscreen test. Untested on initial commit. From Gregory Nutt
(2017-12-17).
* fs/fat: Don't warn about the CONFIG_FAT_MAXFNAME being too large if long
file name support is not implemented. From Gregory Nutt (2017-12-17).
* configs: Still trying to get consistent name. button driver expects
board to define NUM_BUTTONS, not BOARD_NUM_BUTTONS. That was changed in
all board.h header files, but there are still references in configs/ C
files to BOARD_NUM_BUTTONS From Gregory Nutt (2017-12-17).
* Fixed build of PCF8574 driver when its interrupts aren't enabled by
config. From Dmitriy Linikov (2017-12-18).
* net/tcp: Introduce tcp receive window control based on I/O buffer. NOTE:
The algorithm is still experimental but useful for http streaming. From
Masayuki Ishikawa (2017-12-18).
* drivers/input/ft5x06: Fix a misconception.. WAKE is an output, not an
input. From Gregory Nutt (2017-12-18).
* drivers/power/bq2429x.c: Add trickle charging mode From Juha Niskanen
(2017-12-18).
* drivers/ft5x06: Add a polled mode of operation for the FT5x06 in attempt
to work around the fact that the LPCXpresso-LPC54628 chose a non-interrupt
pin for the FT5x06 interrupt. Driver is still not yet functional. From
Gregory Nutt (2017-12-18).
* drivers/ft5x06.c: Add additional configuration options: Optimize if
multi-touch capability is not used. Add options to swap X/Y and
thresholding to reduce the rate of false alarm reports (with no motion).
From Gregory Nutt (2017-12-18).
* configs/lpcxpresso-lpc54628: Add an NxWM configuration. Not yet
functional. From Gregory Nutt (2017-12-18).
* drivers/input/ft5x06.c: Fix a problem was was causing missing reports
when the touch ends. From Gregory Nutt (2017-12-18).
* arch/arm/src/lpc54xx: Bring in LPC43xx SD/MMC driver from
https://github.com/Smoothieware/smoothie-nuttx/tree/master/nuttx/arch/arm/src/lpc43xx
From Gregory Nutt (2017-12-19).
* arch/arm/src/lc823450: lc823450 http streaming improvements: (1) Use
spinlock APIs in lc823450_gpio.c. (2) In SMP mode, H/W interrupts should
be handled on CPU0 to avoid deadlocks. (3) Fix a potential race condition
in up_enable_irq(), (4) Use spinlock APIs instead of critical section APIs,
(5) Enable HRT_TIMER in lc823450_timerisr.c, (6) Call up_enable_irq() to
assign CPU0 for IRQ handling. (7) Use spinlock APIs instead of critical
section APIs. (8) Fix race conditions in dma/usbdev. (9) Enable HRT_TIMER,
LC823450_MTM0_TICK, SPINLOCK_IRQ, (10) Enable NET_TCP_RWND_CONTROL,
NXPLAYER_HTTP_STREAMING_SUPPORT (rndis only) From Masayuki Ishikawa
(2017-12-20).
* syslog: Fixes LOG_UPTO macro to include specified log level From Anthony
Merlino (2017-12-20).
* Rename the configs/stm32f0discovery board directory to
configs/stm32f051-discovery. There are others stm32f0discovery boards with
different MCUs and different peripherals on the board. From Alan Carvalho
de Assis (2017-12-20).
* This commit adds support for stm32f072b-disco board. This is the board. I
added the LEDs of this board and tested the compilation, more tests will be
needed. From Alan Carvalho de Assis (2017-12-20).
* drivers/sensors/hts221.c: Fix sensor reset with BOOT bit From Jussi
Kivilinna (2017-12-20).
* arch/arm/src/lpc54xx: Add support for card detect and write protect to
SDMMC driver. configs/lpcxpresso-lpc54628: Add logic to bring up SDMMC.
SDMMC pin configurations should have SLEW on and FILTER off. Add support
for power pin to SDMMC driver. In SDMMC driver, don't do DMA if the entire
transfer will fit in the FIFO. In SDMMC driver, add logic to transfer data
when TXDR or RXDR interrupts occur. Also, add logic to set the RX
watermark to 2 when receiving short, non-DMA data transfers. In SDMMC
driver, fix an error which was clobbering the interrupt mask register
(xfrmask). Also, add a kludge for the missing DTO interrupt. From Gregory
Nutt (2017-12-20).
* arch/arm/src/lc823450: Add SP_DMB() into lc823450_testset.c. In
lc823450, ldrex and strex are not supported. So we implemented up_testset()
with H/W Mutex. However, there was a bug in memory access order. This
change ensures correct memory access order in up_testset() for lc823450.
From Masatoshi.Tateishi (2017-12-21).
* sched/semaphore/spinlock.c: Add memory barrier operations in
spin_unlock(). In ARM document regarding memory barriers, SP_DMB() must be
issued before changing a spinlock state to SP_UNLOCKED. However, we found
that SP_DSB() is also needed to ensure that spin_unlock() works correctly
for network streaming aging test. From Masayuki Ishikawa (2017-12-21).
* arch/arm/src/lpc43xx: Add Windowed Watchdog Timer (WWDT) driver. Tested
on LPC4357 but should be compatible for all LPC43xx MCUs. From Gintaras
Drukteinis (2017-12-21).
* arch/arm/src/lpc54xx: SDMMC fixes.. DMA should not be enabled on non-DMA
transfers, the burst setting in FIFOTH is supposed to match the burst
setting in the BMOD reseters, Add DMA error interrupt support. With these
changes DMA now works on the LPC54xx. From Gregory Nutt (2017-12-21).
* fs/vfs: reopen should return NULL when oflags is less than 0, not equal
to 0. Because negative value is returned on failure of lib_mode2offlags
which converts the mode string into file open mode flag. From Gregory Nutt
(2017-12-21).
* tools/cvsparser.c: Add a check to avoid access past the end of a fixed
size array From Gregory Nutt (2017-12-21).
* arch/arm/src/arm/up_cache.S: Fix cp15_invalidate_dcache. In cases where
more than one dcache line was to be invalidated, a missing branch label
would result in a false branch target into cp15_flush_idcache. Also the
.size macro was fixed for both cp15_invalidate_dcache. From Michael Jung
(2017-12-22).
* Leverage the LPC54xx SD/MMC back to the LPC43xx (where it came from
originally). From Gregory Nutt (2017-12-22).
* arch/arm/src/lpc54xx/43xx: SDMMC driver: Need to disable DMA interrupts
at completion of DMA. From Gregory Nutt (2017-12-22).
* configs/bambino-200e: Add LPC43 SDMMC board support to Bambino-200E and
fix errors/warns From Alan Carvalho de Assis (2017-12-22).
* arch/arm/src/lpc43xx/lpc54xx SDMDC: Don't enable internal DMA in the
control register if not doing internal DMA. Clear pending DMA-related
interrupts before enabling them. From Gregory Nutt (2017-12-22).
* arch/arm/src/lpc43/54 SDMMC: DTO is a wait event, not a transfer event.
Defer enabling DMA transfer interrupts until after command has been sent.
From Gregory Nutt (2017-12-23).
* arch/arm/src/lpc43/lpc54 SDMMC: Add missing test for response errors in
interrupt handler. From Gregory Nutt (2017-12-23).
* arch/arm/src/lpc54xx: Add DMA driver ported from the LPC43xx GPDMA
driver. From Gregory Nutt (2017-12-24).
* arch/arm/src/lpc54xx: Bring in WWDT driver from LPC43. From Gregory
Nutt (2017-12-24).
* arch/arm/src/lpc54xx: Add an RTC driver and a RTC character driver lower
half. configs/lpcxpresso-lpc54628: Add logic to register the RTC
character driver if it is enabled. Enable the RTC and RTC character driver
in the NSH configuration. From Gregory Nutt (2017-12-25).
* arch/arm/src/lpc54xx: Add support for a random number generator. From
Gregory Nutt (2017-12-26).
* arch/arm/src/lpc54xx: Add an Ethernet driver. From Gregory Nutt
(2017-12-26).
* fs/nfs/nfs_vfsops.c: Fix buffer corruption. In case multiple read
requests to the NFS server are required to fill up the user provided
buffer, nfs_read might write behind the end of said buffer. This is fixed
with this change. From Michael Jung (2017-12-28).
* arch/arm/src/lpc54xx: Ethernet drivers ready for testing.
configs/lpcxpresso-lpc54628: Add a netnsh configuration that will be used
to test the Ethernet driver. From Gregory Nutt (2017-12-30).
* arch/arm/src/lpc54xx: Finishes open design issues with AVBTP
multi-channel operation. From Gregory Nutt (2017-12-30).
* net: Fix an error introduced when ICMP and ICMP6 socket support was
added in NuttX-7.3. A gratuitous ARP (or solitication) was being sent
after receive of the ECHO replay (advertisement). From Gregory Nutt
(2018-01-01).
* arch/arm/src/lpc54xx: Correct handling of the Ethernet RBU error. With
this fix, Ethernet now appears to be fully functional. From Gregory Nutt
(2018-01-01).
* Add FPU to xmc4 ostest. Remove +x from makefiles, preserve .gdbinit
across make clean, add FPU support to ostest on xmc4, add FPU test to
ostest on xmc4 From David Alessio (2018-01-02).
* net/arp: Fix IGMP multicast address computation on Nuttx network stack.
This change fixes the IGMP address computation to allow multicast UDP
messages. The destination address was created with the incorrect bytes of
the given IPv4 address. From Louis Mayencourt (2018-01-02).
* stm32/chip.h: minor fixes for STM32F334 From raiden00pl (2018-01-03).
* net/route: Adding ftruncate() support eliminates an issue in file-based
routing table management system. From Gregory Nutt (2018-01-03).
* fs/userfs: Add truncate() support for userfs, fs/unionfs: Add truncate()
support to the unionfs, fs/tmpfs: Add ftruncate() support to tmpfs,
syscall/: Add system call support for ftruncate(). From Gregory Nutt
(2018-01-03).
* fs/vfs: Add support for truncate() and ftruncate(). The infrastructure
is complete. Now, however, the actual implementation of ftruncate() will
have to be done for each file * fs/nxffs: Add partial implementation of
the truncate method: It extend files, but cannot yet shrink them,
fs/smartfs: Add implementation of the truncate method, fs/fat: Add
implementation of the truncate method. fs/nfs: Add support for the
truncate method to the NFS file system. From Gregory Nutt (2018-01-04).
* net/route: Fix a couple of compile-related issues that have crept in
since the last time the file-based routing table was used. From Gregory
Nutt (2018-01-05).
* configs/sim: Add support for a RAM MTD driver and initialization for use
with SmartFS. From Gregory Nutt (2018-01-05).
* FAT. Effectively handles the situation when a new file position is
within the current sector. Accelerates the work of the FS with a multitude
of operations to write small pieces of data within the current sector.
From Aleksandr Vyhovanec (2018-01-05).
* configs/sim: Add support for testing NXFFS. From Gregory Nutt
(2018-01-06).
* configs/flipnclick-sam3x: Add board support for the Mikroe Flip&Click
SAM3X. From Gregory Nutt (2018-01-06).
* configs/stm32f103-minimum: Add AT24 EEPROM support on STM32F103-Minimum
board From Alan Carvalho de Assis (2018-01-06).
* arch/mips/include/pic32mz: Add architectural support for the PIC32MZEF
family. From Gregory Nutt (2018-01-08).
* configs/flipnclick-pic32mz: Adds board support for the Mikroe Flip&Click
PIC32MZ board. From Gregory Nutt (2018-01-08).
* drivers/net: Add support for telnet character mode From Masayuki
Ishikawa (2018-01-09).
* arch/arm/src/lc823450: Introduce DVFS. This version only supports
manual mode and Vdd1 is fixed to 1.2V. From Masayuki Ishikawa (2018-01-10).
* configs/lc823450-xgevk: Enable DVFS in lc823450_bringup.c. Enable DVFS
in audio and rndis. Add telnet character mode to rndis. From Masayuki
Ishikawa (2018-01-10).
* arch/arm/src/samdl: In sam_spibus_initialize(), the pinmux configuration
was smashing the previous CTRLA register configuration. There are also some
typos in samd_spi.h From Matt Thompson (2018-01-11).
* SAMDL fix g_spi2ops and g_spi2dev using incorrect values From Matt
Thompson (2018-01-11).
* SAMD External Interrupt Controller (EIC) support From Matt Thompson
(2018-01-11).
* fs/procfs: Fix an error in a common function that manages read data.
From Gregory Nutt (2018-01-12).
* sched/irq: Add a configuration option to show interrupt information via
a procfs file. From Gregory Nutt (2018-01-12).
* arch/arm/src/lpc54xx: The SPI driver is code complete but still
untested. This driver is 'basic' in that in only supports polled mode
operations. From Gregory Nutt (2018-01-14).
* arch/arm/src/stm32/stm32_hrtim: fix deadtime configuration. Add
interface to change outputs SET/RST configuration From Mateusz Szafoni
(2018-01-14).
* drivers/loop/losetup.c: If we want to open read-only in losetup.c, flags
should be O_RDONLY not O_RDWR From Fabio D'Urso (2018-01-14).
* sched/clock/clock_systimer.c: Replace critical section APIs with
spinlock APIs. (64bit only). If SMP=n or SMP=y && SPINLOCK_IRQ=n, this
works in the same way as before. If SMP=y && SPINLOCK_IRQ=y, performance
will be improved. From Masayuki Ishikawa (2018-01-15).
* sched/clock/clock_systimer.c: Change the way that the 64-bit time is
sampled. Previously, we disabled interrupts before sampling the 64-bit
timer since the uint64_t access is not atomic on most CPUs. However,
disabling (local) interrupts does not work in the SMP case. In that case,
the timer interrupt will be running on only one of the CPUs; disabling
interrupts on a different CPU will provide no protection from timer
rollover. To work around this, logic was added that samples 64-bit timer
is sampled twice and if 32-bit rollover was detected between samples, then
loops until there is no rollover. From Gregory Nutt (2018-01-15).
* configs/nucleo-l432kc/src: Fix some bogus logic noted by Fanda. From
Gregory Nutt (2018-01-15).
* fs/smartfs: Fix inverted ifdef for CONFIG_SMARTFS_USE_SECTOR_BUFFER in
smartfs_extendfile() From Jussi Kivilinna (2018-01-16).
* configs/nucleo-* and configs/stm32l476vg-disco: Fix more
stm32_userleds.c bogus logic From Juha Niskanen (2018-01-16).
* Fixes two bugs in multi-block SD-card operations on the STM32F7
platform. arch/arm/src/stm32f7: DBLOCKSIZE must be the size of SD-card
block, not the total amount of transferred bytes. drivers/mmcsd: respect
SDIO_CAPS_DMABEFOREWRITE on CMD25. From Evgeniy Bobkov (2018-01-16).
* Fixed nucleo-l432kc broken build when CONFIG_USERLED_LOWER defined From
Fanda (2018-01-16).
* Remove the BOARDIOC_TSCTEST_TEARDOWN boardctl() command. Remove all
implementations of board_tsc_teardown() (the were all stubs anyway except
for the simulation). From Gregory Nutt (2018-01-16).
* SMP: Introduce spin_lock_wo_note() and spin_unlock_wo_note(). These APIs
are used in sched_note.c to protect instrumentation data. The difference
between these APIs to exsiting spin_lock() and spin_unlock() is that they
do not perform instrumentation to avoid recursive call when
SCHED_INSTRUMENTATION_SPINLOCKS=y. From Masayuki Ishikawa (2018-01-17).
* configs: Eliminates the BOARDIOC_TSCTEST_SETUP command. Each board now
initializes the touchscreen controller as a normal part of its board
bring-up. board_tsc_setup() is gone; the touchscreen controller is now
treated like any other on-board device.
* configs: Since the touch screen initialization is now called from
one-time board-initialization logic, it no longer needs protection from
re-entry. From Gregory Nutt (2018-01-17).
* configs: CONFIG_MAX_TASKS must be a power of 2. From Gregory Nutt
(2018-01-17).
* configs: There should be either CONFIG_LIB_BOARDCTL=y or
CONFIG_BOARD_INITIALIZE=y (but not both) in the defconfig of every
standalone NxWM configuration to assure that all of the board resources are
initialized... especially the touchscreen since it is now a part of the
board driver initialization. From Gregory Nutt (2018-01-17).
* arch/arm/src/samdl: SPI must be disabled before changing the mode bits in
CTRLA register From Matt Thompson (2018-01-17).
* arch/arm/src/lc823450: Explicitly assign I2S IRQ handling to CPU0. From
Masayuki Ishikawa (2018-01-18).
* arch/arm/src/samdl: SPI must be disabled before changing the mode bits in
CTRLA register. From Matt Thompson (2018-01-18).
* drivers/input/ft5x06.c: Remove logic to disable polling when there there
is no client waiting for read data. That was a great idea to save CPU
cycles when there is nothing reading from the touchscrren but,
unfortunately, does not work with readers that open the driver in
non-blocking mode. So I think we just have to eat the CPUs even when there
is nothing waiting for touchscreen input. From Gregory Nutt (2018-01-18).
* configs/lpcxpresso-lpc54628/lvgl: Add LittlevGL graphics demo
configuration. From Gregory Nutt (2018-01-18).
* sched/semaphore: Add DEBUGPANIC() in nxsem_post() if no waiting task is
found. From Masayuki Ishikawa (2018-01-19).
* sched/sched/sched_sporadic.c: fix compiler error when priority
inheritance is enabled. Noted by eunb.song@samsung.com From Gregory Nutt
(2018-01-19).
* sched/sched: Fix some priority inheritance related issues noted during
review of logic. Also add some REVISIT comments for some issues noted in
the design. From Gregory Nutt (2018-01-20).
* Issue #85: /dev/userleds is not working for nucleo-l432kc fixed From
Fanda Vacek (2018-01-20).
* arch/arm/src/stm32/stm32_hritm.c: Add interface to get timer clock
frequency, fix timer freq calculation, add compare/capture registers
significant bits checking. From Mateusz Szafoni (2018-01-21).
* stm32f334-disco: add buck converter and boost converter logic From
Mateusz Szafoni (2018-01-21).
* fs/userfs: use correct req type in userfs_truncate, remove use of
undeclared buf From Juha Niskanen (2018-01-22).
* arch/arm/src/xmc4: Refactor pll setup, refactored PLL/CLK config, easier,
checks for correctness, call go_os_start if STACK_COLORIZED, smarter config
of EXTCLK output freq. From David Alessio (2018-01-22).
* net/: The existence of the network driver ioctl() method should depend on
CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL. The former
enables the method, the later enables a subset of possible driver IOCTLs.
This change should be basically a no-operation. The affected ioctl methods
only support those subset of driver IOCTLs selected by
CONFIG_NETDEV_PHY_IOCTL and the network logic will tolerate a nul ioctl
method. From Gregory Nutt (2018-01-22).
* net/tcp: Write buffering logic should not wait for a free buffer if the
socket was opened non-blocking. Also, rename the TCP write buffering
macros from WRB_* to TCPWB_* to make room in the namespace for write
buffering with other protocols. From Gregory Nutt (2018-01-22).
* net/udp: Remove some conditional logic that was true if there is only a
single network device, but not true in the multi-device context. From
Gregory Nutt (2018-01-22).
* net/udp: This commit adds an implementation of UDP write buffering.
From Gregory Nutt (2018-01-22).
* net/udp: In sendto(), return EHOSTUNREACH if the network is down. From
Gregory Nutt (2018-01-22).
* drivers/mtd/at24xx.c: Correct page size for AT24C02 part. From Alexander
Oryshchenko (2018-01-24).
* arch/arm/src/stm32: Make STM32 usable with an external RTC.
drivers/timers/ds3231.c: Correct some debug statments. From Alexander Oryshchenko (2018-01-24).
* arch/arm/src/stm32/stm32_spi.c: Removed unnecessary (and incorrect) speed
limitation From Alexander Oryshchenko (2018-01-24).
* arch/arm/src/stm32/stm32f40xxx_i2c.c: Correct some recent changes to
STM32F4 I2C that broke poll mode of operation. From Alexander Oryshchenko
(2018-01-24).
* arch/arm/src/samdl: Added SAMD DAC header file. Fixed SAMD EVSYS header.
Added SAMD TC header file. Fixed some minor typos. Added missing EVCTRL
register bits in TC. From Matt Thompson (2018-01-24).
* arch/arm/src/samdl: SAMD External Interrupt Controller (EIC) support.
From Matt Thompson (2018-01-24).
* configs/flipnclick-sam3x (also Arduio-Due): Remove disabling of
environment, mountpoints, and poll. Add NSH arch initialization so that
procfs will be automounted. Increase task name size from 0 to 32. Update
README. From Gregory Nutt (2018-01-25).
* arch/arm/src/samdl: Added DMAC header for SAMD, fixed up sam_dmac to
compile with debugging enabled From Matt Thompson (2018-01-25).
* arch/arm/src/samv7/sam_lowputc.c: Fix undefined variable when using
USART1 for other purposes than UART (e.g. SPI). From Frank Benkert
(2018-01-26).
* arch/arm/src/stm32 and stm32f7: Remove confusing, redundant, and
misleading definitions of STM32_BKP_BASE from the F2, F3, and F4 memory
maps. Unlike the F1, these parts do not have a separate BKP address
region. The BKP registers are with the RTCC address regions. stm32_bkp.h
should only be used for STM32 F1. stm32_rtcc.h should be used to access BKP
registers on F2, F3, and F4. From Gregory Nutt (2018-01-26).
* stm32/Kconfig: fix COMP7 dependency. stm32_hrtim: add HRTIM push-pull
mode configuration. stm32f334-disco: add buck-boost converter mode From
raiden00pl (2018-01-27).
* arch/arm/src/samdl: Added Analog Comparator headers and basic
initialization From Matt Thompson (2018-01-28).
* arch/arm/src/stm32: I have a SPI bus with both Mode 0 and Mode 3 devices
on it. After performing SPI I/O to a Mode 0 device, switching to a Mode 3
device locked up the SPI interface. Only zeroes would be read. I traced
the reason for the lock-up to arm/arm/src/stm32f7/stm32_spi.c function
spi_setmode(). Changing the mode causes a spurious SPI clock transmission
that confuses the stm32f7 SPI input hardware. This problem is solved by
(1) changing the SPI mode with SPI (and perhaps DMA) disabled, and (2)
flushing the receive FIFO if the mode change results in garbage in the
FIFO. From Bob Feretich (2018-01-29).
* drivers/sensors: Add support to MAX44009 ambient light sensor From Juha
Niskanen (2018-01-29).
* tools/logparser: Add a tool which (when it matures) will help me to
convert git logs to ChangeLog format. From Gregory Nutt (2018-01-29).
* tools/: Add #define _GNU_SOURCE to all C files that call asprintf()
From Gregory Nutt (2018-01-29).
* arch/arm/src/samdl: Added Timer Compare for Control registers header
From Matt Thompson (2018-01-29).
* sched/sched: Add new internal OS function nxsched_setaffinity() that is
identical to sched_isetaffinity() except that it does not modify the errno
value. All usage of sched_setaffinity() within the OS is replaced with
nxsched_setaffinity(). From Gregory Nutt (2018-01-30).
* sched/sched: Internal functions sched_reprioritize() and
sched_setpriority() no longer modify the errno value. Also renamed to
nxsched_reprioritize() and sched_setpriority(). From Gregory Nutt
(2018-01-30).
* sched/sched: Add new internal OS function nxsched_getscheduler() that is
identical to sched_getscheduler() except that it does not modify the errno
value. All usage of sched_getscheduler() within the OS is replaced with
nxsched_getscheduler(). From Gregory Nutt (2018-01-30).
* sched/sched: Add new internal OS function nxsched_setparam() that is
identical to sched_setparam() except that it does not modify the errno
value. All usage of sched_setparam() within the OS is replaced with
nxsched_setparam(). From Gregory Nutt (2018-01-30).
* sched/sched: Add new internal OS function nxsched_getparam() that is
identical to sched_getparam() except that it does not modify the errno
value (actually, the previous value erroneously neglected to set the errno
value to begin with, but this fixes both issues). All usage of
sched_getparam() within the OS is replaced with nxsched_getparam(). From
Gregory Nutt (2018-01-30).
* sched/: Fix several inappropriate accesses to get_errno() that were
missed in previous changes (some going back to nuttx-.23). Add new
nxsched_setscheduler() and nxsched_getaffinity() which are equivalent to
their counterparts without the nx on front. These versions do not modify
the errno value. Changed all calls within the OS to use these newer
versions of the functions. From Gregory Nutt (2018-01-30).
* binfmt/, configs/, grahics/, libc/, mm/, net/, sched/: OS references to
the errno variable should always use the set_errno(), get_errno() macros.
From Gregory Nutt (2018-01-30).
* arch/arm/src/stm32 and stm32f7: Architecture-specific code is not
permitted to modify the errno variable. drivers/ and libc/: OS references
to the errno variable should always use the set_errno(), get_errno()
macros. From Gregory Nutt (2018-01-30).
* SMP: Introduce a new global IRQ clearing logic and tasklist protection.
The previous implementation of clearing global IRQ in sched_addreadytorun()
and sched_removereadytorun() was done too early. As a result, nxsem_post()
would have a chance to enter the critical section even nxsem_wait() is
still not in blocked state. This patch moves clearing global IRQ controls
from sched_addreadytorun() and sched_removereadytorun() to
sched_resumescheduler() to ensure that nxsem_post() can enter the critical
section correctly. For this change, sched_resumescheduler.c is always
necessary for SMP configuration. In addition, by this change, task_exit()
had to be modified so that it calls sched_resumescheduler() because it
calls sched_removescheduler() inside the function, otherwise it will cause
a deadlock. However, I encountered another DEBUGASSERT() in
sched_cpu_select() during HTTP streaming aging test on lc823450-xgevk.
Actually sched_cpu_select() accesses the g_assignedtasks which might be
changed by another CPU. Similarly, other tasklists might be modified
simultaneously if both CPUs are executing scheduling logic. To avoid this,
I introduced tasklist protetion APIs. With these changes, SMP kernel
stability has been much improved. From Masayuki Ishikawa (2018-01-31).
* arch/arm/src/samdl: Added I2S register definitions. From Matt Thompson
(2018-01-31).
* drivers/sensors/lis2dh: Use realtime clock if monotonic is not
available From Juha Niskanen (2018-01-31).
* fs/aio: Fix one additional place where the errno variable is being
accessed inappropriately. From Gregory Nutt (2018-01-31).
* sched/wdog: wd_start() is an internal OS function and should not set the
errno value. Reviewed and updated every call to wd_start() to verify if
return value is used and if so if the errno value is accessed. From
Gregory Nutt (2018-01-31).
* sched/task: Add nxtask_create(). Kthread_create() and nxtask_create()
are internal OS functions and should not modify the errno variable.
configs/: threads started by board bringup logic should be kernel threads,
not user tasks. From Gregory Nutt (2018-01-31).
* drivers/: threads started by drivers should be kernel threads, not user
tasks. Review return values for all calls to kthread_start() because it no
longer returns an errno. From Gregory Nutt (2018-01-31).
* graphics/: Review return values for all calls to kthread_start() because
it no longer returns an errno. From Gregory Nutt (2018-01-31).
* sched/: Convert legitimate uses of task_create() to nxtask_create().
Review handling of returned values from all uses of kthread_create() (as
well as nxtask_create()). From Gregory Nutt (2018-01-31).
* arm/src/kinetis: Correct some Ethernet PHY register bit tests for the
KSZ8081 PHY. From Stewart (2018-02-01).
* libc/stdio: in dtoa(), up_interrupt_context() is used in a debug
assertion. up_interrupt_context() is not available in the user-mode phase
of the PROTECTED or KERNEL build configurations. In those configurations,
enabling libc floating point support and debug assertions will result in an
undefined reference to up_interrupt_context(). From Gregory Nutt
(2018-02-01).
* binfmt/: Fix one more inappropriate access to the errno variable. From
Gregory Nutt (2018-02-01).
* configs/stm32f103-minimum: Add support to BMP180 on BluePill
(stm32f103-minimum) board. From Alan Carvalho de Assis (2018-02-04).
* armv7-a, armv7-r, armv7-m: Add atomic read-add-write and
read-subtract-write functions. From Gregory Nutt (2018-02-04).
* spin_lock_irqsave() and spin_unlock_irqrestore() are only valid if the
CPU supports global disabling of interrupts. From Gregory Nutt (2018-02-04).
* sched/sched: SMP: Fix this_task() to be an atomic operation. In the
previous implementation, this_task() was defined in sched.h by using just a
macro current_task(this_cpu()). However, I found that this is not atomic
and actually sometimes switching CPU happened in executing the macro when
we tested audio steaming plus executing commands via telnet. This change
resolves this issue by implementing atomic this_task()in sched_thistask.c
which is newly introduced. From Masayuki Ishikawa (2018-02-04).
* configs/stm32f429i-disco: Separate SPI4 from MTD init. I was trying to
attach a non-MTD peripheral to an STM32F429I Discovery Board's SPI4 port
and was hitting compilation problems, since CONFIG_MTD and thus 'struct
mtd_geometry_s' was not defined. This patch separates SPI4 initialization
logic from MTD initialization logic. From Michael Jung (2018-02-05).
* sched/sched: Implements a global scheduler lock capability as part of
SMP support. This allows the scheduler to be locked with no knowledge or
access to the TCB of the currently running task. This is necessary because
accessing the TCB of the currently running task is, itself, a non-atomic
operation. This global scheduler lock capability was add just to support
that atomic access to the TCB. From Gregory Nutt (2018-02-05).
* sched/sched: Extend the last global lock change to work with the
lc823450-xgevk which does not support the atomic fetch add but does support
disabling interprocessor interrupts. Disabling interprocessor interrupts
will also guarantee that the TCB address calculation is atomic. From
Gregory Nutt (2018-02-05).
* sched/irq: Fix a infinite recursion problem that a recent change
introduced into the i.MX6 SMP implementation. From Gregory Nutt
(2018-02-06).
* arch/arm/src/armv7-a: Found some additional places were the new
this_task() function cannot be called in the i.MX6 SMP configuration. From
Gregory Nutt (2018-02-06).
* sched/ and arch/arm/src/armv7-a: Replace a few more occurrences of
this_task() with current_task(cpu) in an effort to get the i.MX6 working in
SMP mode again. It does not yet work, sadly. From Gregory Nutt
(2018-02-06).
* sched/task: It is not appropriate for logic in task_exit() to call the
new version of this_task(). sched/irq: Remove redundant fetch of CPU
index; configs/sabre-6qguad: update README. From Gregory Nutt (2018-02-06).
* arch/arm/src/lpc17xx: Disable LPC17 FDR when not used. If a boot loader
set the fractional divider (FDR) the baud rate in nuttx will be wrong
(multiplied by this fraction). So if it is not used, it should be
disabled. From hg42 (2018-02-08).
* Fix some coding standard violations in the last PR. From Gregory Nutt
(2018-02-08).
* arch/mips/src/mips32: In up_idle, the kludge that was conditionally
enabled if the work queue was enable appears to be needed even when he work
queue is not enabled on the PIC32MZ.
* arch/mips/src/pic32mz: Fix some typos in debug instrumentation in
pic32mz-gpio.c; fix some types releated to UART5 configuration in
pic32mz-serial.c.
* configs/flipnclick-pic32mz/nsh: Switch serial console to UART3. There
is some problem with the UART4 RX pin documentation or configuration. From
Gregory Nutt (2018-02-09).
* arch/arm/src/xmc4/: Fix USIC_BRG_SCLKCFG definition From Alan Carvalho
de Assis (2018-02-09).
* drivers/lcd: Add configuration support for HiletGo OLED.
configs/flipnclick-pic32mz: Add board support for HiletGo OLED. From
Gregory Nutt (2018-02-10).
* configs/flipnclick-pic32mz: Add an nxlines configuration for use in
testing the custom HiletGo Click board. From Gregory Nutt (2018-02-10).
* arch/arm/src/samdl: Added FDPLL clock support. Fixed sequence of OSC32K
calibration setup. From Matt Thompson (2018-02-10).
* arch/arm/src/samdl: Fix EIC interrupt edge sensitivity for pin numbers >
8 From Matt Thompson (2018-02-10).
* arch/arm/src/samdl: Added loading factory USB calibration data from
NVRAM From Matt Thompson (2018-02-11).
* arch/arm/src/stm32/stm32_hritm: Add interface to set timer frequency,
fix slave timers reset configuration, change POWER_INFO to TIMER_INFO From
Mateusz Szafoni (2018-02-11).
* configs/stm32f103-minimum: Add zerocross support to STM32F103-Minimum
board From Alan Carvalho de Assis (2018-02-11).
* configs/flipnclick-sam3x: Adds basic board support for the HiletGo
OLED. From Gregory Nutt (2018-02-11). Disable LPC17 FDR when not used
(second fix). If a boot loader sets the fractional divider (FDR) the baud
rate in nuttx will be wrong (multiplied by this fraction). This also has
to be added to lpc17_lowputc.c. From Harald Gutsche (2018-02-11).
* arch/arm/src/samdl: Fix DMA controller support. From Matt Thompson
(2018-02-11).
* arch/arm/src/samdl: Added experimental DMA support to SPI driver.
spi_exchange() uses a pair of DMA channels for TX and RX. From Matt
Thompson (2018-02-11).
* configs/stm32f103-minimum: Add OLED SSD1306 support to
STM332F103-Minimum From Alan Carvalho de Assis (2018-02-11).
* drivers/lcd: Fix the default I2C address of SSD1306 OLED display (7- vs
8-bit addressing) From Alan Carvalho de Assis (2018-02-11).
* net/tcp: Fixed bad return value handling in psock_tcp_send(). send()
expects psock_tcp_send() to return a negated errno value, not -1 with the
errno set (GN: I added same change for tcp_send_buffered.c which has the
same issue as tcp_send_unbuffered.c) From Pelle Windestam (2018-02-13).
* arm/arm/src/stm32: Corrections to STM32 F4 I2C to restore
functionality. From Alexander Oryshchenko (2018-02-13).
* arm/arm/src/stm32: Corrections to STM32 F4 I2C to fix the NORESTART
flag. From Alexander Oryshchenko (2018-02-13).
* drivers/sensors: Added support for LIS3DH accelerometer sensor. From
Matt Thompson (2018-02-13).
* drivers/eeprom: EEPROM driver for AT24xx compatible EEPROMs. From
Sebastien Lorquet (2018-02-14).
* configs/stm32f103-minimum: Add board support to MAX6675 Thermocouple
sensor From Alan Carvalho de Assis (2018-02-14).
* sched/signal: Remove SMP related logic in sig_dispatch.c. This change
prevents from a deadlock in up_schedulesigaction.c where inter-CPU signal
handling is actually implemented. arch/arm/src/armv7-m: Fix signal
handling for SMP. In previous implementation, signal handling for SMP was
incorrect. Thus, for example, if an inter-CPU signal happened an incorrect
tcb was signaled and caused ASSERT(). This change fixes the issues and
works for both inter-CPU signal handling and signal handling on the same
CPU. From Masayuki Ishikawa (2018-02-14).
* arch/arm/src/armv7-a: Port the SMP change by Masayuki Ishikawa to the
ARMv7-A family. From Gregory Nutt (2018-02-14).
* arch/xtensa/common: Port the SMP change by Masayuki Ishikawa to the
Xtensa family. From Gregory Nutt (2018-02-14).
* configs/stm32f103-minimum: Remove CONFIG_NX_LCDDRIVER dependence from
stm32_ssd1306.c From Alan Carvalho de Assis (2018-02-14).
* drivers//sensors: LIS3DH: Fix missing shift when writing output data
rate to register From Matt Thompson (2018-02-14).
* sched/clock: Replace critical section APIs with spin lock APIs in
clock_gettime.c. This change will improve performance for SMP systems but
nothing changes for non-SMP systems. In SMP mode, rtrtcb is not always at
the g_readytorun.head. This change removes DEBUGASSERT() to avoid this
condition. From Masayuki Ishikawa (2018-02-15).
* drivers/lcd: lcd_framebuffer.c does not need to include board-specific
board.h. From Gregory Nutt (2018-02-15).
* include/lcd: Eliminate a warning from an SSD1306 header file by adding a
forward reference to struct i2c_master_s. From Sebastien Lorquet
(2018-02-15).
* lcd/lcd/ft80x: This commit adds an FTDI/BridgeTek FT80x driver. It is
untested (I don't even have hardware yet and, hence, it is marked as
EXPERIMENTAL
* arch/arm/src/stm32/stm32f33xxx_rcc.c: A flash wait state configuration.
Flash latency must be fixed according to sysclk frequency. If this
operation is not done or done after PLL configuration, the STM32 fail to
continue boot operation if the frequency if greater than 24MHz according to
the board variable STM32_SYSCLK_FREQUENCY. Tested on stm32f334-disco
board. From Gwenhael Goavec-Merou (2018-02-17).
* configs/stm32f746g-disco: Add stm32f746g-disco Ethernet configuration.
Add USART1 support (connected to the USB virtual serial port) From Louis
Mayencourt (2018-02-19).
* drivers/mtd: mtd_config.c: Add still more error handling (to detect bad
underlying flash implementations). Remove MTD_ERASE that was erasing data
block instead of erase block. This is a partial revert of 4f18b4.
Reported-by: Pascal Speck <iktek01@yahoo.com>
* arch/arm/src/stm32l4: stm32l4_flash: change flash programming to use
page buffer for unaligned writes. From Juha Niskanen (2018-02-19).
* arch/arm/src/stm32: stm32_flash.c: add progmem support for STM32L15XX
From Juha Niskanen (2018-02-20).
* Added ECANCELED condition to DEBUGASSERT-s checking sem_wait result From
Dmitriy Linikov (2018-02-20).
* net/tcp: Fixes hardfault when network goes done and network monitoring
is in place. From Gianpaolo Ferroni Ariani (2018-02-22).
* arch/arm/src/sam34: Fix a typo resulting in duplicate names in DMAC bit
definitions. From Gregory Nutt (2018-02-22).
* net/tcp: tcp_send_[un]buffered.c: Check routing table in
psock_send_addrchck(). Previously only ARP table was considered when
determining if the data will actually be sent. From Juho Grundstrom
(2018-02-22).
* net/tcp: Generalize Juho Grundstrom's IPv4 change for IPv6 as well.
From Gregory Nutt (2018-02-22).
* arch/arm/src/lc823450: Fix up_enable_irq() timing for I2S. In previous
commit, I2S IRQ might be sometimes assigned to CPU1 when CONFIG_SMP=y. This
change fixes this issue. Refactor timer driver. Introduce
lc823450_timer.h and move lc823450_timerisr.c to lc823450_timer.c Add MTM
timer APIs for DVFS. Introduce up_rtc_gettime() for CONFIG_RTC_HIRES.
Introduce idle time calculation in DVFS. Also, DVFS autonomous mode based
on CPU idle time is supported. NOTE: voltage control is still disabled.
From Masayuki Ishikawa (2018-02-23).
* configs/lc823450-xgevk: Update defconfigs. Enable RTC_HIRES instead of
RTC_DATETIME (audio/rndis). Disable TCP_WRITE_BUFFERS and change
SCHED_LPWORKPRIORITY (rndis). Update SMP and DVFS related part. From
Masayuki Ishikawa (2018-02-23).
* net/icmpv6/icmpv6: Eliminate warnings by correct the type uses to link
structure into lists. From SP (2018-02-23).
* configs/viewtool-stm32f107: Add support for FT80X initialization. Add
ft80x configuration that will eventually be used for testing the ft80x if I
ever receive hardware. From Gregory Nutt (2018-02-24).
* Fixed parsing of DNS response packets having compressed names ending with
pointer. There were troubles parsing response packets which have
compression of QNAME/NAME field when only trailing part of the name (not
the whole name) is replaced with pointer to another part of the packet.
This commit fixes parsing of such packets. Also I added checks to keep
parsing only in bounds of the read part of DNS response packet. From
Dmitriy Linikov (2018-02-26).
* arch/arm/src/stm32f7: Backport RTC alarm setting changes from STM32L4.
Most notably this fixes RTC getting stuck issue when both alarms were used.
Root cause was writing RTC ISR register contents to RTC CR register. From
Juha Niskanen (2018-02-27).
* stm32_hrtim: add repetition support and fix enum overflow From Mateusz
Szafoni (2018-02-27).
* drivers/i2c and drivers/spi: Fix compile if
CONFIG_DISABLE_PSEUDOFS_OPERATIONS, fix bad NULL checks From Juha Niskanen
(2018-03-01).
7.25 2018-xx-xx Gregory Nutt <gnutt@nuttx.org>