diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index dbb3786fcb1..00000000000 --- a/ChangeLog +++ /dev/null @@ -1,27615 +0,0 @@ -0.1.0 2007-03-09 Gregory Nutt - - * Initial Release - * Support for Linux user mode simulation and TI - TMS320C5471 (Arm7) provided - -0.1.1 2007-03-14 Gregory Nutt - - * Corrected an error in interrupt level context switching - for C5471 - * Added fgets() and gets() logic; verified c5471 console read. - * Corrected error in reading from the C5471 serial port: - Improper use of semaphore can cause deadlock. - * Fixed an error in the memory cleanup: The idle task - cannot take semaphores (because it must always be ready - to run). - * Tasks can now accept a configurable maximum number of - input parameters (argc) - * _task_init() was divided into separate functions that - require fewer parameters. This was necessary to keep - the stack usage down for the 8051/2 (which has only - 256 bytes of stack). - * Attempts to use C5471 console from interrupt handlers - can cause errors. Added a special path for this case. - * Refuse calls to sem_wait and sem_trywait from interrupt - handlers. This was happening because interrupt handlers - were calling printf-like functions. - * Added strtok() and strtok_r() - * Added a simple shell called nsh (see examples/nsh). - * Platform support for 8052 is complete but not stable - when the timer interrupt is enabled. Seems to be an - issue when SP enters indirect address space. - * Documentation updates - -0.1.2 2007-03-19 Gregory Nutt - - * Add dirent.h, opendir(), readdir(), closedir(), etc. - * Add strerror() - * Added 'ls' command to nsh - * Added C5471 watchdog driver - * Fixed another bug where free() is called from IDLE task. - Can't do this; the caller must be able to wait for access - to memory. - * Fixed bugs associated with debug output: - Cannot do dbg() in middle of context switch logic. - because it may require use of semaphores and cause - additional context switches. lldbg() is safe. - * Interrupt must be disabled throughout all context switches. - * Separated C5471 serial driver; a shareable part is - in drivers/. ; the C5471 specific part is in arch/C5471. - serial.h defines the interface. - * Fixed mq_receive() and mq_send(): bad memcpy() - * Fixed C5471 signal deliver logic: use of dbg() and - other actions by use signal handler can alter errno. - need to protect errno during signal handling. - * Fixed uninitialized variable in filesystem that could - cause various problems - * Added a test for roundrobin scheduler. - -0.2.1 2007-03-22 Gregory Nutt - - * Fix error in handing signed decimal in vsprintf(). - * Major restructuring of header files to get closer to - POSIX compliance. - * Eliminate compilation warnings that crept into recent check-ins - * Add kill() - * Added support for POSIX timers - * Some Documentation updates - * Added support for the Neuros OSD / DM320 - -0.2.2 2007-03-26 Gregory Nutt - * Created the configs/ directory; separated board configuration - from processor architecture logic - * Add memory leak detection test to examples/ostest - * Corrected memory leak in OS pthread join logic - * Corrected memory leaks in examples/ostest due to failures - to join or detach from pthreads. - * Added pthread_once(), pthread_kill(), pthread_sigmask() - * Added pthread_barrierattr_*() APIs - * Added pthread_barrier_init(), pthread_barrier_destroy(), and - pthread_barrier_wait(); - * Added pthread barrier test - * Added protection so that errno cannot be modified from - interrupt handling. - * sched_setparam(), sched_setscheduler() now correctly set - errno; pthread_setscheduler() now returns the correct errno. - * Added pthread_setschedprio(). - * Added directories to hold board-specific header files - * Added directories to hold board-specific drivers - -0.2.3 2007-03-29 Gregory Nutt - - * mq_receive and mq_send now return errno's appropriately - * mq_receive and mq_send are now correctly awakened by signals. - * Fixed an unmatched sched_lock/unlock pair in task_delete(). - * sched_lock must be called in _exit() because operation of - task_delete() can cause pending tasks to be merged and a - context switch to occur. - * Added mq_timedreceive() and mq_timedsend() - * signal mask is now inherited by both child tasks and threads. - * Improved sharebility of stdout among pthreads (only). Nothing - was broken, but by moving the mutual exclusion logic to a - higher level, the printf output is more readable. - * Fixed a bug in file system cleanup: A list was being deleted - before the buffers contained in the list. - * Fixed a bug in the wait-for-message-queue-not-empty logic. - * Added a test of timed mqueue operations; detected and corrected - some mqueue errors. - * Identified and corrected a race condition associated with - pthread_join. In the failure condition, memory was being - deallocated while still in use. - -0.2.4 2007-04-28 Gregory Nutt - - * Verified c5471 build under Cygwin on WinXP - * Makesystem changes to better support different SoCs. - * Made arch/c5471/include and arch/dm320/include identical in - preparation for merging into arch/arm - * Logic from arch/c5471 and arch/dm320 combined into arch/arm. - arch/c5471 and arch/dm320 are deprecated and will be removed - when the new c5471 and dm320 logic is verified. - -0.2.5 2007-05-19 Gregory Nutt - - * Corrected some build/configuration issues introduced with the - last release. - * Added support for the NXP 214x processor on the mcu123.com lpc214x - development board (untested) - * Added support for block devices. - * Simulated target now exports a VFAT filesystem - * Begin support for VFAT filesystem (missing functionality) - * Added mount() and umount() - * Fix bug in memcmp return value - * Fix errors in timeslice calculation (several places) - * Added missing irqrestore() in timer_deleteall(). - * close() was not closing the underlying device. - * Added fsync() - * Added strspn() and strcspn() - -0.2.6 2007-05-26 Gregory Nutt - - * Added unlink(), mkdir(), rmdir(), and rename() - * Fixed several serious FAT errors with oflags handling (&& instead of &) - * Added FAT support for unlink(), mkdir(), rmdir(), and rename - * Added FAT support for opendir(), closedir(), readdir(), seekdir(), - telldir(), rewindir(). - * Fixed ARM compilation errors introduced in 0.2.5 (that is what I get - for only testing on the simulation). - -0.2.7 2007-06-09 Gregory Nutt - - * Added stat() to fs layer and to FAT - * Fixed reference counting errors associated with mounted filesystems - * Added fat_getattrib() and fat_setattrib() - * Added statfs() to fs layer and to FAT - * Correct file name extension in tools/zipme.sh - * Fix error in dependencies in 8051/2 Makefile - * sched/Makefile: Don't build sleep() or usleep() if signals are disabled - * sched/sched_setparam.c: Remove redundant disabling of interrupts - * sched/usleep.c: Fixed nsec calculation - * lib/lib_strcspn.c: Function incorrectly named strspn(). - * examples/ostest/main.c: Errors in SDCC version of a memcpy() call - * examples/ostest/sighand.c: Don't call fflush() if streams are disabled - * include/limits.h, include/time.h, sched/clock_internal.h: A support for - using selectable system timer frequency. - * Fixed error in mountpoint related conditional compilation introduced - in 0.2.5 - * Restructured some Makefiles to better handle enabling and disabling - NuttX features without having so much conditional compilation in the - source files. - * tools/mkconfig.c: No longer depends on asprintf() and _GNU_SOURCE and - so should now build in non-GNU, non-GLIBC environments. - * include/nuttx/compiler.h: Fix for using SDCC with the Z80. - * include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support - __FILE__and __LINE__ (not tested) - * examples/ostest/barrier.c: Don't call usleep() when signals are - disabled. - -0.2.8 2007-07-02 Gregory Nutt - * tools/Makefile.mkconfig: Under Cygwin, executable has a different name - * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem making dependencies - * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz - * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. - * lib/lib_getopt.c: Added getopt() support - * examples/nsh/: NSH now supports cat, mount, umount, and mkdir. ls supports - -l -s, and -R - * Added basic OS support to manage environment variables: environment - storage, cloning on task creation, sharing on pthread creation, destruction - on thread/task exit. - * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, - unsetenv - * Correct an error in realloc() when the block is extended "down" in memory. - In this case, the old memory contents need to be copied to the new location - and an allocated bit was not being set. - * examples/ostest/: Added an environment variable test. - * examples/nsh/: Break into several files. - * lib/: Added strrchr, basename, dirname - * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print - environment variables. - -0.3.0 2007-11-06 Gregory Nutt - - * Imported uIP into the tree (see - http://www.sics.se/~adam/uip/index.php/Main_Page) - * Adding socket(), bind(), connect() - * Added snprintf() - * Added send() and sendto(); integrate write() and close() with socket descriptors. - * Added recv() and recvfrom(). - * Added getsockopt() and setsockopt() - * Documentation updated to address socket interfaces. - * Implemented receive timeouts via setsockopt(SO_RCVTIMEO). - * Provide support for multiple network devices - * Implement socket ioctl() calls to set addresses - * Added listen() and accept() - * Added DM90x0 Ethernet driver - * ARP timer is now built into the network layer - * Basic client functionality verified: TCP socket(), bind(), connect(), recv(), send(). - -0.3.1 2007-11-19 Gregory Nutt - - * Separated net/uip/uip.c into several functions in several files. - * Corrected a TCP problem where packets were dropped because there was no - recv() in place but the packet was being ACKed. There are still TCP - recv buffering issues, but this is part of a larger buffering issue. - * Basic server functionality verified: TCP listen(), accept() - * Fix DM90x0 driver problem that caused TX overruns - * Add strncmp() - * Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss. - -0.3.2 2007-11-23 Gregory Nutt - - * Add strcat() and strncat() - * Integrated uIP micro webserver - * Corrected a serious bug in TCP queue management - * Fix leak in socket close logic - * Add TX notification to driver so that it can respond faster to - the availability of TX data. - * Moved urgent data info into device structure. - * TCP and ICMP protocols can now be disabled. - * Added UDP test in examples/udp - * Verified/debugged UDP socket(), bind(), sendto() and recvfrom() logic - using examples/udp - * recvfrom() and accept() now correctly return the remote address. - * Fixed computation error in ntohl(). - -0.3.3 2007-11-28 Gregory Nutt - - * Removed unused uIP files - * sched/, mm/, and net/ subsystem debug can now be selectively enabled/disabled - * Correct socket close logic: needs to disconnect TCP socket on close - * uIP webserver now seems to be fully functional - * fs/ and lib/ subsystem debug can now be selectively enabled/disabled - * Added vsnprintf - * Integrated uIP telnetd - * Add missing logic to read-ahead buffer logic - * examples/nettest uses larger buffers - * Improved ACK handling in send() to better handler deferred acknowledgements - and polling intervals. Greatly improves send performance. - -0.3.4 2007-12-10 Gregory Nutt - - * Added and partially verified DHCP server logic (netutils/dhcpd) - * Fix BROADCAST=y compilation problems - * Fix UDP recvfrom timeout bug - * Correct processing of input UDP broadcast packets. - * Verfied basic DHCP client functionality (netutils/dhcpc) - * Implemented send() timeout logic - * Added and verified a TELNETD front end to NSH (examples/nsh) - * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) - * Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c) - * Found and fixed several problems in uIP when compiled for ARM with optimization. - -0.3.5 2007-12-18 Gregory Nutt - - * Added inet_ntoa() and ether_ntoa() - * Added netdev_foreach() to support traversal of registered network devices - * Added support for 'ifconfig' command to NSH (examples/nsh) - * Moved MAC and Ethernet definitions to net/ethernet.h - * Fix sim and DM90x0 compilation errors introduced in 0.3.4 - * Fixed errors in C5471 configuration files for examples/uip - * Modified DHCPC (netutils/dhcpc) so that it should work in environments where - there are more than one DHCPD server. - * NSH ifconfig command now shows uIP status as well (examples/nsh) - -0.3.6 2008-01-06 Gregory Nutt - - * Changes for use with SDCC compiler - * Added a simulated z80 target - * Fix deadlock errors when using stdio but with no buffering - * Add support for Pascal P-Code interpreter - -0.3.6.1 2008-01-07 Gregory Nutt - - * The initial 0.3.6 release including an error that prevented - building successfully if the Pascal add-on was - was not present. - -0.3.7 2008-01-31 Gregory Nutt - - * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG - Development Kit. - * Add support toolchains that do not support making of dependencies - * Fix Cygwin build with spaces in directory names - * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) - * Add support for Windows native toolchains that cannot follow Cygwin soft links - * Modified serial driver interface to handle hardware with non-16550A-like - interrupt architecture (like the Z16F) - * Added a "dumb" serial console driver to simplify OS bringup - * Corrected a bug that caused the errno value of one task to be clobbered - when a different task exits. Affects all architectures. - -0.3.8 2008-02-10 Gregory Nutt - - * Added a test case to verify the Pascal P-Code interpreter - * Added /dev/zero - * 'errno' is now defined to be *get_errno_ptr() with no name conflicts - * Added lseek() and fseek() - * Integrated Pascal interpreter test case on the simulation platform. Needs - pascal-0.1.1. - * Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not - yet work due to some tool issues). - * C buffered I/O fixes: - - Fix fflush() return value, - - Add correct fflush behavior when the FILE argument is null. - - Add logic to a correctly handle read/write access on the same FILE - - fseek() flushes read/write data when before moving the file pointer - - When read data is flushed, reposition the file pointer to account for - buffered, but unread data - * Pascal P-Code files are now standardized to big-endian for portability - * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed) - (see bug 1887170) - * Pascal P-Code runtime now compiles with the SDCC toolchain. - * Added a generic CAN driver. This driver is untested as of this writing. - * Corrected DM320 UART configuration problem - -0.3.9 2008-03-09 Gregory Nutt - - * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO - development board and the Z8F6403 part. - * Fix broken 'clean' target on z80sim configurations - * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 - in particular for now). - * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) - Per patch from Jacques Pelletier. - * In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in - Ubuntu where /bin/sh is a link to dash. - * Z8Encore! port verified on ZDS-II instruction set/chip simulator. - -0.3.10 2008-05-15 Gregory Nutt - - * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). - * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. - * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. - * Correct critical list handling errors in task shutdown logic: One in timer - deletion logic (timer_delete.c) and one in stream logic (lib_init.c) reported - by kwonsk. - -0.3.11 2008-06-01 Gregory Nutt - - * Add support for recursive mutexes. - * Eliminate a memory leak: contained watchdog instance was not being - deleted with a POSIX timer was deleted reported by kwonsk. - * Eliminate a deadlock condition in opendir() reported by kwonsk. - * Fix several FAT filesystem problems reported by kwonsk (Changes not yet - verified). - * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. - * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. - * Add logic to allow the examples/ostest to be run repetitively as an endurance test. - * Add a ramdisk block driver - -0.3.12 2008-08-10 Gregory Nutt - - * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. - * Add test for recursive mutexes - * Correct bug in recursive mutex logic - * Add mkfifo() - * Add pipe() and test for both pipes and fifos - * Attempts to open a FIFO will now block until there is at least one writer - * Add test/Fixed errors in FIFO reader/writer interlocks - * Removed limitation: task_create() was only dup'ing 3 file descriptors (now - dups all open file descriptors). - * Added a test for redirection of stdio through pipes - * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that - driver can correctly maintain open reference counts. - * Same issue on closing file descriptors in exit() - * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error - check. - * Moved all FAT related files from fs to fs/fat - * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a - block device (not yet tested). - * Added a test for mkfatfs() on a RAM disk in examples/mount and verified - basic mkfatfs functionality for FAT12. - -0.3.13 2008-09-01 Gregory Nutt - - * NSH: Added mkfatfs, mkfifo, sleep, usleep and nice commands - * Fixed problem with console input in Cygwin-based simulator; NSH now works - with simulator. - * NSH will now execute commands in background - * sched_get_priority_max/min returned error on SCHED_RR - * Removed duplicate getenv() implementation in /lib - * Correct detection of End-of-File in fgets - * NSH: Implemented sh and crude script handler - * Fix prototype of read() and write(). Need to use ssize_t and size_t, not - int and unsigned int. - * NSH now supports redirection of command output - * NSH can now use both telnet and serial front ends together - * NSH: $variable can be used for any command value - * Fixed an error in opendir() that could cause an assertion to fail - inappropriately. - * Correct an error in the FAT that caused files opened for writing with - O_APPEND to fail. The file was not being properly positioned to the - end of the file in that case. - * NSH now supports last exit status $? - * NSH now supports if-then[-else]-fi construct - * NSH now supports comments beginning with '#' - * NSH now supports commands to inspect and modify memory - * NSH cat command now supports multiple files on command line - * Add chdir() and getcwd() - * Fix error in getopt() when called with argc==1 - * Fix error in stat() when used on the root directory - * NSH: Add cd and pwd commands and current working directory to all NSH - commands that refer to paths. - * Fix errors and warnings introduced into Linux sim build because of recent - Cygwin-based sim changes - * NSH: Add mem command to display heap usage - * Added telnet NSH configuration for Neuros OSD. - * Basic integration of concurrent telnet/serial NSH functional on Neuros - OSD. - * Fixed a critical bug that affects the way that environment variables are - shared amongst pthreads. - * uIP port enhance to support multi-threaded, concurrent socket access. So, - for example, one thread can be reading from a socket while another is - writing to the socket. - -0.3.14 2008-09-08 Gregory Nutt - * FAT FS now uses position variable in struct file. This simplifies operations - like ftell(). - * fseek() needs to discard bytes buffered by ungetc(). - * Corrected ftell() return value. - * Added fsetpos() and fgetpos(). - * NSH: Now supports 'test' and '[' commands - * Correct error in send() timeout logic. - * Correct error in multi-threaded socket handling in send() and sendto(). - Outgoing data could overwrite incoming data. - * Add support to uIP for application access to ICMP protocol stacks; Add - ping request logic. - * NSH: Add ping command - * Correct IP checksum calculation in ICMP and UDP message send logic. - * NSH: Created an HTML document and a more detailed README file describing NSH. - * Added basic TFTP client logic (netutils/tftpc). - * NSH: Add get and put commands to support TFTP get and put operations. - * NSH: Added a mkrd command that will create a RAMDISK that can be formatted - and mounted. - * Corrected a critical bug that prevent recvfrom from receiving packets from - any remote UDP port. - * NSH: Add hexadecimal dump command (xd) - * Fixed several critical bugs with regard to fat reading and writing and FAT12 - accesses. Basically the FAT FS only worked with my tiny test files and test - cases. A lot of stronger FAT tested is needed!! - * Fixed another FAT bug in implementation of FAT lseek; this prohibit correct - random access to large files. - -0.3.15 2008-09-20 Gregory Nutt - * Added support for ROMFS filesystem. - * Added a simple test the ROMFS filesystem (examples/romfs) - * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS - * Add definition of BIOC_XIPBASE ioctl and implement in RAM disk block driver. - This is a low level requirement for eXecute In Place (XIP) support. - * Add a FIOC_MMAP to perform memory mapping of a file and implemented the - ioctl command in the ROMFS filesystem. This is a requirement for eXecute - In Place (XIP) support. - * Add mmap() API with restricted capability (only for XIP support) - * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. - * Add support for Intel Hex format output using objcopy - * Completed the basic port of the NXP LPC2148 on the mcu123.com board. - The basic port includes successful booting, timer interrupts, serial console, - successfully passing the examples/ostest, and a NuttShell (NSH) configuration. - * ARM architectures now support drivers/lowconsole.c - -0.3.16 2008-10-10 Gregory Nutt - * Added header files defining a common USB device controller architecture - * Added USB device side driver for the LPC214x - * Correct the frequency of system timer interrupts in the NXP LPC214x port - (off by 20x in nuttx-0.3.15) - * Add an option to set aside a separate stack for interrupt handling (ARM only). - This is useful when memory is constrained, there are multiple tasks, and - the interrupt stack requirement is high (as when USB is enabled). - * Added USB serial class device side driver (emulates Prolific PL2303 - serial-to-USB adaptor) - * Add LPC214x USB serial configuration; Add examples/usbserial test - * Added USB device side driver for the DM320 (untested at initial release) - * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x - system timer. - * Fixed serial driver bugs related to (1) open counts and (2) recognizing - O_NONBLOCK on read. - * Fixed an error in read(); it was not setting the errno on errors returned - from the driver. - -0.3.17 2008-10-28 Gregory Nutt - * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" - * Reduced the amount of memory reserved for USB serial control requests. It - was unnecessarily large. - * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. - * Added a simple SPI-based MMC/SD block driver - * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. - * FAT: Fix access to unaligned 32-bit values in partion table (start sector & size) - * Fixed a problem with a un-initialized variable in the USB serial driver. - * Added USB storage NXP LPC214x configuration - * Added a test for USB storage under examples/usbstorage - * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed - endpoints (other than EP) on receipt of CLEAR FEATURES request. - * Added USB storage class device side driver (BBB) - * Fixed a bug in the LPC214x USB driver: It was not properly handling request buffers - larger then the endpoint's max packet (DM320 driver also fixed, untested) - * Added logic to the USB device interface: A bit is needed to force the driver to - to terminate an IN transfer with a short packet (zero-length if necessary). - * Fix an error in the NXP LPC214x USB device driver that was causing corruption of - the request queue (M320 driver also fixed, untested) - * Correct another error in the NXP LPC214x USB device driver that caused read failures - when the request buffer size was larger than maxpacket. - * Numerous corrections/extensions to the USB tracing logic included in 0.3.16 (but - not integrated until 0.3.17) - * Fixed another bug in the NXP LPC214x USB device driver: After a stalled endpoint - is resumed (view CLEAR FEATURE), we must restart the IN (outgoing) queue. - -0.3.18 2008-11-16 Gregory Nutt - * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 - board (STR71x testing is stalled because I have been unable to get OpenOCD to - communicate with my JTAG wiggler on Linux). - * Fix race condition workaround delay in LPC214X SPI logic. This was also the cause of the - very bad MMC/SD performance. - * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board - * Re-built all configurations that use SDCC and Zilog toolchains to make sure they still - build (they didn't, but they do now). - * Fixed several erroneous "list empty" checks in the CAN driver. - * Hitachi SH-1 passes (reduced) examples/ostest; the examples/nsh test still fails. - There are remaining instabilities that make the port un-usable. The nature of these is - not understood; the behavior is that certain SH-1 instructions stop working as advertised. - This could be a silicon problem, some pipeline issue that is not handled properly by the - gcc 3.4.5 toolchain (which has very limit SH-1 support to begin with), or perhaps with the - CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put - into this cool old processor for the time being. - * Renamed configuration item CONFIG_PROC_STACK_SIZE as CONFIG_IDLETHREAD_STACKSIZE: It now - only controls the size of the stack for the IDLE thread. Added CONFIG_USERMAIN_STACKSIZE: - This is the size of stack used with the user_start() thread is created. The two stacks - no longer have to be the same. - * Add a loop device that converts a file into a block device. - * Each NSH command can now be disabled through a configuration setting. All of these - settings make the configuration of NSH potentially complex but also allow it to squeeze - into very small memory footprints. - * Added a block to character (BCH) driver. This is kind of the reverse of the loop - device; it allows you access a block device like a character device. - * Added strcasecmp() and strncasecmp() - * NSH: Added the 'dd' command - * NSH: Added the 'losetup' command - * Fixed a FAT bug: After recent changes, it would mount a (invalid) FAT file system - even if the medium is not formatted! - * Corrected two important errors in FAT lseek implementation: (1) the sectors-per-cluster - value was being reset to "1" and (2) important lseek logic was omitted when the seek - position was zero. - * Fixed a bug in getopt(). It would fail if on certain combinations of terminal argument - types. - -0.3.19 2008-11-26 Gregory Nutt - * Add poll() and select() APIs (in the initial check-in, these work only with character devices) - * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. - * Add examples/poll for testing poll() and select() - * Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a - full buffer of read data before return. This means that getc would stall when it needed - to refill the input buffer. The old behavior (read full blocks) might be useful in other - contexts, so it is still available within the driver as a configuration option. - * Implement poll() and select() support for TCP/IP sockets - * Fixed an important bug in the TCP/IP buffering logic. When TCP/IP read-ahead is enabled - and not recv() is in-place when a TCP/IP packet is received, the packet is placed into - a read-ahead buffer. However, the old contents of the read-ahead buffer were not being - cleared and old data would contaminate the newly received buffer. - * Implemented support for connection backlog. The size of the backlog is specified by the - second argument of the standard listen() API. Hooks are provided to support poll()/select() - waiting for connections, with a subsequent call to accept() to use the backlogged connection. - * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL - * Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing - purposes only) - * 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 - * Added some rasterizers to the graphics library - -0.4.0 2008-12-06 Gregory Nutt - * Initial release of a tiny windowing system for NuttX - * Add fixed precision sin() and cos() (not well tested at initial check-in) - * Add an X11-based simulated framebuffer driver - * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation - run in more-or-less realtime. - * Added more extensive window support: frames, toolbars, etc. - * Added support for bitmap fonts - * Integrated the new font support with a font test in examples/nx - * Add documentation for NX graphics subsystem - -0.4.1 2009-02-06 Gregory Nutt - * Added board support for the ZiLog eZ80Acclaim! ez80f910200zco Development Kit. - * Fixed several compilation errors in fixed precision math library when built - against toolchains that do not support 64-bit type 'long long'. - * Fix errors in some function prototypes in dirent.h - * Add eZ80F91 EMAC driver - * Fix recvfrom() compilation error: only noted under ZDS - * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are - still some build issues associated with that toolchain in use of arm-elf-objcopy - -- see the TODO.txt list for details) - * Fix problems with Z16F and eZ80 compilation introduced with recent changes. - -0.4.2 2009-02-28 Gregory Nutt - - * M16C: Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, - the target cannot be built because the GNU m16c-elf-ld link fails with - the following message: - - m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 - - Where the reference line is: - - /* If the symbol is out of range for a 16-bit address, - we must have allocated a plt entry. */ - BFD_ASSERT (*plt_offset != (bfd_vma) -1); - - No workaround is known at this time. This is a show stopper for M16C. - - * eZ80Acclaim!: Fix interrupt vectors positioning; they were being positioned - wrong by 64 bytes (Kevin Franzen). - * eZ80Acclaim!: Corrected some stack handling errors during interrupt handling - context save and restore (Kevin Franzen). - * eZ80Acclaim!: Corrected vector initialization logic (Kevin Franzen). - * eZ80Acclaim!: Corrected overflow problem in the calculation of UART baud rate - divisor, the system timer divisor, and the EMAC poll timer. - * eZ80Acclaim!: Fixed GPIO pin configuration get serial output - * eZ80Acclaim!: Correct stack overflow in ostest example configuration - * eZ80Acclaim!: Fixed restoration of interrupts state on interrupt level context switch. - -0.4.3 2009-03-04 Gregory Nutt - - * z8Encore! and eZ80Acclaim!: Fixed the serial driver initialization sequence - * eZ80Acclaim!: Fixed error in vector table: Missing space set aside for the - "unused" vectors. As a result, all vectors above timer4 were skewed. - * eZ80Acclaim!: Fixed logic error in UART interrupt handler. - * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II - * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. - * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. - * Restructured parts of the uIP port for correct compilation with ZDS-II - * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The - driver is basically functional and should mature prior to the 0.4.3 release. - * Implemented priority inheritance logic for POSIX semaphores. Because the pthread - mutexes are built on semaphores, they will have this property as well. - -0.4.4 2009-03-29 Gregory Nutt - - * examples/nsh: A debug option was left on that can (and does) cause - infinite loops and stack overflows. - * net/uip: Correct calculation of checksum on ICMP ping response. - * examples/dchpd: Added a tiny DHCP server example - * net/uip: Correct UDP bind behavior. It should select a valid port number - if it receives a port number of zero. - * netutils/dhcpd: correct for ZDS compiler. Fix issue with re-use of a - port number. Fixed a number of broadcast-related problems. - * eZ80Acclaim!: Add a tiny webserver configuration - * eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was - always timing out when the load was heavy and worse, for some reason, - resetting the Tx function caused unexpected registers to be reset in - the Rcv function was well. - * Z80: Patch incorporated: "[2696648] Z80: interrupt flag stored in parity bit" - (submitted by JPelletier). The is the same fix that was needed for the - eZ80 and fixed in 0.4.2. - * netutils: Added logic to support a simple wget() function - * examples/wget: Added a test for wget() (untested -- see NOTE) - * lib/strncasecmp: Fix cut'n'paste error in function name. - * NSH: Added wget command (untested -- see NOTE). - * examples/sendmail: A simple sendmail example (untested -- see NOTE) - - NOTE: Features related to wget and sendmail are not tested on the target platform - in this release and, hence, most likely have problems. I don't have the correct network - setup to perform that testing now (I'm in a hotel). - -0.4.5 2009-04-19 Gregory Nutt - - * Add an enumeration argument to the SPI chip select and status methods so - that the interface can handle more than one device. - * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. - * Add a setmode() method to the SPI interface to handle parts with differing - mode requirements. - * include/nuttx/i2c.h: Defined a standard I2C interface - * eZ80Acclaim!: Add an I2C driver. - * eZ8Encore!: Add an I2C driver. - * Add support for the Freescale i.MX1/L architecture and a configuration for - the Freescale MX1ADS development board. - * examples/helloxx: Added a simple C++ hello world example - * include/css: Added std header files - * libxx: New C++-only directory provides support for minimal C++ applications - -0.4.6 2009-05-19 Gregory Nutt - - * Change SPI interface so that is can accommodate interfaces where the - number of bits per word is greater an 8 (such as with many 9-bit display - interfaces). -- this might have broken a few things which will need to - be retested! - * arch/arm/src/imx: Added i.MX SPI driver - * SPI: Add a method to set the number of bits per word. Also add an - alternative interface for so that (eventually) I can phase the sndblock - and recvblock methods and replace them with a single exchange method - * Build: objcopy fails with toolchains that use newer GCC and binutils. The - following arguments need to be included in the objcopy command line "-R .note - -R .note.gnu.build-id -R .comment" This has been fixed in arch/arm/src/Makefile, - but other architectures may have the same problem. Thanks to Dave Marples - for verifying this. - * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. - This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build - examples/ostest. - * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. - legacy, "slow" GPIO) for LPC214x. - * arch/arm: Restructured the arch/arm directory structure to better support ARM - and Cortex-M3. - * sched/: pthread_create() must return a (non-negated) errno value on failure. - * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100 - -0.4.7 2009-05-29 Gregory Nutt - - * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918 - * configs/eagle100/nettest: Added an examples/nettest configuration for the - Micromint Eagle100 board. - * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. - * configs/eagle100/httpd: Added an examples/uip configuration for the - Micromint Eagle100 board. - * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 - * examples/nsh: Added MMC/SD support for the LM3S6918 - * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical - fix!). - * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency - calculation based on CSD settings, inappropriate timeouts, odd code that looks like - a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is - largely redesigned and probably non-functional in the first check-in. - * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb - SanDisk microSDC card on the Eagle100 platform. - * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. - Found and corrected a problem that prevented use of FAT32: It was not updating - the sector cache before checking the FAT32 FSINFO sector. - * configs/eagle100/*/Make.defs: Added configuration options that should make - it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain - and the devkitARM GNU toolchain. - * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block - logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and - 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board. - * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain - mount() failures. - -0.4.8 2009-06-13 Gregory Nutt - - * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. - * arch/arm/src/str71x: Serial output is now correct and timer interrupts are - working. The test at configs/olimex-strp711/ostest passes. This means that - the basic STR-P711 port is complete. - * configs/olimex-strp711/nsh: Add and verified a NuttShell (NSH) configuration - for the STR-P711. - * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver - finally works after some extradinary measures to handle missed interrupts. - NSH is fully functional on the Olimex STR-P711 board. - * example/nsh: Moved architecture specific files from NSH directory to board- - specific directories. - * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for - for the Olimex STR7P11 board. - * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There - were lots of issues with Cygwin paths and Cygwin symbolic links. These changes - may work with the devarmKIT as well, but that remains untested. - * The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery - or devkitARM Windows native toolchains. - -0.4.9 2009-06-26 Gregory Nutt - - * Add strtoll() and strtoull(); Add macros for atol() and atoll(). - * dup() and dup2() will now clone socket descriptors - * All socket descriptors are now cloned when a new task is started via - task_create(). - * Add configuration options to suppress or eliminate cloning of file - and/or socket descriptors when a new task is started by task_create(): - CONFIG_FDCLONE_DISABLE, CONFIG_FDCLONE_STDIO, CONFIG_SDCLONE_DISABLE. - * Use of C++ reserved word 'private' in C header files causes problems - for C++ that include them. - * Added 'binfmt' support to allow execution of programs in a file system, - binding to NuttX symbols. A custom format call NXFLAT is used; this - derives from http://xflat.sourceforge.net. At present is supports on - XIP execution from ROMFS file systems. Initial check-in is untested - and probably breaks many builds. - * examples/lib: Added qsort() - * examples/nxflat: Added support for symbol tables - * Correct logic that creates compiler include paths. On Cygwin, the - include paths for Cygwin-based GCC were being converted to windows - native paths. That causes many problems -- breaking dependencies - for one. - * Fixed an important bug in ROMFS. The initial XIP offset was set - incorrectly so if sector zero was read first, there was a bad read. - I don't know how it worked before. - * arch/arm/src/common/up_use_stack.c. Fixed a fatal stack setup error. - This file has been around for a long time, but I don't think it has - every been used before (i.e., prior to the NXFLAT logic) - -0.4.10 2009-08-08 Gregory Nutt - - * lib/: Added some basic regex-subset, pattern matching functions - * lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and - Julian time calculations were interesting, but not necessary in the - typical embeddd system. - * sched/: Added gettimeofday(). This implementation is simply a thin - wrapper around clock_gettimer(). - * lib/: Add gmtime(), localtime(), and strftime() - * binfmt/: Add exec(). This is just a wrapper that executes both - load_ and exec_module() in a more familiar manner. It is not consistent - with more standard exec() functions, however, because (1) it returns - and (2) it requires symbol table arguments. - * lib/: Add fileno() - * examples/ostest: Several of the tests used a big, hard-coded stack size - when creating test threads (16K stacksize). The stack size should - be controlled by the .config file or the OSTest won't work on platforms - with memory constraints. - * netutils/thttpd: An initial port of Jeff Poskanzer's THTTPD HTTP server. - See http://acme.com/software/thttpd/. - * examples/thttpd: A basic test program for THTTPD - * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint - Eagle-100 LMS6918 (Cortex-M3) board. - * configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros - DM320 platform. - * lib/: Added strstr() and strpbrk(). - * net/recvfrom.c and net/accept(): Sockets now support some non-blocking - operations, specifically for (1) TCP/IP read operations when read-ahead - buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP - connection backlog is enabled. - * fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl(). - It can, at least, be used to mark sockets as blocking or non-blocking. - * net/net_close.c: Fix bug in close(). If reference count not set to zero - then uip_tcpfree() will assert when DEBUG is enabled. - * net/accept.c: Fix bug in accept(). The logic expected parts of the - return address structure to be initialized or it would return an error. - -0.4.11 2009-09-16 Gregory Nutt - - * fs/fs_read.c and fs/fs_write.c. read() and write() to socket is the - same as recv() and send() with flags = 0. Fixed! - * net/recvfrom.c: Fix errors in return value from non-blocking socket read. - * lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented - argument to macro caused strcasecmp() and strncasecmp() to fail. - * lib/lib_strstr.c: Length of substring off by one causes false alarm - sub-string matches. - * arch/arm/src/lm3s/lm3s_ethernet.c: Fix errors in LMS6918 FIFO length - handling. (1) The incorrect size of the Ethernet header was being - subtracted on outgoing messages (4 vs 14), which caused outgoing messages to - be a little too long. (2) The size of incoming FIFO messages is 6 bytes - larger than it expected (2 for the length and 4 for the FCS). The unhandled - extra two bytes of length cause the driver to sometimes read one too many - words from the received FIFO (corrupting the next queued receive packet, - if any). - * net/net_poll.c and net/uip/uip_tcpbacklog.c. Fixed an important race condition - bug in polling for connections. The logic worked if the poll was inplace - before the connection was received; but the poll failed to awaken if the - connection was already pending in the backlog when poll() was called. - * net/net_close.c. Fixed another important TCP/IP race condition bug: If - the host closes the TCP connection just before the target calls close(), then - the close operation may hang indefinitely! - * net/net_tcppoll.c. Removed an unnecessary check for outstanding, un-ACKed - data. The NuttX socket layer keeps track of ACKs and doesn't need this check; - removing the check should improve write throughput - * Add DEBUG configuration option to enable debug console output without disabling - optimization (and vice versa) - * Changed lots of occurrences of debug macro dbg() to lldbg(). dbg() uses - stdout to output debug data. That works fine unless (1) the dbg() macro - is interrupt logic and the interrupted task has redirected stdout! Most - changes were in uIP. - * net/uip/uip_tcpinput.c. Connection reference count was not being set correctly - when a socket is created by accepting a new connection. Since the reference - count is bad, such sockets are not successfully duplicated when being passed - to new tasks. - * net/net_clone.c. Similarly, after a socket is cloned, its reference count - was not being initialized. - * lib/lib_strstr.c. Improperly incremented pointer could cause comparison - failures. - * net/. Connection reference count must always be set to zero before calling - uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the - reference count is zero before freeing a connection structure. - * net/uip/uip_listen.c. uip_accept() consulted the wrong list to find the - listener on a socket. The previous logic worked most of the time, but - occasionally picked the wrong listener. - * net/net_close.c and net/net_sockets.c. Sockets were not being closed - when a task exits. If many server tasks are created and exit without closing - sockets (such as with CGI tasks), then eventually, you will run out of sockets. - * netutils/thttpd. Basic functionality of THTTPD is complete. This includes - serving up files from a file system and executing NXFLAT-based CGI programs - and pipe the stdout back to the HTTP client. - -0.4.12 2009-10-17 Gregory Nutt - - * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the - STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL - development board based around the STM32F103ZET6 MCU. - * configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be - used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it - cannot be used for the full NuttX bring-up). - * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test - at examples/ostest. The rest should be a piece of cake. - * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. - * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. - * arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32 - * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. - * arch/arm/src/stm32/src/stm32/stm32_serial.c. Finished interrupt-driven, - USART console driver. This makes NSH work perfectly. - * Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver, - LCD driver and NX bringup on the eval board's display and MicroSD support. An SPI - driver was included in the 0.4.12 release, but is not yet tested. - -0.4.13 2009-11-04 Gregory Nutt - - * include/nuttx/mtd.h. Added a simple interface definition to support some - FLASH, EEPROM, NVRAM, etc. devices. - * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. - * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. - Depends on the STM32 USB driver. - * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement - to context switching. There are two types of context switches: interrupt - 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 - 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. - * arch/arm/src/stm32/: You have to configure CTS/RTS function pins for USART - 2 and USART 3 even if you are not using flow control. - * arch/arm/src/stm32/stm32_usbdev.c: Added a USB device-side driver for the - STM32. NOTE: This is an early release of the USB driver. There is at least - one known issue. The examples/usbserial test only executes correctly under - certain conditions (see the full bug description in the TODO list). - * arch/arm/src/stm32/stm32_rcc.c: Fixed an error in clock initialization. - On some boards (none of mine), the HSE (high speed external clock) delay - loop times out if the optimization level is high. The STM32 then falls - back to the HSI (internal clock), and the system clock is too slow by a - factor of 11.1%. This was fixed by simply add the volatile storage class - to the timeout loop counter - * arch/arm/src/stm32/stm32_irq.c: Fixed a critical bug in the interrupt - control logic. The wrong register was being used for interrupts in a - certain range. Worked fine until you try to use an interrupt in that - range! - -4.14 2009-12-02 Gregory Nutt - - * arch/arm/src/stm32/stm32_gpio.c: Add support for configure an input GPIO - to generate an EXTI interrupt. - * config/stm3210e-eval/src/up_buttons.c: Add support for on-board buttons. - * include/nuttx/rwbuffer.h: Add generic support for read-ahead buffering - and write buffering that can be used in any block driver. - * include/nuttx/wqueue.h: Added a generic worker thread that can used to - defer processing from an interrupt to a task. - * include/nuttx/sdio.h: Defines a generic SD/SDIO interface can can be - bound to a MMC/SD driver to provide SDIO-based MMC/SD support. - * drivers/mmcsd/mmcsd_sdio.c: Provides an SDIO-based MMC/SD driver. - * arch/arm/src/stm32/stm32_sdio.c: Provides an STM32 implementation of - the SDIO interface defined in include/nuttx/sdio.h. - * fs/fs_mount.c: Correct error handling logic. If the bind() method - fails, then a reserved node is left in the tree. This causes subsequent - attempts to mount at the location to fail (reporting that the node - already exists). This is a problem for block drivers for removable - media: The bind method could fail repeatedly until media is inserted. - * arch/arm/src/stm32/chip.h & stm32_dma.c: Fixed several definitions - that can cause compilation errors when DMA2 is enabled. - * arch/arm/src/stm32/stm32_dma.c: Integrated and debugged STM32 DMA - functionality that was added in 0.4.12. - * configs/stm3210e-eval/usbstorage: Add a configuration to exercise - the STM32 with the USB mass storage device class example - (examples/usbstorage). - * configs/mcu123-lpc214x/up_usbstrg: Move LPC-specific code from - examples/usbstorage to configs/mcu123-lpc214x. - * configs/stm321e-eval/up_usbstrg: Add STM32-specific logic for the - examples/usbstorage test. - * arch/arm/src/stm32/stm32_usbdev.c: Fix bugs in STM32 USB device-side - driver: (1) Need to disconnect after reset received, (2) Status setup - to recover from stall on TX endpoint. - -5.0 2009-12-21 Gregory Nutt - - * arch/hc: Adding framework to support m68hc11/12 - * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 - development board (MC9S12NE64 m68hcs12 processor). - * drivers/mtd/ftl.c: A FLASH translation layer (FTL) has been implemented. - This layer will convert a FLASH MTD interface into a block driver that - can be used with any file system. Good performance of this layer will - depend upon functioning write buffer support! - NOTE: FTL support is untested as of the initial check-in. - * Numerous minor changes for m68hc12 to eliminate compilation errors and - warnings due to the fact that it uses 16-bit integer types and for casts - between uint32 (32-bits) and an mc68hc12 pointer (16-bits). - * sys/types: Size of off_t and blkcnt_t should not depend on size of - int in the architecture; Removed non-standard type STATUS - * include/: Added header files stdint.h, stdbool.h, cxx/cstdint, and - cxx/cstdbool - * Changed ALL references to non-standard fixed-size types (like uint32, - ubyte, etc.) to standard types (like uint32_t, uint8_t, etc.) from - stdint.h. Use type bool and {true, false} from stdbool. This effected - most of the files in the system! Almost all configurations have been - re-built and many have been re-verified in order to get confidence in - these changes. - * graphics/ and examples/nx: Fix numerous build errors that have been - introduced lately. NXGL has suffered some bit-rot from not being used - in some of the most recent ports. - * The misc/pascal NuttX add-on package has been updated to use the new - standard types from stdint.h and stdbool.h and re-integrated with NuttX. - The released pascal-2.0 will be the first version that contains the - compatible changes. - * arch/arm/src/lm3s/lm3s_ethernet.c: Fixed an important bug in the LM3S - Ethernet driver: If full packet is received, the packet-too-big check - will fail because it needs to subtract 6 from the packet size (to - account for the 2-byte packet length and the 4-byte packet FCS in the - FIFO). - * net/accept.c: Fixed a bad assertion (only happens when debug is enabled). - * net/send.c net/uip/uip_tcpseqno.c: Fixed a critical error in the TCP/IP - logic. The NuttX port of uIP imcludes logic to send data ahead without - waiting for ACKs from the recipient; this greatly improves throughput. - However, the packet sequence number was not being updated correctly and, - as a result, packets were not be ACKed by the recipient and transfers - would sometimes stall. This is a very important bug fix (in fact, I - don't understand how TCP/IP worked at all without this fix???) - * include/nuttx/arch.h and arch/*/common/up_udelay.c: Change argument - of up_udelay() to type useconds_t to avoid warnings when sizeof(int) - is 16-bits. - * drivers/mmcsd/*: Add casts in constant expressions to avoid warnings - when sizeof(int) is 16-bits. - -5.1 2010-01-30 Gregory Nutt - - * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework - to support the NXP LPC3131. - * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 - (LPC3131) is code complete and waiting for me to get hardware in - hand. - * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - - Added the basic framework needed to begin a port for the SAM3U-EK - development board. - * lib/lib_crc32.c: Add CRC32 logic by Gary S. Brown to lib/. This is - the larger (but faster) table look-up version of the CRC32 algorithm. - * configs/ea3131/tools: Added a tool to create a image suitable for - use with the LPC313x bootloader. - * configs/sam3u-3k/ostest: Completed verification of the basic NuttX - OS test for the SAM3U. - * arch/arm/src/common/up_createstack: stack was always been cleared - when it was allocated. This is a good feature for monitoring the - stack during debug, but really hurts thread start-up performance. - Clearing is now done if CONFIG_DEBUG=y only. Changes was only made - for arm, but really should be made for all architectures. - * configs/sam3u/nsh: Added NSH configuration for SAM3U - -5.2 2010-03-18 Gregory Nutt - - * arch/arm/src/sam3u/sam3u_pio.c: Fix an address calculation error - that caused ports B & C to get mapped to the PIOA base address. - This is an important bugfix! (a patch is available) - * arch/arm/src/lpc313x/lpc313x_boot.c: Fix an error in the vector - initialization was causing a memory fault. - * lib/lib_strtod.c: Add strtod() - * lpc3131/ea3131: Several bring fixes submitted by David Hewson. The - lpc3131 is almost there! Thanks David! - * arch/arm/src/arm/up_head.S: Corrected backward conditional compilation - that selects if vectors are located at 0x0000:0000 or 0xffff:f000. - This fixes the last show stopper bug in the lpc313x bring-up. - * configs/ea3131/nsh: Added a NuttShell (NSH) configuration for the - EA3131. - -5.3 2010-04-11 Gregory Nutt - - * arch/arm/src/lpc313x/lpc313x_usbdev.c: USB driver for the LPC313x - contributed by David Hewson. - * configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial, - configs/ea3131/usbstorage: USB storage and USB serial example support - contributed by David Hewson. - * Several important compilation error fixes in lpc313x and (dualspeed) USB - code also contributed by David Hewson. - * arch/arm/src/sam3u/sam3u_dmac.c: DMA support for the AT90SAM3U. - * arch/arm/src/sam3u/sam3u_hsmci.c: SD memory card support for AT90SAM3U - (Neither the DMA nor the HSMCI driver are functional on the initial checkin). - * drivers/usbdev: Several important fixes to the USB mass storage driver - submitted by David Hewson. - * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - - Basic port of the NXP 2378 on the Olimex board contributed by - Rommel Marcelo. - * arch/arm/src/sam3u/sam3u_internal.h: Fixed a critical bug in the AT91SAM3U - PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, - no one has been using this port. - -5.4 2010-04-23 Gregory Nutt - - * include/nuttx/lcd.h: Defines an LCD interface. - * graphics/nxglib/fb and lcd: Support LCD and framebuffer rasterizers for NX. - * configs/sam3u-ek/src/up_lcd.c: LCD driver for LCD on SAM3U-EK development - board. - * configs/sam3u-ek/nx: NX graphics configuration for the SAM3U-EK - -5.5 2010-05-09 Gregory Nutt - - * drivers/net/enc28j60.c: Microchip ENC28J60 SPI Ethernet chip driver. - (untested on original check-in). - * configs/olimex-str7p11/nettest: examples/nettest configuration using - the ENC28J60 driver on the Olimex STMicro STR-P711. - (unverified on original check-in) - * configs/olimex-str7p11/src/up_enc28j60.c: Add ENC28J60 initialization - logic. - * configs/olimex-str7p11/src/up_spi.c: Fixed some bugs; added support - for ENC28J60. - * arch/arm/src/str7x/str7x_xti.c: Add basic XTI support (external - interrupts). - * arch/arm/src/lm3s and arch/arm/include/lm3s: Add definitions for - LM3S6965 - * configs/lm3s6965-ek: Add configuration for Stellaris LM3S6965 - Evaluation Kit (including basic examples/ostest configuration) - * lib/lib_dtoa.c and lib/lib_dtoa.c: printf will not print floating - point values if you select CONFIG_LIBC_FLOATINGPOINT in your - configuration file. Contributed by Yolande Cates. NOTE: these - floating point operations have not been well tested and may not - be portable to all floating point implementations. - * configs/lm3s6965-ek/nsh: Added NuttShell (NSH) configuration for - the LM3S6965 Evaluation Kit. Includes both serial and telnet - interfaces. - * net/net_close.c: Correct a UDP reference counting error - -5.6 2010-06-05 Gregory Nutt - - * drivers/lcd/p14201.c: Driver for RiT P14201 series 128x96 4-bit OLED. - * configs/lm3s6965-ek/nx: NX graphics configuration for the LM3S6965 - Ethernet Evaluation Kit. - * graphics/: Numerous fixes to get the P14201 4-bpp grayscale display - working (there may still be some minor issues .. see the TODO list). - * arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx: Began port for - NXP LPC1768. As of the 5.6 release, there is a complete set of - LPC17xx header files defining all bits in all LPC17xx registers, - but little else (I still do not have hardware in hand). - * drivers/mtd/m25px.c: Add support for M25P1 flash part (See NOTE) - * include/nuttx/i2c.h: Extended I2C interface definition to handle - multiple transfers (See NOTE). - * include/nuttx/usbdev.h: Corrected an important macro definition - needed to correctly handle USB null packet transfers (See NOTE). - * arch/arm/src/lpc313x: New drivers: I2C and SPI. Plus several - important LPC313x USB bug fixes (See NOTE). - - NOTE: Contributed by David Hewson. - -5.7 2010-06-22 Gregory Nutt - - * configs/nucleus2g: Add ostest configuration for the Nucleus 2G - LPC1768 board from 2G Engineering (http://www.2g-eng.com/) - * arch/arm/src/lpc17xx: Added basic LPC17xx boot-up logic, - interrupt handling, and GPIO configuration. - * configs/nucleus2g/ostest: Completed bring-up of LPC1768 on - the Nucleus2G board using the examples/ostest - * configs/nucleus2g/nsh: Added and verified a NuttShell (NSH) - configuration for the LPC1768 on the Nucleus2G board. - -5.8 2010-07-18 Gregory Nutt - - * configs/nucleus2g/src/up_nsh.c and up_ssp.c: Add support - for SPI-based MMC/SD cards and integrate into the NSH example. - * arch/arm/src/lm3s/lm3s_vectors.S: Correct vectors for GPIOC & D - interrupts. - * arch/arm/src/lpc17xx/lpc17_clockconfig.c: Power was not being - provided to GPIO module. This is a critical bugfix! - * arch/arm/src/lpc17xx/lpc17_serial.c: Improved logic to handle - missed TX interrupts. - * arch/arm/src/lpc17xx/lpc17_ssp.c: Fix a hard fault during SSP - initialization. - * configs/nucleus2g/src/up_led.c: Change how LEDs are controlled - so that they can be used both for NuttX instrumentation and - by application software. - * include/net/uip/igmp.h and uip-igmp.h: Add header files ini - preparation for NuttX IGMP support - * net/uip/uip_igmp*.c: Add IGMP support (untested on initial - checkin). - * examples/igmp: Add a trivial test for IGMP (much more is needed) - * configs/nucleus2g/usbserial and usbstorage: Add USB configurations - for testing purposes. - * arch/arm/src/common/up_internal.h, cortexm3/up_assert.c, - */*_vectors.S: Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK - is enabled (feature still not tested) - -5.9 2010-08-25 Gregory Nutt - - * examples/nsh/nsh_telnetd.c: Fix compilation errors that happen - when both DHCPC and TELNETD are enabled in the Nuttshell. - * graphics/nxglib/fb/nxglib_moverectangle.c: Fix a logic error - that caused an uninitialized variable warning. I still don't - have a test to prove that the changes are correct. - * configs/olimex-lpc2378: Add support for the CodeSourcery toolchain - under Linux (contributed by Alan Carvalho de Assis). - * arch/arm/src/lpc17xx/lpc17_gpio.c: Fix an important GPIO configuration - bug: When attempting to set no pull-up or pull-down (floating), - it would, instead, select pull-down. - * arch/arm/src/lm3s/lm3s_gpioirq.c: Fix warning for returning a value - from functions returning void (contributed by Tiago Maluta). - * netutils/dhcpc/dhcpc.c: lease_time was not in host order - * examples/uip/main.c: if DHCPC is selected, this example now shows - the assigned IP address. - * arch/arm/src/lm3s and arch/arm/include/lm3s: Definitions for the - TI LM3S9B96 contributed by Tiago Maluta. - * arch/arm/src/lm3s/lm3s_gioirq.c: Fix a logic error in the address - table lookup. - * arch/arm/src/lm3s/lm3s_gioirq.c: Also needs to enable the global - GPIO interrupts. - * arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c: Fixed the encoding - of GPIO port number that limited support for GPIO ports to 8 - * sched/pg_*.c and *.c and include/nuttx/page.h: Implemented the - common, core logic for on-demand paging. See - http://www.nuttx.org/NuttXDemandPaging.html for details. - * drivers/usbdev/usbdev_serial.c: Correct compilation errors that - occur if CONFIG_USBDEV_DUALSPEED is selected. - * configs/ea3131/pgnsh: Add an NSH configuration with on-demand paging - enabled. This is not expected to be a functionality configuration (at - least not yet); it was created in order to debug the on-demand paging - feature. - * configs/ntosd-dm320/*/Make.defs: Codesourcery and devkitARM toolchains - now supported for the Neuros OSD. - * configs/ntosd-dm320 and arch/arm/src/dm320: Add support for the - Neuros production OSD (changes contributed by bf.nuttx). - -5.10 2010-09-07 Gregory Nutt - - * configs/ea3131/locked: Create logic to support a two pass build - process: The first pass forces critical logic into the locked text - region, the second pass builds the NuttX executable more-or-less as - normal. - * Makefile, arch/arm/src/Makefile, configs/ea3131: Add logic to - support a two-pass final link. This logic is only in place in - the arch/arm/src/Makefile for now. - * arch/arm/src/lpc17xx/lpc17_internal.h: Add missing parentheses in - macros definitions (patch submitted by Tiago Maluta). - * Documents/NuttxPortingGuide.html, configs/README.txt, etc. - - Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for - description). This allows NuttX application code to be built - outside of the examples/ directory. - - For people who have their own configurations and/or Makefiles, - you will need to make a couple of changes: - - - Replace all occurrences of CONFIG_EXAMPLE=foobar with - CONFIG_APP_DIR=examples/foobar in all of the configuration - files. - - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with - $(CONFIG_APP_DIR) - - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) - with libapp$(LIBEXT) in your Makefiles. - - Check any other occurrences of CONFIG_EXAMPLE. - - * arch/arm/src/lpc313x/lpc313x_spi.c: Fix compilation error when - when CONFIG_DEBUG is enabled. - * arch/arm/src/lm3s and arch/arm/include/lm3s: Support for the - lm3s8962 contributed by Larry Arnold. - * configs/lm328962-ek: Support for the TI/Stellaris EKC-LM3S8962 - board (also contributed by Larry Arnold). - * arch/arm/src/lpc313x/lpc313x_boot.c: The call to lpc313x_boardinitialized() - should not be conditioned on CONFIG_ARCH_LEDs being defined! - * arch/arm/src/lpc313x/: APB0 and APB1 cannot lie in different - sections; they are too close together. - * arch/arm/src/lpc313x/lpc13x_boot.c: Resetting all of the clocking - had a side effect of wiping out the first 6 words of memory where the - interrupt vectors are located (and also not resetting the fractional - dividers). This is not usually noticeable because the IRQ vectors - are after this point, but really causes problems if you want to handle - data and prefectch aborts which are within this zeroed region. - -5.11 2010-10-01 Gregory Nutt - - * configs/ea3131/src/up_fillpage.c: Added new configuration item - CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it - is the full path to a file on a mounted file system that contains - a binary image of the NuttX executable. Pages will be filled by - reading from offsets into this file that correspond to virtual - fault addresses. up_fillpage.c implements logic to perform page - files using the CONFIG_PAGING_BINPATH file. - * configs/mbed: Add configuration to support the mbed.org LPC1768 - board (Contributed by Dave Marples). - * sched/sem_wait.c and sem_waitirq.c: Eliminate a race condition - that can occur when a semaphore wait is interrupt by a signal. - (see email thread: https://groups.yahoo.com/neo/groups/nuttx/conversations/messages/530) - * drivers/mtd/at45db.c: Add a driver for the Atmel AT45DB161D 4Mbit - SPI FLASH part (untested on initial check-in). - * arch/arm/src/lm3s and arch/arm/include/lm3s: Corrections for the - lm3s8962 port contributed by Larry Arnold. That port is purported - to work correctly with these changes in place. - * examples/ostest/prioinherit.c: Need to reinitialize globals if - test is ran repeatedly in a loop. - * configs/ez80f910200zco: Updated to used ZDS-II 4.11.1 - -5.12 2010-10-26 Gregory Nutt - - * arch/avr: Add a place to support AVR family processors. - * arch/avr/include/avr32 and arch/avr/src/avr32: Add support for AVR32 - (all of the AVR32 is a work in progress). - * arch/avr/include/at32uc3 and arch/avr/src/at32uc3: Add support - for the AVR32 UC3A/B family of AVR32 MCUs. - * configs/avr32dev1: Add support for the Atmel AVR32DEV1 board featuring - the AT32UC3B0256 MCU. This board is produced by www.mcuzone.com. - * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c, - lib_labs.c, lib_llabs.c, lib_imaxabs.c: Add abs(), labs(), llabs(), and - imaxabs(). - * Add include/inttypes.h - * arch/hc/src/mc9s12ne64: This hcs12 port grew a few more files. But it - is still a long way from complete. - * arch/*/src/*/*_sigdeliver.c: Fixed a serious error in the signal - trampoline logic. Essentially, interrupts are re-enabled while the - signal handler executes, but the logic to re-disable the interrupts - before returning from the signal handler trampoline was missing. Under - certain circumstances, this can cause stack corruption. This was - discovered by David Hewson on an ARM9 platform, but since the code - has been leveraged, the bug has been propagated from ARM to Cortex-M3, - AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture. - The correction has been incorporated for all architectures but only - verified on a few. - -5.13 2010-11-09 Gregory Nutt - - * lib/lib_strnlen.c: Added POSIX 2008 strnlen() function. Contributed - by Michael Hrabanek. - * Fix wild, consistent naming error. For some reason, I called the at32uc3* - parts at91uc* everywhere. Fixed by changing lots of files and directories. - * configs/avr32dev1/ostest: The AVR32 port now successfully passes the - examples/ostest. We have a good AVR32 port! - * configs/avr32dev1/nsh: Added a configuration to support the NuttShell - (NSH). As of this writing, here is a problem receiving serial data (this - is, very likely, my hardware setup). - * lib/lib_open.c: Fix an error in fdopen when a valid file descriptor does - not refer to an open file. - * configs/olimex-lpc1766stk: Add support for the Olimex LPC1766-STK - development board. The OS test and NSH configurations (only) have been - verified. - -5.14 2010-11-27 Gregory Nutt - - * configs/olimex-lpc1766stk/nettest: Add examples/nettest configuration to - verify the LPC17xx Ethernet driver currently under development. - * arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h: Began development of - the LPC17xx Ethernet driver. Driver in CVS functional after 2010-11-23. - * sched/timer_settime.c: Fix an error in set-up of a one-shot POSIX timer. It - was using the repititive timer value (which is zero in the one-shot case), - always resulting in a 10Ms timer! Found and fixed by Wilton Tong. - * arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S, - sam3u/sam3u_vector.S: Fixed a hard fault problem that can occur if certain - types of interrupts are pending at the time another interrupt returns - (SYSTICK). This has not been verified on all platforms, but is a critical - fixed that is needed by all Cortex-M3 NuttX users. - * configs/olimex-lpc1766stk/thttpd: Add a THTTPD configuration for the - Olimex LPC2766-STK board. Verified successfully. - * net/uip/uip_tcpappsend.c: Correct an important logic bug in some uIP state - data the is used to manage retransmissions. The uIP logic was incompatible - with the retransmission logic of net/send.c in one place. The final error - was that the final packet in a sequence of packets was too large! In the - THTTPD example, this would leave some garbage at the bottom of the display - (or worse). I don't know why I haven't see this bug before??? - * net/uip/uip_tcpinput.c: The change to uip_tcpappsend.c unmasked an - additional error in the TCP sequence number handling. This sympom was that - the send() function would hang with outstanding, unacknowledged data (with - no re-transmit requests). The was due to differences in sequence number - handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly) - that all of the bytes were acknowledged; send.c knew that they were not. - -5.15 2010-12-12 Gregory Nutt - - * net/uip/uip_tcpaddsend.c and net/send.c: Another place where the TCP sequence - number problem "fixed" in 5.14 might occur. - * net/send.c: Check if the destination IP address is in the ARP table. If - not, then don't consider the packet sent. It won't be, an ARP packet will go - out instead. This improves behavior, for example, on the first GET request - from a browser. - * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c: The Ethernet - logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16K). An - option was added to limit the amount of SRAM used for packet buffering and to - re-use any extra Bank0 memory for heap. configs/olimex-lpc1766stk/nettest - now uses only 8K at the beginning of Bank0; the 8K at the end of Bank0 is - included in the heap - * arch/arm/src/lpc17xx/lpc17_ssp.c: Fix compilation errors when SSP1 is - selected. - * configs/olimex-lpc1766stk/nsh: Enable network and SD/MMC card support in - NSH. Networking and telnetd interface as well as SPI-based microSD are - now functional. - * examples/nsh/nsh_netinit.c: Fix NSH bug. If CONFIG_NET is selected, but - CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never - initialized and bad things happen if you try to ping. - * drivers/lcd: Add header files for the Phillips PCF8833 LCD controller and - for the Epson S1D15G10 LCD controller. A driver for the Nokia 6100 LCD is - coming. - * include/nuttx/spi.h and almost all other SPI files: Added an optional - cmddata() method to the SPI interface. Some devices require an additional - out-of-band bit to specify if the next word sent to the device is a command - or data. This is typical, for example, in "9-bit" displays where the 9th bit - is the CMD/DATA bit. The cmddata method provides selection of command or data. - * drivers/lcd/p14201.c: Now uses the cmddata() method of the SPI interface. - * arch/arm/src/lpc17xx/lpc17_usbdev.c: LPC17xx USB driver now appears to - to be fully functional. examples/usbstorage configuration verified (the - examples/usbserial configuration is untested). - * drivers/usbdev/usbserial.c and usbstorage.c: All USB class drivers need - to call DEV_CONNECT() when they are ready to be enumerated. That is, - (1) initially when bound to the USB driver, and (2) after a USB reset. - * drivers/lcd/nokia6100.c: A driver for the Nokia 6100 LCD. This driver - has not be verified as of the initial check-in. - * configs/olimex-lpc1766stk/nx: A NX graphics configuration for the Olimex - LPC1766-STK board using the Nokia 6100 LCD driver. This configuration has - not been verified as of the initial check-in. - * include/nuttx/spi.h: the SPI_SETBITS macro was calling the setmode method. - This is a very important bug-fix in some usages. - -5.16 2011-01-10 Gregory Nutt - - * include/nuttx/usb: Created new directory. Moved all usb-related header - files to this new directory. Created a skeleton for a new USB host header - file - * drivers/usbhost: Add USB host "registry" where connect devices can be - matched with the correct USB class driver. - * arc/arc/src/lpc17xx/lpc17_usbhost.c: Add a simple USB host driver for - the NXP lpc17xx. - * drivers/usbhost: Add generic USB device enumeration logic. - * drivers/usbhost: Add a USB host class driver for the (Bulk-Only) USB - Mass Storage Class. - -5.17 2011-01-19 Gregory Nutt - - * include/nuttx/usb: rename usb_storage.h to storage.h. - * arch/arm/src/lpc17xx/lpc17_usbhost.c: Add support for low-speed devices. - * drivers/usbhost/usbhost_skeleton.c: Template for new class drivers - * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c: New - files for HID keyboard support. - * arch/arm/src/lpc17xx/lpc17_usbhost.c: Will now handle multiple - concurrent transfers on different endpoints (still only one TD per - endpoint). All methods are protected from re-entrancy; lots of re- - structuring in preparation for interrupt endpoint support. - * arch/arm/src/lpc17xx/lpc17_usbhost.c: Add support for periodic - interrupt transfers. - * examples/hidkbd: Added a simple test for the USB host HID keyboard - class driver. - * configs/olimex-lpc1766stk/hidkbd: Added a configuration to build the - USB host HID keyboard class driver test for the LPC17xx. - * Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and - fixed several errors in the code identified by the tool. - -5.18 2011-02-27 Gregory Nutt - - * Incorporate several uIP patches from http://gitweb.aeruder.net/?p=uip.git;a=summary. - - Lost SYNACK causes connection reset - - Fix missing UDP stats for sent/received packets - - Added support for Cygwin as development/test platform. - * configs/demo9s12ne64: Integrate new buildroot-1.9 m8s12x toolchain. - * 'uname -o' is used throughout the build logic in bash scripts and also in - Make.defs files in order to distinguish between Cygwin and Linux. However, - the -o option is not standard and is not supported under, for example, OS-X or - Solaris. This was solved by changing all 'uname -o' references to the more - complex: 'uname -o 2>/dev/null || echo "Other"' - * drivers/usbhost/usbhost_enumerate.c: Add logic to get the VID and PID. This - is necessary in order to support vendor-specific USB devices. - * examples/wlan, configs/olimex-lpc1766stk/wlan, drivers/usbhost/usbhost_rtl8187.c, - Add infrastructure to support RTL18187 wireless USB. - * configs/nucleus2g: backed out USB host changes... wrong board. - * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 to m9s12. That name is - shorter and more general. - * The NuttX repository has been converted to SVN and can now be found here - http://svn.code.sf.net/p/nuttx/code/trunk/ - * configs/mbed/hidkbd: Added USB host support for the mbed LPC1768 board; add - a USB host HID keyboard configuration. - * drivers/usbhost/hid_parser.c: Leverages the LUFA HID parser written by - Dean Camera. - * examples/nsh: Correct an usage of getopt(): If you stop calling getopt() - before all parameters are parsed, you can leave getopt() in a strange state. - * include/nuttx/video/fb.h: Restore missing RGB type that was accidentally removed - when Nokia 6100 support was added. - * Rename arch/pjrc-8051 to arch/8051 - * configs/ne64badge: Add a configuration for the Future Electronics Group - NE64 Badge development board (Freescale MC9S12NE64) - * Changes contributed by Uros Platise: - - Add support for the STM32F103RET6 - - configs/vsn: Support for the ISOTEL NetClamps VSN V1.2 ready2go sensor - network platform - * arch/hc, configs/ne64badge: Development is complete for the Freescale - mc9s12ne64 on the Future Electronics Group NE64 /PoE Badge board. Howeve, - this port remains untested until I figure out this BDM / Code Warrior - and paged build thing - * Added a new 'kill' command to NSH that will support sending signals to - running NuttX tasks. - -5.19 2011-03-12 Gregory Nutt - - * arch/arm/stm32/stm32_idle.c: During idle times, the STM32 now uses the - WFI instruction to sleep in a reduced power mode until the next interrupt - occurs (Contributed by Uros Platise). - * NSH: 'mem' command renamed to 'free'. Output is now more similar to the - Linux 'free' command. - * NSH: Correct a redirection bug in NSH. The following would not work; it - resulted in a hang after the 'cat /dev/fifo': - - nsh> mkfile /dev/fifo - nsh> cd /tmp # /tmp is a mounted RAM disk - nsh> cat /dev/fifo > test.txt & - nsh> echo "This is a test" > /dev/fifo - - The error was caused because (1) there was a path that resulted in stdout - being closed (the "hang") and also (2) the 'cat' command was always outputting - to stdout, not to the redirected file descriptor. Now: - - nsh> cat test.txt - This is a test - - * drivers/pipes/pipe_common.c: Driver open method was not returning an EINTR - error when it received a signal. Instead, it just re-started the wait. This - makes it impossible to kill a background pipe operation from NSH. - * include/stdint.h: Correct some errors in conditional compilation (submitted - by Johannes Hampel). - * arch/arm/lpc17xx/lpc17_idle.c: Uses the same logic as the STM32: uses the - WFI instruction to sleep in a reduced power mode until the next interrupt - occurs. - * configs/olimex-lpc1766stk: Added an LED encoded to indicate if the LPC1766 - is in sleeping. - * examples/mm: This is a simplified version of the "built-in" memory manager - test of mm/mm_test.c. It is simplified because it does not have access to - the internals of the memory manager as does mm/mm_test.c, but it has the - advantage that it runs in the actual NuttX tasking environment (the - mm/mm_test.c only runs in a PC simulation environment). - * drivers/mmcsd_sdio.c/h: Several corrections submitted by Uros Platise. - * arch/x86: Provide support for x86 architectures. Support for the i486 - architecture under QEMU is provided under arch/x86/include/i486, - arch/x86/include/qemu, arch/x86/src/i486, and arch/x86/src/qemu. - * configs/qemu-i486: "Board" support configurations for verifying the QEME - i486 port. - * arch/arm/src/stm32/stm32_spi.c: Correct base address of SPI3 (reported by - Uros Platise). - * drivers/mmcsd/mmcsd_sdio.c: Correct a loop termination condition (also - reported by Uros Platise). - * drivers/mtd/ramtron.c: Driver for SPI-based RAMTRON NVRAM devices FM25V10 - (and others). Contributed by Uros Platise. - * examples/nsh and tools/mkromfsimg.sh: Add support for platform-specific - ROMFS-based NSH start-up scripts. - * drivers/serial/uart_16550.c and include/nuttx/serial/uart_16550.h: Support - for a generic 16550 UART. - * configure/qemu-i486/nsh: QEMU NSH example. - * ../apps: The apps directory add-on was created by Uros Platise. It - supports a set of end-user applications than can be executed on top of - NSH. Think of it this way: In a buckled-up embedded application, your - end-user programs will probably have their own dedicated start-up logic. - But, during development, you might want to have you applications - available and executable from the NSH command line. This apps/ addon - (and NSH hooks) was contributed by Uros to accomplish just that. - * sched/sched_waitpid() and include/sys/wait.h: Provides a simple and - very incomplete implementation of waitpid(). waitpid() is only available - if CONFIG_SCHED_WAITPID is defined in your configuration file. - * sched/atexit.c and sched/exit.c: The atexit function is not frequently - used. In order to save a few bytes, it is now conditioned on - CONFIG_SCHED_ATEXIT. It your application is currently using atexit(), - you will need to add CONFIG_SCHED_ATEXIT to your configuration file. - * drivers/net/slip.c: Add a SLIP driver (untested on initial check-in). - * configs/olimex-lpc1766stk/slip-httpd: An example that uses SLIP to - provide a serial-port based THTTPD web server. - -6.0 2011-03-21 Gregory Nutt - - * lib/lib_fopen(): fopen() was not returning the correct errno value - when the underlying open() failed. - * include/net/uip/uip-arch.h: The uIP interface has been extended - slightly so that drivers can be concurrenly filling and sending - packet buffers. This capability was needed by the SLIP driver. - * drivers/net/slip.c: Several corrections and some re-design of - of the driver. - * apps/ChangeLog.txt: the apps/ directory now has its own ChangeLog. - * configs/vsn: - - IDLE LED blinking fix - - Added board power off function - * arch/arm/src/stm32/stm32_gpio.c and stm32_internal.h: Fixed - PullUp/Down Input Configuration. - * arch/arm/src/lpc17xx/lpc17_serial.h: Now supports Auto-RTS and - Auto-CTS modes. This is needed to support SLIP. - * drivers/net/slip.c: SLIP is now basically functional on the - LPC17xx with some caveats as described in the TODO list under - LPC17xx. - * arch/x86/include/i486/irq.h: Fix irqrestore() macro... it was not - correctly re-enabling interrupts. - * arch/x86/src: Fix numerous problems with i486/QEMU context - switching. Basically, the logic was missing the cases to handle - the differing stack frames when a priority change occurs and when - no priority change occurs. - * configs/qemu-i486/ostest and nsh: The QEMU i486 port is complete. - it now passes the OS test and supports the NuttShell (NSH). - * misc/drivers: Created a new directory to hold non-BSD licensed - drivers that may be added into NuttX via an installation script. - * drivers/usbhost/usbhost_rtl8187.c: A decision was made to - incorporate code taken from the Linux kernel. That changes the - licensing on this module to GPL. To avoid licensing contamination, - this driver was moved to misc/drivers/rtl8187x *prior* to adding - any of the GPL logic. There is an INSTALL.sh script at the location - 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 - configs///appdir to apps/.config and to simply the - application configuration logic. - * examples/nsh and apps/nshlib: Move the core NuttShell (NSH) logic - out of the examples directory and into the apps/ directory where - it belongs. - * apps/Makefile and configs/*/appconfig: Use '=' as the delimiter - instead of '/' so that sub-directories in apps/ can be used. - * apps/vsn: Move all VSN apps to apps/vsn. - * nuttx/examples moved to apps/examples - -6.1 2011-04-11 Gregory Nutt - - * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c: - Fix several bugs in the GPIO interrupt logic. Submitted by - Decio Renno. - * Initialization for the CONFIG_APPS_DIR is now supported during the - earlier, 'context' build phase. - * arch/arm/src/lpc17_gpioint.c: Finish coding of the LPC17xx GPIO - interrupt logic. - * net/netdev_unregister.c: Add capability to un-register a network - device. - * drivers/mmcsd/mmcsd_sdio.c: extra effort to correctly handle cases - 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 - PWM Power Output, and the sif utility program) - * fs/: Reorgnize header so that file systems can be built outside - of the nuttx source tree - * apps/namedapp/binfs.c: Create a tiny filesystem that can be used - to show the internal named apps under /bin. - * fs/fs_opendir.c: Correct an error that occurs when a file system is - mounted in the root directory. This was discovered while mounting - the named app's /bin directory. - * lib/: Move all source files into a subdirectory of lib/ named after - the header file in which the library function is prototyped. - * sched/ and lib/pthread/: Move pthread attribute-related interfaces - from sched/ to lib/pthread where they more appropriately belong. - * sched/ and lib/semaphore/: Move some semaphore-related interfaces - from sched/ to lib/pthread where they more appropriately belong. - * syscall/: The beginnings of an optional syscall Kernel interface. - * tools/mksyscall.c: Add a tool that will auto-generate syscall proxies - and stubs from a comma-separated-value (CSV) data file. - * arch/arm/src/cortexm3/mpu.h: Add a header file describing the Cortex-M3 - MPU registers. - * Numerous modifications to the build system. Various people have reported - build problems since the re-organization and release of NuttX-6.0. I am - unable to replicate the build problems in my environment, but the changes - have be incorporated in hope of correcting the build issues in other - environments. - * drivers/i2c/st_lis331dl.c: I2C-based driver for the LIS331DL MEMS - motion sensor. Contributed by Uros Platise. - * Makefile: The NuttX build system will now supported building NuttX as two - separately linked images: (1) a kernel-mode RTOS image, and (2) a user- - mode application image that communicates to the RTOS kernel via system - calls. A lot more still must be done. - * user_initialize(): Eliminated the user_initialize() initialization hook. - It is difficult to maintain and redundant: Board level initialization - an up_initialize() provide the same kind of capability. - * arch/*/include/*/type.h: On some compilers, char defaults as unsigned. - Explicitly add signed to integer types if signed is what is required. - * arch/*: For all architectures -- Global register state save structure - (usually called g_current_regs) should be marked volatile; Added general - capability to support nested interrupts (not fully realized for all - architectures). - * sched/task_create.c: Add support for starting kernel-mode thread. - * drivers/usbdev/usbdev_serial.c: Fix reported by Sheref Younan. USB - was being reset after serial driver was closed. As a result, you could - no reopen the serial driver. - * configs/lpcxpresso-lpc1768: Add a board configuration for the Embedded - Artists LPCXpresso LPC1768 board. - -6.2 2011-05-06 Gregory Nutt - - * arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct errors in logic that maps - and IRQ number into a register bit number. - * Makefile: Fix an error introduced in the top-level Makefile in NuttX-6.1. - This error only shows up if you have a /tftpboot directory. Then the - make will fail with an obscure error about not being able to stat pass2. - * configs/lpcxpresso-lpc1768/nsh: Add an NSH configuration for the - LPCXpresso board. - * configs/*/ld.script: Removed 'sh_link not set for section .ARM.edix' for - a few of the builds. In you have this warning, it can be removed with the - following change to the ld.script file: - - + __exidx_start = ABSOLUTE(.); - .ARM.exidx : { - - __exidx_start = ABSOLUTE(.); - *(.ARM.exidx*) - - __exidx_end = ABSOLUTE(.); - } >sram - + __exidx_end = ABSOLUTE(.); - - * arch/arm/src/lpc17xx: Correct some typos/bugs in configuration of LPC17xx - UART2 and UART3. - * nuttx/clock.h: Replace all references to the global variable g_system_timer - with clock_systemtimer() (currently just a macro that that returns g_system_timer). - * lib/string/strrch.c: Would fail if the searched-for character were the first - character in the string. - * tools/version.sh and mkversion.c: Tools to manage a NuttX version number - file - * sched/clock_getutc() and lib/time/lib_time.c: Add support for 1 second UTC - interface. - * net/net_dup2.c and include/nuttx/net.h: The conditional compilation for - '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files. It should - be '#if CONFIG_NFILE_DESCRIPTORS > 0'. This causes a dup2() failure in THTTPD - and a failure to get a CGI page. The consequence can be a very serious bug! - * configs/lpcxpresso-lpc1768/usbstorage, thttpd, and dhcpd: Add an USB storage, - THTTPD web server, and DHCP server configurations for the NXP LPCXpresso board. - * drivers/lcd/ug-9664hswag01.c and ssd1305.h: Add support for Univision UG-9664HSWAG01 - OLED with Solomon Systech SD1305 LCD controller. - * configs/lpcxpresso-lpc1668/nx: Add a NX graphics configuration for the LPCXPRESO - board. - * graphics/nxglib/nxglib_nonintersecting.c: Fix some single bit errors in - calculation of non-intersecting regions. This was causing an anomaly - in examples/nx in column 0. - * drivers/mtd/rammtd.c: Added a RAM based MTD driver. This RAM driver simulates - FLASH and is useful for testing purposes. - * arch/arm/src/arm/up_head.S: Fix backward conditional compilation. This cause - the configs/mx1ads configuration to fail to build but does not appear to affect - any other ARM9 build. - * fs/nxffs: Adding a tiny, wear-leveling FLASH file system for NuttX. This - file system is intended to be small and will have some limitations. The - implementation is incomplete on initial checkin. - * apps/examples/nxffs and configs/sim/nxffs: Add a test a a configuration that - will be used to verify NXFFS. - * fs/fat/fs_fat32.c and fs_fat32util.c: Incorpated two bugs with fixed provided - by Sheref Younan. Thanks! - * fs/nxffs: After a couple of weeks of testing and bug fixes, NXFSS appears - stable and functional. - -6.3 2011-05-15 Gregory Nutt - - * Remove clock_getutc(). It is replaces with clock_gettime(CLOCK_ACTIVETIME). - Add other RTC related changes provided by Uros Platise. - * arch/arm/src/stm32/stm32_flash.c: Add support for access to on-chip STM32 - FLASH; beginning of integration with NXFFS (Uros Platise). - * arch/mips: Added directory structure for PIC32 support - * configs/pcblogic-pic32mx: Add directory structure for PCB Logic PIC32MX board - * apps/include: Move include/apps to apps/include. A symbolic link is created at - build time - * Makefile: Removed support for Pascal pcode interpreter. Support for that - interpreter has been moved to apps/interpreter/Makefile. - * tools/mkdep.sh: Should not report an error if there are no files on the command - line. This happens normally in certain configurations. - * drivers/usbhost: Sheref Younan reported an error in the error handling when - connection to a USB device fails. In certain fail cases, the logic would try - to free the device class instance twice, the first was okay, but the second - caused a crash. - * graphics/nxbe/nxbe_colormap.c: Fix error noted by Bassem Fahmy. The function - nxbe_colormap was change to nxbe_configure... apparently "search-and-replace" - error. This error was not noticed before because most NX platforms do not use - colormapping. - * arch/rgmp and configs/rgmp. Add architecture support and build - configuration for RGMP. RGMP is a project for running GPOS and - RTOS simultaneously on multi-processor platforms. See - http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further - information about RGMP. - * lib/stdio/lib_fclose.c: Must flush all buffered data when the file is closed. - Instead, it was discarding the buffered data. - * lib/stdio: All output stream logic was modified to support CONFIG_STDIO_LINEBUFFER. - If standard C buffered I/O is enabled (CONFIG_STDIO_BUFFER_SIZE > 0), then this - option may be added to force automatic, line-oriented flushing the output buffer - for putc(), fputc(), putchar(), puts(), fputs(), printf(), fprintf(), and vfprintf(). - When a newline is encountered in the output string, the output buffer will be - flushed. This (slightly) increases the NuttX footprint but supports the kind of - behavior that people expect for printf. - -6.4 2011-06-06 Gregory Nutt - - * lib/drivers/cc1101: Add initial, functional CC1101 wireless driver - (contributed by Uros Platise) - * arch/mips and configs/pcblogic-pic32mx: The MicroChip PIC32MX port is now - code complete and ready to begin testing. Unfortunately, it looks like - testing will be delayed due to tool issues (My PICkit 2 will not work the - the MPLAB debugger on PIC32; I will need to get a PICkit 3). - * drivers/net/e1000.c/h: A PCI-based E1000 Ethernet driver submitted - by Yu Qiang. - * lib/net/lib_inetaddr.c: An implementation of the inet_addr() function - submitted by Yu Qiang. - * arch/arm/src/lpc31xx and arch/arm/include/lpc31xx: Renamed from lpc313x - to make name space for other famiy members. - * arch/arm/*/lpc31xx: Added support for the LPC315x family (untested). - * sched/task_exithook.c: Functionality performed when a task exits or is - deleted has been moved to a common file task_exithook.c. Now exit() - functionality (like flushing I/O and calling registered atexit() - functions, etc.) will be performed when a task is deleted as well. - * mm/: Added support for CONFIG_MM_SMALL. Each memory allocation has a - small allocation overhead. The size of that overhead is normally - determined by the "width" of the address support by the MCU. MCUs - that support 16-bit addressability have smaller overhead than devices - that support 32-bit addressability. However, there are many MCUs - that support 32-bit addressability *but* have internal SRAM of size - less than or equal to 64K. In this case, CONFIG_MM_SMALL can be - defined so that those MCUs will also benefit from the smaller, 16- - bit-based allocation overhead. - * lib/string/lib_strndup.c: Add standard strndup() library function. - * net/getsockname.c: Added standard getsockname() to return the local - address associated with a socket. - * lib/stdio/lib_asprintf.c: Add asprintf() - * configs/olimex-lpc1766stk/ftpc: Add a configuration to support - testing of the FTP client shell. - * fd/fs_fdopen.c and net/net_checksd.c: Add support so that fdopen may - be used with socket descriptors. - * net/recvfrom.c: Fix an error found in receiving small files via FTP: - The small file is received a buffered in the readahead buffer, then the - socket is disconnected. When the app calls recvfrom, the socket is - already disconnected and the buffered data is stranded. Now, recvfrom - will continue to return success after the socket is disconnected until - the readahead buffer is drained. - * olimex-lp1766stk/ftpc/defconfig: Many configurations have the MTU - (CONFIG_NET_BUFSIZE) set to very small numbers, less then the minimum - MTU size that must be supported -- 576. This can cause problems in - some networks: CONFIG_NET_BUFSIZE should be set to at least 576 in - all defconfig files. This has only been fixed in this defconfig file. - -6.5 2011-06-21 Gregory Nutt - - * arch/avr/src/avr and arch/avr/include/avr: Adds general support for - the Atmel 8-bit AVR family. - * arch/avr/src/atmega and arch/avr/include/atmega: Adds support for the - Atmel AVR ATMega family. - * arch/avr/src/at90usb and arch/avr/include/at90usb: Adds support for the - Atmel AVR AT90USB family. - * configs/micropendous3: Adds a board configuration for the Opendous - Micropendous 3 board. This board may be populated with several different - members of the Atmel AVR AT90USB family. - * configs/amber: This is a placehold for the Atmel ATMega128 Amber Web - Server from SoC Robotics. Not much present in this directory on initial - check-in. - * configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 board - that features an Atmel AT90USB1286 MCU. - * fs/fat: Offsets, sector numbers, etc. need to be off_t, not size_t. size_t - is intended to be the maximum size of a memory object, not a file offset. This - does not make any difference except on systems (like the AVR) where size_t - is only 16-bits. - -6.6 2011-07-11 Gregory Nutt - - * drivers/mtd/ramtron.c, net/net_checksd.c, fs/fs_fdopen.c, and include/nuttx/mii.h: - Several structural changes made to get a clean compile under the eZ80 ZDS-II - toolchain (no design changes). - * drivers/usbhost/usbhost_storage.c: Incorpated bugfixes reported by Sheref H. - Younan: (1) Read capacity logic read largest block, not the number of blocks - and was, therefore, off by one, and (2) Some devices stall of get Max LUN request - if they support only a single LUN. Logic now assumes a single LUN if the get - Max LUN request fails. - * include/nuttx/arch.h, lib/stdio/lib_libvsprintf.c, lib/stdio/lib_fputs.c: Add - a new configuration option to support extracting strings from FLASH or EEPROM - or other memories where the string data cannot be accessed by simply de-referencing - a string pointer. - * arch/sim/src/up_romgetc.c: Used to test the basic logic to access strings - without directly de-referencing a string pointer. - * arch/avr/src/avr/up_romget.c: Used to access strings that lie in the first - 64K of FLASH (But I still haven't figured out how to get strings to reside in - FLASH without using the PROGMEM attribute). - * configs/teensy/src/up_spi.c: Correct reading of SD CD and WP pins (was reading - the wrong register. AVR SPI now appears to be functional. - * arch/avr/src/at90usb/at90usb_usbdev.c: Correct USB initialization. Interrupts - were being enabled BEFORE the interrupt handler was attached. - * configs/sure-pic32mx: Add a configuration for the Sure Electronics, "Advanced USB - Storage Demo Board," Model DB-DP11215 (http://www.sureelectronics.net/goods.php?id=1168). - This board features the MicroChip PIC32MX440F512H MCU. (Untested on initial - check-in). - * configs/stm3210e-eval/nsh2: Add another NSH configuration for the STM32 with - some different properties. - * CONFIG_NSH_CONDEV: Add a configuration option to allow using a different character - device (such a a different UART) for the NSH interface. This allows, for example, - debug output to come from the console device while using another device for NSH. - There are some issues on initial check-in: NuttX doesn't have termios and the - console device has special properties that make using NSH awkward. Examples: - No CR-LF expansion, no character echoing, no command line editing. - * arch/arm/src/stm32/stm32_lowputc.c and stm32_serial.c. Correct several bugs - involving serial port configuration. These bugs are only critical if you - are trying to using multiple UARTs on STM32. - * configs/stm3210e-eval/src/up_lcd.c: Add a driver for the STM3210E-EVAL's LCD. - * configs/stm3210e-eval/nx: Add NX configuration for the STM3210E-EVAL. - * configs/nuttx/arch.h (and arch/arm/src/stm32, configs/*/src/up_buttons.c): - Standardize interfaces exported for button support and button interrupts. - * configs/stm3210e-eval/src/up_buttons.c: Add interrupting button support. - Also fixes a few errors in STM3210E-EVAL button decoding. - * configs/stm3210e-eval/buttons: Add a configuration to exercise STM3210E-EVAL - buttons. - * arch/arm/src/stm32/stm32_gpio.c: GPIO interrupt handling for pin - numbers were being aliased: 5-9 together and 10-15 together. Extended - the logic to perform decoding of GPIO interrupts and unique dispatching - for all 16 pins. - * configs/stm3210e-eval/nxtext: Add a configuration for the apps/examples/nxtext - example. This example focuses on placing text on the background while - pop-up windows occur. Text should continue to update normally with or without - the popup windows present. - * arch/arm/src/common/up_checkstack.c: ARM stack overflow checking submitted - by Hal Glenn. - * arch/arm/src/lpc17xx: Changes to compile successfully with no serial console - (also submitted by Hal Glenn). - * graphics/nxfonts/nxfonts_convert.c: Fixed a critical bug that caused - when renderer some fonts with bits-per-pixel > 8 - * graphics/nxbe/nxbe_move.c: Fixed an error in the graphics move logic (This - was a previously untested interface). Basically, there is some confusion - between use of (x,y) as a relative offset or as an absolute position. - * graphics/nxbe/nxbe_close.c: Fixed an important graphics system bug: - When a window is closed, the display was not being updated. The old - window graphic was left on the display for a time. - -6.7 2011-08-02 Gregory Nutt - - * Makefile: Added a export target that will bundle up all of the NuttX - libraries, header files, and the startup object into an export-able - tarball. - * arch/arm/src/lpc17xx/lpc17_can.h: Correct some typos in the CAN - register definitions. - * drivers/serial/serialirq.c: Correct an error that can occur if the - serial RX buffer becomes full. Data is now discarded in that case; - before, leaving data in the hardware would cause infinite interrupts - one most MCUs since you must read the data in order to clear the - interrupt. - * arch/arm/src/lpc17xx/lpc17_can.c: Added a CAN driver contributed by - Li Zhuoyi (Lzyy). - * include/stddefs.h and sys/types: Added type wchar_t. - * fs/fat/fat_fat32dirent.c: Move all FAT directory operations to this - new file; Implement VFAT long file name support. - * fs/fat/fat_fat32dirent.c: The configuration CONFIG_FAT_LCNAMES has - been around for some time but never tested until now. This setting - will mimic the NT 8.3 file name behavior: File names or extensions - may be all upper or all lower case (but not mixed). If - CONFIG_FAT_LCNAMES is not selected, all filenames are strictly upper - case. - * configs/stm3210e-eval/nsh2: Console is back on UART1; Added - examples/nx as an NSH "built-in" command as a demonstration. - * fs/fat/fs_fat32dirent.c: Fix an important bug in the directory - allocation (fat_allocatedirentry()). I looks like it could be - initializing the wrong sectors! NOTE: This function was in - fs_fat32utils.c in earlier releases. - * arch/arm/src/stm32_sdio.c: Correct an important DMA-related bug; - SDIO transfer completion events and DMA completion eventes were - not being coordinated correctly. - * configs/stm3210e-eval/nsh2: Enable FAT long file name support - * sched/sem_timedwait.c: Add the standard sem_timedwait() interface. - * graphics/nxfonts/nxfonts_getfont.c, nxfonts_bitmap.c, - Makefile.source, and include/nuttx/nxfonts.h: Support for multiple - fonts included. A new interface, nxf_getfonthandle() takes a font - ID and returns a handle that is now used at all other font interfaces - to specify which of the multiple fonts to use. - * arch/arm/src/lpc17xx/lpc17_syscon.h: Fix typo (reported by Li Zhuoyi). - * configs/stm3210e-eval/nsh2: Extended to support two new commands: - 'msconn' will connect the USB mass storage device; 'msdis' will - disconnect the USB storage device. - * tools/bdf-converter.c. This C file is used to build the bdf-converter - program. The bdf-converter program be used to convert fonts in Bitmap - Distribution Format (BDF) into fonts that can be used in the NX graphics - system. - * include/nuttx/nx: Move all NX header files from include/nuttx to - include/nuttx/nx. - * drivers/usbdev/usbdev_usbstorage.c and arch/arm/src/stm32/stm32_usbdev.c: - Correct a memory leak when the USB mass storage driver is connected and - then disconnected from the target. The write requests were not being - freed. NOTE that the unregister logic in the STM32 needed to call - stm32_reset() in order to return the write requests to the USB mass - storage driver; it is possible that a similar but could exist for other - architectures. - * graphics/nxfonts/nxfonts_*.h: Add several more new fonts - * arch/z80/src/eZ80/ez80_serial.c: Fix some errors in serial driver - setup for UART1 (submitted by Paul Osmialowski). - * drivers/input/tsc2007.c and include/nuttx/input/*: Add a generic NuttX - touchscreen interface. Add a driver for the TI TSC2007 touchscreen - controller. - * graphics/nxglib/lcd and fb: Add low level routines to set single pixels. - * lib/math/lib_b16atan2.c: Add a fixed precision atan2() function - * graphics/nxglib/nxglib_splitline.c: Add logic to divide a wide line into - trapezoidal components. - * graphics/nxmu/nx_drawline.c, graphics/nxsu/nx_drawline.c, - graphics/nxtk/nxtk_drawlinewindow.c, graphics/nxtk/nxtk_drawlinetoolbar.c: - Add new line drawing interfaces (untested). - -6.8 2011-08-19 Gregory Nutt - - * arch/arm/src/lpc17xx/chip.h: Fix some chip memory configuration errors - for the LPC1764, LPC1756, and LPC1754 (submitted by Li Zhuoy (Lzyy)) - * arch/arm/src/lpc17xx/lpc17_can.h: Revised CAN driver submitted by - Li Zhuoy (Lzyy). The driver now supports both CAN1 and CAN2. - * arch/arm/sim/up_lcd.c: Add a simulated LCD driver. - * configs/stm3210e-eval/nxlines: Added a configuration to build - examples/nxlines. - * arch/graphics: Used apps/examples/nxlines to (finally) verify the NX - trapezoid drawing functions and (wide) line drawing functions. - * arch/rgmp and configs/rgmp. Yu Qiang has ported RGMP to the OMAP4430 (arm) - pandaboard and release the new RGMP 0.3 version. The main changes are: (1) - Separate configs/rgmp/x86 and configs/rgmp/arm configuration directory, and - (2) Extract architecture dependent code in arch/rgmp/include and - arch/rgmp/src into corresponding x86/ and arm/ directories. - * arch/arm/src/kinetis, arch/arm/include/kinetis, configs/kwikstick-k40: - Add a directory structure to support the port to the Kinetis KwikStik-K40. - There is no real substance in the initial check-in; only the directory - structure and skeleton files (Code complete on 8/15/11). - * arch/arm/include/armv7-m, arch/arm/src/armv7-m, etc.: Rename all cortexm3 - directories and files to armv7-m; Change name of all CORTEXM3 constants - to ARMV7M. This is a major namespace change needed to cleanly support the - ARM Cortex-M4 which is also in the ARMv7 M Series (specifically, ARMv7E-M). - * sched/sig_initialize.c, sig_received.c, and mq_waitirq.c. Fixed several - critical bugs related to signal handling initialization and for signals - the wake up tasks that are waiting to send or receive message queues. In - the first two files, errors would prevent proper allocation of signal-related - structures from interrupt handlers. In the second, there was missing - "clean-up" logic after a signal occurred, leaving the message queue in - a bad state and resulting in PANICs. All are important. (submitted by - hkwilton). - * arch/arm/src/kinetis: Added header files defining all Kinetis registers - and bit fields within all Kinetis registers. - * configs/twr-k60n512: Add support for the Kinetis K60 Tower board - (TWR-K60N512). - * drivers/can.c: Fixed a semaphore overflow problem in the CAN driver - (reported by Li Zhouy (Lzyy)). - * 8/18/2011: The basic port to the FreeScale Kinetis TWR-K60N512 board is - now functional. - * configs/twr-k60n512: Add Kinetis TWR-K60N512 NSH configuration. - * drivers/analog and include/nuttx/analog: Add ADC driver infrastructure - and TI ADS1255 driver developed and submitted by Li Zhouy (Lzyy)). - * arch/arm/stm32/stm32_sdio.h and drivers/mmcsd/mmcsd.c: Add logic to - multiplex usage of the GPIO pins (contributed by Uros Platise). - * configs/twr-k60n512/nsh: Added and verified a NuttShell (NSH) - configuration for the Freescale, Kinetis TWR-K60N512 board. - -6.9 2011-09-11 Gregory Nutt - - * arch/arm/src/kinetis/kinetis_sdhc.c: SDHC driver for Kinetis parts. - Initially check-in is just a crude port of the STM32 SDIO driver. - Much more work is needed. - * graphics/, include/nuttx/nx: Add new NX interfaces for drawing - circles -- both circular outlines and filled circles. - * graphic/nxglib/nxglib_spitline.c: Add a "fudge factor" that eliminates - some problems for rendering nearly horizontal, wide lines. Hmm... - but I suspect this fudge factor also leads to new problems rendering - very thin, nearly horizontal lines. More tuning is needed. - * drivers/analog, include/nuttx/analog, arch/arch/src/lpcxx: (1) Add - updates to the ADS1255 driver, (2) fix errors from my last merge (sorry), - (3) Add DAC infrastructure, (4) add AD5410 DAC driver, and (5) add - LPC17xx ADC and DAC drivers. All contributed by Li Zhuoyi (Lzyy). - * tools/mkexport.sh: Extended the script that implements the top-level - 'make export' logic. The script now also finds and bundles up all of - the architecture-specific header files as well. - * drivers/arch/arm/src/stm32/stm32_i2c.c: Add a reset to the I2C - initialization logic to prevent spurious interrupts when the I2C - interrupts are enabled (submitted by Uros Platise). - * Scripts/makefiles/documents. Several adjustments, corrections and - typo fixes so that NuttX will build correctly on FreeBSD using the - ASH shell (submitted by Kurt Lidl). - * drivers/mtd/flash_eraseall.c: Add a callable function that accepts - the path to a block driver and then erases the underlying FLASH memory - (assuming that the block driver is an MTD driver wrapped in the FTL - layer). Hmmm... this is probably not the best long term solution; - flash_eraseall() should be a user-callable function that operates - one driver interfaces; not an internal, OS function that operates - on directly on block drivers. - * drivers/bch: Fixed some important bugs in the BCH driver (noted by - Li Zhuoyi (Lzyy)). This would have effected any large reads or writes - (larger than the hardware sector size). - * arch/*/src/Makefile: Use of -print-libgcc-file-name to get path to - libgcc.a may select the wrong libgcc.a if a multilib toolchain (like - CodeSourcery) is used. This can be a serious problem and can cause - crashes on Cortex-M3 if the ARM libgcc is used, for example. The fix - is to include ARCHCPUFLAGS on the gcc command line when asking it to - -print-libgcc-file-name. - * lib/time/lib_gmtimer.c: Correct several calculations that could lead - to errors in dates. - * drivers/pm: Add the beginnings of a NuttX power management sub-system. - * arch/arm/src/stm32/stm32_irq.c: Fix a error introduced in 6.8. - Timeout calculation uses clock_settime() instead of clock_gettime(). - Pretty gross error, but actually it works with the side effect of setting - a bad time. - * drivers/mtd/at24xx.c: Driver for I2C-based at24cxx EEPROM submitted by - Li Zhuoyi (Lzyy). - * arch/arm/src/lpc17xx/lpc17_i2c.c: I2C driver for the NXP LPC17xx family - submitted by Li Zhuoyi (Lzyy) - * arch/arm/src/stm32_i2c.c: Correct two issues with the STM32 I2C driver: - (1) Clocking needs to be based on PCLK1, not HCLK and fast speed settings - need some additional bits; and (2) Correct a hang that will occur on - I2C1 if FSMC is also enabled. - * drivers/sensors/lm75.c and include/nuttx/sensors/lm75.h: Add an LM-75 - temperature sensor driver. - * configs/stm3210e-eval/src/up_lm75.c: Add support for the LM-75 on the - STMicro STM3210E-EVAL board. - * sched/clock_gettime.c: Correct an error in the tv_nsec calculation - that happens only config CONFIG_RTC is enabled. - * arch/arm/src/stm32/stm32_i2c.c: Correct some bugs related to waiting - for the I2C STOP condition to be cleared. - -6.10 2011-10-06 Gregory Nutt - - * lib/stdio/lib_fopen.c: Fix an error in fopen(); the file pointer was not - being positioned at the end of the file when the "a" and "a+" modes are - used. There are other issues with the "a+" modes (see the top-level TODO - list). - * drivers/usbdev/cdc_serial.c and include/nuttx/usb/cdc.h and cdc_serial.h: - Add support for the CDC ACM serial device class. - * fs/fat/fs_fat32.c: Fix a critical bug in the write logic: It a tiny write - cross a sector boundary, then two sector writes will occur. The first part - in the first sector may be written to the wrong sector number. - * fs/fat/fs_fat32util.c: Fix a stray write into the FAT (always sector 964 on - FAT32). This bug will cause some lost chains. I'm sure this bug could - corrupt files but at present, the only thing I have seen is that before - fixing this bug, the Windows chkdsk utility would report these lost chains. - * arch/arm/src/stm32/stm32_i2c.c: Driver can now operate in a faster polled - mode (at the expense of using more cpu cycles). - * arch/arm/src/stm32/stm32_i2c.c: Add trace debug capability. Enabled with - CONFIG_I2C_TRACE. - * arch/arm/src/stm32/stm32_i2c.c: Fix another bug where I2C conflicts with FSMC - being enabled. That time at the tail end of the transaction where there is - an unfinished stop condition. - * sched/mq_timedreceive.c and sched/mq_timedsend.c: The count of threads - waiting on the message queues was not being decremented after a timeout. - This would cause the accounting logic to become out of sync and the, perhaps, - an assertion to be triggered. This is an important bug and fixes a - potential crash when using mq_timedreceived() and mq_timedsend(). - * sched/mq_sndinternal.c: Related to the above, the send logic was incrementing - the wrong counter when it waited as part of the mq_timedsend.c logic. - * fs/fat: Fix an error in the long file name logic: If the long file name - is an even multiple of 13 bytes in length, then it should not include a - NULL terminating character. Fix contributed by Kaushal Parikh. - * configs/sim/nx11: Created a separate configuration to build the NX - example using the a simulated framebuffer driver on an X11 window. This - example has been verified on Ubuntu 9.09 (it does not work on Cygwin). - * arch/sim/src/up_touchscreen.c and up_x11eventloop.c: Adds support for a - simulated NuttX touchscreen device using mouse/pointer feedback from an - x11 window. - * configs/sim/touchscreen: Adds a configuration to verify the simulated - touchscreen driver (Does not work on Cygwin). - * configs/sam3u/touchscreen: This is the configuration that I plan to use - to verify the SAM3U-EK touchscreen driver. However, as of this writing, - there is no touchscreen driver for the board. - * CONFIG_RTC_HIRES: Add an option to support either a high-resolution RTC - that completely replaces the system timer tick but may overflow and lose - time when the MCU is off and also for a low-resolution (1 sec/tick) RTC - that can run until 2106 with no overflow. But in this latter case, higher - resolution time must come from the system timer. - * CONFIG_SYSTEM_UTC: Removed support for the UTC system timer. It just - doesn't do enough to be worth the CPU cycles or the complexity. - * CONFIG_SYSTEM_TIME16: Added support for an optional 64-bit system timer. - * fs/fat/fs_fat32util.c: Add support for FAT date/time stamps; Enabled via - CONFIG_FS_FATTIME. - * arch/arm/src/sam3u/sam3u_spi.c: Add an SPI driver for the AT91SAM3U. - * drivers/input/ads7843e.c and include/nuttx/input/ads7843e.h: Add a - driver for the TI ADS7843E touchscreen controller. - * fs/nxffs/nxffs_open.c: Fix an error when a file is open for writing; since - the file will get deleted it is already exists, there must be a check if - there are other open references to the file. - * arch/arm/src/stm32/stm32_sdio.c: Fixed an error where during SDHC - initialization interrupts were not being re-enabled. Caused more subtle - errors than you would think. - * arch/arm/src/stm32/stm32_i2c.c: Fixed an error where I2C timeouts appeared - to be successful transfers. - * configs/sim/nsh2: Add another simulated NSH configuration. This one - supports X11 graphics, C++, and exercises graphic functions as built-in - commands. - -6.11 2011-11-12 Gregory Nutt - - * arch/arm/stm32/Make.defs: Don't build stm32_rtc.c if CONFIG_RTC is not - selected. Doing so will cause errors if other configuration dependencies - are not met. - * configs/stm3210e-eval/src/up_lcd.c: Color corrections for SPFD5408B LCD - do not work with R61580 LCD. - * configs/pic32-starterkit: Beginning of a configuration for the Microchip - PIC32 Ethernet Starter Kit. Hmmm.. I don't have a clue how to test this - with no serial port?! - * lib/stdio/lib_fclose.c: fclose() always returns an error (EOF) when it - closes a read-only file. This is because it calls flush() which will - fail on read-only files. No harm is done other that a bad value is - returned. - * arch/sim/src/Makefile: Correct build issue for sim/nsh2 target. Old - libboard.a was not being cleaned. - * arch/mips/src/pic32mx/pic32mx-gpio*.c: Add GPIO support for the PIC32MX. - * configs/sure-pic32mx/src/up_leds.c and up_buttons.c: Add button and LED - support for the Sure Electronics PIC32MX board. - * configs/ea3152: Add a configuration for the Embedded Artists LPC3152 - daughter board (with the same base-board used with configs/ea3131) - * graphics/nxmu/nx_getrectangle.c, graphics/nxsu/nx_getrectangle.c, - graphics/mxtk/nx_getwindow.c, graphics/nxmu/nx_gettoobar.c: New - interfaces to read from graphics memory - * graphics/nxbe/nxbe_bitmap.c: Fix an error in the error handling that - can cause valid bitmaps to fail to render. - * include/nuttx/video/rgbcolors.h: Fix errors in some 16- and 8-bit color - conversion macros. - * tools/incdir.sh: Fix issues when g++ is used as the compiler. It was - not being recognized and handled properly. - * graphics/nxsu/nx_releasebkgd.c: Fix a bad cast that was causing - problems with the background window was released. - * fs/nxffs/nxffs_pack.c: Correct a critical bug in the NXFFS file system: - When repacking the filesystem, there was a missing check to see if an - inode structure would fit at the end of a block. This is a rare case - if the block size is large, but can be common for tiny block sizes - and results in a crash and file system corruption. - * fs/nxffs/nxffs_initialize.c: Fix an initialize error. If the FLASH - is full on power-up, NXFFS will fail to initialize correctly. - * fs/nxffs/nxffs_write.c and nxffs_pack.c: Fix an error that can occur - when attempt to write to FLASH volume that is completely full but - has no value inodes on it. - * drivers/mtd/at24xx.c: Now supports a configurable block size that - supports using "clusters" of AT24 pages as blocks. This allows bigger - block sizes and more efficient use of EEPROM when the AT24 is used to - support a file system (such as NXFFS). (Contributed by Hal Glenn). - * include/nuttx/video/rgbcolors.h: More fixes to RGB color conversion - macros. - * arch/arm/src/common/up_createstack.c and up_usestack.c: For ARM EABI - the stack must be aligned to 8-byte boundaries. This is necessary for - passing aligned floating point values under EABI. Fix contributed by - David Sidrane. - * Numerous changes and fixes to the PIC32 interrupt handing logic. The - PIC32 port is almost complete but still not ready for prime time. - -6.12 2011-12-06 Gregory Nutt - - * fs/fat/fs_fat32util.c and fs_fat32.h: Logic extended to look in up to - four partitions for a valid FAT file system. - * drivers/input/tsc2007.c: Add support for 8-bit conversions; make sure - that A/D converters are active before requesting conversions. - * drivers/mmcsd0/mmcsd_sdio.c: Increase capacity variable from size_t - to uin64_t (if available) so that SD cards with capacities greater - than 4Gb can be supported. - * fs/fat/fs_fat32dirent.c: The root directory structure is different - from other directories. When formatted by Windows, it is not initialized - at all. Some additional special handling is required to initialize the - root directory entry to interoperate correctly with windows. - * fs/fat/fs_fat32util.c: In fat_systime2fattime(void) should be - clock_gettime() and not clock_gettime(). Also, there is a place where - FAT date is used instead of FAT time. (Thanks to David Sidrane). - * arch/arm/src/stm32 and arch/arm/include/stm32: Add support for the - STM32F40xxx family of MCUs. - * configs/stm3240g-eval: Add framework for the STMicro STM3240G-EVAL - board. - * include/sys/types.h: wchar_t is a builtin type in C++ and its - declaration can cause errors with certain C++ compilers. - * sched/sig_timedwait.c: Fix signal handling when the returned info - is NULL. Before this change, it would dereference a NULL pointer - in this case. - * graphics/nxfonts/nxfonts_sans17x22.h and nxfonts_sans20x26.h: Add - some very small sans serif fonts. - * graphics/nxfonts/nxfonts_sans17x23b.h and nxfonts_sans20x27b.h: Add - corresponding sans serif bold fonts. - * drivers/input/ads7843e.c and tsc2007.c: Fix some errors in the poll - setup error checking that was cloned into both drivers. - * sched/mq_notify.c: Set errno appropriately on failures. There are - still several message queue functions that do not set errno! - * arch/arm/src/stm32: Fixes to several STM32F40xxx files (contributed by - Mikhail Bychek). - * configs/stm3210e-eval/src/up_lcd.c: Fix banding problem on the R61580 - LCD - * configs/stm3240g-eval/ostest: The basic STM32F40xx bringup is functional - (11/12/06) for the STM3240G-EVAL board and passes the OS test. - * configs/stm3240g-eval/nsh: Adds a NuttShell (NSH) configure for the - STM3240G-EVAL board. - -6.13 2011-12-26 Gregory Nutt - - * arch/arm/src/stm32/stm32f40xxx_dma.c: Add DMA support for the STM32 F4 - family (untested on initial check-in) - * arch/arm/src/armv7-m/up_fpu.c: Add logic for saving an restoring VFP - floating point registers on context switches (but also disable the FPU - because CodeSourcery doesn't support hard flowing point!) - * arch/arm/src/stm32/chip/stm32_eth.h: Add Ethernet register definitions - for the STM32 F4. - * arch/arm/srcm/stm32/stm32_eth.c: Adds an Ethernet driver for the STM32 F4. - * arch/arm/srcm/stm32/stm32_dac.c and stm32_adc.c: "Skeleton" files for STM32 - DAC and ADC drivers. The actual logic will come later. - * arch/arm/srcm/stm32/stm32_eth.c: There may be a few more lurking bugs, but - the STM32 Ethernet driver appears to be fully functional on the STM3240G-EVAL. - * arch/arm/srcm/stm32/stm32_eth.c: Fix an error in clearing abnormal interrupt - events. - * configs/stm3240g-eval/dhcpd: Add a DCHP daemon configuration for the - STM3240G-EVAL board. - * configs/stm3240g-eval/nettest: Add a network test configuration for the - STM3240G-EVAL board. - * arch/arm/srcm/stm32/stm32_rtc.c, stm32f10xxx_rtc.c, and stm32f40xxx_rtc: - Broke out separate drivers to handle the very different RTC implementations - in the STM32 F1 and F4 family. - * arch/arm/srcm/stm32/stm32f10xxx_rtc.c: STM32 F4 RTC is functional (12/14/2011) - * net/uip-arp.c: Fix compilation issue with CONFIG_NET_ARP_IPIN - * include/nuttx/pwm.h and drivers/pwm.c: Add an interface definition and a - "upper half" driver for PWM output. - * arch/arm/src/stm32/stm32_pwm.c: Added a PWM "lower half" driver for the - STM32. The initial check-in is little more than a framework for the driver. - * arch/arm/src/stm32/stm32_usbdev.c: Corrected two CRITICAL errors in the USB - device-side driver: (1) Handling of data overrun condition was wrong. When - there was no further memory to accept further OUT endpoint data, the driver - would hang with infinite interrupts; (2) the logic in setting toggle bits - was not correct. However, this driver has functioned for a long time until - the particular condition that revealed the bug occurred. My impression is - that this latter bugfix also fixes some STM32 USB performance problems. - * configs/hymini-stm32v: A configuration for the HY-Mini STM32v board contributed - by Laurent Latil. These changes also include support for the STM32F103VCT6. - * arch/configs/stm3240g-eval/src/up_pwm.c: Add hooks needed to use the new - apps/examples/pwm test of the STM32 PWM driver. - * drivers/mtd/mp25x.c: Add ability to use different SPI modes and different - manufacturers codes. Fix a error in the wait for not busy (submitted by - Mohammad Elwakeel. - * arch/arm/src/stm32/stm32_can.c: Add a low-level STM32 CAN driver. (Initial - check is incomplete). Add loopback support to the driver. - * arch/arm/src/stm32/stm32_adc.c: The ADC is now functional. A more complete - driver would require DMA support. I have some questions still about the - accuracy of the timer-driven sampling. - * configs/sure-pic32mx/nsh: The PIC32 port is (finally) functional. Add an - NSH configuration for the Sure PIC32MX board. - * configs/sure-pic32mx/*/defconfig. Calibrated all PIC32 delay loops. - * configs/pcblogic-pic32mx/nsh: Add an NSH configuration for the PCBLogic - PIC32 board. - * Both PIC32 OS test and NSH configurations have now been verified. - -6.14 2012-01-15 Gregory Nutt - - * tools/Makefile.export, mkexport.sh, and configure.sh: Changes submitted - by Mike Smith to support configuration and 'make export' on MAC OS. - * arch/arm/src/stm32/stm32_gpio.c: Disabled interrupts while configuring - GPIO pins so that we have exclusive access to the GPIO configuration - registers. - * arch/mips/src/pic32mx/pic32mx_usbdev.c: Add a USB device-side driver - for the PIC32MX family. - * arch/arm/src/stm32/stm32_gpio.c: Correct an error in some of the GPIO - initialization logic. Fix submitted by Mike Smith. - * configs/olimex-lpc1766stk/src/up_leds.c: Add new interfaces so that is - CONFIG_ARCH_LEDS are not set, the LEDs may be controlled from application - logic. - * configs/olimex-lpc1766stk/src/up_buttons.c: Add support for the buttons - on the Olimex LPC1766-STK board. - * Makefile: Added 'apps_clean' and 'apps_distclean' target to simplify - managing the state of the application directory while in the NuttX directory - * Documentation/NuttXGettingStarted.html: Added a "Getting Started" Guide - for NuttX. At present, this is just a stub and it refers to the NuttX - top-level README.txt file which is the only, real "Getting Started" Guide - that exists at the time being. - * arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct an value used as the lower - end of an IRQ number range test. - * arch/arm/src/lpc17xx/lpc17_gpio.c: Fix a integer flow problem in shift. - This error would prevent pins > 15 from being used as interrupt sources. - * arch/arm/src/stm32/stm32_can.c: The CAN driver has been verified in - loopback mode on the STM3240G-EVAL board. - * configs/stm3240g-eval/src/up_adc.c: Complete coding of ADC support for the - potentiometer on board the STM3240G-EVAL. - * arch/arm/src/lpc17_can.c: Several CAN driver improvements. Adds support for - testing in loopback mode. now uses all three transmit buffers for better - performance. - * configs/olimex-lpc1766stk/nsh: Now supports the CAN loopback test as an - optional "built-in" application. - * sched/irq_attach.c: Fix an issue with disabling interrupts when they are - detached. For the PIC32, this can't be done because there is a 1-to-many - relationship between vector numbers and interrupt numbers or different. - Added a new configuration option CONFIG_ARCH_VECNOTIRQ to at least flag - the architectures that have this issue and to (at least) avoid doing - something too wrong. - * drivers/can.c: Fix a test for buffer full in the generic, "upper half", - can driver. - * arch/arm/src/lm3s: Add support for the LM3S6432S2E (Contributed by Mike Smith) - * configs/lm3s6432-s2: Add support for the TI RDK-S2E (LM3S6432S2E) board - (Contributed by Mike Smith) - * configs/stm3240g-eval/src: Add APIs support to support user access to the - LEDs - * arch/arm/src/lpc17xx/lpc17_can.c: Add logic to change the CAN bit rate based - on the NuttX configuration. - * arch/arm/src/lpc17xx/lpc17_can.c: PCLK divisor is now a configuration - option. - * arch/arm/src/stm32/stm32_serial.c and stm32_lowputc.c: Support for - UART4-5 and USART6 added by Mike Smith. Also includes a more flexible - way of managing UART pin configurations. - * include/nuttx/pwm.h, drivers/pwm.c, arch/arm/src/stm32/stm32_pwm.c: Add - support for pulse count in order to better support stepper motors. - * arch/arm/src/stm32/stm32_dumpgpio.c: Checking wrong register to see if - GPIO is enabled. Also not adding the GPIO base address to several offsets. - * configs/stm32f4discovery: Port to the STMicro STM32F4Discovery board - (Contributed by Mike Smith). - * fs/fat/fs_fat32util.c: On a failure to recognize a FAT file system, the - mount logic should return -EINVAL, not -ENODEV. - * arch/arm/src/stm32/stm32_tim.c: Support for STM32 F4 32-bit timers - (Contributed by Mikhail Bychek) - * lib/stdio/lib_vsprintf.c: Add support for fixed-size fields with floating - point numbers (Contributed by Mikhail Bychek) - -6.15 2012-02-12 Gregory Nutt - - * arch/arm/src/stm32/stm32_pwm.c: Pulse count was limited to 128; now is - (essentially) unlimited. - * configs/stm3240g-eval/include/board.h: Input frequencies wrong for all but - one APB2 timer. - * arch/mips/src/pic32mx/pic32mx-ethernet.c: The PIC32 Ethernet driver is - code complete, but still untested. - * configs/sim/*/Make.defs and arch/sim/src/Makefile: Add support for building - a 32-bit executable on a 64-bit Linux target. - * configs/sure-pic32mx/src/up_leds.c: Correct GPIOs used for LEDs. The wrong - pins were being used. - * arch/arm/src/stm32/chip/stm32f10xxx_gpio.h: Correct offset to one AFIO EXICR - register. - * arch/arm/src/lpc17xx/lpc17_can.c: Added "advanced" configuration options - to specify the CAN TSEG1 and TSEG2 clock counts specifically. - * include/nuttx/can.h and drivers/can.c: Add support for extended (29-bit) - CAN IDs. - * arch/arm/src/lpc17xx/lpc17_can.c: Add support for extended (29-bit) CAN IDs. - * arch/arm/src/stm32/stm32_can.c: Add support for extended (29-bit) CAN IDs. - * include/nuttx/power/pm.h: Move include/nuttx/pm.h into a sub-directory named - power. - * drivers/power: Rename the drivers/pm directory to power - * include/power/battery.h and drivers/battery.c: Add the interface definitions - for an upper and lower half battery driver. Add the implementation of the - common upper half battery driver. - * drivers/power/max1704x.c: Add a driver for MAX17040x battery "fuel gauge" - * arch/arm/src/stm32/stm32_i2c.c: Add support for I2C3 - * drivers/usbdev/: Lots of name changes: cdc_serial->cdcacm, usbstrg->usbmsc, - usbser->pl2303 - * drivers/usbdev/composite: Fleshed out support for a composite USB device. - * drivers/stm3210e-eval/composite and drivers/stm3210e-eval/src/up_composite.c: - Add a configuration test the USB composite device. - * include/nuttx/usb/usb.h, drivers/usbdev/composite_descriptors.c, and - drivers/usbdev/cdcacm_descriptors.c: Add support for the USB Interface - Association Descriptor (IAD) - * arch/arm/src/stm32/stm32_i2c.c: Correct a typo in STM32 I2C3 support - (submitted by Mike Smith) - * arch/*/src/Makefile: Candidate solution for dependency issue in the board - sub-directory: By making libboard.a a "phony" target, libboard.a should - always rebuilt (the end result is worth the small increase in build time) - (submitted by Mike Smith). - * include/net/psock.h: Added a new low level socket interface that allows the - OS to use the socket interface without having a socket descriptor. - * include/net/psock.h: Removed psock.h. The new interfaces are moved into - nuttx/net.h which already has similar logic. - * include/nuttx/usb/usb.h: Can't use 'class' as a field name in USB structures. - This upsets C++ if usb.h is included. 'class' -> 'classid' in this header - file and all places that referenced 'class' - * drivers/usbdev/usbmsc.c: Fixed some backward conditional compilation. - * sched/on_exit.c: Add support for the on_exit() function., - * sched/exit.c, task_exithook.c, task_delete.c, sched_releasetcb.c: Move - the logic that closes file descriptors sooner in the task shutdown sequence. - When drivers are closed, they may need to do things that require a fully - up-and-running task. Some things cannot be done later when the task is - crippled. - * lib/dirent: Moved readdir_r() and telldir() from lib/misc to this new - directory where they belong. - * lib/termios. Implemented tcsetattr() and tcgetattr(). - * lib/stdio/lib_fgets.c: The old fgets includes some terminal related - functionality: It handles VT-100 commands, includes a command line editor - and echo characters back to the terminal. This old, overloaded fgets() - was renamed readline() and moved to apps/system/readline. The version - of fgets() in lib/stdio was them simplified and stripped down so that it - *only* gets a string -- as its description implies. - * arch/arm/src/lpc214x/lpc214x_usbdev.c: Add corrections suggested by - David Hewson many, many months ago. - * configs/mcu123-lpc214x/composite and configs/mcu123-lpc214x/src/up_composite.c: - Add a configuration to test the USB composite device. - * configs/stm3240g-eval/Telnetd: Add a configuration for testing the - Telnet daemon. - * configs/stm3240g-eval/nsh2: This is another NSH configuration. It differs - from the original nsh configuration because it does not have an RS-232 - console (only a Telnet console) and SDIO is enabled. This configuration is - required because the STM3240G-EVAL board cannot simultaneously support - RS-232 and SDIO due to pin conflicts. - * lib/string/lib_strcasestr.c: Add strcasestr(). - * lib/stdio/lib_avsprintf.c: Add avsprintf(). - * lib/net/lib_inetntop.c: Add inet_ntop(). - * lib/net/lib_inetpton.c: Add inet_pton(). - * include/pthread.h: Correct PTHREAD_MUTEX_INITIALIZER. - * fs/fat/fs_fatfs.c: Fix an error in the FAT statfs() implementation that - was causing some block counts to be reported incorrectly (reported by - David Sidrane). - * drivers/ramlog.c: Add a character driver that can substitute - for /dev/console and or be used for logging debug output when there - is no serial port available (such as when a Telnet console is used). - * lib/stdio/lib_syslogstream: Add a stream object that will be used to - re-direct all debug output to the RAM log if CONFIG_SYSLOG and - CONFIG_RAMLOG_SYSLOG are defined. - * lib/misc/lib_dbg.c: Add an interface enabled with CONFIG_DEBUG_ENABLE that - can be used to turn debug output on and off. - -6.16 2012-03-10 Gregory Nutt - - * drivers/sensors/qencoder.c and include/nuttx/sensors/qencoder.h: Add an - implementation for a quadrature encoder upper half driver. - * arch/arm/src/stm32/stm32_qencoder.c/.h: Add a initial implementation of - a lower-half quadrature encoder driver for the STM32. On initial check-in, - this is little more than a "skeleton" file. - * Various files: CAN ISO-11783 support contributed by Gary Teravskis. - * net/recv.c and net/recvfrom.c: Correct a bug in return value: The the peer - gracefully closes the connections, needs to return zero and not ENOTCONN. - * arch/arm/src/stm32/stm32_eth.c: Fix an error in the STM32 ethernet driver. - The received buffer size must be two bytes larger to account for the two byte - checksum that is appended to the packet. Otherwise, the last two bytes of - real data in the packet will get clobbered. - * arch/arm/src/stm32f40xx_dma.c: The STM32 F4 DMA has (finally) been verified - * arch/arm/src/stm32_sdio.c: STM32 F4 SDIO DMA is now supported - * configs/stm3240g-eval/nsh/defconfig: This configuration now supports SDIO - with DMA (see configs/stm3240g-eval/README.txt for some issues). - * arch/arm/src/armv7-m/up_vectors.S and arch/arm/src/armv7-m/up_vectors.S: New, - streamlined Cortex-M exception handling (with FPU supported). Contributed byh - Mike Smith - * net/accept.c, connect.c,and net_monitor.c: Correct an error in the accept - logic. After a new connection is made via accept(), monitoring for losses - of TCP connection must be set up (just as with connect()). The new file - net_monitor.c holds the common TCP connection monitoring logic used by both - the accecpt() and connect() logic. Contributed by Max Nekludov. - * net/recvfrom.c and net/uip/uip_tcpcallback.c: Fix a leak in the TCP - read-ahead logic. This is a *critical* bug fix! - * net/uip/uip_tcpinput.c: Correct an error in the TCP stack. It was - incrementing the received sequence number BEFORE determining if the - incoming data could be handled. If the data was dropped (usually because - there is insufficient buffering space), then no ACK will be sent and the - sequence number will be wrong. The end consequence of the bad sequence - number was that the when the dropped packet was re-transmitted, it was - was ignored because its sequence number looked wrong. Fix was, obviously, - to only increment the received sequence number if the TCP data was - accepted. - * configs/stm3240g-eval, configs/stm32f40discovery, and arch/*/src/Makefile: - Add changes to support building with the Atollic "Lite" toolchain. - * fs/fs_select.c: Correct select(), in the case of loss of network - connection (POLLHUP), select() must report a read-ready event. This - is how the standard select() interface is supposed to work: In the case - of loss-of-connection, select() reports read-ready. The next time you - read from the socket, you detect the end-of-connection event. Change - submitted by Max Nekludov. - * arch/arm/src/armv7-m/up_fpu.S and arch/arm/src/stm32/stm32_vectors.S: Fix - lazy FPU register saving with CONFIG_ARCH_FPU is set in the configuration. - * arch/arm/src/armv7-m: Lazy saving of floating point registers on context - switches now seems to be functional. - * net/uip/uip_tcpinput.c: Fix a TCP protocol error reported by Max Nekludov. - * configs/stm3240g-eval, configs/stm32f40discovery: Add changes to support - building with the Atollic "Pro" toolchain. - * Makefile: Use the more common .hex extension for Intel hex files instead of - more precise .ihx extension. This change has ripple effects to many build- - related scripts and programs and could cause some short-term problems. - * configs/stm3240g-eval/, arch/arm/src/stm32/up_allocateheap.c: Add support - for the 16-mbit SRAM on-board the STM3240G-EVAL board. - * drivers/usbdev/cdcacm.c and include/nuttx/usbdev/cdcacm.h: The CDC/ACM - driver can now be dynamically connected and disconnected from the host - under software control. - * include/nuttx/arch.h, configs/stm3240g-eval/src/up_cxxinitialize.c, and - configs/stm3240g-eval/src/up_cxxinitialize.c: Add support for C++ static - initializers. - * net/setsockopt.c, net/getsockopt.c, net/bind.c, net/socket.c: Add more - low level, thread-independent socket interfaces for use within the OS. - Some of these are currently used by the FTP controlling terminal. More will - be used to support the NFS file system currently underwork. - * include/nuttx/net/: Major re-organization of networking headerf files. - Moved all non-standard, NuttX-specific header files from include/net and - include/nuttx into include/nuttx/net. - * arch/mips/src/pic32mx/pic32mx_usbdev.c: The PIC32 USB driver now appears to - be fully functional. - * configs/sure-pic32mx/usbnsh and configs/sure-pic32mx/src: Add support for - NSH using only USB serial I/O to support the console. This is useful on - devices that have USB, but no serial port. - * arch/mips/src/pic32mx/pic32mx_spi.c: Add a PIC32 SPI driver. Initial - checkin is primitive, incomplete (lacks interrupt logic), and untested. - * configs/pic32-startkit/nsh: Completed verification of the PIC32 Ethernet - Starter Kit port. Added and verified the NuttShell (NSH) on the PIC32 - Ethernet Starter Kit. I can now (finally) claim to have complete the - basic port to this board. - * configs/pic32-startkit/nsh/up_usbdev, up_nsh.c, and up_usbterm.c: Verified - the USB (device) driver on the PIC32 Ethernet Starter Kit. - * arch/mips/src/pic32mx/pic32mx_ethernet.c: Verified the PIC32 Ethernet - driver on the PIC32 Starter Kit. Status: It is occasionally functional - but not stable enough for use. - * arch/arm/include/stm32, arch/arm/src/stm32: Add general support for - the STM32 F2 family. Contributed by Gary Teravskis, - * configs/stm3220g-eval: Add support for the STMicro STM3220G-EVAL board. - Contributed by Gary Teravskis, - -6.17 2012-04-14 Gregory Nutt - - * configs/sure-pic32mx: Add support for the Sure DB-DP11212 PIC32 General - Purpose Demo Board - * arch/arm/src/stm32/stm32_usbhost.c/.h: Add files that will (eventually) - hold an STM32 USB host driver (the initial check-in is the NuttX LPC17 - USB host driver with name changes only). - * arch/arm/src/stm32/chip/stm32_otgfs.h: STM32 USB OTG FS register - definitions (not complete on initial check-in). - * net/connect.c: Add another low level, thread-independent socket interface - for use within the OS. - * arch/mips/src/pic32mx/pic32mx_ethernet.c: The PIC32 Ethernet driver - is now stable on the PIC32 Starter Kit. - * configs/pic32-starterkit/nsh2: Add a PIC32 Ethernet Starter Kit NSH - configuration that has no serial console; all interaction is done via - Telnet. - * net/netdev_sem.c: Correct a deadlock condition by making a semaphore - recursive. To my knowledge this deadlock only occurs when running the - NSH command ifconfig over Telnet. In that case the function netdev_foreach - takes the network device semaphore, but so does the telnet logic causing - the deadlock. - * arch/arm/src/stm32/stm32_pm*.c: Add basic STM32 power management logic - that will eventually be used to implement low power states. - * arch/arm/src/stm32/stm32f*0xx_rcc.c: In order to use CAN2, both CAN1 and - CAN2 clocking must be enabled. - * arch/mips/src/pic32mx/picm32mx-usbdev.c: Several stall-related fixes so that - the USB device driver can used the mass storage class (which does a LOT - of stalling as part of its normal protocol). The PIC32 USB Mass Storage - device is, however, still non-functional when debug is OFF. - * include/nuttx/fs: Move all file-system related files from include/nuttx to - include/nuttx/fs. - * include/nuttx/serial: Move all serial-driver related files from include/nuttx to - include/nuttx/serial. - * include/nuttx/clock.h and sched/clock_initialize.c: Add a new OS interface - called clock_sychronize() that can be used to re-synchronize the NuttX - system time with a hardware RTC. This function is called normally at power - up but may also need to be called when recovering from certain low-power - usage states where the system time is no longer accurate. - * arch/arm/src/calypso and arch/arm/include/calypso: Support for the TI "Calypso" - phone processor. Contributed by Denis Carilki and includes the work of Denis, - Alan Carvalho de Assis, and Stefan Richter. - * configs/compal_e88 and configs/compal_e99: Support for Compal e88 and e99 phones - Contributed by Denis Carilki and includes the work of Denis, Alan Carvalho de - Assis, and Stefan Richter. - * arch/arm/src/lpc17xx: Several fixes for error that have crept in for the LPC17xx - DAC. Contributed by by Lzyy. - * graphics/nxconsole: Add a character driver that can be used as a console output - device for text output (still under development on initial check-in). - * graphics/nxmu: Fix several compilation errors that have crept into the multi- - user NX server because of lack of use. - * graphics/nxconsole: The NX text console is basically function (in multi- - user NX mode only). - * arch/arm/src/stm32/stm32_i2c.c: Correct a bug in the STM32 I2C driver. The - behavior of I2C status bits seems to be different between F1 and F4. - * configs/stm3210e-eval/nxconsole: New STM32 F1 configuration that runs the - NuttShell (NSH) within an NX window. - * graphics/nxconsole/nxcon_sem.c: Add protection from re-entrance with debug - is enabled. - * include/nuttx/ascii.h and vt100.h: Header files to centralize ASCII and - VT100 escape sequence definitions. - * graphics/nxconsole/nxcon_vt100.c: Add add framework to support VT100 escape - sequences in NxConsole. - * fs/fs_read.c: Fix read() return value for attempt to read from write-only - file or device. Was returning EBADF, should return EACCES. - * graphics/nxconsole.c: NxConsole now supports backspace and a cursor. - * Kconfig and arch/sim/Kconfig: Beginnings of support for a NuttX - configuration tool. Currently using the kconfig parser 'kconfig-frontend' - available at http://ymorin.is-a-geek.org/projects/kconfig-frontends - (version 3.3.0-1 is also available in the NuttX SVN at - trunk/misc/tools/kconfig-frontends-3.3.0-1.tar.gz). Contributed by Lzyy. - * */Kconfig: Added skeleton Kconfig files to all directories that - may need them. - * include/nuttx/math.h: Moved include/math.h to include/nuttx/math.h - because it conflicts too often with the system math.h (and people aren't - inclined to read the documentation on how to handle this). Now, if - CONFIG_ARCH_MATH_H=y is defined, the top-level makefile will copy - the redirecting math.h header file from include/nuttx/math.h to - include/math.h. So for the architectures that define CONFIG_ARCH_MATH_H=y, - include/math.h will be in place as it was before; for the architectures - that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header - file will stay out-of-the-way in include/nuttx/. - * Kconfig, sched/Kconfig, lib/Kconfig, libxx/Kconfig, arch/sim/Kconfig, - drivers/Kconfig, drivers/mtd/Kconfig, drivers/input/Kconfig - drivers/analog/Kconfig, drivers/lcd/Kconfig: Updated kernel - configuration support provided by Lzyy. - * Kconfig: Many more Kconfig updates (no longer tracking in the ChangeLog) - * arch/arm/src/Makefile, arch/x86/src/Makefile, arch/avr/src/Makefile, - arch/mips/src/Makefile, arch/sim/src/Makefile, arch/hc/src/Makefile, - arch/sh/src/Makefile: The libgcc.a in newer versions of GCC now - have an dependency on an external implementation of abort(). This - required modification to the Makefiles that do the final link: Now - libgcc.a must be included within the group of libraries that are - search recursively. - * arch/arm/srm/stm32/stm32_otgfsdev.c: A USB OTG FS device-side driver - for the STM32 F4 (and maybe F2 and F1 connectivity line). - * tools/cmpconfig.c: A tool for comparing two configuration files. - * include/nuttx/usb/usbdev.h, drivers/usbdev/*, arch/*/src/*/*usb*.c: - Extend the USB device side interface so that EP0 OUT data can be passed - with OUT SETUP requests. - * include/nuttx/watchdog.h: Add the definition of a standard watchdog - driver interface. - * drivers/watchdog.c: The "upper half" watchdog timer driver. - -6.18 2012-05-19 Gregory Nutt - - * Kconfig: Continued Kconfig file updates (no longer tracking on a per-file - basis in the ChangeLog) - * arch/arm/src/stm32/stm32_iwdog.c and stm32_wwdog.c: Add the STM32 IWDG - and WWDIG watchdog timer driver. - * configs/stm3240g-eval/src/up_lcd.c: Add LCD from for the STM3240G-EVAL (the - initial check-in is just a stm3210e-eval driver with renaming). - * sched/sched_setscheduler.c: Correct successful return value (Contributed - by Richard Cochran). - * include/fcntl.h and lib/stdio: Ignore CONFIG_STDIO_LINEBUFFER is the - file was opened in binary mode. - * lib/stdio/lib_fopen.c: Correct an error in parsing open mode string. The - plus sign may not appear right after the basic mode. For example, "r+", "rb+", - and "r+b" are all valid open strings and mean the same thing. - * lib/stdio/lib_fopen.c: Correct return errno value from f_open() and - f_fdopen() if the open mode string is invalid. - * drivers/serial/serial.c: Do not disable Rx interrupts on each byte. - Rather, only disable Rx interrupts when the Rx ring buffer may be empty. - * include/nuttx/usb/audio.h: USB Audio 1.0 definitions (in progress). - * arch/arm/src/stm32/stm32fxx_dma.c: STM32 F4 DMA now supports circular - buffer mode (contributed by Mike Smith) - * arch/arm/src/stm32/stm32_serial.c: The serial driver can now support - Rx DMA into a circular buffer (contributed by Mike Smith) - * configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka - PIC32MX7 Multimedia Board (MMB). - * net/recvfrom.c: Fix a compilation problem. Some UDP logic was conditioned - on TCP, not UDP. - * drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial - device is unregisters. - * arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in - order to flush the requests) and to disable the software connection when the - device is unregistered. - * include/sys/prctl.h, sched/prctl.c, include/pthread.h: Add interfaces to - support getting and setting of the thread or task name. - * configs/ubw32: Added a configuration to support the Sparkfun UBW32 PIC32 board. - * configs/ubw32/nsh: Added an NSH configuration for the Sparkfun UBW32 PIC32 board. - * configs/ubw32/up_buttons.c: Added button support for Bit Whacker board. - * configs/stm3240g-eval/nxconsole: Added a configuration to run the NSH - shell in an NX window for the STM3240G-EVAL board. - * include/cxx/cunistd: C++ header file to make sure that everything in - unistd.h is in the std:: namespace. - * configs/sim/nxwm: Added a configuration for testing the NuttX Window Manager - (NxWM) - * fs/fs_fcntl.h: On success, always returned OK. However, some fcntl commands - require returning other values on success. - * Various files. Fix warnings about variables that were initialized by not used. - * configs/sim/*/defconfig: Changes to build a 32-bit simulation on a 32-bit - platform did not make into all of the Make.defs files. - * graphics/nxmu/nx_move.c: Wrong opcode was being used in the server message; - Also there was an error in the offset calculation. - * graphics/nxglib/fb/nxglib_moverectangle.c: Offset argument is really a - position, not an offset. - * graphics/nxtk/nxtk_drawframe.c: Framed windows are now drawn in three - colors (instead of just two). - * drivers/input/stmpe811_*: Added a driver to support the STMicro STMPE811 - IO Expander and touchscreen driver. - * configs/stm3240g-eval/nxwm: Added to configuration for testing the NxWM - window manager on the STM3240G-EVAL board. - * graphics/nxtk/nxtk_toolbarbounds.c: Added an interface to get the toolbar - bounding box. - * graphics/nxtk/nxtk_drawframe.c: Fix an error in drawing the window frame. - * NX, NxConsole: Replace CONFIG_NXCONSOLE_NOGETRUN to CONFIG_LCD_GETRUN. The - inability to read from the LCD is a property of the LCD, not of NxConsole. - Then add CONFIG_NX_WRITEONLY which is the more generic way of saying that - no NX component should try to read from the underlying graphic device (LCD - or other). - * configs/stm3240g-eval/src/up_stmpe811.c: Add board-specific support for the - the STMPE811 I/O expander on the STM3240G-EVAL board. Verfied that the - STM3240G-EVAL touchscreen is now fully functional. - * include/cxx/cfcntl: Added std:: header file. - * graphics/nxbe/nxbe_filltrapezoid.c and graphics/nxglib/fb/nxglib_filltrapezoid.c: - Fix several errors in the trapezoid fill logic. - * include/nuttx/input/touchscreen.h, configs/hymini-stm32, configs/stm3240g-evel, - * configs/sam3u-ek, configs/sim, arch/sim/src/up_touchscreen.c, and - apps/examples/touchscreen: Standardize the board-specific, touchscreen - initialization interfaces. - * drivers/input/stmpe811_base.c and configs/stm3240g-eval: The STMPE811-based - touchscreen seems to work better with edge (vs. level) interrupts - * drivers/input/stmpe811_tsc.c: Fix some status checks so that the touchscreen - interrupt handling logic does not read data if the fifo is not at the - threshold level. - * include/nuttx/wqueue.h: Add macro work_available() to determine if the - previously scheduled work has completed. - * drivers/stmpe811_tsc.c: Correct errors: (1) Since all interrupt logic is done on - the worker thread, disabling interrupts does not provide protected; Need to - disable pre-emption. (2) Fix handling of touch ID and (2) add some logic to - prevent certain kinds of data overrun. - * include/nx/nxtk.h and graphics/nx/nxtk/nxtk.h: Move setting - of configuration defaults from the internal header file to a place where - other logic can use the defaults. - * graphics/nxtk/nxtk_events.c: Fixed an important but in the logic that - translates the mouse/touchscreen position data for framed windows and toolbars. - * drivers/input/stmpe811_tsc.c, tsc2007.c, and ads7843e.c: Need to keep track of - when if positional data is valid. When the touch is released, the X/Y position - of the release must be the same as the X/Y position of the last touch (se that - the release occurs in the same window as the last touch). - * graphics/nxtk/nxtk_events.c: Fix an error in mouse/touchscreen input logic: - Was autoraising the window AFTER processing the mouse press. This raises havoc - if the result of processing the mouse click was to raise some other window! - * graphics/nxtk/nxtk_events.c: I had to disable the whole autoraise feature - for multi-user case because it does not work correctly. In a scenario where (1) there - are multiple queued touchscreen events for the same window and (2) the result of the - first input was to switch windows, then the autoraise implementation will cause the - window to revert to the previous window. Not good behavior. - * sched/sched_mergepending.c: Add task switching instrumentation. There is a case - here where instrumentation was missing. Contributed by Petri Tanskanen. - * CONFIG_STMPE811_THRESHX, CONFIG_STMPE811_THRESHX, and drivers/stmpe811_tsc.c: Add some - thresholding controls to all slow down processing of touchscreen samples. - This is a problem with NX in multi-user mode: touchscreen data gets sent - via a message and when the message queue gets full the sender blocks and - touch events are lost. Basic data overrun. The badly effects touchscreen - human factors. - * include/sched.h: Fix a typo (missing semicolon) in prototype of on_exit(); - * sched/on_exit.c and include/nuttx/sched.h: Fix some old typos that caused - compilation errors when CONFIG_SCHED_ONEXIT is defined. - * configs/stm3240g-eval/nxwm/defconfig: The default NxWM now uses the STMPE811 - touchscreen. - * include/cxx/csched: Added - * graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c: - Refactor NX messaging logic in preparation for a new message control - feature. - * graphics/nxtk, graphics/nxmu, include/nuttx/nx: Add a new window communication - to support blocking and flushing of client window messages. If there are - stale, queue window messages at the time that a window is destroyed, very bad - things happen. - -6.19 2012-06-15 Gregory Nutt - - * graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take - input from the NX keyboard input callback. If this option is set, then - the interface nxcon_kdbin() is enabled. That interface may be driven by - window callback functions so that keyboard input *only* goes to the top - window. If CONFIG_NXCONSOLE_NXKBDIN is not selected, then the NxConsole - will receive its input from stdin (/dev/console). This works great but - cannot be shared between different windows. Chaos will ensue if you - try to support multiple NxConsole windows without CONFIG_NXCONSOLE_NXKBDIN - * graphics/nxmu/nx_kbdin.c: Fix pointer argument. This is a error - introduced in changes leading up to the 6.18 release. This error will - cause crashes or perhaps simply not work when you try to handle window - keyboard data in multi-user mode. - * graphics/nxconsole/nxcon_kdbind.c: Fixed unmatched sem_wait and sem_post. - Fix some conditional compilation that included a few too many lines of code. - * drivers/input/stmpe811_tsc.c and stmpe811.h: Add a timeout to catch missed - pen up events. Now the STM3240G-EVAL touchscreen works very smoothly. - * configs/stm3240g-eval/nxwm/defconfig: Enable support for NxConsole keyboard - input. Increasing spacing of icons. - * configs/stm3240g-eval/nxwm/defconfig: Use a larger font for the calculator. - * include/nuttx/lcd/ssd1289.h, drivers/lcd/ssd1289.c and .h: Generic LCD - driver for LCDs based on the Solomon Systech SSD1289 LCD driver. This - of this as a template for an LCD driver that will have to be cusomized - for your particular LCD hardware. - * configs/stm32f4discovery/src/up_extmem.c and up_ssd1289.c: Add support to - STM32F4Discovery for than an external, SSD1289-based LCD. - * configs/stm32f4discovery/nxlines: Add an STM32F4Discovery configuration - to test the SSD1289-based LCD. - * configs/stm3240g-eval/src: Add USB GPIO initialization logic needed - in board-specific boot logic. - * configs/stm32f4discovery/src: Add USB GPIO initialization logic needed - in board-specific boot logic. - * drivers/usbdev/pl2303.c and cdcacm.c: Fix the request size used for sending - packets. It was not using the maximum request size, but instead the previous - request size. As a result, packets get smaller, and smaller, and ... This - is an important USB serial fix. - * arch/arc/src/stm32_otgfsdev.c: Bug fix: Don't process TXFE if we have - already processed an XFRC interrupt. We have already done what needs - to done in that case. - * arch/arc/src/stm32_otgfsdev.c: Fixed some status settings in queuing of write - messages. Added a "hack" to work around missing TxFIFO empty interrupts. The - hack is basically to poll for space in the TxFIFO instead of setting up - the interrupt. - * arch/arm/src/stm32/stm32f2* and chip/stm32f2*: Update all STM32 F2 file so - that they are equivalent to F4 files. This is kind of a maintenance nightmare. - * configs/stm3220g-eval/: Update existing configurations to the same level - as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM, - touchscreen, and LCD support. - * configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL. - * stmpe11*: Fix a massive naming problem. All references to STMPE11 should be - STMPE812. - * arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt - (contributed by Erik Van Der Zalm). - * sched/sleep.c: Fix the return value from sleep(). The correct behavior is - to return the number of unwaited seconds; the implementation was always - returning zero. - * sched/usleep.c and include/unistd.h: Was a void function, but should return - 0 on success. usleep() needs to check the return value from sigtimedwait(). - sigtimewait() returns the signal number that awakened it and an error (EAGAIN) - if the timeout expired (normal case). - * sched/sig_timedwait.c: Fix sigtimedwait() return value. On a timeout, it was - setting the 8-bit si_signo field to -1 and eded up reported successfully awakened - by signal 255! Now detects the timeout and errors -1 with errno == EGAIN. If - sigtimedwait() is awakened by an unblocked signal, but it is not one of the - signals in the waited-for set, it will return -1 with errno == EINTR. - * arch/arm/src/stm32_i2c.c: Fix STM32 F2 I2C. It is apparently bug-for-bug - compatible with the F4 and needs the same work-around for the missing BTF - signal that was needed for the F4. - * drivers/lcd/ssd1289.*: Fix some of the initial register settings. - * configs/stm32f4discovery/src/up_ssd1289.c: FSMC address bit 16 is used to - distinguish command and data. But FSMC address bits 0-24 correspond to ARM - address bits 1-25, se we need to set bit 17 in order generate output on - FSMC_A16. - * arch/arm/src/lm3s/lm3s_epi.h and lm3s_timer.h: LM3S header files - (contributed by Max Neklyudov). - * arch/arm/src/stm32/stm32_irq.c: Some of the interrupt priorities were - not be initialized (F2 and F4 only). Thus, the very high numbered - interrupts (like UART6) and cause nested interrupts. This leads to - some very difficult to debug crashes. Fix contributed by Mike Smith. - * arch/mips/src/pic32/pic32_head.S and pic32_config.h and - configs/pic32mx7mmb/include/board.h: Extended PIC32 device configuration - capabilities and change board.h to support unique clocking requirements - of the Mikroelektronika PIC32MX7 MMB. That board now works! - * configs/pic32mx7mmb/nsh: Added and verify a NuttShell configuration - for the Mikroelektronika PIC32MX7 MMB board. - * arch/mips/pic32/pic32mx-ethernet.c: Fix logic that guesses PHY address; - the search loop missed the PHY address needed by the Mikroelektronika - PIC32MX7 MMB board. - * configs/pic32mx7mmb/nsh: Configuration now supports a network by default. - * configs/pic32mx7mmb/src: Add support for the MMC/SD slot on board - the Mikroelektronika PIC32MX7 MMB board (not working on initial check-in). - * arch/mips/src/pic32/pic32mx-spi.c: Add support for very low-level, - register access debug output. - * configs//pic32mx7mmb/include/board.h: Reduced peripheral clock to - 4MHz to match other PIC32 configurations. - * configs/pic32mx7mmb/src/up_nsh.c: SD card needs to operate in SPI - mode 2. - * configs/pic32mx7mmb/nsh/defconfig: MMC/SD card support is now - enabled by default in the PIC32MX7 MMB board configuration. - * configs/pic32mx7mmb/nsh/defconfig: Verified the USB Mass Storage - Class (MSC) using MMC/SD card as the logical unit. Updated the default - PIC32MX7 MMB board configuration so that USB and the mass storage class - are enabled by default. - * drivers/lcd/mio283qt2.c and include/nuttx/lcd/mio283qt2.h: Add generic - support for the MIO283QT2 LCD. - * configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2 - LCD on the PIC32MX7 MMB board. - * configs/pic32mx7mmb/src/up_touchscreen.c: Add an ADC-based touchscreen - driver for the PIC32MX7 MMB board. Kind of works, but needs more - verification and tuning. - * arch/mips/src/common/up_idle.c: Strange but important fix. For some still- - unknown reason, interrupts are left in an unhealthy state in the IDLE - when the work queue is enabled. This is partially because some interrupt - related logic is not built in that case. Simply disabling then re- - enabling interrupts restores the proper state. - * graphics/nxglib/lcd/nxglib_filltrapezoid.c and fb/nxglib_filltrapezoid.c: - Fix an error when the trapezoid is only 1 line high. In this case, a - divide by zero error would occur. The fix is to draw the 1 line high - trapezoid as a run. - * drivers/usbdev/pl2303.c: Fix a cut'n'paste error that snuck into - the PL2303 emulation driver several months back. - -6.20 2012-07-12 Gregory Nutt - - * configs/stm3210e-eval/src and arch/arm/src/stm32/: Add beginnings of - power management support for the STM32 and the STM3210E-EVAL board, in - particular. - * Documentation/NfsHowTo.html: Add a How-To document for the new NFS - client feature. - * arch/mips/include/pic32mx and arch/mips/src/pic32mx: Add support for the - PIC32MX1 and PIC32MX2 families. - * configs/mirtoo: Add a board configuration to support the DTX1-4000L - "Mirtoo" module from http://www.dimitech.com/ - * tools/pic32mx: All of the duplicate directories containing the same - same PIC32 tools were move to this single location. - * configs/mirtoo: The basic Mirtoo port is now functional. - * configs/mirtoo/ostest: Added support for the microchipOpen toolchain - (see http://sourceforge.net/projects/microchipopen/). - * configs/mirtoo/nsh: Added a NuttShell (NSH) configuration for - the Mirtoo module. - * configs/mirtoo/scripts: Move all Mirtoo linker scripts to a common - directory. - * arch/mips/src/pic32mx/pic32mx-gpio.c: All digital inputs were being - configured as outputs. This is a *critical* bug fix and needs to be - incorporated by any PIC32 users. - * drivers/mtd/sst25.c: Added a driver for the SST 25 SPI-based FLASH - parts. - * configs/mirtoo/src/up_nsh.c: The Mirtoo NSH configuration can now - mount the SST 25 devices so that it can be used for a FAT file system. - There are are, however, some NSH memory usage issues if this configuration - enabled now. Some tuning is still needed. - * configs/mirtoo/nxffs: Add an alternative NSH configure for the Mirtoo - module for testing the on-module SST 25 chip using the NXFFS file system. - * arch/arm/src/lpc43xx and arch/arm/include/lpc43xx: The NXP LPC43xx port - is slowly evolving in these directories. - * configs/stm3210e-eval/pm: Add a new configuration for testing STM32 power - management. - * configs/stm3210e-eval/scripts: Moved all of the duplicate ST3210-EVAL - linker scripts into one set of linker scripts at this location. - * configs/stm3210e-eval/src/up_buttons.c, up_lcd.c, and up_pm.c: New logic - for testing STM32 power management. - * configs/lincoln60: Add a configuration to support the Micromint Lincoln60 - board. - * configs/ekk-lm3s3b96: Add a configuration to support the TI/Stellaris - EKK-LM3S3B96 development board. Contributed by Jose Pablo Rojas V. - * arch/arm/src/lpc43xx/chip: Created header files for *all* (really) - lpc43xx registers and all bit-fields. - * configs/lpc4330-xplorer: Added a configuration for the NXP LPC43XX - Xplorer board. This is just to facilitate testing of the LPC43xx - port but will, with any luck, become proper board support for that - board. - * arch/arm/src/lm3s/lm3s_syscontrol.c: Fix an optimization related problem - by adding a volatile qualifier to a timing loop. Oddly, the consequence - of the bug is that when debug was off, the LM3S platform too a long time - to boot. It now boots rapidly whether debug is on or off. - * arch/*/include/limits.h: Change all values in all limits.h for all - architectures to signed decimal; the hex values were not sign extending - appropriate in most uses (reported by Lorenz Meier). - * arch/arm/src/stm32/chip/stm32f103/7vc_pinmap: Fix typographical error in - two pinmap definition files. - * lib/net/lib_inetntoa.c: Fix typographical error that cause compilation - failure on platforms that do not support passing of structures as - parameters. - * arch/arm/*/lpc43xx and configs/lpc4330-xplorer and code complete and - ready for testing. Hopefully, verified LPC43xx support will appear - in NuttX-6.20. - * include/nuttx/stdarg.h: If CONFIG_ARCH_STDARG_H=y is defined, the top-level - makefile will copy the generic (GCC-only) stdarg.h header file from - include/nuttx/stdarg.h to include/stdarg.h. So for the architectures - that cannot use their GCC toolchain's stdarg.h file, they can use this - alternative by defining CONFIG_ARCH_STDARG_H=y. If CONFIG_ARCH_STDARG_H, - is not defined, then the redirecting stdarg.h header file will stay - out-of-the-way in include/nuttx/. - * configs/lpc4330-xplorer/nsh: Add an NSH configuration for the LPC4330 - Xplorer board. - -6.21 2012-08-25 Gregory Nutt - - * configs/lpc4330-xplorer/up_nsh.c: Add support for a basic SPIFI block - driver for use by NSH. Does not work! Crashes on first SPIFI write. - * configs/lpc4330-xplorer/*/defconfig: Calibrate delay loops (this is - based on the current "slow" 72MHz M4 clock and will need to be - re-calibrated when this is increased). - * configs/stm3220g-eval/include/board.h and configs/stm3240g-eval/include/board.h: - The SDIOCLK frequency in the F2 and F4 derives for PLL48CLK and not HCLK - so that the SDIOCLK input frequency should always be 48MHz. - * sched/os_internal.h, sched_setupidlefiles.c, sched_setuptaskfiles.c, and - sched_setupidlefiles.c: Detangle some conditional compilation. Allow for - a perverse configuration that has socket descriptors and streams but no file - descriptors (sure, why not?). - * sched/: Stylistic clean-up of all files. Some of these files are pretty old - and do not follow current NuttX coding standards in detail. - * fs/: More stylistic file clean-up. - * mm/: More stylistic file clean-up. - * drivers/ and drivers/serial/: More stylistic file clean-up. - * arch/arm/src/lpc43xx/lpc43_clockconfig.c: Fix PLL1 bit manipulation logic. - Critical bugfix! This would often cause the LPC43xx to fail to boot. - * arch/arm/src/lpc43xx/lpc43_rgu.c: The soft reset logic called from the - beginning of __start seems cause problems. A magic delay seems to improve - the logic some. But I suspect that real fix is to get rid of all of the - soft reset logic. This would also be a critical bugfix if I believed - that it really fixed all of the issues. - * arch/arm/src/lpc43xx/chip/lpc43_cgu.h: Fix a bit mask in the PLL1 - control register. Critical bugfix. - * arch/arm/src/lpc43xx/lpc43_clockconfig.c and configs/lpc4330-xplorer/include/board.h: - Implement PLL1 ramp-up logic; Now the LPC43xx is running at 204MHz. - * configs/lpc4330-xplorer/*/defconfig: Re-calibrated delay loops using - the 204MHz clock. The LPC43xx ripping rips! This calibration was performed - with symbols enabled and all optimization disabled. It will need to be - better recalibrated again down the road. - * arch/arm/src/stm32/stm32_exti.c: Renamed to rch/arm/src/stm32/stm32_exti_gpio.c - to make a little room in the file name space. - * arch/arm/src/stm32/stm32_exti_alarm.c: Add initial logic to attached the - RTC alarm EXTI interrupt. This is work be performed mostly by Diego Sanchez. - * include/: More stylistic file clean-up. - * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h: Add - logic to configure and initialize the SPIFI device (does not yet work). - * configs/lpc4330-xplorer/include/board.h: Reduce SPI SCLK value. - * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h: - Logic completely redesigned. It now creates an MTD driver to access SPIFI... - but the driver still does not work. - * arch/arm/src/stm32 and arch/arm/include/stm32: Make name of RTC ALARM interrupt - common on STM32 F1,2,4 - * arch/arm/src/stm32 and arch/arm/include/stm32: Add support for the - STM32F100x "Value Line" devices. This includes changes to stm32F10xx_rcc.c that - add the ability to run the chip off the internal oscillator. There is no open - board configuration for this part yet (the STM32VLDiscovery would be a candidate). - Contributed by Mike Smith. - * arch/arm/src/stm32: Fixed typos in conditional compilation in the CAN and DMA - and some pin configuration. This would have caused problems for STM32 F107xx. - Typos noted by Mike Smith. - * arch/arm/src/lpc43xx/lpc43_serial.c: Add support for certain RS-485 features - * lib/termios/lib_cfsetispeed.c, lib_cfsetospeed.c, lib_tcflush.c: Add - simple implementations of cfsetispeed(), cfsetospeed(), and tcflush(). - * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c: - Add APIs to support setting non-standard BAUD values not supported by POSIX - termios. These are non-standard interfaces but have a precedence: There are - similar interfaces in AIX. - * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c: - Sigh... removed. We don't need any more almost standard interfaces! (SVN - revision 4968 if you want the short-lived code). - * include/termios.h and lib/termios/*: Open the existing, standard termios - interfaces to permit some non-standard baud settings. The new termios definitions - still supports the POSIX standard except that it does not strictly enforce - baud rate settings, permitting some non-portable, but useful baud rate settings - (this is what the short-lived AIX-like interfaces would have accomplished as well). - * include/termios.h and lib/termios/*: Redesigned yet again (this is getting - painful. NuttX now supports the BOTHER baud setting just as Linux does. termios - Bxxx definitions are again encoded; cf[set|get][o|i]speed now deal with only the - encoded values. If the encoded baud is set to BOTHER, then the values in the (non- - standard) c_ispeed and c_ospeed baud values may be accessed directly. - * arch/arm/src/stm32/stm32_serial.c: Add minimal termios support for the STM32 - (BOTHER style baud settings only). Contributed by Mike Smith. - * configs/lpc4343-xplorer/src: Clean up SPIFI-library based build to that it - actually works. - * arch/arm/src/lpc43xx/lpc43_spifi.c: Add support for verification to writes. - Add debug option to dump buffers. Several bugfixes... almost works. - * include/termios.h, lib/termios/*, and arch/arm/src/stm32/stm32_serial.c: : - BOTHER is gone again. - * arch/arm/src/stm32/stm32_sdio.c and chip/stm32f20xx_pinmap.h: STM32 F2 SDIO - fixes from Gary Teravskis and Scott Rondestvedt. - * include/termios.h and lib/termios/*: Replace cfsetispeed and cfsetospeed with - cfsetspeed (with definitions for the input/outputs in termios.h). - * configs/stm32f4discovery/src and configs/stm32f4discovery/pm: Add a power - management configuration for the STM32F4Discovery and supporting logic. This - check-in also includes some fixes for the F4 RTC alarm logic. - * drivers/input/pga11x.c and include/nuttx/input/pga11x.h: Add support for the - TI PGA112/3/6/7 amplifier/multiplexer parts. - * configs/mirtoo/README.txt, nsh/defconfig, and nxffs/defconfig: Add support - for the PGA117 on the Mirtoo module. - * drivers/analog/pga11x.c and include/nuttx/analog/pga11x.h: These belong in - the analog subdirectories, not input. - * configs/compal_e99/src/ssd1783.c and /ssd1783.h: Drivers for the SSD1783 - LCD found in the Motorola C155 telephone. The driver is specific to the C155 - because it uses the uwire transport. Contributed by Denis Carilki and - Alan Carvalho de Assis. - * drivers/power/pm_changestate.c. Correct a case where interrupts were not - being re-enabled. Found by Diego Sanchez. - * configs/mirtoo/nxffs/defconfig: This Mirtoo NXFFS configuration now uses the - open Pinguino toolchain by default. This is necessary because the free C32 - toolchain does not support any optimization and the unoptimized NXFFS image - hits the PIC32MX2 FLASH size (128K). There is plenty of room to grow using - the Pinguino toolchain with -O2 optimization. - * configs/mirtoo/src/up_adc.c. This is just a stub for now, but this is - where Mirtoo ADC logic will eventually need to go. - * arch/mips/src/pic32mx/pic32mx-gpio.c: Now supports the PIC32MX1/2 ANSEL - IOPORT register. - * lib/string/lib_memchr.c: Add support for memchr() (contributed by Mike Smith) - * lib/string/lib_memccpy.c: Add support for memccpy() - * arch/arm/src/lpc17xx/lpc17_serial.c: Now supports ioctl commands to change - the baud using tcsetattr() (contributed by Chris Taglia). - * arch/*/src/*_serial.c: Fix ioctl method return values. These methods - should return a negated errno value; they should not set the errno - variable. - * sched/on_exit.c, sched/task_exithook.c, and include/nuttx/sched.c: Add - support for multiple registered on_exit() functions if CONFIG_SCHED_ONEXIT_MAX - is defined. - * drivers/syslog/ramlog.c: Move the RAM SYSLOG device into drivers/syslog - so that it will be in the same directory as some new SYSLOGing devices - in the works. - * include/nuttx/syslog.h and drivers/syslog/ramlog.c: The SYSLOG putc function - now has a common name that is independent of the device that provides the - SYSLOG. - * include/nuttx/syslog.h and drivers/syslog/syslog.c: This is a new, generic - SYSLOG device that can redirect debug output to any character device or file. - So you can log debug output to a file or you can put the console on /dev/ttyS0 - and the debug output on /dev/ttyS1. - * arch/arm/src/lpc43xxl/lpc43_spifi.c: Correct an addressing error in the LPC43 - SPIFI MTD driver - * drivers/syslog/syslog.c and fs/fs_syslog.c: Moved the generic syslog logic - from drivers/syslog to fs/ where is belongs. Especially after realizing that - the syslog logic is going to have to some internal FS operations in order - to realize a totally thread-independent SYSLOG interface. - * arch/arm/src/stm32/stm32*_rcc.c and .h: If CONFIG_PM is defined, add a - function called stm32_clockenable() that can be used by PM logic to re-start - the PLL after re-awakening from deep sleep modes. - * fs/fs_foreachinode.c and fs/fs_foreachmountpoint.c: Add logic to traverse - inodes and mountpoints in the NuttX pseudo-file system. - * fs/fat/fs_fat32.c: Max. filename length reported by statfs() was wrong - if FAT long file names were enabled. - * lib/stdio/lib_libvsprintf.c: Fieldwidth and justification were not - supported for the %s format. As a result, %s, %12s, and %-12s all - produced the same output. - * lib/stdio/lib_libdtoa.c: Fix several issues with presenting floating - point numbers (conversions are fine, but presentation was bad). This - is a critical bug fix if you use printf or sprintf to deal with floating - point numbers. - * lib/stdio/lib_libdtoa.c and lib_libvsprintf.c: Correct some floating - point options. - * arch/arm/lpc43xx/lpc43_usb0dev.c: Add framework for development of - an USB0, device-side driver for the LPC43XX. The initial check-in, - however, is simply for the LPC31xx driver with name changes. The - LPC31xx has the same USB IP, but will require some additional initialization - (and lots of testing) before it can be used with the LPC43xx. - * nuttx/Documentation/NuttShell.html: Added a section covering ways to - customize the behavior of NSH. - * arch/arm/src/stm32/chip/stm32f1*_pinmap.h: STM32 CAN TX/RX pins reversed; - inconsistent conditional compilation. Reported by Max Holtzberg. - * arch/arm/*/stm32: Add support for STM32 F107 "Connectivity Line" - Ethernet (contributed by Max Holtzberg). - * configs/olimex-stm32-p107: Add board support for the Olimiex STM32-P107 - board (contributed by Max Holtzberg). - * arch/arm/src/stm32/stm32f2xx_dma.c, stm32f4xx_dma.c, stm32_serial.c, and - stm32_spic.c: DMA priority was getting zeroed by STM32 F2/F4 DMA drivers - so that all DMAs ran at the lowest priority. - * configs/stm3240g-eval/include/board.h and configs/stm3220: Drop SD card - frequency from 24 to 16 MHz. Apparently 24 MHz is too fast for the board. - This (plus the change to the STM32 DMA (above) fixes SDIO DMA on the - STM3240G-EVAL (and probably STM3220G-EVAL -- untested). - * arch/arm/src/stm32/stm32f2xx_dma.c and stm32f4xx_dma.c: Backed out the - DMA priority change just above. The reduced SD card frequency was - necessary and sufficient to resolve the problem. - * drivers/serial/serial.c: open, read, write, and poll methods may now - abort return EINTR (or a short transfer size) if a signal is received - while waiting to receive or send serial data. This behavior is required - by POSIX. - * include/sys/types.h: Define NULL to be (0) if __cplusplus is defined. - (contributed by Mike Smith) - * include/ctype.h: Remove a stray semi-colon in a definitions (Thanks - Mike Smith). - * configs/.../Make.defs. Fix C++ include path set-up in Make.defs file - for all 8-bit AVR platforms (Thanks Richard Cochran). - * lib/stdio/lib_*stream.c: Revised to handle new error return values from - serial.c. - * arch/arm/src/stm32/stm32_spi.c: SPI driver can now service re- - initialization (Mike Smith). - * tools/mkconfig.c: If CONFIG_DRAM_END is not specified, this tool - will provide default definition of (CONFIG_DRAM_START + CONFIG_DRAM_SIZE) - * arch/arm/src/stm32/stm32_otgfshost.c: Renamed from stm32_usbhost.c. - This is nearly code complete and, with any luck, will be available - in NuttX-6.21. - * configs/*/defconfig: Update all defconfig files to remove syntax - that is incompatible with the mconf configuration tool. - * arch/arm/src/stm32/stm32_otgfshost.c: This driver now appears to be - functional (although more testing is necessary). - -6.22 2012-09-29 Gregory Nutt - - * include/semaphore.h, sched/sem_holders.c, and lib/semaphore/sem_init.c: - Fix some strange (and probably wrong) list handling when - CONFIG_PRIORITY_INHERITANCE and CONFIG_SEM_PREALLOCHOLDERS are defined. - This list handling was probably causing errors reported by Mike Smith - * sched/sched_waitpid.c: Fix a possible issue with logic logic that - should be brought into a critical section (suggested by Mike Smith) - * sched/sched_setuptaskfiles.c: Should be 'struct socket' not - 'struct sockets'. How did this compile before? (found by Kate) - * syscall/syscall.csv: Fix prototype for usleep() and prctl() (also - from Kate). - * arch/arm/src/lpc17xx/lpc17_ethernet.c: Conditionally elide setting PHY - speed/duplex. This does not work for certain PHYs. Still some unresolved - issues (also from Kate). - * tools/Config.mk, Makefile, configs/*/Make.defs: Add a new Makefile - fragment to de-quote certain strings from the Kconfig logic that - need to be used at path segments (Richard Cochran). - * arch/arm/src/stm32/stm32_usbotghost.c: The STM32 USB host driver only - works with debug turned on. The problem appears to be that with debug - OFF, there are more NAKs occurring in more places than before and this - reveals a variety of errors. This check in improves NAK robustness - for control transfers but does not resolve all of the issues. - * configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had - never been calibrated was way off. - * sched/sem_holder.c: Add logic to handler some priority inheritance - cases when sem_post() is called from an interrupt handler. The - logic is clearly wrong, but it is not known if this is the - cause of any known bugs. - * lib/stdio/lib_perror(): Add perror(). Contributed by Kate. - * lib/string/lib_strerror(): Add option CONFIG_LIBC_STRERROR that - is now required to enabled strerror(). Add an option - CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened - strings by strerror(). - * arch/arm/src/stm32/stm32_usbotghost.c: Finally... the USB OTG FS - appears to handle NAKing correctly. - * configs/stm32f4discovery/*: Added and verified support for USB OTG FS - host on the STM32F4Discovery board. - * configs/*/defconfig: Remove configuration documentation from config - files. It is redundant, error-prone, and difficult to maintain. - Configuration documentation is available in configs/README.txt for - common configurations and in configs/*/README.txt for board and MCU- - specific configurations. - * configs/stm3240g-eval: Add USB host support. - * sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others: Added - configuration variable CONFIG_USER_ENTRYPOINT that may be used to change - the default entry from user_start to some other symbol. Contributed by - Kate. NOTE: This change does introduce a minor backward incompatibility. - For example, if your application uses NSH as its start-up program, then your - build will now fail because it will be unable to find "user_start". The fix - for this link failure is to add the following to your configuration file: - CONFIG_USER_ENTRYPOINT="nsh_main". - * libs/stdio/lib_libfread.c and lib_*flush*.c: Correct a couple of - error cases where the lib semaphore was not be released on error - exits (thanks Ronen Vainish). Also, improved some error reporting: - the generic ERROR was being used instead of the specific errno - value; the errno variable was not always set correctly. - * tools/mkfsdata.pl: The uIP web server CGI image making perl script was - moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl - (Part of a larger change submitted by Max Holtzberg). - * configs/stm3240g-eval/script/ld.script: All of the identical ld.script - files for the STM3240G-EVAL were replaced by one version in this directory. - * configs/stm3240g-eval/webserver: Configuration submitted by Max Holtzberg - for testing the changes to the uIP web server (see apps/ChangeLog.txt). - * lib/stdio/lib_perror.c: Remove CONFIG_LIBC_PERROR_DEVNAME. What was I - thinking? Arbitrary streams cannot be shared by different tasks. - * tools/mksyscall.c, csvparser.c, and csvparser.h: Separate CSV parsing - logic from mksyscall.c into files where it can be shared. - * tools/mksymtab.c: Add a tool that can be used to convert a CSV file - into a NuttX-style symbol table. - * sched/work_cancel.c: Fix a bad assertion (reported by Mike Smith) - * configs/stm3210e-eval/src/up_idle.c: Correct some power management - compilation errors (reported by Diego Sanchez). - * include/nuttx/wqueue.h, sched/work*, and others: Added logic to support - a second, lower priority work queue (CONFIG_SCHED_LPWORK). - * arch/arm/src/stm32/stm32_dma.c, chip/stm32*_memorymap.h: FSMC SRAM is - only 16-bits wide and the SDIO DMA must be set up differently. - * arch/arm/src/stm32/stm32_dma.c: Back out the 16-bit DMA change. It - is incorrect. - * configs/: Make use of UART4/5 vs USART4/5 consistent in all places. - * Kconfig: Serial 2STOP setting must be integer 0/1, not a boolean. - * lib/misc/sendfile.c and include/sys/sendfile.h: Add a Linux style - sendfile() (non-standard!) - * Kconfig: Refactor serial settings (moved from chip to drivers/serial). - AVR "teensy" now builds with Kconfig (contributed by Richard Cochran). - * Kconfig: Add configuration settings for the LPC17xx - * Kconfig: Add configuration settings for the LM3S (from Richard Cochran). - * Kconfig: Verify configuration settings for the STM32. This includes - changes in the way that the external SRAM is configured: Define - CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex). - * tools/configure.sh: Don't append the apps directory path setting - if the correct setting is already in defined in the defconfig file. - * fs/fat/fs_utils.c: Improperly constructed bool expression. This - would cause many unnecessary writes to FLASH (Thanks Ronen Vainish). - * Kconfig: Verify configuration settings for the LPC43xx. This includes - some corrections to configuration variable names and defconfig settings. - * Kconfig: Add and verify configuration settings for the LPC31xx. - * arch/arm/src/stm32/stm32_uart.h and stm32_serial.c: Add logic to - re-initialize the console UART as needed to enable DMA on the - console UART (contributed by Mike Smith). - * net/recvfrom.c, net/Kconfig, include/nuttx/net/uipopt.h: Remove delay - after receiving data. That has historical reasons to be there (it - was needed before read-ahead buffering was added), but kills performance. - (Noted by Max Holtzberg). - * configs/shenzhou: Add beginnings of a board configuration for the - Shenzhou STM32107 board (see www.armjishu.com). Very little is in - place as of this initial check-in. - * QEMU: Fixes from Richard Cochran to build QEMU with Kconfig files. - * arch/*/src/Makefile: Remove some old logic that was kicked off - when CONFIG_BOOT_RUNFROMFLASH=y. The old logic used to use - objcopy to move sections. Newer logic changes the load position - of sections in the linker script. As far as I can tell, there - is nothing in the source tree now that depends on the old way of - doing things (if I am wrong, they will need a change to the linker - script). - * configs/fire-stm32v2: Configuration for the M3 Wildfire board. I - don't know very much about this board other than is has an - STM32F103VET6 chip, LCD, touchscreen, and ENC28J60 network. Very - little is in place on the initial check-in. - * configs/shenzhou: Coding for the Shenzhou board port is complete, - but tested has been deferred until I get the right tools. - * arch/arc/include/stm32/chip.h and arch/arm/src/stm32/chip.h: - Add support for the STM32F103VET6. - * fs/fs_fdopen.c: Bad check for failure to allocate memory. (Noted - by Ronen Vainish). - * drivers/mmcsd/mmcsd_sdio.c: If the MMC/SD driver were ever - uninitialized then there would be a double release of memory - (Noted by Ronen Vainish). - * fs/mmap/fs_rammap.c: Fix logic error and errno check (contributed - by Kate). - * arch/avr/src: Fixes from AVR32 build errors that have crept in - over the time; incorporated Kconfig for AVR3 (Richard Cochran). - * fs/fat and include/nuttx/fs/fat.h: The FAT file system allocates - memory for sector I/O buffers used to exchange data with the - configured block driver. In some contexts, the block driver may - require DMA-capable memory. If CONFIG_FAT_DMAMEMORY is defined, - then the FAT FS will use platform-provided DMA memory allocators - to allocate the block driver I/O buffers. - * CONFIG_NET_ENC28J60 renamed CONFIG_ENC28J60 to be consistent - in all places. - * drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and - olimex-strp711/src/up_enc28j60.c: No longer passes IRQ number - as a parameter. Instead now passes a call table to manage - ENC28J60 GPIO interrupts. That is because GPIO interrupts are - handled in different ways by different MCUs and some do not - support IRQ numbers for GPIO interrupts. - * mm/mm_gran* and include/nuttx/gran.h: Add a simple granule- - based allocator. The intent of this allocator is to support - simple allocation of DMA I/O buffers. The initial check-in - is code complete but untested (not event built into the - mm/Makefile yet. - * configs/fire-stm32v2: The board port is basically functional. - Not all features have been verified. The ENC28J60 network - is not yet functional. - * configs/stm3240g-eval/discover: A configuration for testing - the UDP discovery utility. Contributed by Max Holtzberg. - * mm/README.txt: Add a new README file. - * include/nuttx/usb/usb.h, arch/*/src/*usb.c, and arch/*/src/*otg*.c: - Add hooks to use common, external DMA buffer allocation - implementation. - * net/recvfrom.c: Don't block in recvfrom if (1) read-ahead buffering - is enabled and (2) some data was obtained from read-ahead buffers. - Blocking is a bad idea in that case because there is no timeout! - (submitted by Max Holtzberg). - * configs/stm3240g-eval/xmlrpc: An example configuration for the - Embeddable Lightweight XML-RPC Server at apps/examples/xmlrpc. - See http://www.drdobbs.com/web-development/ - an-embeddable-lightweight-xml-rpc-server/184405364 for more info. - Contributed by Max Holtzberg. - * configs/*/nxwm/defconfig and sched/task_exithook.c: Fixes for - bugs that crept in during recent changes. (Submitted by Max - Holtzberg). - * arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave(). - It looks like sometimes the compile will re-order some instructions - inapproapriately. This end result is that interrupts will get - stuck off. - * drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI - FLASH family (W25x16, W25x32, and W25x64). The initial check-in - is basically just the SST25 driver with some name changes. - * arch/arm/include/armv7-m/irq.h and arch/arm/src/stm32/stm32_spi.c: - Back out the last change in irq.h. It is (most likely) fine the - way it was. The really interrupt related problem was in stm32_spi.c: - When SPI3 is not enabled, then the irqrestore() falls in the - else clause. - * include/nuttx/compiler.h and other files: Moved always_inline - and noinline __attributes__ here. Also replaced all occurrences - of explicit __atributes__ in other files with definitions from - this header file. - * drivers/mtd/w25.c: The Windbond SPI FLASH W25 FLASH driver is - code complete (but still untested). - * arch/arm/src/stm32/stm32_i2c.c: I2C improvements from Mike Smith. - Unified configuration logic; dynamic timeout calculations; - I2C reset logic to recover from locked devices on the bus. - * configs/*/*/Make.defs, tools/Config.mk, Makefile: Refactor all - common make definitions from the various Make.defs files into - the common tools/Config.mk. Add support for a verbosity options: - Specify V=1 on the make command line in order to see the exact - commands used in the build (Contributed by Richard Cochran). - * drivers/net/enc28j60.c: The ENC28J60 Ethernet driver is - now functional. - * configs/fire-stm32v2: Add support or the fire-stm32v3 board as - well (untested because I do not have a v3 board). - * lib/stdio/lib_sscanf.c: Add %n pseudo-format (from Kate). - * lib/stdio/lib_sscanf.c: There is an issue of handling input - when (1) no fieldwidth is provided and (2) there is no space - separating the input values. No solutions is in place for this - case now (either space or a fieldwidth must be provided). But - at least some of the bad logic that attempted to handle this - case has been removed (noted by Kate). - * arch/arm/src/stm32/stm32_eth.c: DMA buffer sizes must be an - even multiple of 4, 8, or 16 bytes. - * arch/arm/src/stm32/stm32_idle.c: Fixes STM32F107 DMA issues: - We cannot go into sleep mode while Ethernet is actively DMAing. - * configs/shenzhou/src/up_ssd1289.c: Add infrastructure to support - SSD1289 LCD. Initial checkin is just a clone of the - STM32F4Discovery's FSMC-based LCD interface. The Shenzhou - will need a completely need bit-banging interface; this - initial check-in is only for the framework. - * configs/shenzhou/src/up_ssd1289.c: Bit-banging driver is - code complete. - * configs/shenzhou/src/up_lcd.c: Oops. Shenzhou LCD does not - have an SSD1289 controller. Its an ILI93xx. Ported the - STM3240G-EVAL ILI93xx driver to work on the Shenzhou board. - * configs/shenzhou/nxwm: Added an NxWM configuration for the - Shenzhou board. This is untested on initial check-in. It will - be used to verify the Shenzhou LCD driver (and eventually the - touchscreen driver). - * configs/shenzhou/src/up_touchscreen.c: Add ADS7843E touchscreen - support for the Shenzhou board. The initial check-in is untested - and basically a clone of the touchscreen support for the SAM-3U. - * tools/cfgparser.c: There are some NxWidget configuration - settings that must be de-quoted. - * arch/arm/src/stm32/Kconfig: There is no SPI4. Some platforms - support SPI3 and some do not (still not clear). - * nuttx/configs/shenzhou: Various fixes to build new NxWM - configuration. - * configs/shenzhou: Oops. The Shenzhou LCD is and SSD1289, - not an ILI93xx. - * configs/shenzhou/src/up_ssd1289.c: The LCD is basically functional - on the Shenzhou board. - * graphics/nxmu: Correct some bad parameter checking that caused - failures when DEBUG was enabled. - * arch/arm/src/armv7-m/nvic.h: Add bit definitions for the AIRCR - register. - * drivers/input/ads7843.c: Need semaphore protection in logic - that samples the position. - * drivers/lcd/ssd1289.c: On some platforms we are unable to - read the device ID -- reason unknown; workaround in place. - * drivers/input/ads7843.c: Add thresholding options and an - option to swap X and Y positions. Fix some logic errors in - the SPI locking/selecting logic. - * arch/arm/src/armv7-m/up_systemreset.c: Add logic to reset - the Cortex-Mx using the AIRCR register. Contributed by Darcy - Gong. - * arch/arm/src/stm32/up_eth.c: Add logic specifically for the - DM9161 PHY. If the DM9161 failed to initialize, then use the - up_sysemreset() logic to reset the MCU. Contributed by Darcy - Gong. - * arch/arm/src/stm32/stm32_gpio.c: Add missing logic to set bit - for SPI3 remap. This fixes the XPT2046 touchscreen driver using - drivers/input/ads7843.c - * configs/shenzhou/src/up_ssd1289.c: Fix naming error in - conditional compilation. - * configs/shenzhou/nxwm/defconfig: Disable reading from the LCD. - This does not work. The hardware and the driver support the - capability, but there is some bug that causes memory corruption. - The work around for now: Just disable reading from the LCD. - * drivers/lcd/ssd1289.c: Add some logic to reduce the amount of - output when CONFIG_DEBUG_LCD is enabled. - * configs/shenzhou/nxwm/defconfig: Bug found and fixed... The - original configuration had too much stuff turned on. Reducing - stack sizes, some features, and buffer sizes made the - configuration reliable (Reading from the LCD is still disabled). - * net/uip/uip_icmpping.c: Fix problem that prevented ping from - going outside of local network. Submitted by Darcy Gong - -6.23 2012-11-05 Gregory Nutt - - * arch/arm/src/stm32/stm32_rng.c, chip/stm32_rng.h, and other files: - Implementation of /dev/random using the STM32 Random Number - Generator (RNG). - * board.h file for shenzhou, fire-stm32v2, and olimex-stm32-p107: - Add frequencies for HSE, HSI, LSE, and LSI. These are needed - by the STM32 watchdog driver. - * CONFIG_EXAMPLES_*: To make things consistent, changed all occurrences - of CONFIG_EXAMPLE_* to CONFIG_EXAMPLES_*. - * drivers/mtd/w25.c and configs/*/src/up_w25.c: Several fixes for the - W25 SPI FLASH. - * configs/*/Make.defs: All buildroot tools now use the extension - xxx-nuttx-elf- vs. xxx-elf- - * configs/shenzhou/*/Make.defs: Now uses the new buildroot 4.6.3 - EABI toolchain. - * lib/stdio/lib_libdtoa.c: Another dtoa() fix from Mike Smith. - * configs/shenzhou/src/up_adc.c: Add ADC support for the Shenzhou - board (Darcy Gong). - * configs/shenzhou/thttpd: Add a THTTPD configuration for the - Shenzhou board (Darcy Gong). - * include/termios.h and lib/termios/libcf*speed.c: The non-standard, - "hidden" c_speed cannot be type const or else static instantiations - of termios will be required to initialize it (Mike Smith). - * drivers/input/max11802.c/h, and include/nuttx/input max11802.h: Adds - support for the Maxim MAX11802 touchscreen controller (contributed by - Petteri Aimonen). - * graphics/nxtk/nxtk_events.c: Missing implementation of the blocked - method. This is a critical bugfix for graphics support (contributed - by Petteri Aimonen). - * drivers/usbdev/pl2303.c, drivers/usbdev/usbmsc.h, and - include/nuttx/usb/cdcacm.h: USB_CONFIG_ATTR_SELFPOWER vs. - USB_CONFIG_ATT_SELFPOWER (contributed by Petteri Aimonen). - * arch/arm/src/armv7-m/up_memcpy.S: An optimized memcpy() function for - the ARMv7-M family contributed by Mike Smith. - * lib/strings/lib_vikmemcpy.c: As an option, the larger but faster - implementation of memcpy from Daniel Vik is now available (this is - from http://www.danielvik.com/2010/02/fast-memcpy-in-c.html). - * lib/strings/lib_memset.c: CONFIG_MEMSET_OPTSPEED will select a - version of memset() optimized for speed. By default, memset() is - optimized for size. - * lib/strings/lib_memset.c: CONFIG_MEMSET_64BIT will perform 64-bit - aligned memset() operations. - * arch/arm/src/stm32/stm32_adc.c: Need to put the ADC back into the - initial reset in the open/setup logic. Opening the ADC driver works - the first time, but not the second because the device is left in a - powered down state on the last close. - * configs/olimex-lpc1766stck/scripts: Replace all of the identical - ld.script files with the common one in this directory. - * configs/stm3220g-eval/scripts: Replace all of the identical - ld.script files with the common one in this directory. - * configs/hymini-stm32v/scripts: Replace all of the identical - ld.script files with the common one in this directory. - * configs/lpcxpresso-lpc1768/scripts: Replace all of the identical - ld.script files with the common one in this directory. - * binfmt/elf.c, binfmt/libelf, include/elf.h, include/nuttx/elf.h: Add - basic framework for loadable ELF module support. The initial check- - in is non-functional and is simply the framework for ELF support. - * include/nuttx/binfmt.h, nxflat.h, elf.h, and symtab.h: Moved to - include/nuttx/binfmt/. - * arch/sim/src/up_elf.c and arch/x86/src/common/up_elf.c: Add - for ELF modules. - * arch/arm/include/elf.h: Added ARM ELF header file. - * include/elf32.h: Renamed elf.h to elf32.h. - * configs/stm32f4discovery/ostest: Converted to use the new - Kconfig-based configuration system. - * configs/stm32f4discovery/elf and configs/stm32f4discovery/scripts/gnu-elf.ld - Add a configuration for testing the ARM ELF loader. - * binfmt/libelf: Can't use fstat(). NuttX does not yet support it. Damn! - * binfmt/libelf: The basic ELF module execution appears fully functional. - * configs/shenzhou/src/up_relays.c: Add support for relays from the - Shenzhou board. Contributed by Darcy Gong. - * lib/fixedmath: Moved the old lib/math to lib/fixedmath to make room for - the math library from the Rhombus OS - * lib/math: Now contains the math library from the Rhombus OS by Nick Johnson - (submitted by Darcy Gong). - * include/float.h: Add a first cut at the float.h header file. This - really should be an architecture/toolchain-specific header file. It - is only used if CONFIG_ARCH_FLOAT_H is defined. - * lib/math: Files now conform to coding standards. Separated float, - double, and long double versions of code into separate files so that - they don't draw in so much un-necessary code when doing a dumb link. - * binfmt/libelf: The ELF loader is working correctly with C++ static - constructors and destructors and all. - * Documentation/NuttXBinfmt.html: Add documentation of the binary loader. - * configs/sim/ostest: Converted to use the mconf configuration tool. - * configs/sim/cxxtest: New test that will be used to verify the uClibc++ - port (eventually). - * include/nuttx/fs/fs.h, lib/stdio/lib_libfread.c, lib_ferror.c, - lib_feof.c, and lib_clearerr.c: Add support for ferror(), feof(), - and clearerror(). ferror() support is bogus at the moment (it - is equivalent to !feof()); the others should be good. - * configs/stm32f4discovery/include/board.h: Correct timer 2-7 - base frequency (provided by Freddie Chopin). - * include/nuttx/sched.h, sched/atexit.c, and sched/task_deletehook.c: - If both atexit() and on_exit() are enabled, then implement atexit() - as just a special caseof on_exit(). This assumes that the ABI can - handle receipt of more call parameters than the receiving function - expects. That is usually the case if parameters are passed in - registers. - * libxx/libxx_cxa_atexit(): Implements __cxa_atexit() - * configs/stm32f4discovery/cxxtest: New test that will be used to - verify the uClibc++ port (eventually). The sim platform turned not - to be a good platform for testing uClibc++. The sim example will not - run because the simulator will attempt to execute the static - constructors before main() starts. BUT... NuttX is not initialized - and this results in a crash. On the STM324Discovery, I will have - better control over when the static constructors run. - * RGMP 4.0 updated from Qiany Yu. - * configs/*/Make.defs and configs/*/ld.script: Massive clean-up - and standardization of linker scripts from Freddie Chopin. - * net/netdev_ioctl.c: Add interface state flags and ioctl calls - to bring network interfaces up and down (from Darcy Gong). - * config/stm32f4discovery: Enable C++ exceptions. Now the entire - apps/examples/cxxtest works -- meaning that the uClibc++ is - complete and verified for the STM32 platform. - -6.24 2012-12-20 Gregory Nutt - - * arch/arm/src/stm32: Support for STM32F100 high density chips - added by Freddie Chopin. - * configs/stm32f100_generic: Support for generic STM32F100RC board - contributed by Freddie Chopin. - * arch/arm/src/stm32_otgfsdev.c: Partial fix from Petteri Aimonen. - * drivers/lcd/ug-2864ambag01.c and include/nuttx/lcd/ug_2864ambag01.h: - LCD driver for the Univision OLED of the same name (untested on - initial check-in). - * configs/stm32f4discovery/nxlines: Configure to use mconf/Kconfig - tool. - * configs/stm32f4discovery/src/up_ug2864ambag01.c: Board-specific - initialization for UG-2864AMBAG01 OLED connected to STM32F4Disovery. - * libxx/libxx_stdthrow.cxx: Exception stubs from Petteri Aimonen. - * configs/stm32f4discovery/src/up_ug2864ambag01.c: Driver has been - verified on the STM32F4Discovery platform. Some tuning of the - configuration could improve the presentation. Lower resolution displays - are also more subject to the "fat, flat line bug" that I need to fix - someday. See http://www.nuttx.org/doku.php?id=wiki:graphics:nxgraphics - for a description of the fat, flat line bug. - * libc: Renamed nuttx/lib to nuttx/libc to make space for a true lib/ - directory that will be forthcoming. Also rename libraries: liblib.a -> libc.a, - libulib.a -> libuc.a, libklib.a -> libkc.a, liblibxx.a ->libcxx.a. - (I will probably, eventually rename libxx to libcxx for consistency) - * Makefile, lib/: A new, empty directory that will hold generated libraries. - This simplifies the library patch calculations and lets me get rid of some - bash logic. The change is functional, but only partially complete; - additional logic is needed in the arch/*/src/Makefile's as well. Right - now that logic generate multiple library paths, all pointing to the lib/ - directory. - * arch/*/src/Makefile: Now uses only the libraries in lib/ - Replace bash fragments that test for board/Makefile. - * Makefile.win: The beginnings of a Windows-native build. This is just - the beginning and not yet ready for prime time use. - * configs/stm32f4discovery/winbuild: This is a version of the standard - NuttX OS test, but configured to build natively on Windows. Its only - real purpose is to very the native Windows build logic. - * tools/mkdeps.bat and tools/mkdeps.c: mkdeps.bat is a failed attempt - to leverage mkdeps.sh to CMD.exe. It fails because there are certain - critical CFLAG values that cannot be passed on the CMD.exe command line - (like '='). mkdeps.c is a work in progress that will, hopefully, - replace both mkdeps.sh and mkdeps.bat. - * tools/Config.mk: Centralize the definition of the script that will be - used to generated header file include paths for the compiler. This - needs to be centralized in order to support the Windows native build. - * tools/incdir.bat: A replacement for tools/incdir.sh for use with the - the Windows native build. - * Makefile.unix: The existing top-level Makefile has been renamed - Makefile.unix. - * Makefile: This is a new top-level Makefile that just includes - either Makefile.unix or Makefile.win - * configs/stm3240g-eval/src: Qencoder fixes from Ryan Sundberg. - * arch/arm/src/stm32/stm32_qencoder.c: TIM3 bug fix from Ryan Sundberg. - * tools/mkromfsimg.sh: Correct typo in an error message (Ryan Sundberg) - * arch/*/src/Makefile: Remove tftboot install and creation of System.map - for Windows native build. The first is a necessary change, the second - just needs re-implemented. - * configs/mirtoo: Update Mirtoo pin definitions for Release 2. Provided - by Konstantin Dimitrov. - * Fixed an uninitialized variable in the file system that can cause - assertions if DEBUG on (contributed by Lorenz Meier). - * Config.mk: Defined DELIM to be either / or \, depending upon - CONFIG_WINDOWS_NATIVE. This will allow me to eliminate a lot of - conditional logic elsewhere. - * nuttx/graphics: One a mouse button is pressed, continue to report all - mouse button events to the first window that received the initial - button down event, even if the mouse attempts to drag outside the - window. From Petteri Aimonen. - * nuttx/graphics/nxmu/nx_block.c: One more fix to the NX block message - logic from Petteri Aimonen. - * include/nuttx/wqueue.h: Some basic definitions to support a user- - space work queue (someday in the future). - * graphics/nxmu: Add semaphores so buffers messages that send buffers - will block until the buffer data has been acted upon. - * graphics/nxmw: Extended the blocked messages to cover mouse movement - and redraw events. These will also cause problems if sent to a window - while it is closing. - * arch/several: Change UARTs are enabled for i.MX, LM3S, eZ80, and M16C to - match how they are enabled for other architectures. - * configs/ez80f910200kitg: Convert to use mconf configuration. - * sched/pause.c: Implements the POSIX pause() function. - * eZ80: Lots of changes to eZ80 configurations and build logic as I - struggle to get a clean Windows build (still not working). - * configs/cloudctrl: Darcy Gong's CloudController board. This is a - small network relay development board. Based on the Shenzhou IV development - board design. It is based on the STM32F107VC MCU. - * arch/arm/src/stm32_serial.c and stm32_lowputc.c: Added optional RS-485 - direction bit control. From Freddie Chopin. - * Lots of build files: ARMv7-M and MIPS32 Make.defs now include a common - Toolchain.defs file that can be used to manage toolchains in a more - configurable way. Contributed by Mike Smith - * configs/stm32f4discovery/winbuild and configs/cloudctrl: Adapted to use - Mike's Toolchain.defs. - * tools/configure.sh: Adapted to handle paths and setenv.bat files correctly - for native Windows builds. - * More of build files: AVR and AVR32 Make.defs now include a common - Toolchain.defs file that can be used to manage toolchains in a more - configurable way. Contributed by Mike Smith - * tools/incdir.sh and incdir.bat: Add -s option to generate system header - file paths. - * nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains - (from Mike Smith). - * arch/arm/src/stm32/stm32f40xxx_rcc.c: Enabled FLASH prefetch (from Petteri - Aimonen). - * graphics/nxtk/nxtk_filltrapwindow.c: Correct an offset problem (from - Peterri Aimonen). - * graphics/nxglib/nxglib_splitline.c: Fix error in drawing of near horizontal - lines (from Peterri Aimonen). - * sched/task_exithook.c: Missing right bracket with certain conditional - compilation (thanks James Goppert). - * arch/arm/srch/stm32/stm32_otgfshost.c: Replace timeout handling; use - system tick instead of frame counter. The frame counter gets reset to - zero at 0x3fff making it error prone. - * arch/arm/src/stm32/stm32f20xx_rcc.c and stm32f40xx_rcc.c: Added option - CONFIG_STM32_FLASH_PREFETCH. FLASH prefetch will now only be enabled - if this option is selected. - * configs/ez80f910200zco/ostest: Now uses Kconfig/mconf configuration - tool. Updated to build in native Windows environment. Other ez80f910200zco - build scripts also updated. - * configs/z8f64200100kit/ostest: Update to same level as eZ80 configurations. - * nuttx/configs/z8f64200100kit/scripts/setenv.bat: Add support for native - Windows build. - * nuttx/arch/arm/src/lpc17xx/lpc17_i2c.c: Resources not being released when - I2C is uninitialized. - * cloudctrl/src/up_chipid.c and shenzhou/src/up_chipid.c: Add functions to - get chip ID. Contributed by Darcy Gong. These should not be board-dependent, - but should be in arch/arm/src/stm32 where they can be used from any board. - * sched/work_thread.c: Fix backward conditional compilation. This might - has caused a memory leak. From Freddie Chopin. - * configs//Make.defs: Fix typo -wstrict-prototypes should be - -Wstrict-prototypes (From Denis Carilki). - * arch/arm/src/calapyso/calypso_keypad.c: Add Calypso keypad driver. From - Denis Carilki. - * z8encore000zco/ostest and z8f64200100kit/ostest: Converted to use Kconfig/ - mconf configuration tool. - * arch/arm/src/armv7-m/up_exception.S: missing curly braces for push/pop - From Freddie Chopin. - * z8encore000zco/ostest and z8f64200100kit/ostest: Can now be modified to - support the Windows native builds (see corresponding README.txt files). - * configs/z16f2800100zcog - All configurations updated to use the ZDS-II - 5.0.1 toolchain. - * configs/z16f2800100zcog - All configurations updated to use Kconfig/mconf - configuration tools. - * configs/z16f2800100zcog/ostest - Now supports a native Windows build - (other ZNEO configs may also support the native build, but this has not - been verfiied). - * include/nuttx/input/keypad.h, arch/arm/src/calypso/calypso_keypad.c, and - configs/compal_e99/nsh_highram: First cut at a standard keypad interface - definition. Contributed by Denis Carikli. - * libc/stdlib/lib_rand.c: Always add one to result congruential generators - to avoid the value zero. Suggested by Freddie Chopin. - * tools/b16.c: Fixed precision math conversion utility. - * graphics/nxglib/nxglib_splitline.c: Fix the "fat, flat line bug" - * arch/z80/src/*/Toolchain.defs: Add dummy Toolchain.defs files for the - z80 family. - * configs/z80sim/ostest: Converted to build with the Kconfig/mconf tool. - Current configuration failed to build for me (Ubuntu 12.10, SDCC 3.2.0 - pre-built for Linux) due to a glibc memory corruptionerror in SDCC. - * configs/z80sim/ostest: Default is now the Windows native build. See - configs/z80sim/README.txt for instructions to convert back to a Linux or - or Cygwin build. - * arch/z80/src/Makefile.sdccw: Renamed makefiles with extensions zdiil, - zdiiw, sdccl, and sdccw for the ZDS-II vs SDCC compilers and for the - POSIX vs Windows native builds. - * nuttx/drivers/mtd/ftl.c: Fix for the flash translation layer. Short - unaligned writes were buggy. From Petteri Aimonen. - * nuttx/libc/math/lib_round*.c: Add rounding functions to the math - library. Contributed by Petteri Aimonen. - * include/cxx/cstdlib: Add stroul(). From Petteri Aimonen. - * arch/*/include/limits.h: Change signed minimum values from, for example, - (-128) to (-127 - 1) to avoid overflows under certain conditions. From - Peterri Aimonen. - * graphics/nxtk/nxtk_subwindowmove.c: Previously it was very difficult to - do e.g. "scroll by dx, dy". When given the full window area, nxtk_subwindowmove - would clip the offset always to 0,0. It makes more sense for it to clip the - source area and not modify the offset. From Petteri Aimonen. - * graphics/nxtk/nxtk_getwindow.c: Clipping would change the offset of returned - data, and caller has no way to know what the new offset would be. This messes - up font drawing when the text is partially out of window, e.g. when scrolling. - Also from Petteri Aimonen. - * include/stdbool.h: Can now be disabled for C++ files if CONFIG_C99_BOOL8 is - defined. CONFIG_C99_BOOL8 indicates (1) that the sizeof(_Bool) is one in both - C and C++, and (2) the C compiler is C99 and supports the _Bool intrinsic - type. Requested by Freddie Chopin. - * include/stdlib/lib_rand.c: Various additional changes so that the integer - value zero can be returned. Requested by Freddie Chopin. - * arch/z80/src/Makefile.sdcc*, z80/up_mem.h: Redesign Z80 build so that it - no longer depends on Bash scripts. - * configs/z80sim/nsh and pashello: Converted to (1) use the kconfig-frontends - configuration tool, and (2) to build natively under Windows. The NSH - configuration is verified; the pashello configuration needs a more TLC. - * tools/copydir.sh: Rename tools/winlink.sh to tools/copydir.sh - * tools/link.bat, unlink.bat, and copydir.bat: Add Windows counterparts - to the link.sh, unlink.sh, and copydir.sh Bash scripts. - * configs/z80sim/pashello: Now builds correctly. - * configs/xtrs/ostest, nsh, and pashello: Converted to (1) use the kconfig- - frontends configuration tool, and (2) to build natively under Windows. - * drivers/serial/Kconfig and sched/Kconfig: Two names for same configuration: - CONFIG_LOWLEVEL_CONSOLE is bogus and CONFIG_DEV_LOWCONSOLE is in the wrong - Kconfig file. Moved to drivers/serial/Kconfig replacing CONFIG_LOWLEVEL_CONSOLE. - * arch/z80/include/z180: Add header files for z180 chips. Initial versions - are just clones of z80 header files. - * arch/z80/src/z180: Add source files for z180 chips. Initial versions - are just clones of z80 source files. - * include/nuttx/arch.h: Add address environment control interfaces (for use - with CPUs the provide MCUs and support process-like address environments). - * arch/z80/src/z180/z180_mmu.*: Add MMU support for z180 tasks. - * configs/p112: Add very basic board support and an examples/ostest - configuration for the venerable P112 board. - * sched/os_bringup.c: If CONFIG_PATH_INITIAL is defined, then the initial - environment of the task started by os_bringup() will have the PATH - environment variable defined to be that string. - * binfmt/binfmt_exepath.c: If CONFIG_BINFMT_EXEPATH is defined, then this - file will be built. It contains logic to search for regular files at - the absolutes paths found in the current PATH environment variable - setting. This is untested and not yet hooked into the binfmt exec() - logic on initial check-in - * binfmt/binfmt_loadmodule.c: load_module() will now traverse the PATH - variable to locate files from their relative path. - * include/nuttx/arch.h and arch/z80/src/z180/z180_mmu.c: Restructure the - address environment interfaces so that they will better integrate with - binfmt/. - * binfmt/libelf/*, binfmt/libnxflat/* and other files: Integrate the - address environment interfaces. If CONFIG_ADDRENV=y, then binfmt/ - will now create an address environment for new tasks (instead of - just malloc'ing the task memory). - * configs/stm32f4discovery/elf: Enable support/test of the PATH - to find executables using a relative path. - -6.25 2013-02-01 Gregory Nutt - - * graphics/: Adds 5x8 monospace font. This tiny font is useful for graph - labels and for small bitmapped display. Contributed by Petteri - Aimonen. - * configs/stm3220g-eval/nxwm: Converted to use the kconfig-frontends - configuration tool. - * configs/sim/nxwm: Converted to use the kconfig-frontends configuration - tool. - * include/pthread.h: In sys/prctl.h because it is needed by - pthread_[set|get]name_np() - * tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. - * sched/sig_timedwait.c: Should always move the time up to the next - largest number of system ticks. The logic was rounding. Noted by - Petteri Aimonen. - * arch/arm/src/up_head.S: Fix backward conditional compilation. NOTE - there is a issue of ARM9 systems with low vectors and large memories - that will have to be addressed in the future. - * libc/misc/lib_kbdencode.c and lib_kbddecode.c: Add logic to marshal - and serialize speical keyboard commands intermixed with normal ASCII - data (not yet hooked into anything). - * drivers/usbhost/usbhost_hidkbd.c: If CONFIG_HIDKBD_ENCODED is - defined, this driver will now use libc/misc/lib_kbdencode.c to - encode special function keys. - * configs/olimex-lpc1766stk/hidkbd: This configuration has been - converted to use the kconfig-frontends configuration tool. - * drivers/lcd/ug-2864hsweg01.c and include/nuttx/lcd/ug-2864hsweg01.h: - Driver for UG-2864HSWEG01 OLED contributed by Darcy Gong. - * configs/stm32f4discovery/src/up_ug2864hsweg01.c: Support for the - UG-2864HSWEG01 OLED for the STM32F4Discovery board. - * drivers/usbhost/usbhost_hidkbd.c: Correct a logic error in how - tasks waiting for read data are awakened. - * libc/misc/lib_kbdencode.c and lib_kbddecode.c: Now handles keypress - events too. However, the USB HID keyboard driver has not yet been - updated to detect key release events. That is kind of tricky in - the USB HID keyboard report data. - * configs/mcu123-214x/nsh: Converted to use the kconfig-frontends - configuration tool. - * configs/zp214xpa: Add basic support for the The0.net ZP213x/4xPA - board (with the LPC2148 and the UG_2864AMBAG01). - * configs/sim/nxlines: Add an nxlines configuration for the - simulator. - * configs/zp214xpa/nxlines: Add an nxlines configuration for the - ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01). Working - as of 2012-12-30. - * configs/olimex-lpc1766stk/wlan: Remove non-functional - configuration. - * configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c: - Updates and corrections for the UG-2864HSWEG01 from Darcy Gong. - * configs/lm326965-ek: All configurations converted to use the - kconfig-frontends configuration tool. - * configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI, - not just SPI (from Jose Pablo Carballo). - * arch/arm/src/arm/Kconfig and armv7m/Kconfig: Add an option for - buildroot toolchains: They may be EABI or OABI. - * include/nuttx/progmem and arch/arm/src/stm32/stm32_flash.c: - Fix a counting bug plus change interface to use either relative - or absolute FLASH addressing (from Freddie Chopin). - * libc/misc/Make.defs: Fix error in conditional for KBD CODEC. - * libc/Kconfig and configs/*/defconfig (several): The default - setting should be CONFIG_LIB_KBDCODEC=n - * tools/configure.c: configure.c can be used to build a work-alike - program as a replacement for configure.sh. This work-alike - program would be used in environments that do not support Bash - scripting (such as the Windows native environment). - * tools/configure.bat: configure.bat is a small Windows batch - file that can be used as a replacement for configure.sh in a - Windows native environment. configure.bat is actually just a - thin layer that executes configure.exe if it is available. If - configure.exe is not available, then configure.bat will attempt - to build it first. - * arch/arm/src/lpc17xx/lpc17_syscon.h: Correct some typos in bit - definitions (from Rommel Marcelo). - * libc/string/lib_strndup.c: strndup() should use strnlen(), not - strlen(), to determine the size of the string. - * sched/os_bringup.c: Remove support for CONFIG_BUILTIN_APP_START. - This is not really a useful feature and creates a violation of the - OS layered architecture. - * include/unistd.h, arch/arch/src/*: Implement a simple vfork(). - On initial checkin, this API is available only for ARM platforms. - * binfmt/binfmt_exec.c: exec() now sets the priority of the new task - to the same priority as the current task (instead of the arbitrary - value of 50). - * libc/unisted/lib_execv.c and lib_execl.c: New, somewhat flawed, - implementations of execv() and execl(). - * tools/cfgdefine.c: Strips quotes from CONFIG_EXECFUNCS_SYMTAB - value. - * arch/arm/include/lm3s/chip.h: Move chip definitions into - public include area for compatibility with other architectures. - * arch/arm/src/lm3s/chip: Move register definition header files - into a new chip/ sub-directory. - * arch/arm/src/lm3s/lm3s_internal.h: Broke up into several - smaller header files. - * arch/arm/src/lm: Rename the arch/arm/src/lm3s directory to - arch/arm/src/lm so that is can support other members of the - Stellaris family. - * libc/spawn: Add file action interfaces needed by posix_spawn(). - * sched/clock_time2ticks.c: Another case where time was being - rounded down instead of up (from Mike Smith). - * libc/spawn: Implementation of posix_spawn() is complete but - untested and undocumented. - * drivers/usbdev/pl2303.c: Fix typols in the PL2303 driver - (from Max Holtzberg). - * configs/stm32f4discovery/posix_spawn: Added a configuration - that can be used for testing posix_spawn(). - * arch/arm/src/stm32: Bring F1 support for general DMA and serial - DMA in paricular up to parity with F2/F4 (from Mike Smith). - * libc/stdio/lib_libfread.c: Correct some error handling when - lib_fread() was passed a bad stream. Needed to move the - releasing of a semaphore inside of some conditional logic - (cosmetic). - * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c: - Add support for remembering the parent task and sending - SIGCHLD to the parent when the task exists. - * sched/task_exithook.c: Fixed a *critical* bug. Here is - the scenario: (1) sched_lock() is called increments the lockcount - on the current TCB (i.e., the one at the head of the ready to run - list), (2) sched_mergepending is called which may change the task - at the head of the ready-to-run list, then (3) sched_unlock() is called - which decrements the lockcount on the wrong TCB. The failure case - that I saw was that pre-emption got disabled in the IDLE thread, - locking up the whole system. - * sched/sched_waitpid.c: Use SIGCHLD instead of a semaphore. This - is a much more spec-compliant implementation. However, there are - some issues with overrunning signals because NuttX does not support - queueing of signals (POSIX does not require it). I think it may - need to. - * sched/sched_waitid.c and sched_wait.c: Add support for waitid() - and wait(). See issues with waitpid() above. - * include/nuttx/fs/fs.h and fs/fs_files.c: Add a dup() method to - the struct mountpt_operations. When dup'ing a file that resides - on a mounted volume, let the file system's dup() method do the - work. - * fs/romfs/fs_romfs.c: Implemented the dup() method for the ROMFS - file system. - * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and - fs/nfs/nfs_vfsops.c: Add hooks for dup() method (not yet - implemented). - * fs/romfs: Remove the rf_open flag. It looks good, but actually - does nothing. - * fs/fat: Remove the ff_open flag. Same story as for the ROMFS - rf_open flag. - * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and - fs/nfs/nfs_vfsops.c: Completed implementation of the dup() methods. - There is still no good test available. - * sched/sig_timedwait.c: sigtimedwait() would return a bad signal - number if the signal was already pending when the function was - called. - * configs/ubw32/scripts: All common linker scripts moved to this - scripts sub-directory - * configs/ubw32/ostest: Configuration configured to use the - kconfig-frontends tools. - * arch/mips/src/mips32/up_vfork.c, up_vfork.h, and vfork.S: - Implement vfork() for MIPS32 (no floating point support) - * configs/ubw32/ostest: Enable the vfork() test. - * fs/binfs: Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c - CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS - * include/nuttx/binfmt/builtin.h: Some of the content of - apps/include/apps.h moved to include/nuttx/binfmt/builtin.h - * binfmt/libbuiltin/libbuiltin_utils.c: Move builtin - utility functions from apps/builtin/exec_builtins.c to - binfmt/libbuiltin/libbuiltin_utils.c - * binfmt/builtin.c and binfmt/libbuiltin: Add a binary "loader" - that can be used to execute builtin programs from the BINFS - file system. - * configs/sim/nsh: Convert to use kconfig-frontends configuration - tool. - * binfmt/binfmt_schedunload.c: Add logic based on SIGCHLD to - automatically unload and clean-up after running a task that - was loaded into memory. - * binfmt/libbuiltin: Extensions from Mike Smith - * sched/task_reparent.c: Add internal interface to change the - parent task. - * sched/task_posixspawn(): Move libc/spawn/lib_ps.c to - sched/task_posixspawn() now it requires internal, reparenting - interfaces - * include/nuttx/spawn(): Move libc/spawn.h to include/nuttx/spawn.h - * arch/arm/include/lpc17xx/chip.h, irq178x.h: Integrate Marcelo - Rommel's LPC1788 definitions into the base LPC17xx. - * configs/olimex-lpc1766stk/nsh: Convert configuration to use - the kconfig-frontends tools. - * sched/task_reparent.c: Simplify reparenting interface. - * arch/arm/src/[many]: More LPC1788 definitions from Rommel - Marcelo incorporated. - * configs/open1788: Board configuration for the Wave Share - Open1788 board. Still fragmentary (contributed by Rommel - Marcelo, adapted to use kconfig-frontends. - * net/send(): Add logic to work around delayed ACKs by splitting - packets (contributed by Yan T.). - * net/recvfrom(): Fix a bug. When the host closes a connection - (gracefully). recv[from]() returned success and the closure - was never detected. Hmmm.. I don't know why the network monitor - did not catch this event. This is an important bug fix. - * net/recvfrom(): Fix a introduced with the last bugfix. If - the peer does an orderly closure of the socket, report 0 not - -ENOTCONN - * configs/lm3s6965-ek/README.txt and tools/: Add an OpenOCD - configuration for the LM3S (from Jose Pablo Carballo). - * nuttx/lcd/hd4478ou.h and configs/pcblogic-pic32mx/src/up_lcd1602: - Start of support of LCD1602 alphanumeric LCD. I need a few - more parts before I can finish integrating this one. - * arch/arm/src/*/chip.h and arch/arm/include/*/chip.h: Move all - priority ranges from the src to the include chip.h header file. - * arch/arm/include/armv7-m/irq.h: Add inline functions to enable - and disable interrupts via the BASEPRI register. - * arch/arm/Kconfig: Add new option CONFIG_ARM7VM_USEBASEI - * arch/arm/src/*/*_irq.c: Set the priority of the SVCALL exception - to the highest possible value. - * arch/armv7-m/up_hardfault.c: Fail if a hardfault occurs - while CONFIG_ARM7VM_USEBASEPRI=y. - * arch/arm/src/stm32/stm32_serial.c: Add support for USART - single wire mode (Contributed by the PX4 team). - * sched/: Implement support for retaining child task status after - the child task exists. This is behavior required by POSIX. - But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and - CONFIG_SCHED_CHILD_STATUS - * Add support for keyboard encode to the keypad test (from - Denis Carikli). - * configs/olimex-lpc1766stk/nettest: Configuration converted to - use the kconfig-frontends tools. - * net/net_poll.c: Split net_poll() to create psock_poll() too. - * net/net_poll.c: Fix poll/select issure reported by Qiang: - poll_interrupt() must call net_lostconnection() when a - loss of connection is reported. Otherwise, the system will - not know that the connection has been lost. - * sched/group_create.c, group_join.c, and group_leave.c: Add - support for task groups. - * sched/group_signal.c and task_exithook.c: Send signal to all - members for the parent task group. - * include/nuttx/sched.h and sched/env_*.c: Move environment - variables into task group structure. - * sched/: Lots of file changed. Don't keep the parent task's - task ID in the child task's TCB. Instead, keep the parent - task group IN the child task's task group. - * fs/, sched/, include/nuttx/sched.h, and include/nutts/fs/fs.h: - Move file data from the TCB to the task group structure. - * libc/stdio/, sched/, include/nuttx/lib.h, and include/nutts/fs/fs.h: - Move stream data from the TCB to the task group structure. - * net/, sched/, and include/nuttx/net/net.h: Move socket data - from the TCB to the task group structure. - * sched/task_starthook.c, sched/task_start.c, and include/nuttx/sched.h: - Add a task start hook that will be called before the task main - is started. This can be used to schedule C++ constructors to run - automatically in the context of the new task. - * binfmt/binfmt_execmodule: Execute constructors as a start hook. - * sched/os_start.c: Fix ordering of group initialization. - * configs/stm32f4discovery/usbnsh: Add an NSH STM32F4Discovery - configuration that uses USB CDC/ACM for the NSH console. - * configs/stm32f4discovery/nsh: Converted to use the kconfig-frontends - tools. - * configs/*/src/up_userleds.c: Fix a error that was cloned into - all STM32 user LED code. The wrong definitions were being used - to set LEDs on or off. - * arch/*/common/up_internal.h and arch/*/common/up_initialize.c: - Serial was driver was not being built if there is no console - device. Obviously, the serial driver may be needed even in - this case. - * arch/arm/src/stm32/stm32_serial.c: If there is a serial console, - it would be ttyS0 and the others would be ttyS1-5. If there - is not serial console, was labeling them ttyS1-6; now labels them - ttyS0-5. - * fs/fs_syslog.c: Can't handle SYSLOG output to character device from - the IDLE task (because it can't block). syslog_putc now returns EOF - on failure and sets errno. Fixed some errors in error handling. - * libc/stdio/lib_syslogstream.c: Checking of return value from - syslog_putc was bogus. Switching to EOF for all errors solves - this. - * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from - Jose Pablo Carballo. - * drivers/serial/serial.c, include/nuttx/serial/serial.h, - drivers/usbdev/cdcacm.c, and drivers/pl2303.c: Add support for - removable serial devices (like USB serial). This support is enabled - by CONFIG_SERIAL_REMOVABLE. - * arch/*/src/*/Toolchain.defs: Change assignment so that we can - override CROSSDEV with a make command line argument. - * include/assert.h: Mark assertion functions as non-returning. - * arch/*/src/*/up_assert.h: Mark _up_assert() as non-returning. - * drivers/mtd/at25.c: When the AT25 device was not available the - initialization did not fail like it should. From Petteri Aimonen. - * fs/fat/fs_configfat.c: Fix some errors in FAT formatting logic - for large devices and for FAT32. From Petteri Aimonen. - * fs/fat/fs_fat32util.c: Fix an initialization error found by - Petteri Aimonen. freecount and next freecount initialization were - reversed. - * drivers/mmcsd/mmcsd_spi.c: Some SD cards will appear busy until - switched to SPI mode for first time. Having a pull-up resistor on - MISO may avoid this problem, but this patch makes it work also - without pull-up. From Petteri Aimonen. - * fs/fat/fs_fat32.c: Fix a compilation error when FAT_DMAMEMORY=y. - From Petteri Aimonen. - * arch/arm/src/stm32/chip/stm32_spi.h: STM32F4 max SPI clock freq is - 37.5 MHz. Patch from Petteri Aimonen. - * arch/arm/src/stm32/stm32_spi.c: Fixes for SPI DMA work on the - STM32F4. Includes untested additions for the F1 implementation as - well. From Petteri Aimonen. - -6.26 2013-03-15 Gregory Nutt - - * drivers/serial/serial.c: Correct some race conditions when checking - for disconnection of a removable serial device. - * sched/task_posixspawn.c, task_spawn.c, task_spawnparms.c and - spawn_internal.h: Create new interface task_spawn() that is - like posix_spawn(), but uses entry point addresses like - task_create(). - * Corrected all argv[] arguments. Should be char * const *, not - const char **. - * sched/pthread* and include/nuttx/sched: Move pthread join data - and pthread key calculation data into the "task group" structure. - * sched/atexit.c, on_exit.c, task_exithook.c and include/nuttx/sched.h: - Move atexit and on_exit data structures to task group. These - callbacks are only issued now when the final member of the task - group exits. - * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h: - Move waitpid data data structures to task group. Callers of - of waitpid() are now only awakened when the final thread of the - task group exits. - * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and - include/nuttx/sched.h: Move list of opened message queues to - the task group structures. Now all message queues opened by - members of the group are closed when the last member of the group - exits. - * includes/nuttx/sched.h and Lots of files: Change name of _TCB to - struct tcb_s so that (1) it is consistent with other NuttX naming and - so that (2) the naming can handle some upcoming changes. - * includes/nuttx/sched.h and sched/: There are three TCB structures: - struct tcb_s is a generic common version, struct task_tcb_s is a - version for tasks and kernel threads and pthread_tcb_s is a version - for pthreads. By dividing the TCB structure into these variants, - pthreads do not have to be burdened by task-specific data structures - (and vice versa). - * sched/task_exithook.c and group_create.c: Fix an error, the - task within the task group may exit early leaving a pthread to - exit the task group last. In this case, we need to remember the - the PID of the main task in the task group and use that PID for - signalling SIGCHILD to the parent task group. - * included/nuttx/sched.h and sched/sig*.c: Numerous changes to the - signal deliver logic so that the delivery of signals to threads - within a task group will be compliant with delivery of signals - to threads within a POSIX process. - * sched/mq_recover.c and task_exithook.c: Add logic to handle the - case where a task is deleted (or pthread canceled) while it is - waiting on a message queue. task_delete() and pthread_cancel() - are dangerous interfaces. This is only one feeble recover measure - of *many* that would be needed to do this safely. - * sched/group_killchildren.c, task_recover.c, group_foreachchild.c, - sched/restart.c, sched/task_delete.c, and others: Beef up logic - to better support task deletion and pthread cancellation. Needed - to pass need OS test case for task_restart(). - * sched/include/sched.h and all timed functions in sched/: Move - timer from local variables to TCB. This is needed so that if a - task is canceled or restarted while it is waiting for a timed - event, we can gracefully recover. We can't let the timer expire - after the task has been deleted. - * arch/arm/include/stm32 and arch/arm/src/stm32: Add support for - the STM32 F3 family (still missing some things). - * configs/stm32f3discovery: This will (eventually) be support for - the STM32F3Discovery board. - * STM32 F3 and STM32F3Discovery port is complete a ready for test. - * arch/arm/src/lpc17xx: Add support for the Cortex-M4 FPU and - Mikes "common vector" logic. The LPC1788 is going to need - these things. - * arch/arm/src/stm32/stm32_spi.c: Fix SPI DMA logic that does - not work if sem_wait() is interrupt by a signal. From Petteri - Aimonen. - * drivers/input/max11802.c: MAX11802: Fix a timing bug that - corrupted coordinates. From Petteri Aimonen. - * drivers/mmcsd/mmcsd_spi.c: Use SPI locking so that MMC/SD can - exist on the same bus as other SPI devices. From Petteri - Aimonen. - * graphics/nxfonts/nxfonts_sans17x22.h: Small mod to hyphen in - sans17x22 font. The hyphen did not have any space on its sides. - This caused it to run together with other characters so that for - example "+-" would look weird. From Petteri Aimonen. - * mm/mm_mallinfo.c: Take MM semaphore in mm_mallinfo. From Petteri - Aimonen. - * configs/stm32f3discovery/nsh/defconfig: Disable SPI. It is not - used. - * drivers/mtd/sst39vf: Add a driver for the SST29VF NOR FLASH parts. - * sched/os_start.c: Add an additional call-out to support board- - specific driver initialization during the start phase: If - CONFIG_BOARD_INITIALIZE is defined, then an additioinal - initialization function called board_initialize() will be called - just after up_initialize() is called and just before the initial - application is started. - * arch/arm/src/stm32/stm32_otgfsdev.c, drivers/usbdev/usbdev_trprintf.c, - and include/nuttx/usb/usbdev_trace.h: Add logic to support decoding - of device-specific trace events to make the trace output more readable. - From Petteri Aimonen. - * arch/arm/src/stm32/stm32_otgfsdev.c: Need to manually set CNAK in - the case where we are waiting for a SETUP command with DATA. Otherwise, - the core may NAK further transactions. From Petteri Aimonen. - * arch/arm/src/stm32/stm32_otgfsdev.c: Add logic to prevent premature - to IDLE state. This change (plus the previous) was necessary to get - the CDC/ACM driver working the certain STM32 F4 hardware (but not others). - These changes appear to prevent certain race conditions that may or may - not cause USB problems. From Petteri Aimonen. - * arch/arm/include/armv6-m and arch/arm/src/armv6-m: First cut at support - for the Cortex-M0 - * configs/nutiny-nuc120, arch/arm/include/nu1xx, and arch/arm/src/nuc1xx: - Support for Nuvoton NuTiny NUC120. - * 2013-02-22: the Cortex-M0, NuvoTron NUC1xx, and NuTiny-SDK-NUC120 port - is code complete and ready for testing. - * configs/ekk-lm3s9b96/ostest and nsh: All EKK-LM3S9B96 configurations - converted to use the mconf configuration tool. - * configs/zkit-arm-1769: Add support for Zilogic System's ARM development - Kit, ZKIT-ARM-1769. From Rashid. - * configs/zkit-arm-1769/hello: Add a "Hello, World!" configuration for - the KBIT-ARM-1769 board. From Rashid. - * configs/zkit-arm-1769/thttpd: Add a THTTPD configuration for the - KBIT-ARM-1769 board. From Rashid. - * 2013-02-27: All configurations for the Cortex-M0 NuTINY-SDK-NUC120 - appear to be functional and stable. - * configs/zkit-arm-1769/nsh: Add an NSH configuration for the - KBIT-ARM-1769 board. From Rashid. - * arch/arm/src/stm32/stm32_otgfsdev.c: Fixes from Petterri Aimonen - related to corner cases that can cause infinite interrupts. - * drivers/usbdev/usbmsc_scsi.c: Change to allow the full name in the - USB descriptor but a truncated, 8-byte name in the SCSI field. - From Petteri Aimonen. - * arch/arm/src/stm32/stm32_spi.c: Need to clear error flags to prevent - corruption of subsequent transfers. Also, bit count should not be - changed while the SPI peripheral is enabled. From Petteri Aimonen. - * drivers/mmcsd/mmcsd_spi.c: When bus is shared, the speed has to be - set every time. Also SD cards require a few dummy clocks to react - into CS release. From Petteri Aimonen. - * configs/lm4f120-launchpad: In initial configuration for testing - the LM4F120 LaunchPad port. This is to support testing only and - is not yet a functional board port (as of 2013-03-01). - * arch/arm/include/lm/lm4f_irq.h and arch/arm/src/lm/chip/lm4f_vector.h: - Add interrupt vector/IRQ number definitions for the LM4F120. - * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c: Fix a typo - in assigned base register addresses for each DMA channel. From - Yan T. - * Several build fixes from Mike Smith were incorporated. These were - mostly compilation errors introduced into the system because of the - large number of recent changes with broad scope (2013-03-04). - * configs/zkit-arm-17969/src/up_can.c: Add CAN support to the - Zilogics Technologies ZKIT-ARM-1769 board (From Rashid Fatah, (2013-03-04)). - * arch/arm/src/lpc17/lpc17*_clockconfig.c: The WaveShare Open1788 - board now boots and passes the OS test. This is the work of - Rommel Marcelo (2013-03-04). - * arch/arm/src/lm/lm_gpio.c, lm_gpio.h, and chip/lm4f_pinconfig.h - Extend GPIO logic to handle LM4F. Add LM4F pin configuration header - file (2013-03-04). - * configs/open1788: Enable LED support in all configurations. - (2013-03-04) - * configs/open1788/nsh: NSH configuration verified function. By Rommel - Marcelo (2013-03-05). - * configs/open1788/src/lpc17_nsh.c: Use the SD card interface, not SPI - to interface with SD cards (2013-03-05. - * arch/arm/src/lpc17xx/lpc17_sdcard.c and header files: Clone the STM32 - SD card interface to the LPC1788. It appears to be the same IP. - (2013-03-05) - * libc/wqueue: Work queue logic moved from sched/ to libc/wqueue. It - is not really core OS functionality and this move helps prepare for - user-space work queues. (2013-03-05) - * libc/wqueue: Implemented user-space work queues. These will not - get tested until the next time I attempt a NuttX kernel build. - (2013-03-05). - * arch/arm: Correct some bad syscall dispatching logic. This change - cannot be fully tested until there is a fielded NuttX kernel build. - (2013-03-06). - * net/net_poll.c: Correct logic that checks if the socket is - disconnected when the poll is setup. That is bad logic: Listen - sockets, for example, are not connected. In that case, the purpose of - the poll is to wait for connection events. As a result of this, - poll/select would return immediately with POLLHUP with it was used to - detect connection events. This fix for now was to check instead if - the socket is closed (meaning that it was connected at one time but - was closed by the remote peer). That excludes the listen socket which - was never connected. This does introduce a new problem, however. If - the socket was not closed, but lost the connection through an abnormal - event, then poll/select will hang. That needs to be revisited. - (2013-03-07) - * fs/fs_select.c: Was not checking if the timeout parameter was NULL - but would, instead, setup a bogus timeout based on whatever it found at - address zero. Also, improved some of the memory allocation logic so - that it will not use so much memory. (2013-03-07) - * net/net_poll.c: Handle the missing case. Now tests for not connected - AND not listening. I think that now covers all of the cases including - the missing case noted above. (2013-03-07) - * mm/: Move all memory manager globals into a structure. A reference - to this structure is now passed internally between mm APIs. This - change will (eventually) support multiple heaps and heap allocators. - (2013-03-08). - * mm/ and include/nuttx/mm.h: Implement support for multiple heaps. - (2013-03-08). - * arch/*/src: xyz_addregion() needs to call kmm_addregion, not mm_addregion. - (2013-03-08). - * sched/kmm*.c: Move this garbage kmm*.c file to mm/. until I decide what - to do with them (which is probably to just delete them). (2013-03-08). - * mm/mm_test.c and Makefile.test: Deleted the memory test. This was - a good test and helped me a lot when I wrote the memory manager, but - now it is in the way and paralyzing other efforts. So the memory unit - test was deleted. (2013-03-08) - * sched/sched_free.c: Rename sched_free() to sched_ufree(); Add - sched_kfree() to handler deferred kernel heap allocations. (2013-03-10) - * arch/: User user-accessible heap to allocate all stacks. (2013-03-10) - * arch/arm/src/sam3u: The AT91SAM3U will now support a kernel heap if - so configured. (2013-03-10) - * configs/sam3u-ek/knsh: This configuration was converted to use the - kconfigs-frontends build tool. (2013-03-10) - * configs/*/include/user_map.h and include/nuttx/userspace.h: Remove - the very kludgy user_map.h file and replace it with a header that - is expected at the beginning of the user-space blob. (2013-03-10) - * configs/sam3u-ek/kernel/up_userspace.c: This is the header for - the SAM3U-EK's user space. (2013-03-10) - * sched/os_bringup.c: In the kernel build, os_bringup() now uses the - user-space header to automatically start the user-space work queue, - if so configured. (2013-03-10) - * arch/arm/src/lpc17xx/lpc17_mpuinit.c and lpc17_userpace.c: Add - support for the MPU and kernel build for the LPC17xx family. - (2013-03-11) - * configs/open1788/kernel and knsh: Add kernel build support and - a kernel NSH configuration for the WaveShare Open1788 board. - (2013-03-11) - * configs/sam3u_ek/kernel, knsh, and scripts: Move some files around - for better supportability. (2013-03-11) - * configs/open1788/kernel, knsh, and scripts: Add a kernel mode build - configuration for the WaveShare Open1788 board. (2013-03-11) - * arch/arm/src/armv7-m/up_mpu.c: Several fixes to MPU logic. - (2013-03-12). - * arch/arm, configs/sam3u-ek, configs/open1788: Fix memory map for - kernel mode build; Some regions were overlapping. (2013-03-13). - * arch/: Rename g_heapbase to g_idle_topstack. This is the same value - however: The top of the IDLE stack is the same as the base of the - heap in the flat build. But not in the kernel build: The base of - the heap is elsewhere so the naming was wrong. (2013-03-13). - * libc/stdlib/lib_itoa.c: Implementation of itoa() contributed by - Ryan Sundberg. (2013-03-14). - -6.27 2013-04-28 Gregory Nutt - - * arch/arm/src/armv7-m/up_mpu.c: Correct MPU sub-region settings for - unaligned regions (2013-03-15). - * arch/arm/src/armv6-m/up_svcall.c: Bring up to equivalent to the - ARMv7-M version (2013-03-15). - * configs/lm4f120-launchpad/tools: Add scripts and instructions to - simplify use of OpenOCD with ICDI (from JP Carballo, 2013-03-15). - * tools/mkconfig.c: Logic that attempts to suppress buffered I/O - within the kernel is wrong. sizeof(struct file_struct) must be - the same in both kernel- and user-spaces (2013-03-16). - * arch/arm/src/common/up_pthread_start.c, libc/pthread/pthread_startup.c, - and related files: Implement switch to user-space and user-space - pthread start-up function (2013-03-16). - * arch/arm/src/common/up_signal_handler.c, libc/pthread/pthread_startup.c, - and related files: Implement switch to user-space and user-space - pthread start-up function (2013-03-16). - * arch/arm/src/common/up_signal_handler.c, libc/signal/signal_handler.c, - arch/arm/src/armv[6|7]-m/up_svcall.c, arch/arm/include/armv[6|7]-m/svcall.h, - include/nuttx/userspace.h, and sched/sig_deliver.c: Implement switch - to user-space from kernel signal delivery trampoline before calling user- - space signal handler. Return from user-space signal handler using a - system call (2013-03-16). - * arch/arm/src/armv[6|7]-m/up_schedulesigaction.c: Need make sure we are - in kernel mode before switching to kernel-mode signal handler - trampoline (2013-03-16). - * arch/arm/include/armv[6|7]-m/irq.h, and arch/arm/src/armv[6|7]-m/up_svcall.c: - Add support for nested system calls. In the current design, this can - happen only under one condition: When the kernel system call logic calls - back into user space in order to allocate user space memory. So it is - expected that the maximum nesting level will be only 2 (2013-03-17). - * libc/stdio/lib_sccanf.c: Correct an error in sscanf. If %n occurs in - the format statement after the input data stream has been fully - parsed, the %n format specifier will not be handled. Reported by - Lorenz Meier (and also earlier by Kate) (2013-03-17). - * drivers/serial/serial.c: Support for O_NONBLOCK was not supported - in the "upper half" serial driver. This is normally not an issue - because UART TX is almost always available, but it does become an - if the UART uses hardware flow control or if the a "lower half" is - something like the USB CDC/ACM driver that may need to block for - significant amounts of time (2013-03-18). - * arch/arm/src/armv7-h/ram_vectors.h, up_ramvec_*.c, arch/arm/src/*/*_irq.c, - and Make.defs: Add support for modifiable interrupt vectors in RAM - (2013-03-18). - * arch/arm/src/armv7-m/up_exception.S, sam3u/sam3u_vectors.S, and - lpc17xx/lpc17_vectors.S: In exception handling with CONFIG_NUTTX_KERNEL, - need to explicitly set and clear the privilege bit in the CONTROL - register on return. I assumed this would be handled automatically - by the EXC_RETURN. Silly me (2013-03-18). - * arch/arm/src/lpc17_adc.c: Add a work-around for an ADC errata. From - Chris Taglia (2013-3-19). - * arch/arm/src/armv7-m/up_hardfault.c: If the PRIMASK is used to disable - interrupts, then additional logic is required in the hard fault handler - (2013-3-19). - * libc/ and mm/: Directories where the same sources files are used to - build different objects in the first and second pass kernel builds need - to keep those objects in separate directories so that they are not - constantly rebuilt (2013-3-19). - * fs/fat: Create an error in FAT file creation. The FAT logic was - not making a distinction between directory non-existence and file - non-existence so when it you try to create a file in a non-existent - directory, it would create a file with the name of the missing - directory. Reported by Andrew Tridgell (2013-03-30). - * Numerous files: Changed the prototypes of up_create_stack() and - up_release_stack() so that is includes a task type. Normally you - can get this type from the TCB parameter, but there are certain - conditions when the task type is not valid in the TCB when these - functions are called. Only the prototypes were changed on this - big, initial checkin. The next step will be to add logic to - allocate stacks for kernel threads from protected kernel memory - and all other task types from unprotected user memory (2013-03-20). - * arch/*/src/common/up_createstack.c, up_use_stack.c, and - up_release_stack.c: If creating or releasing the stack for a kernel - thread, use the kernel allocator so that the kernel thread stacks - are protected from user application meddling (2013-03-20). - * arch/arm/src/armv[6|7]-m/up_scall.c: Fix parameter passing for - all system call inline functions with > 3 parameters (2013-03-20) - * arch/*/src/common/up_stackframe.c and include/nuttx/arch.h: Add - and new interface to set aside memory on the stack. This will be - used at least in the kernel build to hold task arguments (2013-03-21). - * sched/sig_deliver.c: When dispatching signals to user threads, - copy the siginfo_t from the sigq to the stack. The signal queue - is allocated from kernel memory; however, the current stack is - the user's stack and the user code will be able to access the - signinfo_t data from the stack copy (2013-03-21). - * arch/arm/src/stm32: Added support for the kernel mode build - (cloned from the lpc17xx). (2013-03-21). - * configs/stme32f4discovery/kernel and scripts: Add support for - the kernel mode build on the STM32F4Discovery (2013-03-21). - * drivers/st7567.c/h and include/nuttx/lcd/st7567.h: Driver for - the ST7567 LCD Display Module from Univision Technology Inc. - contributed by Manikandan.S (2013-03-22). - * configs/zkit-arm-1769: Now supports the ST7567 LCD display - module. Added an nxhello configuration for testing (Manikandan.S, - 2013-03-22). - * configs/stm32f4discovery/kostest: Add a kernel mode version - of the OS test for the STM32F4Discovery board (2013-03-22). - * nuttx/include/nuttx, nuttx/configs/sam3u-ek, nuttx/configs/open1788, - nuttx/configs/stm32f4discovery, and nuttx/arch/arm: Complete - re-archtecting of how signals are dispatched to user-space code - in the kernel build. The original implementation was C-based - and simpler. However, the C code intermixed with SVC calls was - not properly preserving registers. The more complex, assembly - language version does not suffer from these issues. I believe - the kernel build can now be called "feature complete" - (2013-03-23). - * binfmt/binfmt_execmodule.c: Here is a place where I forget - to update the call to sched_releasetcb() to pass the thread - type as the second parameter (2013-03-23). - * arch/arm/src/lm, kinetis, lpc43, and nuc1xx: Add kernel build - support to all ARMv7-M and ARMv6-M chips. There are no - configurations in place to verify these additions! - (2013-03-24). - * arch/arm/src/lm/lm_gpio.h: Correct typos in alternate function - definitions (2013-03-24). - * arch/arm/src/lm/lm_lowputc.c and lm_serial.c: Add support for - the 7 UARTs on the LM4F120 (2013-03-24). - * configs/lm4f120-launchpad/ostest/defconfig: Fix the configured - RAM size. This appears to be the last show-stopper bug: The - LaunchPad now runs NuttX! (2013-03-24). - * configs/lm4f120-launchpad/nsh: Add an NSH configuration for the - LaunchPad (2013-03-24). - * configs/kwikstik-k40: Converted configurations to use the - konfig-frontends tool (2013-03-25). - * configs/twr-k60n512: Converted configurations to use the - konfig-frontends tool (2013-03-25). - * arch/arm/src/lpc17xx/lpc17_lcd.c: Add an LCD framebuffer driver - for the LPC177x/8x family (2013-3-26). - * arch/arm/src/lpc17xx/lpc17_emc.c and - configs/open1788/src/lpc17_sdraminitialize.c: Began testing the - Open1788 SDRAM. The SDRAM is basically functional, but there are - failures with the SDRAM is stressed by the memory test at - apps/example/ramtest (SDRAM support and the RAM test can be configured - into the base configs/open1788/nsh configuration as described in - configs/open1788/READMT.txt (2013-3-27). - * configs/open1788/nxlines: Add a configuration to test both the - Open1788 LCD and SDRAM which is used as a framebuffer (2013-3-27). - * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c: Began - implementation of the LPC17 DMA and integration into the SDCARD - driver (2013-3-29). - * arch/arm/src/lpc17xx/lpc17_gdma.c: LPC17 DMA is code complete and - under test. Does not yet work (2013-3-30). - * fs/fat/fs_fat32dirent.c and fs_fat32util.c: Several fixes to the - FAT file system from Ronen Vainish. These fixes mostly involve the - logic to extend directory clusters for the case of long file names - but also include a few important general fixes (such as for storing - 32 bit FAT values) (2013-03-31). - * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c: SD card DMA - is now functional. Thre may be some issues with DMA from CPU SRAM - which is apparently disabled in sleep mode; up_idle() always enters - sleep mode (2013-03-31). - * arch/arm/src/stm32: Add architecture support for the STM32 F427/F437 - chips. Contributed by Mike Smith (2013-4-01). - * configs/zkit-arm-1769/src/up_can.c: Add support for both CAN1 - and CAN2. Contributed by M.Kannan (2013-4-01). - * arch/arm/src/lpc17xx/lpc17_spi.c and lpc17_ssp.c and - configs/olimex-lpc1766stk, nucleus2g, zkit-arm-1769, and - lpcxpresso-lpc1768: The initialization function for both the LPC17xx - SPI and SSP blocks was called up_spinitialize() which is the common API - definition of include/nuttx/spi.h. But this raises a problem when the - MCU has multiple blocks for differ SPI implementations as does the - LPC17xx (and also as does other architectures like STM32 that have - USARTs that can serve as SPI interfaces as well). These were renamed - to lpc17_spiinitialize() and lpc17_sspinitialize() in this case. - Problem reported by M. Kannan (2013-4-01). - * arch/arm/src/lpc17xx/lpc17_gpdma.c and lpc17_idle.c: In sleep mode, - DMA can only be performed from peripheral SRAM. CPU SRAM is shutdown - in sleep mode. In order to simplify DMA memory allocation, the LPC17xx - IDLE will now hold off going to sleep mode if there is a DMA in progress - (2013-4-01). - * configs/open1788/src/lpc17_autoleds.c: Reversed sense of the IDLE LCD. - It is now off when the LPC17 is sleeping and on when awake. That is - much more useful because it provides a good visual indication of the - dynamic CPU load (2013-4-01). - * configs/open1788/src/lpc17_touchscreen.c and lpc17_ssp.c: Add - support for the touschscreen on the WaveShare LCD (2013-4-01). - * configs/several: There were already some functions called - lpc17_sspinitialize(). So they had to be renamed (2013-4-01). - * arch/arm/src/lpc17xx/lpc17_ssp.c: Adapted to work with the LPC178x - family (2013-4-01). - * arch/arm/src/lpc17xx/lpc17_gpio.c/.h: Separate LPC176x and LPC178x - logic into separate files. The logic is diverging to much to - try to retain common code (2013-4-03). - * net/net_clone.c: Fix compilation error when socket options are - are disabled. Reported by Daniel O'Connor (2013-4-05). - * configs/zkit-arm-1769/src/up_leds.c: Fix a typo introduced into - the button interrupt logic (2013-4-05). - * arch/arm/src/lpc17xx/lpc178x_gpio.c: Re-design of the GPIO - logic for the LPC178x family by Rommel Marcelo (2013-4-05). - * arch/arm/src/lpc17_gpiodbg.c: Updated so that it correctly - reports LPC177x/8x GPIO registers when GPIO debug is enabled - (2013-4-05). - * arch/arm/src/Makefile: The variable NUTTX already includes - the extension $(EXEEXT). So remove the second extension - $(NUTTX)$(EXEEXT) in two places (2013-4-7). - * arch/arm/src/lpc17xx/lpc17_gpioint.c: Disable interrupts in - lpc17_setintedge(). This logic must be atomic because it can be - re-entered before it completes enabled interrupts, sometimes - leaving the interrupts in a strange state (2013-4-7). - * arch/arm/src/lpc17_lcd.c: Rommel Marcelo got the LPC1788 - framebuffer-based LCD working. Very nice! (2013-4-08). - * arch/arm/src/lm/lm_clockconfig.c and configs/lm4f120-launchpad: - Fix handling of the RCC SYSDIV2 field when the PLL output is - 400MHz. Don't forget to set the USERCC2 bit in the register or - all is for naught (2013-4-09). - * configs/zkit-arm-1769/src/up_lcd.c, up_ssp.c, and up_spi.c: - Use SSP0 to LCD and SPI to SD-Card on the Zkit-arm-1769 board. - From Manikandan. S (2013-4-10) - * configs/olimex-lpc1766stk/usbserial: Converted to use the - kconfig-config frontends tools (2013-4-12). - * drivers/usbdev/pl2303.c: Fix some compilation errors that - crept in when fixes to the CDC/ACM driver where blindly - incorporated in the PL2303 driver (2013-4-12). - * configs/stm3210e-eval/usbserial: Converted to use the - kconfig-config frontends tools (2013-4-12). - * configs/nucleus2g/usbserial: Converted to use the - kconfig-config frontends tools (2013-4-12). - * arch/arm/src/kl and arch/arm/include/kl: Add support for the - Kinetis L family of Cortex-M0+ MCUs. Contributed by Alan - Carvalho de Assis. NOTE: This is still very much a work in - progress as of this initial commit (2013-04-16). - * configs/freedom-kl25z: Support for the Freedom KL25Z board - contributed by Alan Carvalho de Assis. NOTE: This is still - very much a work inprogress as of this initial commit - (2013-04-16). - * arm/arm/src/armv6-m and arch/arm/include/armv6-m: Ooops. Fix - a major screw-up: The Cortex-M0 has no BASEPRI register but - the current logic was using it to manage interrupts. Switch - to using the PRIMASK. This means that hardfaults will (again) - occur when SVC instructions are executed (2013-4-16). - * configs/stm3240g-eval/ostest: Converted to use the kconfig-frontends - tools (2013-4-17). - * sched/task_exithook.c: Don't flush the streams until the - final thread of the group exits. Flushing may cause the - thread to get suspended at a bad time and other threads in the - group may run while the exiting thread is in an unhealthy state. - This can cause crashes under certain circumstance. This is a - critical bugfix (2013-4-18). - * drivers/mtd/ramtron.c: Extended to support the FM25V01 device. - Contributed by Lorenz Meier (2013-4-18). - * sched/task_deletecurrent.c and task_exit.c, arch/*/up_exit.c: - Renamed task_deletecurrent() and task_exit() since it really - handles the architecture independent part of _exit(). _exit() - is used internally, but if it is called from the user, it should - unregister any atexit() or on_exit() functions (2013-4-18). - * tools/kconfig2html.c: This is the beginning of a tool to - replace the hand-generated documentation of the NuttX configuration - variables with auto-generated documentation. The initial checkin - is an incomplete, poorly structured prototype that I hope to - evolve into a useful tool (2014-4-20). - * libc/string/lib_strchr.c: strchr(str, '\0') should return a - pointer to the end of the string, not NULL. From Petteri - Aimonen (2014-4-22). - * fs/fat/fs_writefat.c: mkfatfs was writing the boot code to the - wrong location. From Petteri Aimonen (2014-4-22). - * Documentation: The NuttX documentation now expects to find an - auto-generated version of the configuration variable documentation - at Documentation/NuttXConfigVariables.html (2014-4-22). - * arch/arm/src/lpc17xx/lpc17_adc.c: Only one ADC pin was configured. - Need to configure all that are in the ADC0 set. From MKannan - (2014-4-23). - * configs/zkit-arm-1769/src: ADC and SPI/USB MSC updates from - MKannan (2014-4-23). - * arm/src/armv7-m/ram_vectors.h and arm/src/armv7-m/up_ramvec_initialize.c: - Fixes to RAM vector logic from Paul Y. Zhang (2014-4-23) - * tools/kconfig2html.c: Improve behavior of Expand/Collapse - Table of Contents; Handle errors in parsing of strings and in - some uninitialized variables. Add an option to use jQuery. - * tools/mkconfigvar.sh: Fix make target (2014-4-23). - * sched/exit.c, pthread_exit.c, task_exit.c, task_delete,c and - task_exithook.c: For pthread_exit(), move some logic to an early - point in the exit sequence where the task may need to block. Add - conditional logic in the lower end of the eixt logic kicked off by - _exit() to prohibit blocking after the task has been torn down and is - no longer cabable of blocking (2014-4-23). - * arch/arm/src/common/up_initialize.c: Add missing registration - of /dev/zero. Registration of /dev/null should depend upon - conditional compilation. From Ken Pettit (2014-4-24). - * arch/*/src/common/up_initialize.c: Same change required to other - architectures (2014-4-24). - * arch/arm/src/kl/kl_clockconfig.c and configs/freedom-kl25z/include/board.h: - Modify out PLL configuration so that it uses the values in - board.h; Fix PLL settings in board.h so that the correct core - and bus clock frequencies are generated. (2014-4-24). - * arm/src/kl/chip/kl_memorymap.h, kl_sim.h, andkl_uart.h: Correct some - register definitions (2014-4-25). - * arch/arm/src/kl/Kconfig, kl_lowputc.c, kl_serial.c, and kl_config.h: - No UART3-5 (2014-4-25). - * arch/arm/src/kl/kl_serial.c: Various fixes to various files in the - KL architecture directory as need to get the interrupt-driven - serial driver to work. The Freedom KL25Z NSH configuration now - works (2014-4-25). - * include/nuttx/assert.h, arch/*/src/*/up_assert.c, and other file: - Remove up_assert_code(). While asserting with an encoded value - could be a good feature, the codes have not be well utilized nor - documented. Give that situation it is better to remove the API - and reduce the footprint a little (2014-4-25). - * drivers/serial/Kconfig and arch/*/src/*/*_serial.c: Add - compilation so that the useless TIOCSERGSTRUCT ioctl logic - is not build unless CONFIG_DEBUG and CONFIG_SERIAL_TIOCSERGSTRUCT - are defined. - * sched/task_delete.c and task_terminate.c: Most task_terminate() - out of task_delete.c into its own C file. This should prevent - dragging task_delete() into the link when it is never called. - -6.28 2013-06-14 Gregory Nutt - - * arch/arm/src/lpc17xx/lpc17_i2c.c: Interrupts were not being - re-enabled in the I2C initialization function (2013-4-30). - * net/sendto.c: Added skeleton of implementation of send timeouts - for UDP. However, this functionality really does not make - sense, so it is disabled in the code (2013-4-30). - * drivers/mtd/mtd_partition.c: Support capability to clone one - MTD driver into several, MTD partition drivers, each of which - can manage a sub-region of the FLASH (2013-4-30). - * configs/sim/nxffs: Converted to use the kconfig-frontends - tools (20130-4-30). - * configs/sim/mtdpart: A new configuration to test MTD - partitions (2013-4-30). - * configs/sim/mkroe-stm32f4: Support for the MikroElektronika - Mikromedia for STM32F4 development board (from Ken Pettit, 2013-4-30). - * fs/smartfs: Add Ken Pettit SMART FS (2013-4-30). - * include/nuttx/mtd.h and most MTD drivers: Add support for - (optional) method to perform byte oriented writes if so configured - (2013-5-1). - * arch/arm/src/kl/chip/kl25z128_pinmux.h: Corrections fo the - pin multiplexing definitions from Alan Carvalho de Assis - (2013-5-2). - * drivers/mtd/mtd_partition.c: Fix a few bugs and add support for the - (option) byte write method (2013-5-3). - * arch/arm/src/kl: Repartitioning of definitions in header files - from Alan Carvalho de Assis (2013-5-3). - * drivers/mtd/smart.c, fs/smart, and other files: SMART file system - now makes use of the MTD byte write capabilities when present (from - Ken Pettit, 2013-5-3). - * drivers/mtd/m25px.c: Some rearchitecting to use the byte write - capability (when possible) and to use 4KB sectors for the erase block - size when the part supports it (Ken Pettit, 2013-5-3). - * configs/pirelli_dpl10: Adds a configuration for the pirelli phone - (from Craig Comstock via Alan Alan Carvalho de Assis, 2013-5-3). - * arch/arm/src/calypso: Fix some compilation warnings (2013-5-5). - * configs/pirelli_dpl10/nsh_highram: Converted to use the - kconfig-frontends tools (2013-5-5). - * drivers/lcd/mio283qt2.c: LCD was not being selected in setpower - method (also not being deselected in hwinitialize function) - (2013-5-6). - * arch/arm/src/kl/kl_gpio.c and .h, configs/freedom-kl25z/src/freedom-kl25z.h, - and configs/freedom-kl25z/src/kl_led.c: Fixes LEDs on the Freedom KL25Z - board (2013-5-6). - * arch/arm/src/kinetis/kinetis_pin.c and arch/arm/src/kinetis/kinetis.h: - The Kinetis GPIO logic had some of the same issues as did the - Kinetis L (2013-5-6). - * arch/arm/src/stm32/stm32_idle.c: Add an option to conditionally disable - the "wfi" sleep mode. This is needed with certain JTAG debuggers to - to prevent the debug session from begin disconnected. From Ken Pettit - (2013-5-7). - * configs/mikroe-stm32f4/fulldemo/, nx/, nxlines/, nxtext/: Add more - configurations for the Mikroelektronika Multimedia STM32-M4 board. - From Ken Pettit (2013-5-7). - * configs/mikroe-stm32f4/src/up_mio283qt2.c and other files: Integrate the - MIO283QT2 display on the Mikroelektronika Multimedia STM32-M4 board. - From Ken Pettit (2013-5-7). - * arch/arm/src/lpc17xx/lpc17_i2c.c: Fix for lpc17xx i2c single byte read - timeout error problem from M.Kannan (2013-5-8). - * arch/arm/src/stm32/stm32_adc.c: Typo in F2/F4 specific logic: ACD_ - instead of ADC_. From Ken Pettit (2014-5-8). - * configs/olimex-lpc1766stk/tools: Tweaks to support OpenOCD-0.70 - (2013-5-10). - * configs/mikroe-stm32f4: Changes to get the Mikroelektronika MultiMedia - STM32 F4 touchsceen working. From Ken Pettit (2013-5-11). - * configs/*/nxwm: Default priorities for NxWidget and NxWM threads - should be 100, not 50, to be consistent with other default priorities. - * configs/hymini-stm32v/buttons, nsh, and nsh2: Configurations converted - to use the kconfig-frontends tools (Laurent Latil, 2013-5-14) - * configs/hymini-stm32v/src: Converted to use the common SSD1289 driver - (Laurent Latil, 2013-5-14) - * configs/hymini-stm32v/ostest and usbnsh: Add OS test and USB/NSH - configurations (Laurent Latil, 2013-5-14). - * configs/hymini-stm32v/src/up_nsh.c: Add support for the card detect - (CD) interrupt (Laurent Latil, 2013-5-14). - * configs/hymini-stm32v/src/nx and nxlines: Removed these configurations - (Laurent Latil, 2013-5-14). - * arch/arm/src/stm32/chip/stm32f10xx_dma.h: Fix some bad DMA register - definitions. From Laurent Latil (2013-5-15). - * configs/hymini-stm32v: Enable SDIO in nsh2 configuration; remove - warning from src/up_ssd1289.c. From Laurent Latil (2013-5-15). - * configs/hymini-stm32v/src/up_r61505u.c: Support for the R65105- - based LCD that comes with some HY-Mini STM32v board. From Christian - Faure (2013-5-16). - * syscall/syscall_lookup.h: Missing underscore character in SYS_onexit. - Reported by Ken Pettit (2013-5-17). - * nuttx/syscall/syscall.csv: Type of first parameter of on_exit() is - wrong. Reported by Ken Pettit (2013-5-17). - * configs/mikroe-stm32f4/kernel/, kostest/ and scripts/: Add kernel build - support and kernel mode OS test example for the MikroElektronkia - MultiMedia STM32 M4 board. From Ken Pettit (2013-5-17). - * arch/arm/include/stm32/chip.h and arch/arm/src/stme32/chip/stm32l15xxx_pinmap.h: - Beginning of support for the STM32L15X family (2013-5-18). - * arch/arm/include/stm32/stm32l15xxx_irq.h and arch/arm/src/stm32/chip/stm32l15xxx_vectors.h: - Support for STM32L15X interrupt vectors (2013-5-18). - * arch/arm/src/stm32/chip/stm32l15xxx_gpio.h and related STM32 GPIO files: - Add GPIO support for the STM32L215X (2013-5-18). - * arch/arm/src/stm32/chip/stm32l15xxx_memorymap.h: STM32L215X memory map - (2013-5-18). - * arch/arm/src/stm32/chip/stm32_pwr.h, stm32fl15xxx_rcc.h, and stm32l15xxx_syscfg.h: - More updates for the STM32L152 (2013-5-19). - * configs/stm32ldiscovey: Configuration for the STM32L-Discovery board. - Still does not build on initial check-in (2013-5-19) - * STM32L15X: Add DMA and UART start. Correctly initialize the heap - (2013-5-19). - * arch/arm/src/stm32/stm32l15xxx_rcc.c chip/stm32_flash.h: Add RCC PLL - and FLASH configuration logic for the STM32L152X (2013-5-19). - * include/nuttx/usb/audio.h: Typo- and bug-fixes from Ken Pettit - (2013-5-19) - * audio/, drivers/audio, include/nuttx/audio.h: Add a new audio subsystem - and VS1053 driver to NuttX. Contributed by Ken Pettit (2013-5-19). - * configs/miroe-stm32f4/: Add audio logic to NSH configuration. From Ken - Petty (2013-5-19). - * nuttx/arch/arm/src/lm/chip/lm_flash.h and nuttx/arch/arm/src/lm/lm_flash.c: - Add support for TI/Stellaris internal FLASH MTD driver. From Max - Holtzberg (2013-5-20). - * arm/src/stm32/chip/stm32l15xxx_vectors.h: After correcting errors in the - vector definition file, the STM32L-Discovery NSH port now seems to be - fully functional. Also fixed an error that was causing the LEDs to be - controlled incorrectly (2013-5-21). - * arch/arm/src/stm32/chip/stm32_lcd.h: Add definitions for STM32L15X - segment LCD (2013-5-21). - * configs/lm3s6965-ek/discover: Add an example configuration for UDP - discovery tool on the lm3s6965-ek board. From Max Holtzberg - (2013-5-21). - * audio/, drivers/audio, include/nuttx/audio: Added a callback interface - to the Audio upperhalf driver for dequeueing, reporting async events, - etc. Also included is some initial work for the VS1053 driver. From - Ken Pettit (2013-5-21). - * include/nuttx/audio/audio.h: Moved from include/nuttx/ to include/nuttx/audio. - (2013-5-21). - * configs/lm3s6965-ek/tcpecho: This configuration builds the simple TCP - echo example based on W.Richard Steven UNIX Programming book to ensure - correct usage of the socket API. Contributed by Max Holtzberg (2013-5-22). - * configs/stm32ldiscovery/src/stm32_lcd.c: Framework for support of the - STM32L-Discovery's segment LCD (2013-5-22). - * fs/fs_poll.c: Poll setup/teardown logic should ignore invalid (i.e., - negative) file descriptors. Max Holtzberg (2013-5-23). - * net/net_poll.c: When readahead data is available, the network poll - logic should set POLLIN (or POLLRDNORM), not POLLOUT. Max Holtzberg - (2013-5-23) - * fs/fs_poll.c: Actually, it should also set revents == 0. (2013-5-23). - * libc/misc/lib_slcdencode.c and lib_slcddecode.c: Add logic to marshal - and serialize special SLCD intermixed with normal ASCII data (2013-5-23) - * configs/stm32ldiscovery/src/stm32_lcd.c: STM32L-Discovery's segment LCD - is code complete but completely untested (2013-5-23). - * include/nuttx/fs/ioctl.h, include/nuttx/lcd/slcd_codec.h, and - configs/stm32ldiscovery/src/stm32_lcd.c: Add SLCD ioctl commands to get - SLCD geometry, set bars, and manage contrast (2013-5-23). - * configs/stm32ldiscovery/src/stm32_usb.c: This file and all references - to USB removed for the STM32L-Discovery. While the chip supports a - USB device, the board does not (2013-5-24). - * arch/arm/src/stm32/stm32_lse.c: Add support for the STM32L CSR register - and for the LSE LCD clock source (2013-5-24). - * The STM32L-Discovery segment LCD is now functional and the README file - includes instructions for adding the apps/examples/slcd segment LCD - test as an NSH "built-in" command (2013-5-24). - * configs/pcblogic-pic32mx: Converted all configurations to use the - kconfig-frontends tool (2013-5-25). - * configs/pcblogic-pic32mx/src: Renamed files using pic32mx_ vs up_ - prefix. Enable building of LCD1602 LCD (2013-5-25). - * configs/pcblogic-pic32mx/src/pic32mx_lcd1602.c: Now uses SLCD CODEC - (2013-5-25) - * configs/stm32ldiscovery/src/stm32_lcd.c: Now supports ioctl to get - cursor position (2013-5-25). - * include/nuttx/lcd/slcd_ioctl.h: Moved ioctls commands and structures - from slcd_codec.h (2013-5-25) - * libc/misc/lib_slcdencode.c and lib_slcddecode.c: Several encoding - and decoding bug fixes (2013-5-26) - * configs/sure-pic32mx: Converted all configurations to use the - kconfig-frontends tools, cleaned up the directory structure and - naming to match some of the more recent configurations, and added - a segment LCD driver for the board. The initial checkin of the - LCD driver is just a clone of configs/pcblogic-pic32mx/src/pic32mx_lcd1602 - and it not yet expected to be functional (2013-5-26). - * include/nuttx/lcd/slcd_ioctl.h and all SLCD drivers: Rename geometry - structure to attributes; Move MAX contrast to attributes. Add - attribute and ioctl commands to get and set LCD brightness (2013-5-27). - * configs/sure-pic32mx/pic32mx_lcd1602.c: This driver appears to - fully functional (at least to the extent that it has been tested) - (2013-5-27). - * arch/mips/src/pic32mx/pic32mx-usbdev.c: Fix NULL packet handling in - the PIC32 USB device driver. Without this fix the CDC/ACM driver - cannot be used reliably with the PIC32 USB. With this change the - configs/sure-pic32mx/usbnsh configuration works great (2013-5-28). - * configs/sure-pic32mx/src/pic32mx_nsh.c: The NSH configurations will - support the USB monitor applications (2013-5-28). - nuttx/arch/arm/include/stm32/chip.h, src/stm32/Kconfig, src/stm32/chip.h, - and src/stm32/chip/stm32f103c_pinmap.h: STM32F103C4 and F103C8 chip - support from Laurent Latil (2013-5-28) - * configs/stm32_tiny: Add support for the STM32 Tiny development board - based on the STM32 F103C8T6 MCU (2013-5-28). - * arch/arm/src/stm32/stm32_usbdev.c: Fix an error in NULL packet - handling: If the NULL-packet needed flag ever gets set, then - it is not cleared and infinite NULL packets result. This only - effects the CDC/ACM class and was the cause of the failure of - configs/stm32f3discovery/usbnsh configuration which works great - after this change (2013-5-29). - * drivers/usbdev/cdcacm.c and pl2303.c and include/nuttx/usb/cdcacm.h: - Change the default IN request buffer size from 64 to 96. This will - avoid requests of exactly MAXPACKET size and, hence, avoid so many - NULL packets. Also, fix the OUT request buffers size to exactly - the max packet size. It cannot be any other size (2013-5-29). - * .gitignore: Clean-up of most all .gitignore files: Make scope of - ignore to be only the current directory; Ignore .dSYM files in - directories where .exe's may be build. Also, in Makefiles, - clean .dSYM files in directories where .exe may be built (2013-5-30). - * drivers/wireless/nrf24101.c/.h and include/nuttx/wireless/nrf24101.h: - Add new driver for the wireless nRF24L01+ transceiver. From Laurent - Latil (2013-6-1). - * drivers/wireless/cc1101: Move files in the cc1101 up one directory. - From Laurent Latil (2013-6-1). - * configs/stm32_tiny: Fix nRF24L01+ driver integration for the STM32 - Tiny. From Laurent Latil (2013-6-01). - * configs/sam3u-ek: All remaining configurations changed to use - the kconfig-frontends tools (2013-6-2). - * arch/arm/src/sam3u/chip: All SAM3U register definition files moved - to this subdirectory. Naming of registers changed from SAM3U_ to - just SAM_. This is in preparation for a SAM4L port (2013-6-2). - * arch/arm/src/sam3u: Renamed files to sam_* vs. sam3u_*. - Eliminated sam3u_internal.h; instead uses individual header - files for each SAM interface block (2013-6-2). - * arch/arm/src/stm32/stm32f20xxx_rcc.c and stm32f40xxx_rcc.c, and - configs/mikroe-stm32f4/src/up_clockconfig.c. Correct some bad - conditional compilation (CONFIG_ missing from setting name). This - affects some STM32 FLASH pre-fetch settings. From Lorenz Meier - (2013-6-2). - * arch/arm/include/sam34 and arch/arm/src/sam34: The old sam3u/ - directories were renamed sam34/ to make room in the namespace for - the SAM4L (2013-6-2). - * libc/stdio/lib_dprintd.c and lib_vdprintf.c: Add dprintf() and - vdprintf() (the latter from Andrew Tridgell, 2013-6-2). - * sched/sem_holder.c: Modify assertion that is reported to cause - false alarm assertions (2013-6-2). - * arch/arm/include/sam34/sam4l_irq.h and - arch/arm/src/sam34/chip/sam4l_memorymap.h: Add interrupt and memory - map definitions for the AT91SAM4L (2013-6-3). - * arch/arm/src/sam34/chip/sam4l_vectors.h and arm/src/sam34/sam_vectors.S: - Add interrupt vector support for the SAM4L family (2013-6-3). - * arch/include/sam34/chip.h: Add chip definitions for the SAM4L - family (2013-6-3). - * configs/sam4l-xplained: A partial configuration that will (eventually) - support the SAM4L Xplained Pro development board (2013-6-3). - * arch/arm/src/sam34/chip/sam4l_pinmap.h: Initial cut as SAM4L - pin mapping (2013-6-3). - * arch/arm/src/stm32/stm32*_dma.*: Add a new interface function, - stm32_dmacapable() that can be used to determine if DMA is - possible from the specified memory address. From Petteri Aimonen - (2013-6-4). - * arch/arm/src/stm32/stm32_spi.c: If CONFIG_STM32_DMACAPABLE is - defined, use stm32_dmacapable() to determine if it is possible - to perform DMA from the specified address. This change is - important for the STM32 F4 which may have SPI data buffers - allocated on the stack in CCM memory which cannot support the - DMA. From Petteri Aimonen (2013-6-4). - * nuttx/arch/arm/src/sam34/sam4l_gpio.h: Created GPIO driver - header file for the SAM4L. Also renamed the SAM3U header - file to sam3u_gpio.h (2013-6-4). - * nuttx/arch/arm/src/sam34/sam4l_gpio.c: Created GPIO driver for - the SAM4L (2013-6-4). - * nuttx/configs/sam4l-xplained/src/sam_userleds.c: Added. - (2013-6-4). - * configs/sam4l-xplained/src/sam_userleds.c: Add application - LED interfaces (2013-6-5). - * arch/arm/src/sam34/sam4l_gpio.c and arch/arm/src/sam34/chip/sam4l_gpio.h: - Fix GPIO port address; fix compilation errors (2013-6-5). - * arch/arm/src/sam34/chip/sam4l_flashcalw.h: Add header file - for SAM4L FLASH and PICOCACHE definitions (2013-6-5). - * arch/arm/src/sam34/chip/sam4l_pm.h: Add header file for SAM4L - Power Management. Leveraged from AVR32 (2013-6-5). - * arch/arm/src/sam34/sarm4l_clockconfig.c: SAM4L clock configuration - logic (leveraged from AVR32). - * nuttx/arch/arm/src/sam34/sam4l_periphclks.c/h: Add common - logic to enabled/disable SAM4L peripheral clocking (2013-6-5). - * nuttx/arch/arm/src/sam34/chip/sam4l_bpm.h and sam4l_scif.h: Add - register definitions for the SAM4L BMP and SCIF blocks (2013-6-6). - * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c: Now selects an - optimal power scaling mode (2013-6-6). - * nuttx/arch/arm/src/stm32/stm32_serial.c and nuttx/include/termios.h: - Change for hardware flow control support for STM32. It also fixes - incorrect operation of USART2 and UART5 in current master. Submitted - by Lorenz Meier but includes changes by Mike Smith (2013-6-6). - * nuttx/arch/arm/src/stm32/stm32_otgfshost.c: A backward conditional - prevent detection of disonnection events. Reported by Scott (2013-6-6). - * nuttx/arch/arm/src/sam34/chip/sam4l_bscif.h: Add registers definitions - for the SAM4L BSCIF module (2013-6-6). - * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c and chip/sam4l_wdt.h: - Finally finished the SAM4L clock configuration logic; Added a - WDT register definition header file (2013-6-8). - * nuttx/arch/arm/src/sam34/chip/sam4l_usart.h and sam4l_picouart.h: - Add UART/USART register definition files for the SAM4L (2013-6-8). - * arm/src/sam34/chip/sam3u_periphclks.h: More macros and definitions - to generalize peripheral clocking and to hide differences between - the SAM3U and the SAM4L (2013-6-8). - * configs/sam4l-xplained/ostest: The SAM4L now passed the OS test - (2013-6-9). - * configs/sam4l-xplained/nsh: Added an NSH configuration for the - SAM4L Xplained Pro board (2013-6-9). - * configs/sam4l-xplained/src/sam_cxxinitialize.c: Added C++ support - to the SAM4L Xplained Pro board configuration (2013-6-9). - * arm/src/sam34/chip/sam_irq.c: Extend IRQ support to handle the - larger number of NVIC interrupts used by the SAM4L (2013-6-9). - * arch/arm/src/sam45/chip: Beginning updates of SAM3U header files - to include support for the SAM4S: WDT, SUPC, EEFC, MATRIX, PMC, - UARTs, USARTs, HSMCI, SPI (2013-6-10). - * arch/arm/src/chip/sam4s_memorymap.h, sam4s_irq.h, and sam4s_vectors.h: - Add SAM4S memory map and interrupt definitions (2013-6-10) - * configs/sam4s-xplained: Add framework for the SAM4S Xplained board. - There is not much there on initial checkin (2013-6-10). - * arch/arm/src/sam34: SAM3S support: GPIO, chip characteristics, - peripheral Kconfig (2013-6-11). - * arch/arm/src/sam34/chip/sam4s_pinmap.h: Add SAM4S pin configuration - definitions (2013-6-11). - * arch/arm/src/sam34/sam4s_periphclks.h: Add macros to manage SAM4S - peripheral clocks (2013-6-11). - * configs/sam4s-xplained: Configuration builds error-free (2013-6-11). - * configs/sam4s-xplained/nsh: Added an NSH configuration for the - SAM4S Xplained board. Both the OS test and the NSH configurations - no execute error-free. Delay loops calibrated for both the SAM4L - and SAM4S boards (2013-6-12). - * Standardize on CONFIG_NSH_BUILTIN_APPS. Remove all other variants - of the build-as-an-NSH-application configuration settings - (2013-6-12). - * arch/arm/src/sam34/sam_periphclks.h: A header file that just - includes the right header file. This cleans up the messy logic - in all of the C files and puts the mess in one place (2013-6-12). - * arch/arm/src/arm*/Toolchain.mk, Kconfig (and lots of configuration - files): Add support for a generic Windows EABI toolchain (2013-6-13). - -6.29 2013-07-31 Gregory Nutt - - * arch/arm/src/sam34/chip/sam4l_pinmap.h: Change naming of some pin - configurations to match names used with other SAM part (2013-6-15). - * arch/arm/src/sam34/sam4l_clockconfig.c: Corrected some typos - (2013-6-15). - * configs/sam4l-xplained/src/sam_buttons.c: Eliminate a warning - (2013-6-15). - * configs/sam4l-xplained/src/sam_mmcsd.c, sam_nsh.c, sam_spi.c, - sam3u-ek.h, Kconfig, Makefile, sam4l-xplained.h, - configs/sam4l-xplained/README.txt, and - configs/sam4l-xplained/include/board.h: Add support for the SPI- - based SD card on the I/O1 module (2013-6-15). - * arch/arm/src/sam34/sam_spi.c: Re-architect the SAM3/4 SPI driver - so that is it compatible with the SPI drivers of other MCUs - (2013-6-16). - * configs/sam3u-ek/src/up_touchscreen.c and configs/sam4l-xplained/src/sam_mmcsd.c: - Changed needed because of the above change to the SAM3/4 SPI - interface (2013-6-16). - * drivers/input/ads7843e.c: Remove the wait for the touchscreen busy - bit. I don't see the busy bit changing on the SAM3U-EK board. But - maybe it is not supposed to. From my reading of the ADS7843 spec, it - would not be appropriate to wait for the BUSY bit to de-asserted - anyway (since it is only de-asserted when we read the data) - (2013-6-16). - * configs/sam3u-ek/src/up_touchscreen.c: Fix polarity of the /PENIRQ - signal (it is active low) (2013-6-16). - * configs/sam3u-ek/include/board.h: The SAM3U-EK board now runs at - 96MHz. This might have broken some things? (2013-6-17). - * drivers/mmcsd/mmcsd-spi.c: Driver need to make sure that the SPI mode - and data width are correct (2013-6-17). - * arch/arm/src/kinetis/kinetis_tsi.h: Corrections to the Kinetis - (2013-6-18) - * arch/arm/src/sam34/sam_spi.c: Fix SPI mode setting. In the SAM3/4 - family, the clock phase control (CPHA) is inverted (NPHA) (2013-6-18). - * arch/arm/src/kl/chip/kl_tsi.h: Freescale KL25Z TSI register - definitions from Alan Carvalho de Assis (2013-6-18). - * configs/freedom-kl25z/src/kl_tsi.c: Example TSI driver for the - Freedom KL25Z board from Alan Carvalho de Assis (2013-6-18). - * arch/arm/src/sam34/sam_spi.c: Correct an incorrect pointer test. - Was checking if the wrong pointer was NULL (2013-6-18). - * arch/arm/src/kl/kl_spi.c and chip/kl_spi.h: Add SPI driver and - register definitions for the Freescale KL25Z (2013-6-19). - * arm/src/sam34/chip/sam4l_lcdca.h: Register definition file for - the SAM4L LCD peripheral (2013-6-19). - * arm/src/sam34/chip/sam_spi.h: SPI register definition file updated - to include a few differences for the SAM4L (2013-6-19) - * arm/src/sam34/chip/sam4l_pdca.h: Add SAM4L PDCA register definition - file; also renamed sam_dmac.* files to sam3u_dmac.* to identify - them as SAM4U/4S only files (2013-6-19). - * configs/freedom-lk25z/src/kl_spi.c: Add the framework for - controlling SPI-related discrete inputs and outputs. Taken from - work by Alan Carvalho de Assis (2013-6-20). - * arch/arm/src/kl/kl_dumpgpio.c: Now compiles (2013-6-20). - * configs/: Several defconfig files were changed that had - CONFIG_HAVE_CXXINITIALIZE=y. Because of recent changes to - apps/examples, these configurations may need to have - CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y so that they behave as they did - before, i.e., so that C++ initializers will be called when NSH starts - up (2013-6-21). - * configs/sam4l-xplained/src/sam_slcd.c: Beginning of a driver for the - LED1 segment LCD module. This driver is incomplete on initial check- - in (2013-6-21). - * drivers/net/enc28j60.c: Change buffer ordering to work around Errata - #5. From Dave (ziggurat29, 2013-6-22). - * configs/sam4l-xplained/src/sam_slcd.c: LED1 segment LCD module is now - functional (2013-6-23). - * drivers/lcd/ssd1306.c and include/nuttx/lcd/ssd1306.h. Renamed - ug-2864hsweg01.c and .h to ssd1306.c and .h. Extended to support the - UG-2832HSWEG04 which is very similar and also based on the SSD1306 - controller (2013-6-23). - * configs/sam4l-xplained/src/sam_ug2832hsweg04.c: Add support for the - UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module - (2013-6-23). - * include/debug.h: Added macro DEBUGPANIC for forces crashes when debug - is enabled. - * drivers/lcd/ssd1306.c: Driver now appears to be function for the - UG-2832HSWEG04 in landscape mode (2013-6-24). - * drivers/lcd/ug-2864ambag01.c and ug-9664hswag01.c: Add/updated - support for reverse portrait mode from lessons learned with the - UG-2832HSWEG04. Untested changes! (2013-6-24). - * arch/arm/src/stm32/stm32_ccm.c and .h: Add support for a separate CCM - heap. This may be useful for segregating allocations for CCM (which - cannot be used for DMA) from other allocations (that may be used used - for DMA) (2013-6-25). - * arch/arm/src/sam32/sam3u_gpio.h: Correct configuration of PIO pins - for SAM4S B and C peripherals (2013-6-26) - * configs/sam4s-xplained/src/sam_sram.c: Added support for on-board - 1MB SRAM (2013-6-26). - * arch/arm/include/sam34/chip.h and sam3x_irq.h: Add support for - SAM3X and SAM3A chips (2013-6-26). - * arch/arm/src/sam34/chip/sam3x_vectors.h: Add support for SAM3X/3A - interrupt vectors (2013-6-26). - * arch/arm/src/sam34/sam3x_periphclks.h: Add peripheral clock - controls for the SAM3X/3A (2013-6-26). - * arch/arm/src/sam34/chip/sam3x_memorymap.h: Add SAM3X/3A memory map - (2013-6-26). - * arch/arm/src/sam34/chip/sam3x_pinmap.h: Add SAM3X/3A pin - multi-plexing definitions (2013-6-26). - * arch/arm/src/sam34/sam3x_gpio.h: Add SAM3X/3A gpio encoding - macros. These differ from the SAM3U only in because of the - 6 PIOs: PIOA-PIOF (2013-6-26). - * configs/arduino-due: This is an empty directory now with only - a README file in it but this directory will eventually hold a port - for the Arduino Due (2013-6-26). - * arch/arm/src/sam34/Kconfig: Add SAM3X/3A peripherals to the SAM3/4 - configuration logic (2013-6-26). - * arch/arm/src and include/ and configs/sam*/: Large rename of all - references to SPI with SPI0. This is because all other SAMs have - only SPI but the 3X/3A have SPI0 and SPI1 (2013-6-26). - * configs/arduino-due: Complete the basic board configuration and - integrate this into the configuration and build system. The Arduino - Due is now ready to begin test (2013-6-17). - * configs/arduino-due/nsh: Add an NSH configuration for the Arduino - Due. Both the OS test and NSH configuration are now functional - (2013-6-28). - * configs/arduino-due/src: Add support for the "L" LED (2013-6-28). - * arch/arm/src/sam34/sam_allocateheap.c: Clocking must be applied - to the SMC module for the 3X and 3A family in order for the NFC - SRAM to be functional (2013-6-28). - * arch/arm/src/sam34/sam3u_gpio.c: Need to disable write - protection before configuring PIO pins. - * configs/sam3u-ek/nsh: The touchscreen is now functional. The above - fix to the sam3u_gpio.c write protection also fixed the touchscreen - problem (2013-6-28). - * confgis/sam3u_ek/nxwm: Created a configuration for the NxWM - window manager for the SAM3U-EK board (2013-6-29). - * drivers/spi and include/nuttx/spi: New sub-directories to hold - SPI-related files. includes/nuttx/spi.h moved to include/nuttx/spi/.; - SPI-related Kconfig info moved from drivers/Kconfig to drivers/spi/kconfig - (2013-7-1). - * drivers/spi/spi_bitbang.c and include/nuttx/spi/spi_bitbang.h: Add - support for a generic bit-bang SPI driver. This checkout is the - common upper-half logic. Still missing the lower half (2013-7-1). - * include/nuttx/spi/spi_bitbang.c: This is the common lower-half bit- - bang SPI logic (2013-7-1). - * configs/arduino-due/src/sam_nsh.c and sam_mmcsd.c: Add NSH customize - initialization. If so configured, initialize the SPI bit bang - interface to the MMC/SD slot on the ITEAD shield (2013-7-1). - * fs/fs_mount.c: Fix compilation error if no file systems are enabled: - Change error to ERROR (2013-7-3). - * arch/arm/src/sam34/sam_gpioirq.c: Fix some errors for interrupts - on ports D-F (2013-7-3). - * /drivers/usbdev/composite.c: Fix a typo in the composite device - driver unitialization logic. DEV1 should be DEV2 in one case - (2013-7-4). - * arch/arm/src/sam34/sam3u_gpio.c: sam_configgpio() must protect - against re-entrancy (2013-7-5). - * libc/misc/lib_crc16.c and include/crc16.h: Add CRC16 support - (2013-7-7). - * arch/arm/src/stm32/stm32_otgfsdev.c: SourceForge bug #16: Fix - to the endpoint allocation logic. Apparently the same endpoint can - be allocated as both an IN or an OUT endpoint. The existing - implementation only supported one allocation, either IN or OUT. This - resulted in failures to allocate endpoints when used with the CDC/ACM + - MSC composite driver (From Chia Cheng Tsao, 2013-7-8). - * arch/arm/src/stm32/stm32_sdio.c: SourceForge bug #17: Add - support for the data block end (DBCKEND) interrupt to terminate - transfers (From Chia Cheng Tsao, 2013-7-8) - * drivers/rwbuffer.c: SourceForge bug #17: Correct typos that can cause - failures in some configurations (From Chia Cheng Tsao, 2013-7-8). - * include/nuttx/usb/usbdev.h: Fix some typos that cause compiler errors - when CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From - Chia Cheng Tsao, 2013-7-12). - * nuttx/configs/olimex-lpc1766stk/zmodem: Add a new configuration to - test the Zmodem sz and rz commands (which don't actually exist yet, - but will). (2013-7-12). - * arch/arm/include/armv7-a and src/armv7-a: Beginning to add support - for the ARMv7-A, the Cortex-A5 in particular. The initial checkin - is only fragmentary: A few header files and some copied ARM9 - assembly files. More to come (2013-7-18). - * arch/arm/include/sama5, arch/arm/src/sama5, and configs/sama5d3x-e: - Add a directory framework to support the Atmel AT91SAMA5D3 family and - the SAMA5D3x-EK board(s) in particular. There is very little here on - the first check-in, this structure is being used now primarily to - create the Cortex-A5 support (2013-7-19). - * arch/arm/src/armv7-a/arm_cache.S: Cortex-A5 cache operations - (2013-7-20). - * /arch/arm/src/armv7-a/arm_fpuconfig.S and fpu.h: A few more files for - the ARMv7-A/Cortex-A5 port (2013-7-21). - * arch/arm/src/sama5/sam_boot.c, sam_clockconfig.h, sam_lowputc.h, and - sam_timerisr.c: A few more files for the SAMA5D3 port (2013-7-21). - * configs/sama5d3x-ek/src/sam_autoleds.c: A few more files for the port - to the SAMA5D3x-EK board (2013-7-21). - * arch/arm/src/sama5/sam_irq.c: SAMA5 interrupt handling logic - (2013-7-22). - * arch/arm/src/sama5/sam_clockconfig.c: Add SAMA5 PLL configuration - logic (plus associated header files). Initiali checkin is for the - SAM3U which is very similar but needs to be verified (2013-7-22). - * arch/arm/src/sama5/sam_periphclks.h: Add macros to enable and - disable SAMA5 peripheral clocks (2013-7-22). - * arch/arm/src/sama5/sam_lowputc.c and sam_serial.c: Add support - for SAMA5 UARTs. Does not even compile as of initial checkin. - (2013-7-22). - * arch/arm/src/sama5/sam_gpio.c: Add GPIO configuration support - for the SAMA5. Still compilation issues. (2013-7-22). - * arch/arm/src/sama5/chip/sama5d3x_pinmap.h: Add pin multiplexing - definitions for the SAMA5D3 (2013-7-23). - * arch/arm/src/sama5/chip/: New header files for SAMA5 AXI Matrix - SFR, and BSC blocks (2013-7-23). - * arch/arm/src/armv7-a/arm_vectors.S: Force 8-byte stack alignment - in interrupt handlers before calling C code. Other ARM - architectures need to do this as well (2013-7-23). - * arm/src/armv7-m/up_copyarmstate.c and armv7-a/up_copyarmstate.c: - Added a new form of the register copy function that should save quit a - bit of time for armv7-m (without common vectors) and with armv7-a - (2013-7-23). - * arch/arm/src/armv7-a/arm_restorefpu.S, arm_savefpu.S, arm_doirq.c, - arm_fullcontextrestore.S, arm_saveusercontext.S: Add hardware - floating point register save/restore logic for the Cortex-A5 - (2013-7-23). - * arch/Kconfig: Attempt at generic external memory configuration is not - flexible enough, especially for the SAMA5. Move external memory - configuration options from arch/Kconfig to - arch/arm/src/lpc17xx/Kconfig, lpc31xx/Kconfig, sam34/Kconfig, and - sama5/Kconfig and renamed each from CONFIG_ARCH_ to, for example, - CONFIG_LPC31_. This renaming also affect many defconfig files - (2013-7-24). - * arch/arm/src/sama5/Kconfig and sam_allocateheap.c: Set up - configuration options for SAMA5 external memory regions; add a custom - sam_allocateheap.c to add the various configured memory regions to the - heap (2013-7-24). - * configs/sama5d3x-ek/src/sam_buttons.c, sam_userleds.c, and - sam_autoleds.c: Add support for the buttons and LEDs on-board the - SAMA5D3x-EK (2013-7-24). - * configs/sama5d3x-ek/ostest/defconfig: Switch console to USART1 - (2013-7-4). - * arch/arm/src/sam34/Kconfig and drivers/serial/Kconfig: All serial - configuration logic for USARTs needs to depend on if the USART is - configured as a UART or not. And this is for all CPUS, not just - SAM3/4 (2013-7-24). - * arch/arm/src/arm/up_head.S and arch/arm/src/armv7-a/arm_head.S: - Fix a bug (uninitialized register error) that crept in the ARM9 - boot-up code several years ago and was cloned into the Cortex-A5 - code. Obviously no one has used the ARM9 NuttX port for years! - * Many files: Finally... I changed the naming of configuration - variables like CONFIG_DRAM_ to CONFIG_RAM_. This has bothered - me for a long time since most boards don't have DRAM. The more - generic RAM naming should not produce so much cognitive dissonance - (2013-7-26). - * configs/sama5d3x-ek/hello: Added a tiny hello world configuration - to simplify bring up of the SAMA5 (it will probably be removed - later) (2013-7-26). - * The sama5d3x-ek/hello now runs correctly (2013-7-28). - * configs/sama5d3x-ek/ostest/: This configuration has been modified - to run out NOR flash. More work is still needed to reconfigure the - SMC so that the NOR flash can work with the high clock (2013-7-28). - * arch/arm/src/sama5/sam_clockconfig.c/h and - configs/sama5d3x-ek/src/sam_norflash.c: Add a file structure that - will (eventually) support reconfiguration of NOR flash when NuttX - boots from NOR FLASH (2013-7-29). - * arch/arm/src/sama5/chip/sam_hsmc/h: SAMA5 HSMC register - definition file (2013-7-29) - * configs/sama5d3x-ek/src/sam_norflash.c: Add board specific - logic to re-configure the SAMA5D3x-EK NOR FLASH before while - running out of NOR FLASH. We need to change the NOR FLASH - timing BEFORE increasing the main clock (2013-7-29). - * configs/sama5d3-ek/norboot and src/nor_main.c: The norboot - configuration to help debug NuttX in NOR flash. It runs - out of ISRAM, configures NOR FLASH, then waits for you to - break in with a debugger to start the program in NOR FLASH - (2013-7-29). - * arch/arm/src/armv7-a/arm_cache.S: Separate the bigger cache - operations into separator files (2013-7-29). - * arch/arm/src/stm32/stm32_dac.c: Fixed numerous DAC driver - errors and added support for DAC DMA (contributed by John - Wharington, 2013-7-30). - * arch/arm/src/stm32/stm32f30xx_i2c.c: An I2C driver for - the STM32 F3 family from John Wharington (2013-7-30). - * arch/arm/include/armv7-m: Add irqdisable() (2013-7-30); - * configs/sama5d3-ek/src/nor_main.c: Now disables interrupts - before jumping to NOR flash (2013-7-30). - * configs/sama5d3-ek/nsh: Add an NSH configuration for the - SAMA5D3x-EK (2013-7-31) - * configs/sama5d3-ek/src/sam_cxxinitialize.c: Add C++ support - (2013-7-31). - -6.30 2013-09-14 Gregory Nutt - - * arch/arm/src/sama5/arm_pghead.S: Separate the logic that is - enabled by CONFIG_PAGING out of arm_head.S. That was just - too much conditional compilation to be supportable - (2013-8-1). - * arch/arm/src/sama5/arm_head.S: Setup page table mappings for - all of .text, .bss, .data, stacks and heap before enabling - the MMU and caching. This is safer because it avoids the - caching issues (and much less redundant) (2013-8-1) - * arch/arm/src/sama5/chip/sam_mpddrc.h: Add DDR controller - registers definitions for the SAMA5 (2013-8-1). - * nuttx/configs/sama5d3x-ek/src/sam_sdram.c: Add logic which - will (eventually) support the SDRAM on the SAMA5D3x-EK - board. Initial commit is untested and incomplete (2013-8-1). - * arch/arm/src/armv7-a/arm_mmu.c: Move some generic MMU logic - out of SAMA5-specific code into this share-able file (2013-8-2) - * arch/arm/src/armv7-a/mmu.h: Add inline functions to invalidate - a single TLB. - * arch/arm/src/sama5/sam_allocateheap.c and chip/sama5d3x_memorymap.h: - Add logic to handle signed overflow when a memory region is - greater than or equal to 2GB (2013-8-2). - * arch/arm/src/sama5/sam_boot.c: Boot logic now initially - configures DRAM as strongly ordered so that it can be initialized. - After initialization, the page table entries are modified so - that DRAM is fully cache-able (2016-8-2). - * arch/arm/src/sama5/chip/sam_mpddrc.h: Correct typos in the - SAMA5 DDR controller register definitions (2013-8-2). - * arch/arm/src/sama5/sam_irq.c: Correct handling of spurious - interrupts (2013-8-3). - * arch/*/src/*/*_irq.c: Standardize configuration variables used - to enable interrupt controller debug output (2013-8-3). - * arch/arm/src/sama5/chip/sam_dmac.h: Add register definitions for the - SAMA5 DMA controller (2013-8-3). - * arch/arm/src/sama5/sam_dmac.c and sam_dmac.h: Add support for the - SAMA5 DMAC controllers. Initial check-in is untested and is a - straight leverage from the SAM3/4 (2013-8-4). - * arch/arm/src/sama5/sam_spi.c, sam_spi.h, and chip/sam_spi.h: - Leverage SPI support from SAM/3/4. Initial check-in is untested - and have several limitations: No DMA, no SPI1 support (2013-8-4). - * arch/arm/src/sama5/sam_spi.c and sam_spi.h: Now supports SPI1 - and a register access debug option (2013-8-4). - * configs/sama5d3x-ek/src/sam_spi.c: Add board support for the - AT25 serial flash (2013-8-4). - * configs/sama5d3x-ek/nsh/defconfig: FAT file system support is - now enabled by default (2013-8-5) - * configs/sama5d3x-ek/src/sam_nsh.c: Automatically mount AT25 - file system for NSH if so configured (2013-8-5). - * configs/sama5d3x-ek/src/sam_nsh.c: Verified that the AT25 FLASH - works on the SAMA5D3x-EK boards and can support a FAT file system - (2013-8-5). - * arch/arm/src/sam34/sam_spi.c: Corrected an error in the SAM3/4 - SPI driver while testing the SAMA5 SPI driver: If CONFIG_SPI_OWNBUS - is not set, the driver will not configure the SPI mode correctly - (2013-8-5). - * configs/sama5d3x-ek/src/sam_at25.c: Move AT25 initialization logic - out of sam_nsh.c and into a separate file where it can be better - shared (2013-8-5). - * arch/arm/src/sama5/sam_hsmci.c, sam_hsmci.h, and chip.sam_hsmci.h: - Add register definitions and a driver for the (3) HSMCI memory card - interfaces provided by the SAMA5. Leveraged from the SAM3/4 and - untested on initial commit (2013-8-5). - * nuttx/configs/sama5d3x-ek/src/sam_hsmci.c and sam_nsh.c: Add support - for the (2) SD card slots provided on the SAMA5D3x-EK boards. - Untested on initial commit (2013-8-5). - * arch/arm/src/sama5 and nuttx/configs/sama5d3x-ek: Massive renaming - to get consistent once and for in the usage of PIO vs GPIO. Other - platforms use the term GPIO more, but Atmel prefers PIO. I prefer - consistency. Also fixed CONFIG_PIO vs CONFIG_SAMA5_PIO and renamed - files sam_gpio.* to sam_pio.* (2013-8-6). - * arch/arm/src/sama5/sam_pioirq.c: Add support for SAMA5 PIO interrupts - (2013-8-6). - * configs/sama5d3x-ek/src/sam_hsmci.c: Add support for SD slot card - detection PIO interrupts (2013-8-6). - * arch/arm/src/sam34/sam_hsmci.c and sama5/sam_hsmci.c: Fix handling - of some masked status conditions that can cause false-alarm errors - (2013-8-6). - * arch/arm/src/sama5/sam_dmac.c and sam34/sam34_dmac.c: For SAMA5, - correct some bad register address and some bad assertions that caused - false alarms. These latter were backported to the SAM34 DMAC driver - as well (2013-8-6). - * arch/arm/src/sama5/sam_dmac.c and sam34/sam34_dmac.c: Correct - some parameters reversed in function call (2013-8-6). - * arch/arm/src/sama5/sam_spi.c: The SAMA5 SPI driver now supports - DMA transfers (2013-8-9). - * arch/arm/src/sama5/sam_dmac.c: Finally after many bugfixes (the - last being caching issues), the SAMA5 DMA support has been - verified (with SPI) (2013-8-9). - * arch/arm/src/sama5/sam_memories.c and .h: Centralize logic for - conversions between physical and virtual addresses (2013-8-9). - * arch/arm/src/sama5/sam_hsmci.c and sam34/sam_hsmci.c: Correct a - race condition in the SAMA5 HSCMI driver: The transfer done - interrupt was firing before the wait was started. Fix this and - also backported the changes to SAM3/4 (untested). Now HSCMI is - functional on the SAMA5 with DMA! (2013-8-10). - * arch/arm/src/sam34/sam3u_periphclks.h: Correct a typo in a register - name (2013-8-10). - * drivers/mmcsd/mmcsd_sdio.c: Correction for a bad return value - when multiple block SDIO transfers are suppressed. By Andrew Tridgell - via Lorenz Meier (2013-8-10). - * drivers/serial/serial.c, drivers/usbdev/cdcacm.c, and - include/nuttx/fs/ioctl.h: Added support for FIONREAD and FIONWRITE, - added TERMIOS input / output processing support for UART and CDCACM - serial ports. Implemented by Mike Smith, Andrew Tridgell and Lorenz - Meier (2013-8-10). - * drivers/usbdev/cdcacm.c: Added FIONREAD and FIONWRITE to CDC/ACM - driver based on serial.c implementation. From Lorenz Meier - (2013-8-10). - * arch/arm/src/stm32/Kconfig and stm32_serial.c: Added option to - disable serial port reordering. From Lorenz Meier (2013-8-10). - * arch/arm/src/sama5/Kconfig, sam_ohci.c, and - arch/arm/src/sama5/sam_clockconfig.c: Add a OHCI driver for the SAMA5. - Untested on initial check-in (2013-8-11). - * include/nuttx/usb/usbhost.h, arch/arm/src/stm32, arch/arm/src/lpc17xx, - and include/nuttx/usb/usbhost.h, and nuttx/configs/: - Move prototype of usbhost_initialize() of usbhost.h and into - architecture specific files. This is necessary because some chips - (like the SAMA5) have multiple, different USB host interfaces - (2013-8-11). - * drivers/usbhost/usbhost_hidkbd.c and usbhost_storage.c: Correct some - compilation errors when pre-allocated class structures are used. Also - eliminate some warnings about uninitialized variables (2013-8-11). - * configs/sama5d3x-ek/src/sam_usb.c and related files: Add support for - initialization of the USB host and mass storage class device (2013-8-11). - * arch/arm/src/sama5/sam_ohci.c and sam_usbhost.h (was sam_ohci.h), and - configs/sama5d3x-ek/src/sam_usb.c, and sama5d3x-ek.h: Add controls - to enable VBUS power in OHCI host most (2013-8-12). - * includes/nuttx/usb/usbhost.h, all USB host drivers in arch/, and all - USB host-side connection monitoring threads in configs/*/src: The - SAMA5 has three downstream ports; all of the other USB host - implementations have only one. This will require significant changes - to the USB host interfaces starting with these changes to monitor - connections on a port-by-port basis. This effects a lot of files and - more changes are coming for this issues. Changes are being blindly - incorporated into other architrectures. I am being careful to avoid - breakage, but I expect some (2013-8-12). - * configs/olimex-stm32-p107/nsh/defconfig and appconfig: Converted to - use the kconfig-frontends tool. From Max Holtzberg (2013-8-12). - * includes/nuttx/usb/usbhost.h, et al: Continued changes to the USB - host interface to support multiple downstream ports. When a class - is disconnected, it needs to provide the FunctionAddress to the - USB HCD disconnect method so that the HCD will know which port - is being disconnected (2013-8-12). - * nuttx/arch/arm/src/stm32/Kconfig, Make.defs, and /stm32f30xxx_i2c.c: - STM32 F3 I2C fixes from John Wharington (2013-8-13). - * nuttx/arch/arm/src/sama5/sam_serial.c: Fix a re-entrancy problem - in up_putc(). I think all architectures have this re-entrancy - than can result in serial interrupt being disabled, but I have only - seen the symptom on SAMA5 (2013-8-13). - * includes/nuttx/usb/usbhost.h and many other affected files: Separate - wait() and enumerate() methods from struct usbhost_driver_s and move - to new interface, struct usbhost_connection_s. This is part of the - necessary restructuring of the USB host interface to support multiple - root hub ports (2013-8-13). - * arch/arm/src/sama5/sam_ohci.c: Major restructuring of the driver due - in order to handle multiple root hub ports. Basically instead of one - driver structure with an arrayof root hub port structures, there is no - one container structure with an array of driver structures, one for - each root hub port. The advantage is that each class->driver call not - passes information associated with the RHport implicitly. The klugey, - procedural alternative was to add the function address to every - interface method (which I started to do but backed above) (2013-8-13). - * arch/arm/src/sama5/sam_memories.c and .h: Extended logic so do - conversions from physical to virtual addresses (2013-8-14). - * arch/arm/src/sama5/sam_ohci.c: Add D cache controls and conversion - between physical and virtual address (2013-8-14). - * arch/arm/src/stm32/stm32_spi.c: nbits() interface extended to - control bit order as well as bit width (from Teemu Pirinen) - (2013-8-16) - * arch/arm/src/sama5/sam_ohci.c: More to be tested, but the SAMA5 - OHCI driver is now basically functional (2013-8-16). - * include/nuttx/usb/ehci.h: EHCI header file (2013-8-17). - * arch/arm/src/stm32/stm32_i2c.c: Correct an error that crept into - the STM32 F1 I2C driver with some recent changes. From Yiran Liao - (2013-8-18). - * drivers/usbhost/usbhost_devaddr.c and include/nuttx/usb/usbhost_devaddr.h: - Add logic for management of device addresses. This logic does not - currently hook into into anything. It will someday be a part of the - NuttX USB hub implementation (2013-8-18). - * nuttx/arch/arm/src/sama5/sam_ehci.c and other files: Create a skeleton - environment for development of an EHCI driver. Not much in place yet - (2013-8-20). - * nuttx/arch/arm/src/sama5/sam_ehci.c: Now code complete for all - asynchronous endpoints (control and bulk); nothing yet in place - for periodic endponts (interrupt and isochronous) (2013-8-22). - * include/nuttx/serial/serial.h and arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h: - SourceForge bug #16 Fix IO pin map. Add CONFIG_SERIAL_TERMIOS support. - Also fixes some STM32 F4 Timer 8 pin configurations. From CCTSAO - (2013-8-23). - * arch/arm/src/lpc17xx/lpc17_usbhost.h: Fix #endif with missing #if - condition. Reported by Andrew Bradford (2013-8-23). - * nuttx/arch/arm/src/sama5/sam_ehci.c: Now handles low- and full-speed - connections by giving the port to the OHCI driver (2013-8-24). - * nuttx/arch/arm/src/sama5/sam_ohci.c: Now uses the work queue to - defer interrupt processing (2013-8-24). - * nuttx/arch/arm/src/sama5/sam_ohci.c and nuttx/arch/arm/src/sama5/sam_ehci.c: - EHCI is now the common interrupt "master." It will receive all UHPHS - interrupts and route the interrupt event to both the OHCI and EHCI - logic (2013-8-24). - * net/uip/uip_arp.c: Correct backward condition in netmask task. - From Max Holtzberg (2013-8-25). - * arch/arm/src/sama5/sam_ohci.c: SAMA5 OHCI is again functional by - itself after all of the changes to integrate with EHCI. (2013-8-25). - * drivers/net/encx24j600.c/.h and include/nuttx/net/encx24j600.h: - Support the Microchip ENCX24J600 Ethernet driver from Max Holtzberg - (2013-8-25). - * configs/olimex-stm32-p107: Incorporate ENCX24J600 support for the - Olimex STM32 P107 board. From Max Holtzberg (2013-8-25). - * fs/romfs/fs_romfsutil.c: Fix an error where long (>15) file names - were read incorrectly from a ROMFS file system. From Mike Smith - (2013-8-25). - * arch/arm/src/stm32/stm32_sdio.c: SourceForge bug #17 Fix if - CONFIG_SDIO_BLOCKSETUP defined, OS will crash". Generate an error - if CONFIG_SDIO_BLOCKSETUP is defined; that option is not yet supported - by the STM32 SDIO driver. From CCTSAO (2013-6-26) - * drivers/net/encx24j600.c and .h: Use the ENC's SRAM for multiple TX - packets. From Max Holtzberg (2013-6-26). - * include/nuttx/usb/usbhost.h, drivers/usbhost/usbhost_enumerate.c, and - all USB host drivers: Added a new driver method: getdevinfo. This - method is intended to get various information about the connected device, - but currently returns only the device speed. The device speed is - necessary by usbhost_enumerate in order to set a credible initial EP0 - max packetsize. High speed needs 64 bytes, low speed needs 8 bytes, - and full speed can handle almost any size (2013-8-26). - * arch/arm: Add hooks for Cortex-A8. Not much more yet (2013-8-27). - * Lots of files: Fix all occurrents of "the the" in documentation and - comments (2013-8-27). - * arch/arm/src/sama5/sam_allocateheap.c: Correct the logic that - determines which memory regions get added to the heap. When - CONFIG_MM_NREGIONS > 1, the logic was adding the ISRAM region to - the heap twice! (2013-6-27). - * nuttx/arch/arm/src/sama5/sam_ehci.c: Add (untested) support for - interrupt endpoints (2013-8-28). - * arch/arm/src/sama5/chip/sam_udphs.h: High-speed USB device register - definitions for the SAMA5 (2013-8-28) - * arch/arm/src/sama5/sam-udphs.c: A framework for the USB device - driver taken from another architecture. There is very little - useful in this initial check-in (2013-8-29). - * Remove all empty and most useless README.txt files (2013-8-31) - * configs/freedom-kl25z/src/kl_spi.c: Correct typo in name of a - function. From Alan Carvalho de Assis (2013-8-31). - * drivers/usbdev/cdcacm_desc.c: Fixed some compilation errors that - only occur when dual speed support is enabled (2013-9-1). - * arch/arm/src/sama5/sam_clockconfig.c and configs/sama5d3x-ek/include/board_*mhz.h: - Add logic to support UDPHS clocking (2013-9-13). - * arm/src/stm32/chip/stm32_tim.h: Some CCER bit settings changed - per SourceForge bug #18 submitted by CCCTSAO (2013-9-2). - * apps/examples/cc3000, configs/freedom-kl25z, drivers/wireless/cc3000, - and nuttx/include/nuttx/cc3000. Initial support for the TI CC3000 - network module on the Freescale Freedom-KL25Z board from Alan Carvalho - de Assis. This is still very much a work in progress (2013-9-3). - * configs/*/usbmsc: Renamed from config/*/usbstorage to match the - change in naming in apps/examples submitted by CCTSAO (2013-9-5). - * drivers/usbdev/cdcacm.c and pl2303.c: Don't use max packetsize assigned - to the endpoint when allocating request buffers; The default value of - the endpoint max packetsize may be incorrect because the endpoint - has not yet been configured. Verified on CDC/ACM. Corresponding - changes made to pl2303, but untested (2013-9-5). - * arch/arm/src/sama5/sam_udphs.c: The high-speed device side driver - is now functional (although more testing is always needed) (2013-9-5). - * net/net_monitor.c: Fixes a race condition where a loss of connection - may not be detected when the connection is lost before it has been - accepted (from Max Holtzberg) (2013-9-6). - * configs/sama5d3x-ek/demo: Add a new NSH configuration. The - original NSH configuration will be a simple platform for testing - individual features; the demo configuration will be a more complex - platform for demonstrating multiple interacting features (2013-9-6). - * net/uip/uip_tcpbacklog.c: Fix a major bug in the TCP/IP backlog - initialization: Only the first backlog buffer was getting added - to the free list. From Max Holtzberg (2013-9-6). - * configs/sama5d3x-ek/demo: Add support for USB MSC device on the - AT25 serial FLASH (untested) (2013-9-6). - * drivers/net/enc28j60.c: Changes back-ported from the ENCX24J600 - to the ENC28J60 by Max Holtzberg. These seem like reasonable and - correct changes, but have yet to be verified on an ENC28J60 (2013-9-6). - * drivers/usbdev/usbdev_strings.c: Extended decoding and stringifying - of USB trace output to include trace output from class drivers. - (2013-9-6). - * drivers/usbdev/usbmsc_desc.c: Fix a warning when USB MSC is - compiled for a high-speed device (2013-9-7). - * drivers/usbhost/usbhost_storage.c: If device is returning fatal - transfer errors while attempt to initialize, don't bother with - the startup retries; abort immediately so that the device will - be reset and we can try again (2013-9-9). - * drivers/usbhost/usbhost_storage.c: Correct a reference counting - error: When an MSC device transfer fails while waiting for - UnitTestReady (see 2013-9-9), the reference count was not being - decremented. The end result is a memory leak (2013-9-10). - * arch/arm/src/sama5/chip/sam_twi.h: Added SAMA5 TWI register - definition file (2013-9-11). - * arch/arm/src/sama5/sam_twi.c and .h: Framework for a SAMA5 - TWI driver (not much present in initial checkin) (2013-9-11). - * fs/nxffs: Clean up some compilation warnings (2013-9-12) - * drivers/mtd/at24xx.c: Add support for the AT 24C512 part - (2013-9-12). - * arch/arm/src/sama5/sama5_twi.c: Clean up some errors that - only occur with CONFIG_DEBUG_I2C (2013-9-12). - * arch/arm/src/sama5/chip/sam_emac.h and sam_gmac.h: Register - definition files for the SAMA5 EMAC and GMAC peripherals - (incomplete on the initial commit) (2013-9-12). - * arch/arm/src/stm32/stm32_can.c: Make filter register accessible - for CAN1 and CAN2. Patch provided by Lorenz Meier (2013-9-13). - * nuttx/include/nuttx/usb/cdcacm.h: Fix backward conditional - compilation in the CDC/ACM driver with regard to remote - wakeup and self-powered capabilities. Provided by Lorenz Meier - (2013-9-13) - * fs/romfs/fs_romfsutil.c: Fix for filenames > 15 characters. - Provided by Lorenz Meier (2013-9-13). - * arch/arm/src/stm32/Kconfig: Fix STM32 UART7/8 kconfig names - and UART DMA. Provided by Lorenz Meier (2013-9-13). - * configs/maple: Board configuration for the LeafLabs Maple - and Maple Mini boards. From Librae (2013-9-13). - * arch/arm/src/sama5/sam_emac.c and .h: Skeleton files for - a SAMA5 EMAC driver. Not much in the initial files; these - are just hacked out and gutted versions of the corresponding - STM32 files (2013-9-13). - -6.31 2013-10-28 Gregory Nutt - - * nuttx/fs/romfs/fs_romfsutil.c: Back out part of a recent - ROMFS change (2013-9-14). - * configs/sama5d3x-ek/src/sam_ethernet.c: Add support for - PHY interrupts (2013-9-15). - * arch/arm/src/kl/chip/kl_pit.h and kp_tpm.h: Add register - definitions for the Freescale Kinetis KL25Z from Alan - Carvalho de Assis (2013-9-15). - * configs/ and a few Ethernet drivers: Add the prefix ETH0 - to all PHY configuration selections. This will allow us - to support to Ethernet MAC drivers with two different - PHYs (identified with ETH0 and ETH1) (2013-9-17). - * net/Kconfig and drivers/net/Kconfig: Move PHY selections from - net/Kconfig to drivers/net/Kconfig where they belong. Add the previx - ETH0_ to each PHY selection. And a new configuration - CONFIG_NETDEV_MULTINIC that can be set to enable support for multiple - Ethernet MAC drivers (not fully implemented yet). When Enabled, - another set of PHY selections are enabled for ETH1_ (2013-9-17). - * include/nuttx/net/mii.h: Add definitions for the Micrel KSZ8051 PHY - (2013-9-17). - * configs/zkit-arm-1768: MMC/SD is on SPI, not SSP0. From Rashid - Fatah (2013-9-17). - * configs/: Lots of defconfig files changes. A consequence of the - above renaming and moving of the PHY configuration settings is - that the you now also have to set CONFIG_NETDEVICES=y if you - need to set a PHY configuration (2013-9-17). - * arch/arm/src/lpc17xx/lpc17_spi.c: Remove undefined spi_select() - prototype. This was causing compile time warnings (2013-9-17). - * configs/sama5d3x-ek/src/sam_ostest.c: Add OS test support for - the FPU test (2013-9-18). - * arch/arm/src/sama5/sam_usbhost.h and include/nuttx/usb/usbhost_trace.h - Correct some inconsistencies in the way that USB configuration - settings are used. This caused compilation errors in SAMA5 OHCI - when USB debug was ON but USB host tracing was off (2013-9-19). - * nuttx/arch/arm/src/sama5/sam_clockconfig.c: When 480MHz UPLL - is used to drive OHCI, it should have a divider of 10. However, - that does not work. A divider of 5 does. Why? (2013-9-19). - * Several USB device driver files: Change naming of SELFPOWERED - and REMOTEWAKEUP to avoid name collisions. Prepend the name - of the driver (for example CDCACM_SELFPOWERED) (201309-20). - * configs/sama5d3x-ek/nsh and demo: Increase the number of pre-allocated - watchdog timers. The default number of 4 was easily being exhausted - in the more complex configurations. Enable the task name feature - to provide prettier ps command output. src/sam_usb.c: Use more - descriptive task names when starting the EHCI and OHCI monitor tasks - (2013-9-20). - * arch/arm/src/sama5/sam_ohci.c: Fix a place where DMA-related data - needed to be flushed to data cache; Fix another where a virtual address - was being used in a register where a physical address was required - (2013-9-20). - * arch/arm/src/armv7-a/cp15_clean_dcache.S and cp15_flush_dcache.S: - fix an error in the alignment of addresses to cache line boundaries - (2013-9-21). - * drivers/usbdev/cdcacm_desc.c: Change the interval for the interrupt - endpoint from 0xff (invalid) to 10. This is not a critical change - but will avoid a complaint from the Linux driver when it overrides - the 0xff value (2013-9-22). - * configs/zkit-arm-1769: LED1 is now user controllable after booting. - From Rashid Fatah (2013-9-23). - * arch/arm/src/sama5/sam_hsmci.c: TX DMA disabled. It is just not - reliable. No idea why. RX DMA is still used (2013-9-23). - * driver/net/encx24j600.c: UDP/RXAVAIL backlog support from Max - Holtzberg (2013-9-24). - * Standardized stack checking logic so the interfaces can be used - by common stack monitoring logic (2013-9-24). - * drivers/net/Kconfig: Move CONFIG_NET_DUMPPACKET out of LPC17 - and STM32 Kconfigs into the common network driver Kconfig (2013-9-25). - * arch/arm/src/sam_emac.c: EMAC driver is basically functional. More - testing is needed (as always) (2013-9-25). - * configs: Changes to many defconfig files resulting from moving - apps/examples/usbmsc to apps/system/usbmsc (2013-9-25). - * configs: Changes to many defconfig files resulting from moving - apps/examples/cdcacm to apps/system/cdcacm (2013-9-25). - * configs: Changes to many defconfig files resulting from moving - apps/examples/composite to apps/system/composite (2013-9-25). - * configs/stm3210e-eval/composite: Converted to use the kconfig- - frontends tool (2013-9-25). - * arch/arm/src/sama5/sam_gmac.c: Initial GMAC driver is really - just the EMAC driver forced to compile with the GMAC register - definitions (2013-9-26). - * arch/arm/src/sama5/sam_gmac.c and include/nuttx/net/gmii.h: - Beginning of support for GMII/RGMII PHY support (2013-9-26) - * net/netdev_txnotify.c: Look up of device using subnet will fail - if the packet is being sent out of our subnet (via a router). - The fallback here is just to use "eth0" if the subnet lookup - fails. This will, of course, will have to be revisited if/when - multiple NICs are supported. From Max Holtzberg (2013-9-27). - * net/send.c: Fix some backward conditional logic in check - to see if we should check if the ARP address in the table. From - Max Holtzberg (2013-9-27). - * drivers/net/encx24j600.c: Removed logic that polls for the - next outgoing packet from the TX done interrupt handling. From - Max Holtzberg (2013-9-27) - * sched/os_start.c: Should not call group_setupidlefiles() if there - are no file descriptors (and, hence, no file system) (2013-9-27). - * arch/arm/src/sama5/sam_gmac.c: GMAC driver and GMII logic is - code complete and ready for test (2013-9-27) - * configs/compal_e86: Basic board support for the Motorola C139 - (Compal E86) phone. From Craig Comstock (2013-9-27). - * configs/compal_e86: Converted to use the kconfig-frontends - tools (2013-9-27). - * drivers/net/encx24j500.c: Use separate pools for RX and TX - descriptors. From Max Holtzberg (2013-9-28). - * nuttx/fs/fs_sendfile.c, nuttx/net/net_sendfile.c, and other file: - Integrate an optimized sendfile() operation from Max Holtzberg - (2013-9-28). - * tools/mkdeps.*, nuttx/mm/Makefile, nuttx/libc/Makefile: Dependency - generation generation was broken for directories that keep objects in - a sub-directory. Fixed by adding a object path to the mkdeps.c, - mkdeps.bat, mkdeps.sh tools (2013-0-29). - * arch/arm/src/sama5/chip/sam_adc.h: ADC register definition file. - Incomplete on initial check-in (2013-9-29). - * arch/arm/src/sama5/sam_adc.c and .h: Framework for an ADC - driver to come (just empty "skeleton" files on initial commit) - (2013-9-30). - * arch/arm/src/sama5/sam_touchscreen.h and .h: Framework for a - touchscreen driver (also an empty "skeleton" file on the initial - commit) (2013-9-30). - * arch/arm/src/kl/kl_lowgetc.c and .h: First cut at low-level - getc() function for operation with no file system (and, hence, - no serial driver) (from Alan Carvalho de Assis, 2013-9-30). - * configs/freedom-kl25z/minnsh: A new configuration that is - an experiment to see how small we can get the NuttX footprint. - From Alan Carvalho de Assis. (2013-9-30). - * net/net_sendfile: The high performance sendfile logic is - now functional. From Max Holtzberg (2013-9-30). - * tools/define.sh: 'cut' no longer works as it once did. Script - adapted to observed behavior (2013-9-30). - * include/nuttx/net/route.h and net/net_*route.c: Partial - implementation of a routing table. Not yet hooked into the - build system (2013-10-1) - * include/net/route.h: Defines the application interface to - the routing table (2013-10-2). - * configs/spark: Add configuration for the Spark Core. The - initial check-in is basically the Maple Mini board (2013-10-2). - * include/net/route.h and libc/net/lib_addroute.c and delroute.c: - Add an application interface to manage the routing table - (2013-10-2). - * arch/arm/src/sama5/sam_adc.c and sam_tsc.c: The SAMA5 - touschscreen drive is basically functional) (2013-10-3) - * arch/arm/src/sama5/chip/sam_lcdc.h: Add SAMA5 LCD register - definition header file (2013-10-4). - * net/netdev_findbyaddr.c: Now (1) uses the routing table - if available to look up the router to get to a remote network, - and (2) if there is only a single network device and no - route, then it will simply return that single device. The - ARP logic will use the default router address associated with - the interface in this case (2013-10-5). - * net/netdev_router.c and net/uip/uip-arp.c: When the target IP address - does not lie on the device's networker when we have a routing table, - looking the correct router IP address to use in the ARP request. - In that case, we want the MAC address of the router, not of the - target endpoint (2013-10-5). - * net/netdev_rxnotify.c and others: Use the new signature of rxnotify - caused by the routing table. From Max Holtzberg (2013-10-6). - * arch/arm/src/sama5/sam_lcdc.c and .h: Empty "skeleton" file that - will eventually become an LCDC driver for the SAMA5 (2013-10-6). - * net/net_close.c, net/uip/uip_tcpcon, and include/nuttx/net/uip/uip-tcp.h: - Make net_close() nonblocking and free unestablished connections if no - free connections available. From Max Holtzberg (2013-10-6). - * net/net_close.c and other: Update of change of 2013-10-6 from - Max Holtzberg (2013-10-8). - * arch/arm/src/sama5/sam_lcd.c: LCDC driver is code complete and - incorporated into the build system (but still untested (2013-10-8). - * configs/sama5d3x-ek/nx: Add an examples/nx configuration that - will be used for the SAMA5 LCD bring-up (2013-10-8). - * configs/arduino-due/Kconfig and include/board.h: Add configuration - to select revision 3 of the Arduino Due which has some small - but important differences. Suggested by gdi@embedders.org. - * arch/arm/src/sama5/sam_allocateheap.c, Kconfig, chip/sama5d3_memorymap.h: - Add support so that subsets of the total DRAM (and other external - memory) can be added to the heap, leaving other memory reserved for - other purposes (like LCDC framebuffers) (2013-10-10). - * arch/arm/src/sama5/sam_lcd.c: Change how DMA descriptors are - allocated. My reading of the SAMA5 MATRIX is that the LCDC will - be unable to DMA from internal SRAM (2012-10-10). - * arch/arm/src/sama5/Kconfig and configs/sama5d3x-ek/nx/defconfig: The - default LCD resolution is now RGB565. Added output resolution selection - which can be different from the software resolution (2013-10-10. - * arch/arm/src/sama5/sam_lcd.c wait before modifying register if the LCDC - is re-synchronizing (SIF). Use start-up configuration settings from - Barebox. They still don't work (2013-10-10). - * net/net_monitor.c: Notify the socket layer if a connection is lost - before the monitoring callback has been registered. From Max - Holtzberg (2013-10-11). - * net/recvfrom.c, sendto.c, uip/uip_input.c, uip/uip_udpcallback.c, - uip/uip_udpconn.c, uip/uip_udpinput.c: Changed the meaning of the - uip_*input functions. They now return success when a packet is - dropped; This is needed for the ENCX24J600 driver that must make - a decision to return the packet or not: It should not retry - dropped packets. From Max Holtzberg (2013-10-11). - * drivers/net/encx24j600.c and Kconfig: ENCX24J600: Improved descriptor - handling, free packets on rx abort interrupt. From Max Holtzberg - (2013-10-11). - * arch/arm/src/sama4/sam_lcd.c and configs/sama5d3x-ek/include/board.h: - Fix PWM precealler divider. This eliminiates the backlight flicker - (2013-10-11). - * arch/arm/src/sama5/sam_boot.c: Correct how framebuffer memory was - being mapped. The mapping was getting overrwritten and the - framebuffer memory was ending up cacheable (2013-10-13). - * arch/arm/src/sama5/Kconfig, sam_lcdc.c, defconfig, and related files: - Remove options for obtaining framebuffer memory in other ways. That - option just really cannot work (2013-10-13). - * configs/sama5d3x-ek/nxwm: Add NxWM configuration for SAMA5D3x-EK - (2013-10-13). - * configs/sama5d3x-ek/nxwm/defconfig: Now uses scaled icons in the - the NxWM taskbar (2013-10-15). - * configs/sama5d3x-ek/nxwm/defconfig: Use the 320x320 NuttX logo as - the NxWM background (2013-10-15). - * arch/arm/src/stm32/chip/stm32f103c_pinmap.h: Pinmapping corrections - from David Sidrane (2013-10-16). - * configs/spark: The Spark device configuration is receiving some - TLC from David Sidrane (2013-10-16). - * drivers/mtd/sst25.c: Add support for the SST25VF016B. From David - Sidrane (2013-10-16). - * net/net_close.c: Changed net_close debug output to verbose. From - Max Holtzberg (2013-10-17). - * net/send.c and net_sendfile.c: Reset the send timeout when the - data is ACKed, not when the data is sent. Remove conditions on - checking for timeout. From Max Holtzberg (2013-10-17). - * net/net_sendfile.c: Correct parameter passed to netdev_txnotify() - from Max Holtzberg (2013-10-17). - * include/nuttx/net/uip/uip-tcp.h, net/send.c, uip/uip_tcpconn.c, and - uip/uip_tcpinput.c: Change how the initial minimum MSS is calculated. - Max Holtzberg (2013-10-17). - * net/uip/uip_tcpinput.c: Move tcp connection into SYN_RCVD state - after aception instead of bypassing and moving directly into ESTABLISHED. - From Max Holtzberg (2013-10-17). - * net/net_sendfile.c: Let the ACK callback handle the REXMIT flag and - don't return until all data has been ACK'd. From Max Holtzberg - (2013-10-17). - * arch/arm/src/stm32/chip/stm32f40xxx_dma.h: Typo fixes for UART7 and - UART8 DMA configs. From Mike Smith (2013-10-18). - * arch/arm/src/stm32/Kconfig: DMA priority corrections from Mike Smith - (2013-10-18). - * arch/arm/src/stm32/stm32*_dma.c, stm32_sdio.c, and stm32_dma.h: - Changes to the stm32_dmacapable API. In order to correctly verify that - a buffer can be transferred, the transfer count and the CCR value are - required. Implemented stm32_dmacapable for stm32f1xx devices. Enhanced - stm32_dmacapable for stm32f2xx and stm32f4xx devices to check for - additional conditions that will cause DMA to fail or lose data (2013-10-18). - * include/nuttx/sdio.h: Add a preflight method to the SDIO interface. - From Mike Smith (2013-10-18). - * drivers/mmcsd/mmscd_sdio.c: Enhanced the mmcdd_sdio driver to perform - DMA preflight operations and fail DMA read/write requests that fail - preflighting. From Mike Smith (2013-10-18). - * fs/fat/fs_fat32.c: Enhanced the FAT32 filesystem code to understand DMA - preflight failures, and to use the file sector buffer as a bounce buffer - when a user-supplied buffer is not suitable for DMA. From Mike Smith - (2013-10-18). - * arch/arm/src/sama5/chip/sam_rtc.h and sam_wdt.h: Add WDT and RTC - register definition header files (2013-10-18). - * arch/arm/src/sama5/chip/sam_rtc.c and sam_rtc.h: Basic RTC driver. - Support for RTC alarms is fragmentary and this has not yet been hooked - into the build system (2013-10-18). - * Various Spark and CC3000 files: Update by David Sidrane (2013-10-18). - * arch/arm/src/sama5/chip/sam_gpbr.h: Add SAMA5 GPBR register - definitions (2013-10-19). - * Kconfig: Add support for CONFIG_DEBUG_RTC (2013-10-19). - * configs/sama5d3x-ek/README.txt, demo/defconfig: Describe how to - enable RTC support for the nsh/ configuration; RTC is now enabled by - default in the demo configuration (2013-10-19). - * arch/arm/src/sama5/sam_rtc.h and other files: Hook the SAMA5 RTC - driver into the build system; Verify the correct operation of the - SAMA5 RTC driver (2013-10-19). - * arch/arm/src/sama5/sam_wdt.c and .h: Add a SAMA5 watchdog timer - driver. Untested on initial check-in (2013-10-19). - * arch/arm/src/sama5/sam_trng.c, sam_trng.h, and chip/sam_trng.h: Add - a /dev/random driver based on the SAMA5D3 TRNG peripheral (2013-10-20). - * configs/sama5d3x-3k/demo: The TRNG and /dev/random are now enabled - by default in the demo configuration (2013-10-20). - * arch/arm/src/sama5/chip/sam_tc.h: SAMA5D3 timer/counter register - definition header file (2013-10-20). - * libc/stdio/lib_sscanf.c: scanf() fixes from kfrolov: 1) sscanf() - function hangs in the following example: sscanf("2", "%u,%u,%u,%u", ...), - 2) sscanf() returns incorrect number of parsed numbers if some arguments - can't be parsed: sscanf("=2", "%u,%u,%u,%u",...)==1 instead of 0, and - 3) using of char* instead of const char* in vsscanf function leads to - warnings from GCC (2013-10-21). - * arch/arm/src/sama5/chip/sam_can.h: SAMA5D3X CAN register definition - header file (2013-10-21) - * arch/arm/src/sama5/sam_can.c and .h: Framework for a SAMA5 CAN driver. - Initial checkin is the STM32 CAN driver with name changes (2013-10-21). - * arch/arm/src/sama5/sam_can.c and .h: SAMA5 CAN driver is code complete - but still untested (2013-10-22). - * configs/spark: Spark configuration updated by David Sidrane (2013-10-23). - * drivers/wireless/cc3000: CC3000 driver updates from David Sidrane - (2013-10-23). - * include/nuttx/wireless/cc3000: More CC3000 driver updates from David - Sidrane (2013-10-23). - * net/Kconfig, drivers/net/wireless/cc3000/Kconfig, and Kconfig: Add - ARCH_HAVE_NET that determines if a network is present or not. This - currently can happen if CONFIG_NET is set or if CONFIG_WL_CC3000 is - is set (23013-10-23). - * arch/arm/src/stm32/stm32f10xxx_dma.c: DMA fix from David Sidrane: - The DMA_CNDTRx register cannot be modified if the DMA channel is - disabled (2013-10-23). - * arch/arm/src/sama5/sam_tc.c and .h: First cut at a timer/counter - library for the SAMA5D3 (2013-10-23). - * configs/spark/nsh/defconfig: Spark configuration update from David - Sidrane (2013-10-24). - * drivers/wireless/cc3000/cc3000.c: CC3000 driver update from David - Sidrane (2013-10-24). - * arch/arm/include/stm32/chip.h and arch/arm/src/stm32/Kconfig: - Add support for the STM32F207ZE chip. From Martin Lederhilger - (2013-10-24). - * arch/arm/src/stm32/stm32_adc.c and stm32_pwm.c: Fix some bits - that should have been cleared in a register. From Martin Lederhilger - (2013-10-24). - * configs/olimex-stm32-p207 and other files: Support for the Olimex - STM32 P207 board added by Martin Lederhilger (2013-10-24). - * arch/arm/src/sama5/sam_adc.c, sam_tc.c and sam_tc.h: Hook in the - timer/counter logic so that it can driver periodic ADC sampling - (2013-10-24). - * configs/freedom-kl25z/src/Makefile: Only build kl_wifi.c if - CONFIG_WL_CC3000 is selected. From Alan Carvalho de Assis - (2013-10-24). - * configs/sama5d3x-ek/src/sam_adc.c: Integrate support for the - apps/examples/adc into the SAMA5D3x-EK configuration (2013-10-24). - * include/nuttx/fs/ioctl.h and arch/arm/src/sama5/sam_adc.c: Add - and ioctl command that can be used to trigger ADC/DAC conversion - (2015-10-25). - * configs/spark: Spark configuration updated by David Sidrane - (2013-10-25). - * drivers/wireless/cc3000 and include/nuttx/wireless/cc3000: - CC3000 driver update from David Sidrane (2013-10-25). - * arch/arm/src/sama5/chip/sam_isi.h: Camera interface register - definitions added (2013-10-26). - * audio/ and include/nuttx/audio/audio.h: Updated audio subsystem - from Ken Pettit (2013-10-27). - * drivers/audio/ and include/nuttx/audio/vs1053.h: Updated - VS1053 driver from ken Pettit (2013-10-27). - * configs/mikroe-stm32f4/: Updated configuration for the - Mikroe STM32F4 board from Ken Pettit (2013-10-27). - * arch/arm/src/stm32/stm32_spi.c: DMA-related fixes from Ken - Pettit (2013-10-27). - * sched/sched_releasetcb.c: Fix a cornercase: If sched_releasetcb() - is called as part of a failed pthread startup before the flags - field in the TCB has been initialized, then a crash occurs. - Pointed out by David Sidrane (2013-10-27) - * arch/arm/src/sama5/sam_adc.c: ADC now works in all implemented - modes: single channel or multiple channel with sequencer support. - software trigger or timer trigger; ADC channel interrupts or - DMA (2013-10-28). - * nuttx/drivers/audio/vs1053.c and nuttx/include/nuttx/audio/audio.h: - Add logic to verify the audio sub-format. From Ken Pettit (2013-10-28). - -6.32 2013-12-07 Gregory Nutt - - * configs/spark: Spark configuration updated by David Sidrane - (2013-10-30). - * drivers/wireless/cc3000 and include/nuttx/wireless/cc3000: - CC3000 driver updates from David Sidrane (2013-10-13). - * arch/arm/src/sama5/chip/sam_ssc.h: SSC register definition - header file (2013-10-30). - * arch/arm/src/sama5/chip/sam_pwm.h: PWM register definition - header file (2013-10-31). - * drivers/mtd/mtd_partition.c: Fix erase block vs page block confusion. - From Ken Pettit (2013-10-31). - * arch/arm/src/stm32/stm32_usbdev.c: On a failure to bind the class - driver, the driver reference was being nullified too soon. This - caused an exception in usbdev_reset() later. The driver reference - will be nullified later usbdev_unregister when the caller gets the - error. From David Sidrane (2013-10-31). - * drivers/mtd/mtd_config.c and include/nuttx/configdata.h: Add a container - for an MTD device that can be used to provide a simple, lightweight - interface to configuration data storage that resides on some storage - media that is wrapped as an MTD device. From Ken Pettit (2013-11-1). - * configs/mikroe-stm32f4: Now uses /dev/config for configuration data - storage. From Ken Pettit (2013-11-1). - * arch/ stack management functions: Extension and standardization of - stack debug logic. Now includes coloration of the IDLE and interrupt - stacks as well as the heap. Suggested by David Sidrane (2013-11-1). - * configs/spark/usbmsc: Add spark USB MSC configuration. From David - Sidrane (2013-11-1). - * fs/fat/fs_fat32util.c: In one error return case, the error return - value was not being set, making the failure look like success. From - David Sidrane (2011-10-1). - * drivers/usbdev/usbmsc.c and usbmsc_scsi.c: pthread_join() does not - work if called from a different task group than the pthread. This - is correct behavior, but a problem. The correct solution would be - configure the USB MSC thread to a task, however, this workaround - from David Sidrane plugs the hole for now (2013-11-1). - * drivers/mtd/mtd_config.c: Reduce configuration header size. From - Ken Pettit (2013-11-1). - * drivers/mtd/sst25.c: Improved write performance by fixing a bug - that prevented operation in the faster write mode. The code did - not wait on the last write complete before issuing the WRDI The - loop in general failed to wait on the fist 2 bytes after the - SST25_AAI if the next 2 were FF FF, then it would reissue the - address but not cancel the write. Reorganized to always wait for - completion after and address with data write and on any data - write so that the device is complete before WRDI is sent. From - David Sidrane (2013-11-2). - * configs/sama5/src/sam_can.c: Add CAN initialization logic - and fix a data alignment problem (2013-11-3). - * drivers/mtd/mtd_config.c: Updated configuration driver from - Ken Pettit (2013-11-4). - * configs/sim/configdata: MTD configuration driver unit test for - the simulation platform. From Ken Pettit (2013-11-4). - * configs/mikroe-stm32f4/fulldemo: Configuration updated by Ken - Pettit (2013-11-4). - * arch/arm/src/stm32/stm32_usbdev.c: Correct EP0 state handling - logic when buffers larger than the EP0 packet size are sent. - Also add support for decoded USB trace strings. From David - Sidrane (2013-11-5). - * drivers/usbdev/cdcacm.c, composite.c, usbmsc.c: uninitialization - logic cause re-use of a stale pointer. Changed to a two pass - uninitialization for the case of the composite driver: Memory - resources are not freed until the second uninitialization pass. - From David Sidrane (2011-11-5). - * arch/arm/src/sama5/sam_pwm.c and .h: Add PWM driver for SAMA5 - untested on initial checkout (not even incorporated in to build - system) (2013-11-6). - * arch/arm/src/sama5/Make.defs and Kconfig: SAMA5 PWM driver now - incorporated into build and configuration system. Builds with - no errors (2013-11-6). - * configs/sama5d3x-ek: Add support for the PWM test for the - SAMA5D3x-EK board (2013-11-6). - * arch/arm/src/sama5/sam_pwm.c and .h: SAMA5 PWM driver is now - functional (2013-11-7). - * include/nuttx/audio/i2s.h: First cut at an I2S interface - definition. This initial definition is sparse will will - probably evolve significantly (2011-11-7). - * arch/arm/src/sama5/sam_ssc.c and .h: Skeleton and build setup - for a forthcoming SSC (aka I2S) driver for the SAMA5. The - initial check-in is just the SAMA5 SPI driver gutted and hacked - to use the I2S interface. More coming (2013-11-7). - * arch/arm/src/stm32 and arch/arm/include/stm32: Added support for - the STM32F429. From Ken Pettit (2013-11-7). - * configs/stm32f429i-disco: Support for the STM32F429I-Discovery - board from Ken Pettit (2013-11-7). - * arch/arm/src/stm32/stm32_usbdev.c: The long outstanding bug - involving the handling of OUT SETUP commands has been fixed in - the STM32 F1 USB device driver by David Sidrane (2013-11-7). - * configs/spark/composite/cdc-acm.inf: Windows CDC/ACM driver - provided by David Sidrane (2013-11-7). - * configs/spark/usbserial.c: Add an apps/examples/usbserial - configuration for the Spark. From David Sidran (2013-11-7). - * arch/arm/src/sama5/sam_ssc.c and .h: First cut of SAMA5 - SSC/I2S driver is code complete (2013-11-9). - * arch/arm/src/stm32 (numerous files): OTG FS device and host - drivers extended so that they can support either the OTG FS - peripheral or the OTG HS peripheral (in FS mode). This was - done as a quick way to get USB support on the STM32F429 which - has only OTG HS. From Ken Pettit (2013-11-10). - * configs/stm32f429i-disco: Add support for the usbnsh and - usbmsc configurations using the OTG HS peripheral in FS mode. - From Ken Pettit (2013-11-10) - * drivers/audio/i2schar.c: A simple character driver to support I2S - accesses. This driver in its current state is intended only to - support I2C testing and would not be appropriate to used for any real - driver application. (2013-11-10). - * arch/arm/src/kl/kl_pwm.c and .h: PWM driver for the Freescale - Kinetis KL family from Alan Carvalho de Assis (2013-11-10). - * configs/freedom-kl25z: Add PWM support. From Alan Carvalho de Assis - (2013-11-10). - * drivers/audio/vs1053: VS1053 worker thread stack size is now - configurable and assigned a name via pthread_setname_np(). From Ken - Pettit (2013-11-10). - * libc/audio/lib_buffer.c: Moved audio/buffer/c to libc/audio/lib_buffer.c. - This file was moved because it contains buffer management functions - that must be available to audio applications. If it was left in the - audio/ directory then it would not be available to applications in the - NuttX Kernel build (2013-11-10). - * arch/arm/src/sama5/sam_ssc.c and Kconfig: Add configurable support - for SSC loopback mode (2013-11-10). - * include/nuttx/audio/i2s.h, arch/arm/src/sama5/sam_ssc.c, and - drivers/audio/i2schar.c: Improved I2S interface design: Simplified - audio buffer queuing (2013-11-10). - * arch/arm/src/sam34 and arch/arm/include/sam34: Basic support for - the Atmel SAM4E family. From Mitko (2013-11-11). - * libc/audio/lib_buffer.c: Remove unused apb_prepare() function - (2013-11-11). - * arch/arm/src/stm32: Added header files and driver framework for the - STM32F429 LTDC framebuffer driver. From Ken Pettit (2013-11-11). - * configs/sama5d3x-ek/src/sam_i2schar.c: Add support for the - apps/examples/i2schar test (2011-11-11). - * arch/arm/src/sama5/sam_ssc.c: I2S loopback test finally works - (2013-11-11). - * fs/procfs: Add a little, primitive procfs file system. (2013-11-13). - * fs/binfs/README.txt: Add a README file for binfs (2013-11-13). - * arch/arm/src/stm32/Kconfig: Add missing setup of CAN TSEG1 and - TSEG2 values. From Martin Lederhilger (2013-11-14). - * arch/arm/src/sama5/sam_pck.c and .h: Add support for programmable - clock outputs (2013-11-14). - * configs/ea3131/nsh: Converted to use kconfig-frontend tools - (2013-11-14). - * arch/arm/src/lpc31: Create configuration and build support for a - forthcoming USB host controller driver (2013-11-14). - * arch/arm/src/lpc31/lpc31_ehci.c: First cut at an EHCI driver - tailed for the LPC31 (2013-11-14). - * fs/fs_mount.c: SMART FS must be included in the conditional - compilation for the set of file systems that require block - drivers. From Daniel Palmer (2013-11-15). - * tools/mkconfig.c: SMART FS must be included in the conditional - compilation for the set of writable file systems. Noted by - Daniel Palmer (2013-11-15). - * arch/arm/src/sama5/sam_nand.c and .h: Framework for an MTD driver - that will provide raw access to NAND (2013-11-15). - * configs/sama5d3x-ek/src/sam_nandflash.c: Provides board-specific - memory controller initialize for NAND flash (2013-11-15). - * include/nuttx/mtd/mtd.h: Move include/nuttx/mtd.h to - include/nuttx/mtd/mtd.h where it will, hopefully, soon be joined by - other MTD-related header files (2013-11-15). - * drivers/mtd/mtd_onfi.c and include/nuttx/mtd/onfi.h: Add shared - NAND routines for use with ONFI compatible NAND FLASH devices - (2013-11-15). - * configs/ea3131/src/up_usbhost.c: Board-specific USB host support - for the EA3131 board (2013-11-15). - * drivers/mtd/mtd_nand.c, include/nuttx/mtd/nand.h, nand_config.h, - and nand_scheme.h: Further NAND support (still incomplete). - (2013-11-16). - * drivers/mtd/mtd_modeltab.c: Further NAND support (still incomplete). - (2013-11-16). - * drivers/mtd/mtd_nandmodel.c: More NAND support (same story). - (2013-11-16). - * drivers/mtd/mtd_rawnand.c and include/nuttx/mtd/nand_raw.h: More - NAND support (2013-11-17). - * drivers/mtd/mtd_nandscheme.c: More NAND support (2013-11-17). - * include/nuttx/mtd/nand_ecc.h: More NAND (2013-11-17). - * drivers/mtd/hamming.c and mtd_nandecc.c and - include/nuttx/mtd/hamming.h: Beginning of NAND software ECC - calculations. (2013-11-18). - * configs/olimex-lpc-h3131: Add support for the Olimex LPC-H3131 - * board. Does not yet boot (2013-11-18). - * arch/arm/src/lpc31xx/lpc31_ehci.c: Add USB host trace support - (2013-11-19). - * configs/olimex-lpc-h3131/include/board.h, src/lpc31_boot.c, - lpc31_leds.c, lpc31_usbhost.c, and lpc_h3131.h: Add GPIO - support for LED1/2 and for USB power enable and overcurrent - detection (2013-11-19). - * configs/olimex-lpc-h3131/nsh/defconfig: Drop loops-per-msec - count for the Olimex-LPC-H3131. It seems to be about 25% as - fast as the Embedded Artists EA3131 at the same clocking. - (2013-11-19). - * arch/arm/src/arm/up_cache.S and cache.h: More cache management - functions (2013-11-20). - * configs/olimex-lpc-h3131/src/Makefile: Add SDRAM support. - Untested and probably needs some fine tuining (2013-11-21) - * fs/smartfs/README.txt: Add README for SMARTFS file system. From - Ken Pettit (2013-11-23) - * tools/mkctags.sh: A script for creating ctags from Ken Pettit - (2013-11-23) - * configs/sama5d3x-ek/src/sam_nand.c: Add support for "auto-mounting" - NAND MTD block driver or NXFFS file system (2013-11-25). - * include/mtd/mtd.h: Packed the geometry structure so that it can - support larger erase block sizes without increasing the size of - the geometry structure (2013-11-27). - * drivers/mtd/sst25xx.c: Add another SST25 SerialFlash driver. This - one differs from sst25.c because it supports larger SST25 parts: In - the larger parts support page write instead of byte/word writes like - the smaller parts. From Ken Pettit (2013-11-28). - * drivers/mtd/smart.c: Fixes a minor bug with SMART partition number - reporting (that would only be seen if both partition support and - multi-root directory support are enabled at the same time). From Ken - Pettit (2013-11-28). - * arch/arm/src/stm32/chip/stm32f40xxx_gpio.h: Add support for GPIOK and - GPIOJ. From Ken Pettit (2013-11-28). - * configs/stm32f429i-disco/extflash, Kconfig, include/board.h, - src/stm32f429i-disco-internal.h, up_nsh.c, and up_spi.h: Add a - configuration and board support for an external SST25 FLASH. From Ken - Pettit (2013-11-28). - * fs/fs_inode.c: The inode semaphore must be re-entrant. Here is the - re-entering path that I found: (1) USB host connects to FLASH drive - and creates /dev/sda, (2) /dev/sda is mounted, (3) FLASH drive is - removed but /dev/sda is not destroyed because there is still a - reference on the device because of the mount, (4) umount() is called, - taking the inode semaphore, now the driver tries to destroy the block - driver by calling unregister_blockdriver(). But (5) - unregister_blockdriver() also takes the inode semaphore causing a - deadlock if the inode semaphore is not re-entrant. (2013-11-28). - * configs/viewtool-stm32f107: Add board support for the ViewTool - STM32F103/F107 board with the STM32F107VCT6 installed. Initial - check-in is the unverified board-support framework only - (2013-11-30). - * configs/viewtool-stm32f107/src/stm32_buttons.c and stm32_leds.c: - Add support for LEDs an buttons on the ViewTools STM32F107 board - (2013-11-30). - * fs/nxffs/nxffs_initialize.c: First of probably several changes for - NAND FLASH. NAND can report read errors because of bad ECC. Logic - in NXFFS must account for it and not just throw in the towel every - time a read fails (2013-11-30). - * drivers/mtd/mtd_nand* and arch/arm/src/sama5/sam_nand.c: NAND - accesses now work (at least with software ECC and now DMA). Still - lots of testing to be done (2013-11-30). - * fs/nxffs/nxffs_dump.c: Do not abort on a read error. Just not - the error and continue. Otherwise, we would not be able to dump - NAND FLASH (2013-11-30). - * fs/nxffs: All read error logic has been revisited and modified in - most places. If we are using NAND, then read errors probably mean - that the block that was read contains uncorrectable bit errors. In - this case, we cannot just give up and abort the operations. Rather, - we need to treat read error like normal bad blocks in order to work - with NAND (2013-12-2). - * fs/nxffs/Kconfig and nxffs_initialize.c: Make the start up scan of - the media option. It just takes to long! (2013-12-02). - * drivers/mtd/mtd_nand.c: Fix a typo in calculation of page number - (2013-12-02). - * drivers/mtd/README.txt: New README file (2013-12-04). - * arch/arm/src/lm/lm_start.c: Don't initialize .data if not running - from FLASH (2013-12-05). - * fs/fat/fs_configfat.c: Fix a typo in the FAT16 formatting logic. - Was this ever able to format a FAT16 volume? (2013-12-05). - * drivers/mtd/mtd_nand.c: Check if block number is within range at - the top of the loop not the bottom. Otherwise, we will do a bogus - transfer with the out-of-range block before we test it (2013-12-05). - -6.33 2014-01-30 Gregory Nutt - - * arch/arm/include/a1x and src/a1x: Directory structure to support - the Allwinner A10. Not much there on the initial check-in - (2013-12-7). - * configs/pcduino-a10: Directory structure for the pcDuino board. This - board is based on the Allwinner A10 (2013-12-7). - * arch/arm/src/a1x/a1x_boot.c and chip/a1x_intc.h: More A10 logic - (2013-12-8). - * arch/arm/src/a1x/a1x_irq.c: A10 interrupt handling logic (partial) - (2013-12-8). - * drivers/video/ov2640.c: An OV2640 camera driver that will be used to - verify the SAMA5D3x-EK ISI peripheral (2013-1209). - * sama5d3x-ek/ov2640 and src/sam_ov2640.c. Board logic to test the SAMA5D3 - ISI peripheral usign the OV2640 camera (2013-12-9). - * arch/arm/src/a1x/chip/a1x_uart.h: A10 UART register definition - header file (2013-12-9). - * include/nuttx/video/fb.h: Move fb.h to include/nuttx/video/ - (2013-12-10). - * include/nuttx/video/rgbcolors.h: Move rgbcolors.h to include/nuttx/video. - (2013-12-10). - * include/nuttx/fs/smart.h: Move smart.h to include/fs/smart.h - (2013-12-10). - * include/nuttx/fs/ramdisk.h: Move ramdisk.h to include/fs/ramdisk.h - (2013-12-10). - * arch/arm/src/a1x/chip/a1x_pio.h and a10_piocfg.h: PIO register - definition header files (2013-12-10). - * arch/arm/src/a1x/a1x_pio.c and .h: Support for PIO configuration - (2013-12-11). - * libc/misc/lib_match.c: Pattern matching logic extended to handle - matches to sets of characters and ranges of character values. From - Ken Pettit (2013-12-12). - * fs/procfs, drivers/mtd, fs/smartfs, includes/nuttx/fs, .. to many - files to list: Extensive changes by Ken Pettit to extend procfs/ - functionality. Includes some incomplete changes related to - SmartFS (2013-12-12). - * configs/stm32f429i-disco: Add support for procfs/ MTD part names. - From Ken Pettit (2013-12-12) - * arch/arm/src/a1x/chip/a1x_timer.h: Timer register bit definitions - (incomplete on initial check-in) (2013-12-12). - * lbc/time/lib_strftime.c: Need null-termination on the string - generated by strftime(). From Max Holtzberg (2013-12-12). - * sched/nanosleep.c and include/time.h: Add nanosleep() (2013-12-12). - * libc/unistd/lib_sleep.c and lib_usleep.c. Move sleep() and - usleep() from sched/sleep.c and usleep.c to libc/unistd. These - functions now just call nanosleep(). (2013-12-13). - * syscall/ and include/sys/syscall.h: Remove sleep and usleep - system calls. Add nanosleep system call (2013-12-13). - * arch/arm/src/a1x/a1x_timerisr.c: Timer interrupt handler for the - A10 (2013-12-13). - * arch/arm/src/a1x/a1x_config.h: Header file to keep track of A10 - configuration decisions (2013-12-13). - * arch/arm/src/a1x/a1x_lowputc.c, a1x_serial.c, and a1x_serila.h: - Beginning of an A10 serial driver. From Alan Carvalho de Assis - (2013-12-13). - * fs/procfs/procfs_utils.c: Move some re-usable functions out of - fs_procfsproc.c into a utility file (2013-12-14). - * fs/procfs/fs_procfsuptime.c: Supports /proc/uptime (2013-12-14). - * graphics/nxconsole/nxcon_font.c: Fix a typo that causes a compile - error when CONFIG_NXCONSOLE_BPP < 8. From Librae (2013-12-15). - * fs/procfs/fs_procfsproc.c: procfs now shows information about - the group that each thread belongs: Like parents, group member, - open file, and open sockets (2013-12-15). - * fs/procfs/fs_procfsproc.c: Now shows task stack information - (2013-12-15). - * arch/arm/src/armv7-a/cp15.h: Review A9 TRM and updated CP15 - register definitions accordinglyg (2013-12-16). - * Makefile.unix: Now has supports qconfig and gconfig targets. - These tools will use the Qt and GTK versions of the kconfig- - frontends configuration tools (if you built them) (2013-12-16) - * arch/arm/src/armv7-a/arm_head.h: Fix some errors in the cache - invalidation logic (only seem to matter for Cortex-A8) (21-3-12-19). - * Kconfig and all Make.defs files: Add CONFIG_DEBUG_NOOPT. Now - you can independently enable/disable debug symbols and optimization - (2013-12-20). - * configs/README.txt and Documentation/NuttxPortingGuide.html: - Remove documentation of NuttX configuration variables. Since - converting to the kconfig-frontend tools, the NuttX configuration - is now documented in the Kconfig files and summarized in the - autogenerated Documentation/NuttXConfigVariables.html file. - This old configuration variable documentation is now a liability - and, hence, was removed (2013-12-20). - * arch/Kconfig, arch/arm/Kconfig, arch/arm/include/x/chip.h, and - and arch/arm/src/x/x_irq.c where x={kinetis, lm, lpc17xx, lpc43xx, - sam34, or stm32}: Beginning of support for nested, high priority - interrupts. Lots more still needs to be done (2013-12-21). - * arch/arm/src/armv7-m/up_exception.S and arch/arm/src/x/x_vectors.S: - where x={kinetis, lm, lpc17xx, lpc43xx, sam34, or stm32}: completes - the basic implementation of nested, high priority interreupts. - Still untested and need documentation (2013-12-21). - * configs/stm3210e-eval/buttons: Converted to use kconfig-frontends - tools (untested) (2013-12-22). - * configs/Kconfig, configs/viewtool-stm32f107/include/board-stm32f103vct6.h, - and /board-stm32f107vct6.h: The viewtool board can now be configured - to support either the STM32F103VCT6 or the STM32F107VCT6 (2013-12-22). - * configs/Kconfig, README.txt, viewtool-stm32f107/highpri, Kconfig, - README.txt, and src/stm32_highpri.c: This is the initial framework - for a test of the high priority, nested interrupt logic. Still - incomplete and does not yet run (2013-12-22). - * arch/arm/src/armv7-m/ram_vectors.h and up_ramvec_initialize.c: - Correct alignment of the RAM vector table (2013-12-22). - * Kconfig: Support configuration of interrupt controller debug output - (2013-12-22). - * configs/viewtool-stm32f107/scripts: Need to do some special things - in linking of the common vectors are used (2013-12-22). - * arch/arm/include/*/irq*.h: Add definition NR_VECTORS so that the RAM - vector logic can know how many vectors there are. NR_IRQS is often - not equal to NR_VECTORS (2013-12-23). - * arch/arm/src/*_vectors.S: Standardize the name of the vector table - and the name of the common vector handling logic so that the MCU- - independent logic and work with these (2013-12-23). - * configs/viewtool-stm32f107/scripts: Move the RAM vector tables to the - beginning of SRAM. It seems to require this alignment. Also, we - don't need different scripts for the CMNVECTOR case now that the vector - table has a common name. - * arch/arm/src: armv-7/up_exception.S and xxx/xxx_vectors.S where - xxx={kinetis, lm, lpc17xx, sam34, and stm32}: Modified register usage - when saving the context on the stack: In order to handler nested - interrupts, the stack pointer must be used so that when it is - decremented, the contents on the stack are protected from the nested - interrupt handling (2013-12-23). - * arch/Kconfig: The CONFIG_ARCH_INT_DISABLEALL feature is disabled (i.e., - depends on EXPERIMENTAL). That is because the current implementation - will not work because interrupts get disabled in the interrupt handler - too, defeating the nesting of interrupts. The fix is easy: It just - needs more levels of priority of disabling interrupts vs interrupt - handling (2013-12-23). - * configs/viewtool-stm32f107/src/stm32_highpri.c: Improved debug output - (2013-12-23). - * drivers/lcd/memlcd.c and include/nuttx/lcd/memlcd.h: Support for the - Sharp Memory LCD from Librae (2013-12-23). - * configs/maple/nx and src/: Add support for a custom Sharp Memory - LCD on the Maple board. From Librae (2013-12-23). - * configs/viewtool-stm32f107/netnsh: Add a NSH configuration that - supports networking with the DP83848C module installed (2013-12-25). - * configs/viewtool-stm32f107/src/stm32_nsh.c, stm32_mmcsd.c, stm32_usb.c, - and stm32_usbmsc.c: Lay out basic framework for USB and SD card - support. Code is incomplete and has been neither built nor tested - (2013-12-25). - * nuttx/arch/arm/src/stm32/Kconfig, chip/stm32f103vc_pinmap.h, - stm32f105vb_pinmap.h, and stm32f107vc_pinmap.h: Fix configuration and - pin definition that would prevent building USB for the connectivity and - performance lines (2013-12-25). - * stm32l15xxx_pinmap.h: Fix a typo in USB pin definitions (2013-12-25). - * configs/viewtool-stm32f107: Fix building of USB for F103 and F107. - F103 has device only; F107 has OTG FS (2013-12-25). - * arch/arm/src/stm32/stm32f10xxx_rcc.c and chip/stm32f10xxx_rcc.h: Add - clocking support for STM32F107 USB OTG FS (which does not work) - (2013-12-26). - * configs/viewtool-stm32f107: Updates to USB for F103 and USB OTG FS - for F107 (2013-12-16). - * arch/arm/src/stm32/chip/stm32f3xxxx_pinmap.h: Fix pin definition names - for SPI2 MOSI and MISO. Noted by Brian Webb (2013-12-27). - * graphics/nxmu, nxsu, and nxglib and libc/nx, nxmu, and nxglib: Massive - reshuffling of files with (hopefully) no logic changes. This - reshuffling is necessary if we ever want to build graphics applications - as kernel builds. There is still more today (NXTK and NXFONTS need to - be moved to libc as well) (2013-12-27). - * Move libc/nx, nxmu, and nxglib to a new library, libnx. The NX - graphics is not properly a part of libc (2013-12-28). - * Move graphics/nxfonts to libnx/nxfonts (2013-12-28). - * Move graphics/nxtk to libnx/nxtk (2013-12-28). - * syscalls: Need to add sem_timedwait() (2013-12-28) - * Move more files from graphics/nxmu to libnx/nxmu (2013-12-29). - * graphics/nxmu/nx_start.c: NX server start-up wrapper function to - simplify starting the NX server from within the RTOS (2013-12-29). - * configs/stm3240g-eval/kernel and configs/stm3240g-eval/scripts: Port - kernel build logic from the STM32F4Discovery to the STM3240G-EVAL. - This will eventually support testing of the kernel mode NX server - (2013-12-29). - * configs/stm3240g-eval/nxwm: Converted to use the kconfig-frontend - tools (2013-12-29). - * configs/stm3240g-eval/knxwm: Add a kernel mode NxWM build - configuration (not yet verified) (2013-12-29). - * Moved configs/stm3240g-eval/src/up_cxxinitialize.c to - apps/platform/stm3240g-eval/up_cxxinitialize.c: Now it is available - in user-space in the kernel mode build (2013-12-29). - * graphics/nxbe, nxsu, libnx/nxmu, and nxtk: Need to be consistent with - which allocator is used in the different configurations. Always uses - the user-space allocator because that one is required in certain - configurations (2013-12-30). - * include/nuttx/kthread.h: Move kernel thread definitions out of - os_internal.h so that the rest of the OS can start kernel threads as - well (2013-12-30). - * configs/sim/mount/defconfig: Converted to use kconfig-frontends - tools (2013-21-31). - * configs/z16f2800100zcog/nsh: Add a Z16F NSH configuration. Does not - yet work (2014-1-1). - * arch/arm/src/stm32/stm32_serial.c: Single-wire UART support from - Thomas Grubler (2014-1-2). - * tools/configure.c and mkdeps.c: Fixes for Windows build issues - 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 - 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). - * configs/viewtool-stm32f107/src/stm32_ssd1289.c: Add support for - Viewtool SSD1289-based LCD (untested on initial checkin) (2013-1-5). - * arch/arm/include/syscall.h and armv7-a/syscall.h: Add the syscall.h - header file needed for the Cortex-A architecture (2014-1-5). - * arch/arm/src/a1x/a1x_serial.c: Remove bad flow control logic. Add - missing interrupt handling logic for UART4-7 (2014-1-6). - * nuttx/tools/mkconfig.c: Cast size to unsigned in calculation of - CONFIG_RAM_END to avoid complains about integer overflow (2013-1-6). - * nuttx/tools/mkconfig.c: Back out the last change, this causes - problems for assembly language. How to prevent the integer over- - flow warnings? (2014-1-6). - * arch/arm/src/a1x/a1x_serial.c: Handle BUSY interrupt (2014-1-6). - * arch/arm/src/armv7-a/arm_head.S and arm_pghead.S: Add more nop's - after enabling the MMU. The cortex-a8 seems to need these - (2014-1-7). - * arch/arm/src/a1x/a1x_serial.c: Correct handling of the BUSY - interrupt (2014-1-7). - * include/sys/types.h: Add a bogus rsize_t type (2014-1-7). - * libc/stdio/lib_gets_s.c: Add a quick'n'dirty implementation of - gets_s() which replaces gets() in C11 (2014-1-7). - * libc/stdio/lib_fopen.c: Add support for new C11 exclusive open - ("x") (2014-1-7) - * include/threads.h: First crude cut at a C11 threads.h header - file (just maps to pthreads) (2014-1-7). - * libc/stdio/lib_libfgets.c: Common implementation supports all - of the slightly different requirements of gets(), gets_s(), and - fgets() (2014-1-7). - * arch/arm/include/stm32/chip.h and chip/stm32f103ze_pinmap.h: - various fixes for STM32F103ZE SPI3. From Steve Redler IV - (2014-1-7). - * graphics/nxsu/Make.defs: Typo that crept into build in recent - NX reorganization. Found by Steve Redler IV (2014-1-7). - * graphics/nxsu/: Another typo from the - recent NX reorganization from Steve Redler IV (2014-1-7). - * graphics/nxbe/nxbe_closewindow.c, nx_close.c, nx_constructwindow.c, - nx_open.c, and nx_openwindow.c: Needs to use kuzalloc and kufree, - not umm_zalloc and umm_free. Additional typo in nx_constructwindow.c - (wnd should be hwnd). Also noted by Steve Redler IV (2014-1-7). - * configs/viewtool-stm32f107/src/stm32_touchscreen.c (and other - files): Add support for the XPT2046 touchscreen controller on - the Viewtool LCD module connected to the Viewtool STM32F103 - board (2014-1-9). - * libc/strings/lib_stpcpy.c: Add stpcpy() (2014-1-9). - * arch/arm/src/a1x/a1x_lowputc.c and a1x_serial.c: Mystery - finally solved: The A10 serial clock is the OSC24M clock. - Thanks to Alan Carvalho de Assis (2014-1-10) - * binfmt/binfmt_loadmodule.c: Fix a memory leak (2013-1-11). - * configs/stm3vldiscovery: Support for the STM32VL-Discovery board. - Contributed by Alan Carvalho de Assis (2014-1-12). - * net/net_close.c, net/Kconfig, include/nuttx/net/net.h, and - include/sys/socket.h: Add support for the SO_LINGER socket option. - Extended from logic provided by Jason Jiang. Enabled with - CONFIG_NET_SOLINGER. At this point, it has only been verified that - the changes does not seem to do any harm (2014-1-13). - * net/connect.c and net/uip/uip_callback.c: prevent tcp_connect - callback from being double freed. From Max Holtzberg (2014-1-13). - * net/Kconfig and include/nuttx/net/uip/uipopt.h: Add configuration - support for forthcoming TCP write buffering (2014-1-13). - * net/net_send_buffered.c, net_send_unbuffered.c, and - uip/uip_tcpwrbuffer.c: First set of changes to bring in Jason - Jiang's TCP write buffering logic. Still not complete but - apparently harmless if not selected. (2014-1-13). - * All of Jason Jiang's TCP write buffering logic is checked in. - Unfortunately, it does not yet work (2013-1-14). - * configs/px4fmu-v2_upstream: Configuration for testing simple - configurations on the PX4FMU v2. This version is incomplete - for the PX4 application and is not a replacement for the version - in the PX4 GIT repository. - * fs/fat/fs_fat32.c: A correction to FAT cluster allocation from - Tridge via Lorenz Meier (2014-1-14). - * net/net_clone.c: If CONFIG_NET_TCP_WRITE_BUFFERS is selected, - then the socket-related write buffering information must copied - with the other cloned socket data (2014-1-14). - * net/net_close.c: If CONFIG_NET_TCP_WRITE_BUFFERS is selected, - then it is necessary to free the write buffer callback structure - when the socket is closed (2014-1-14). - * fs/fat/fs_fat32.c: Fix some root directory logic that was - conditionally done only for FAT 32. Apparently this needs to - done for all FAT types. From Tridge via Lorenz Meier - (2014-1-14). - * arch/arm/src/armv6-m/up_doirq.c and armv7-m/up_doirq.c and all - implementations of up_maskack_irq() for all Cortex-M architectures: Do - not disable and enable the IRQ on each interrupt. Because (1) - interrupts are already disabled on interrupt entry, (2) this - interferes with controlling the IRQ interrupt setting from interrupt - handlers, and (3) up_disable_irq() does not work anyway so that this - has never done anything (2014-1-15). - * All implementations of up_disable_irq() for all Cortex-M3 and M4 - architectures: To enable an interrupt on the Cortex-M3/4 CPU, you - need to set a bit in the ISER registet on the Cortex-M3/4 CPU, you - need to set a bit in the ISER register. To disable the interrupt, you - need to set a bit in the ICER register. Existing logic was trying to - disable interrupts by clearing the bit in the ISER register. That will - not work; writing a '0' to the ISER register has no effect. That - means that up_disable_irq() was doing nothing! It turns out that that - is not really important because up_disable_irq() is not really used - for that purpose. But some spurious STM32 ADC interrupts have been - reported to me and this turned out to be the cause in that case. My - concern now that up_disable_irq() works is that there may now be - unmasked bugs that leave devices in the disabled state? Thanks to - Manuel Sthn for the tip(2014-1-15). - * libc: Move strtol(), strtoll, strtoul(), strtoull(), and strtod() from - libc/string to libc/stdlib where they belong (2014-1-16). - * configs/Kconfig: Board configuration sub-directory can now be - specified. The default need not be used. This is really only - useful when CONFIG_ARCH_BOARD_CUSTOM is selected and there is no - meaningful default sub-directory (2014-1-16). - * configs/Kconfig: Backed out the previous change for two reasons: - (1) it has a bad side effect in that the sub-directory setting - no longer tracks the board setting, and (2) you still can't - source the Kconfig file from the custom board directory (2014-1-16). - * Makefile.unix, Makefile.win, and configs/Kconfig: After thinking a - little harder, I re-implemented the backed-out custom configuration - feature. The new version does not have bad side-effect (1) (but still - has bad side-effect (2)) (2014-1-16). - * arch/x86/Kconfig and configs/qemu-i486/nsh/Make.defs and - ostest/Make.defs: Add a configuration option to select the -m32 - compiler option when building for a 32-bit target on a native 64-bit - compiler (2014-1-18). - * include/ctype.h: Typo in macro name: iscntrl, not iscontrol (2104-1-17) - * libc/unistd/lib_getopt.c: If there are no arguments (argc == 1), then - getopt() will leave the optind variable in an undefined state (2014-1-20). - * configs/olimex-stm32-p107: Fails to build if SPI3 for UEXT is not - remapped. From Max Holtzberg (2014-1-21). - * Several network related files: Changes from Max Holtzberg to improve - how network status is reported. New controls to manage carrier - detect. (2014-1-21). - * configs/16z: Add basic support for the 16z board. The 16z board is - based on the ZiLOG ZNEOZ16F2811AL20EG part. See - https://github.com/toyaga/16z for further information (2014-1-22), - * tools/Config.mk: 'cypath' must be called if we are using a Windows - native toolchain with the Cygwin 'make' to convert paths to proper - Windows paths. From Richard Cochran (2014-1-23). - * /arch/arm/src/Makefile: dependency directory list is now computed - from the VPATH. From Richard Cochran (2014-1-23). - * arch/arm/src/efm32 and include/efm32: Basic support for the EFM3 - processor family from Richard Cochran (2014-1-23). - * configs/efm32-dk3650: This is Energy Micro's development kit for - the Leopard Gecko MCU, which is an ARM Cortex-M3 device. From Richard - Cochran (2014-1-23). - * arch/arm/src/armv7-m/up_memcpy.S: Assembler changes with the gcc-47 - distribution from ARM mean that we need to be explicit about branch - sizes; one or more of the wide branch opcodes results in bad table - branching. From Mike Smith (2014-1-23). - * Many files: renamed up_buttoninit() to board_button_initialize to - better conform to the naming standard. Now ONLY prototypes in - include/nuttx/arch.h (2014-1024). - * Rename up_buttons() to board_buttons() for the same reason (2014- - 1-14). - * Rename up_irqbutton() to board_button_irq() (2014-1-24). - * Rename up_ledinit() to board_led_initialize() (2014-1-24). - * Rename up_ledon() to board_led_on() and up_ledoff() to board_led_off() - (2014-1-24). - * arch/x86/src/qemu-i486/gemu_head.S: Patch from Matt Campbell - to fix 'Error: .size expression for idle_stack does not evaluate to - a constant" (2014-1-25). - * arch/arm/include/efm32, arch/arm/src/efm32, and configs/efm32-dk360: - Removed all EFM32 support. Not yet ready to be fielded (2014-1-27). - * arch/arm/src/armv7-a/arm_head.S, sama5/sam_boot.c, and several other - files: Now supports execution from NOR FLASH with .data and .bss in - SDRAM. This was not possible prior to this because .bss and .data - were initialized before SDRAM was configured. This logic is still - kind buggy. (2014-1-28). - * arch/arm/src/armv7-a/arm_head.S and arm_pghead.S: Back off to a - somewhat less efficient loop for initializing .data and .bss. The - original, efficient logic violated the ARM C ABI. It was okay when - called from boot logic, but not when called from C logic. This fixes - bugginess reported on 2014-1-28. (2014-1-29). - -7.1 2014-03-15 Gregory Nutt - - * arch/arm/src/lm/lm_serial.c: Fix cut'n'paste error that prevented - UARTS2-7 from being used with the LM4F120 Launchpad (2014-02-03). - * configs/stm32f4discovery/src: Almost everything renamed to conform - to the ever-evolving naming standard (2014-02-03). - * arch/arm/src/a1x/a1x_serial.c: Had the same cut'n'paste error - that the LM4f120 Launchpad had (2013-02-03). - * Documentation/NuttXCCodingStandard.html: Add a coding standards - document. Very boring stuff (2014-2-6). - * Several changes to restore the native Windows build (2014-2-7). - * arch/arm/src/lpc17xx/lpc17_usbhost.c: Fix an compilation error - that crept into the LPC17xx USB host driver. What happened here? - (2014-2-9). - * drivers/usbhost/usbhost_hidmouse.c and other files: Add support - for a HID boot mouse device. It compiles but is otherwise - completely untested on initial check-in (2014-2-9). - * configs/olimex-lpc1766stk/src/lpc17_hidmouse.c and hidmouse: Add - support of a test of the USB HID mouse (2014-2-9). - * drivers/usbhost/usbhost_hidmouse.c: The driver appears to be - functional. But there are usability issues: How do you use the - mouse with no cursor? The HID mouse currently emulates a touchscreen - driver. That would work in the long run for several reasons (see the - top-level TODO list for details) (2014-2-9). - * include/nuttx/input/mouse.h and drivers/usbhost/usbhost_hidmouse.c: - Defined a mouse interface that is very similar to a touchscreen - interface, but allows reporting of all mouse buttons. Also, unlike - touchscreen drivers, mouse drivers need to report positional data - with no button is pressed so that the mouse position can drive a - cursor (2014-2-10). - * drivers/usbhost/usbhost_hidmouse.c, include/nuttx/input/mouse.h, and - include/nuttx/usb/hid.h: Add support for a mouse wheel (2014-2-10). - * drivers/lcd/mio283qt9a.c and include/nuttx/lcd/mio283qt9a.h: Support - for the MIO283QT9A LCD. From Toby Duckworth (2014-2-10). - * configs/mikroe-stm32f4/src/up_mio283qt9a.c: The Mikroe STM32F4 can - now support the newer MIO283QT9A LCD. From Toby Duckworth (2014-2-10). - * MANY files changes based on complaints from the tool CppCheck. Several - latent bugs were fixed (and most likely some new typos were introduced) - (2014-2-10). - * arch/arm/include/samd and src/samd: Basic framework to support Atmel - SAMD20 Cortex-M0+ chips. Initial check-in is incomplete; this is a - work in progress (2014-2-12). - * configs/samd20-xplained: Framework to support the Amtel SAMD20 - Xplained Pro. Initial check is just an unverified, rough port of - the SAM4L Xplained Pro configuration (2014-2-12). - * arch/arm/src/stm32/stm32_serial.c: Fix cloned typo: FLOWCONTROL - vs FLOWCONROL (2014-2-14). - * net/uip/uip_tcptimer.c: Back out a small part of the 6.33 write - buffering changed. David G says that this causes problems in - connecting to a server (2014-2-15). - * The basic SAMD20 Xplained Pro port is complete but still untested - (2014-2-16). - * sched/task_terminate.c: Always returns an error because the - return value was not being set correctly. From Gosha (2014-2-18). - * stm32f429i-disco/ostest-fpu: OS test for FPU-enabled system from - David Alessio (2014-2-18). - * Other misc changes to support FPU on STM32F429 Discovery from - David Alessio (2014-2-18) - * stm32f429i-disco/src: Files renamed to make more consistent - with current board file naming conventions (2014-2-18). - * stm32 SPI: Disable SPI before changing CR1 register. From David - Sidrane (2014-2-18). - * stm32 TIM: Set CCMR when selecting timer channel. From David - Sidrane (2014-2-18). - * configs/spark: Board configuration updated by David Sidrane - (2014-2-19). - * libc/stdio/lib_sscanf.c: Bug fixes from David Sidrane (2014-2-18). - * nuttx/drivers/wireless/cc3000 and nuttx/include/nuttx/wireless/cc3000: - Numerous updates to the CC3000 driver from David Sidrane (2014-2-18). - * nuttx/configs/stm3240g-eval/webserver: Converted to use the - kconfig-frontends tools by Alan Carvalho de Assis (2014-2-18). - * configs/mbed: All mbed configurations have been converted to use - the kconfig-frontends tools (unverified) (2014-2-18). - * fs/fs_opendir.c, fs_readdir.c, et al: Modified so that errors - will not be reported if you attempt to list a empty pseudo-directory - (2014-2-19). - * fs/fs_rmdir.c: 'rmdir' can now be used to remove empty directories in - the pseudo-filesystem such as might be left after umounting a - file system (2014-2-19). - * fs/fs_mkdir.c: 'mkdir' can now be used to create empty directories in - the pseudo-filesystem (2014-2-19). - * drivers/lcd/mio283qt9a.c: Bug fix from Toby Duckwork (2014-2-19). - * fs/fs_rename.c: 'rename' can now be used to rename nodes in the - pseudo-filesystem (2014-2-19). - * arch/arm/src/samd/sam_sercom.c: Move some common SERCOM logic - from the USART-specific files to a share-able file where it can - also be used by SPI and I2C drivers (2014-2-19). - * arch/arm/src/samd/sam_spi.c: Add framework for a SAMD SPI driver. - The initial check-in is a crude port of the SAMA5 SPI driver with - a lot of missing logic (2014-2-19). - * arch/arm/src/lm/lm_lowputc.c and lm_serial.c: Several errors - are unmasked with UARTs > UART2 are enabled. From Gosha (2014-2-19). - * arch/arm/src/samd/sam_spi.c: The SPI driver is code complete, - but untested (2014-2-20). - * configs/olimex-lpc1766stck/ftpc: Configuration convert to use - the kconfig-frontends tools by Alan Carvalho de Assis (2014-2-20). - * fs/fs_mkdir.c: 'unlink' can now be used to remove things from the - pseudo-filesystem. A new configuration option as been added: - CONFIG_DISABLE_PSEUDOFS_OPERATIONS that effectively can be set - back out these recent changes in rmdir, mkdir, unlink, and rename - for operations on the pseudo-filesystem (2014-2-20). - * Kconfig: Add an option to select default values for configuration - variables based upon whether you want a smaller footprint or more - features. CONFIG_DEFAULT_SMALL is used in sched/Kconfig and - fs/Kconfig and in apps/. It turns out this this is not very useful - if you are modifying existing configurations because then the - defaults do not apply (2014-2-20). - * arch/arm/src/sam34/chip/sam4e_vectors.h: Add vector definitions - for the SAM4E (2014-2-21). - * arch/arm/src/sam34/chip/sam4e_memorymap.h: Add SAM4E memory map - (2014-2-21). - * arch/arm/src/sam34/sam4e_gpio.h, sam4e_periphclks.h, and chip/sam4e_pio.h: - Add PIO support for the SAM4E (2014-2-21). - * configs/stm3220g-eval/nsh/defconfig: Converted to use kconfig-frontends - by Alan Carvalho de Assis (2014-2-10) - * configs/*/defconfig: Comment out all CONFIG_APPS_DIR settings. These - should not be set in the default configurations because we don't know - where the apps/ directly will reside until configuration time (2014-2-21). - * arch/arm/src/sam34/chip/sam4e_pinmap.h: SAM4E pin multiplexing - definitions (2014-2-21). - * sched/sched_processtimer.c and fs/procfs/fs_procfscpuload.c: Add - logic to measure and calculate the CPU load percentage. From David - Alessio (2014-2-22). - * sched/sched_processtimer.c, sched_cpuload.c, fs/procfs/fs_procfscpuload.c, - and fs_procfscpuload.c: CPU load logic extended to keep counts on each - thread. The per-thread CPU is now reported in the procfs under - /loadavg (2014-2-23). - * include/stddef.h: ptrdiff_t is defined twice in stddef.h and also in - sys/types.h. stdef.h is the correct location for the definition, but - it includes sys/types.h so, at least for now, the definition will be - retained in sys/types.h (2014-2-25). - * net/net_close.c: Fix one place where the connection reference count - was not being decremented. This is really a cosmetic change BUT - when CONFIG_DEBUG_NET is enable, it will cause assertions (2014-2-25). - * arch/arm/src/sama5/sam_adc.h: Fix typos in the SAMA5 ADC register - definition header file (2014-2-26). - * arch/arm/src/sam34: The port to the SAM4E is code complete (2014-2-16). - * include/cxx: Fix some bad idempotence definitions in header files - (2014-2-27). - * sched/sched_cpuload.c: Change calculation of the total count when the - time constant related delay elapsed. The total count is now always - guaranteed to add up to 100% (excepting only truncation errors) - (2014-2-27). - * fs/procfs/fs_procfscpuload.c and fs_procfsproc.c: Remove the newline - at the end of the percentage so that the returned strings can be - printed on the same line as other values (2014-2-27). - * sched/Kconfig, sched_cpuload.c, and nuttx/sched/sched_processtimer.c: - An asynchronous, "external" clock may now be used to drive the CPU - load calculations for more accurate load measurements when needed - (2014-2-27). - * configs/*/defconfig: If CONFIG_NSH_LIBRARY=y then set CONFIG_NSH_READLINE=y - otherwise the CLE will be selected by default the next time that - make menuconfig is used (2014-2-28). - * include/cxx/cstdbool: Ignore _Bool8 if CONFIG_C99_BOOL8=y. (2014-2-28). - * configs/*/defconfig: Set CONFIG_DEFAULT_SMALL on all tiny MCU - configurations (2014-2-28). - * configs/stm3240g-eval/nsh: Configuration converted to use the - kconfig-frontends tools (2014-2-28). - * configs/*/ostest: Removed most OS test configurations (except in a few - cases where there was some good argument to retain the ostest - configuration) (2014-2-28). - * configs/stm3240g-eval/nsh2: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/stm3220g-eval/nsh2: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/stm3210e-eval/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/stm3210e-eval/nsh2: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/lincoln60/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/lpcxpresso-lpc1768/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/nucleus2g/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/vsn/nsh: Configuration converted to use the kconfig-frontends - tools (2014-3-1). - * configs/mirtoo/nsh: Configuration converted to use the kconfig-frontends - tools (2014-3-1). - * configs/pic32-starterkit/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/pic32-starterkit/nsh2: Configuration converted to use the - kconfig-frontends tools (2014-3-1) - * configs/pic32mx7mmb/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/ubw32/nsh: Configuration converted to use the kconfig-frontends - tools (2014-3-1). - * configs/sim/nsh2: Configuration converted to use the kconfig-frontends - tools (2014-3-1). - * configs/lm3s6432-s2e/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1) - * configs/lm3s8962-ek/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/eagle100/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/stm32f4discovery/src/Makefile: Fix typo: stm32_pwm.c not - stm32_psm.c. Noted by Max Kriegleder (2014-3-1). - * configs/lpc4330-xplorer/nsh Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/ea3152/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-1). - * configs/stm3210e-eval/RIDE, nxlines, and nxtext: Remove some old - style configurations that are not worth converting to use the - kconfig-frontends tools (2014-3-2). - * configs/stm3210e-eval/nx: Configuration converted to use the - kconfig-frontends tools (2014-3-2). - * configs/mirtoo/nxffs: Configuration converted to use the - kconfig-frontends tools (2014-3-2). - * arch/arm/src/lpc2378/Kconfig: Create Kconfig file for the LPC2378. - Change most configuration variable names to avoid collisions with - other platforms (2014-3-2) - * configs/olimex-lpc2378/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-2) - * configs/olimex-lpc1766stk/nx: Configuration converted to use the - kconfig-frontends tools (2014-3-2) - * configs/lpcxpresso-lpc1768/nx: Configuration converted to use the - kconfig-frontends tools (2014-3-2) - * configs/lm3s8962-ek/nx: Configuration converted to use the - kconfig-frontends tools (2014-3-2) - * configs/sim/nx: Configuration converted to use the kconfig-frontends - tools (2014-3-2) - * configs/c5471evm/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/olimex-strp11/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/eagle100/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/ez80f910200zco/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/stm3220g-eval/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/stm3240g-eval/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/sim/nettest: Configuration converted to use the kconfig-frontends - tools (2014-3-3). - * configs/ez80f910200zco/dhcpd: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/stm3220g-eval/dhcpd: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/stm3240g-eval/dhcpd: Configuration converted to use the - kconfig-frontends tools (2014-3-3). - * configs/lpcxpresso-lpc1768/dhcpd: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/olimex-lpc1766stk/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/nucleus2g/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/lpcxpresso-lpc1768/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/stm3210e-eval/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/hymini-stm32v/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/ea3131/usbmsc: Configuration removed. It could not possible - useful because there is no MCI driver for the EA3131 (2014-3-3) - * configs/mcu123-lpc214x/usbmsc: Configuration converted to use the - kconfig-frontends tools (2014-3-3) - * configs/teensy/nettest: Configuration converted to use the kconfig-frontends - tools (2014-3-3). - * configs/*/dhcpd: Add missing DHCPD configuration settings (2014-3-3). - * configs/stm32f4discovery/pm: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/stm3210e-eval/pm: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/stm3240g-eval/nxconsole: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/stm3210e-eval/nxconsole: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/stm3240g-eval/telnetd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/stm3220g-eval/telnetd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * fs/fat/fs_fat32.c: Fix an error in the FAT logic that can cause file - corruption. The error conditions are rare and only seen with very - large files. From Andrew Tridgell. This replaces a previous, partial - fix for the same problem (2014-3-4). - * configs/hymini-stm32v/usbserial: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/ea3131/usbserial: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/mcu123-lpc214x/usbserial: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/olimex-lpc1766stk/thttpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/lpcxpresso-lpc1768/thttpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/eagle100/thttpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/eagle100/httpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/ez80f910200zco/httpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/c5471evm/httpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/eagle100/nxflat: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/sim/touchscreen: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/sim/pashello: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/sim/nx11: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/ez80f910200zco/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/ez80f910200zco/poll: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/olimex-lpc1766stk/slip-httpd: Configuration converted to use the - kconfig-frontends tools (2014-3-4) - * configs/c5471evm/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/compal_e99/nsh_compalram: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/compal_e99/nsh_highram: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/mcu123-lpc214x/composite: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/olimex-strp711/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/amber/hello: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/micropendous3/hello: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/teensy/hello: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/teensy/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * arch/avr/Kconfig, avr32/Kconfig, at32uc3/Kconfig, atmega/Kconfig, and - at90usb/Kconfig: Reshuffle lots of AVR-related configuration names to - make space for AVR32. Populate AVR32 Kconfig file (2014-3-5). - * configs/avr32dev1/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/avr32dev1/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/nettest: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/poll: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/thttpd: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/udp: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/ntosd-dm320/uip: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * arch/Kconfig, arch/arm/Kconfig, configs/ea3131/Kconfig, - configs/ea3131/pgnsh/defconfig, configs/ea3131/src/up_fillpage.c, - configs/ea3152/Kconfig, nuttx/configs/ea3152/src/up_fillpage.c, - include/nuttx/page.h, and tools/cfgdefine.c: Add configuration - settings for the on-demand paging option (2014-3-5). - * configs/ea3131/pgnsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/qemu-i486/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * configs/qemu-i486/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-5) - * Many files: Use common naming for all buildroot toolchains - (2014-3-5). - * Many files: Use common naming for rest of the toolchains (2014-3-5). - * configs/ne64badge/ostest and demo9s12nec64/ostest: Configurations - converted to use the kconfig-frontends tools (2014-3-5) - * fs/nxffs/nxffs_open.c: Missing call to nxffs_freeentry() causes - memory leak. From Lzyy (2014-3-6). - * fs/nxffs/nxffs_stat.c: Looks like stat() has the same problem as - the one reported by Lzyy (2014-3-6). - * configs/skp16c26/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/us7032evb1/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/us7032evb1/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/mx1ads/ostest: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/pjrc-8051: Configuration converted to use the kconfig-frontends - tools (2014-3-6) - * configs/rgmp/arm/default: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/rgmp/arm/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/rgmp/x86/default: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/rgmp/x86/nsh: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/rgmp/x86/helloxx: Configuration converted to use the - kconfig-frontends tools (2014-3-6) - * configs/rgmp/x86/cxxtest: Configuration converted to use the - kconfig-frontends tools. This completes the conversion of all - configurations to the newer format (2014-3-6) - * Removed the CONFIG_NUTTX_NEWCONFIG setting from every defconfig - file (2014-3-6). - * The legacy, manual configuration is no longer supported by the - NuttX build system. Only the newer configurations generated by - the kconfig-frontends tools will generate viable NuttX - configurations. All board configurations in the NuttX source tree - have been converted to use the newer configuration, but if you have - some older style configurations for you board, you will need to - convert those configurations to use the kconfig-frontends tools. - See http://www.nuttx.org/doku.php?id=wiki:howtos:convertconfig for - some guidelines (2014-3-6). - * drivers/serial/Kconfig: Correct an error introduced in this file - in very recent commits (2013-3-6). - * configs/*sam*: Refresh all SAM* configurations with the latest - Kconfig files (2014-3-6). - * configs/stm32f4discovery: Refresh all configurations (except - winbuild) with the latest Kconfig files (2014-3-6). - * configs/viewtool-stm32f107: Refresh all configurations with the - latest Kconfig files (2014-3-6). - * configs/16z, mikroe-stm32f4, olimex-lpc1766stk, px4fmu-v2_upstream, - sim, and stm32f429i-disco: Refresh all configurations (2014-3-6). - * Documentation/NuttShell.html: Update per recommendations from Max - Kriegleder (2014-3-6). - * configs/pic32-starterkit, pic32mx7mmb, stm3210e-eval, stm3220g-eval, - and stm3240g-eval: Refresh all configurations with the latest - Kconfig files (2014-3-7). - * configs/qemu-i486/src: Files renamed to correspond with current - thinking about naming (2014-3-8). - * arch/x86/src/qemu/qemu_keypad.c and qemu_vga.c: New QEMU keyboard - and VGA drivers from Lizhuoyi (2014-3-8). - * configs/olimex-lpc2378/src: Files renamed to correspond with current - thinking about naming (2014-3-8). - * arch/arm/src/lpc2378/lpc23xx_i2c.c and lpc23xx_spi.c: I2C and SPI - drivers for the LPC23xx from Lizhuoyi (2014-3-8). - * arch/arm/include/tiva and src/tiva: The old lm/ directories were - renamed tiva/ to better support new products coming down the pipe - from TI (2014-3-8). - * arch/arm/include/tiva, src/tiva, and configs/: All files and all - all functions beginning with the name lm_ changed to tiva_ - (2014-3-8). - * configs/: Refresh all LM3/4/Tiva configurations (2014-3-9). - * arch/arm/src/tiva/chip/tm4c_pinmap.h: Add pin multiplex definitions - for the TM4C123 (2014-3-9). - * arch/arm/src/tiva/chip/tm4c_memorymap.h: Add memory map for the - TM4C123 (2014-3-9). - * arch/arm/src/tiva/: Add GPIO and SYCONTROL register bit definitions - for the TM4C123 (2014-3-10). - * configs/tm4c123g-launchpad: Add basic board support for the - TM4C123G-Launchpad (2014-3-10). - * configs/sam4e-ek: Add basic board support for the SAM4E-EK board. - More work is needed. The initial commit is little more than the - SAM3U-EK with name changes (2014-3-10). - * configs/spark: Refresh all spark configurations (2014-3-11). - * arch/arm/src/tiva/chip/tm4c_memorymap.h: Fix typos reported by - Daniel Pereira de Carvalho (2014-2-12). - * arch/arm/src/sam34/sam_emac.c: Add an Ethernet MAC driver for the - SAM4E. The initial checkin is essentially the SAMA5D3 EMAC driver - with naming changes as appropriate (2014-3-12). - * arch/arm/src/sam34/sam_cmcc.c: Add logic to manage the Cortex-M - Cache Control block. Untested on initial check-in (2014-3-12). - * arch/arm/src/sam34/sam_emac.c: Fix EMAC pin configuration (was been - set up for RMII instead of MII). Now the driver EMAC appears to be - functional (2014-3-13). - * configs/sam4e-ek/nsh: Networking support is now enabled by default - in the NSH configuration (2014-3-13). - * arch/arm/src/sam34/sam_spi.c: Backported the SAMA5 SPI driver to - the SAM3/4 architecture. The SAMA5 version supports both multiple - SPI peripherals as needed by the SAM3A and SAM3X and also supports - DMAC (but not PDC). The initial commit is untested and may very - well have (temporarily) broken SPI for the SAM3/4/ family (2014-3-13). - * configs/sam4e-ek/src/sam_at25.c and sam_hsmci.c: Added support for - the AT25 serial FLASH. Restructured the logic that registers the - HSMCI block driver (2014-3-13). - * arch/arm/src/sam34/sam_dmac.c and sam_spi.c: Fixes to DMA in general - and to SPI in particular (2014-3-14). - * configs/sam4e-ek/nsh: DMA-based SPI and a FAT file system on the - AT25 Serial FLASH are now supported by default in the NSH configuration - (2014-3-14). - * sched/nanosleep.c: Fix a missing call to re-enable interrupts. From - Jason Jiang (2014-3-15). - -7.2 2014-04-29 Gregory Nutt - - * arch/arm/src/sam34/sam_udp.c and .h: Add a USB full speed device - driver (UDP) for the SAM4E (2014-3-17). - * Documentation/NuttxPortingGuide.html: Typo fixes from Vijay Kumar - (2014-3-18). - * arch/arm/Kconfig: Improved documentation of the use of the - BASEPRI register from Vijay Kumar (2014-3-19). - * include/nuttx/i2c.h: More typo fixes from Vijay Kumar (2014-3-19). - * arch/Kconfig and *_assert.h: Add a configuration option to enable - dumping of the USB trace buffer on assertion (2014-3-19). - * drivers/usbdev/Kconfig, arch/arm/src/sam34/Kconfig, and - drivers/usbdev/usbmsc_scsi.c: If DCD can support queuing of stall - requests, then the USB MSC stall work around delays are not necessary - (2014-3-20). - * net/netdev_findbyaddr.c: Skip network devices that are in the - "down" state. It does not make sense to consider an address match - with a "down" device. From Brennan Ashton (2014-3-20). - * configs/sam4e-ek/usbnsh: Add a NSH configuration that uses the - NSH console (2014-3-22). - * arch/arm/src/stm32/stm32_eth.c: Add IGMP hashing support. From - Manuel Sthn (2014-3-24). - * net/netdev_ioctl.c and uip/uip_input.c: IGMP-related bug fixes - from Manuel Sthn (2014-3-24). - * arch/arm/src/sam34: Add missing HSCMI configuration settings to - Kconfig; update naming to include SAM34_ (2014-3-24). - * configs/sam4e-ek/include/board.h: Update HSMCI timing to use the - CLKODD bit (2014-3-24). - * drivers/include/mtd/Kconfig, sector512.c, and include/nuttx/mtd/mtd.h: - Add a new MTD driver that can be used to contain another driver and - force its apparent sector size to be 512 bytes (2014-3-24). - * arch/arm/src/sam34/sam_lowputc.c sam_serial.c: Fix a mysterious - multithreading bug that can lock up the serial port (2014-3-14). - * drivers/usbdev/Kconfig, usbmsc.c, usbmsc.h, and usbmsc_scsi.c: - Redesign threading module used with the USB MSC driver. It was using - pthreads before and these were changed to a kernel thread. The reason - for this has to do with task grouping: A pthread is a memory of the - group of the task that started it. A kernel thread is independent of - the task that started in (other than knowing it as the parent). This - allows me to remove so kludge logic to "deparent" the pthread on - startup (2014-3-25). - * tools/astyle.sh: A code formatting tool from Lorenz Meier. This - tool should do a better job than the old tools/indent.sh tool - (2014-3-26). - * arch/arm/src/sam_hsmci.c and sam_spi.c: Add support to invalidate - cached memory if the CMCC is enabled (not yet tested, 2014-3-26). - * arch/arm/src/sam_spi.c: Add logic to handle SPI word widths > 8 - (also untested on initial checkin, 2014-3-26). - * configs/sam4e-ek: All configurations updated to run with 120MHz - CPU speed and with the CMCC enabled. Calibrated delay loop - (2014-3-26). - * drivers/lcd/Kconfig: Add missing configuration for the MIO283QT-9A - LCD. Reported by Toby Duckworth (2014-3-27). - * arch/arm/include/sama5/chip.h and arch/arm/src/sama5/Kconfig: Add - support for the SAMA5D36 (2014-3-28). - * libc/strings/lib_strncpy.c: Change ordering of test and copy. Logic - would have failed if n=0; one byte was always copying before testing - for the end of the copy. - * nuttx/configs/sama5d3-xplained/: Add a board support configuration - for the Atmel SAMA5D3 Xplained board. The initial check in is not - finished. For example, it still builds to run out of NOR FLASH but - the SAMA5D Xlpained has no NOR FLASH (2013-4-28). - * arch/arm/src/sama5/sam_pmc.c and .h: Add functions to calculate - PLLACK, PCK, and MCK frequencies given the main clock frequency - (2014-3-29). - * configs/sama5d*/include/board.h, board_sdram.h, and other files: - When booting from SDRAM, we need to query the PMC registers (using - the functions in sam_pmc.c) to determine the MCK, PCK, etc. We assume - that the MCK input clock is well known main crystal oscillator - frequency (2014-3-29). - * configs/sama5d3x-ek: Change all configuration names to board- - specific names so that this are no name collisions with other - boards that have similar configuration variables (2013-3-30). - * configs/nuttx/compiler.h: Add macro UNUSED() that can be used - to eliminate warnings about variables that are set to values - that are not used (2014-3-30). - * arch/arm/src/sama5/sam_hsmci_clkciv.c: Remove HSCMI-related - functions that did not belong in sam_pmc.c and give them their - own file (2014-3-30). - * arch/arm/src/sama5/sam_boot.c: Fix some backward conditional - compilation (2014-3-30). - * libc/stdio/lib_sccanf.c: Fix a counting error in the return - value from sscanf(). Noted by kfrolov. Also, sscanf() should - return EOF if no values were converted (2014-3-30). - * include/time.h and sched/clock_settime(): Add support for - CLOCK_REALTIME. From Macs N (2014-3-31). - * libc/stdio/lib_ferror.c, lib_fread.c, lib_libfflush.c, - lib_libfread.c, and lib_libfwrite.c: Finish incomplete support - for ferror(). From Macs N (2014-3-14). - * libc/stdio/lib_ftell.c: Fix a logic error in ftell(). It was - simply using the file offset and did not take into account data - buffered in memory. From Macs N (2013-3-31). - * Add CONFIG_CLOCK_MONOTONIC that case used to disable CLOCK_MONOTONIC - for a smaller footprint (2013-3-31). - * sched/Kconfig: Menu has gotten too long. And another layer of - menuing in order to simplify this layer (2014-3-31). - * arch/arm/src/sama5_boot.c: Fix double mapping of SDRAM when executing - out of SDRAM. In this case, the SDRAM was already mapping in - arm_head.S (2014-3-31). - * arch/arm/src/sama5/chip/sam_dbgu.h: Add SAMA5D3 DBGU definition - header file (2014-3031). - * arch/arm/src/sama5/sam_dbgu.c and .h: Add support for the SAMA5D3 - DBGU (2014-4-1). - * configs/sama5d3-xplained/nsh: Configurations now use the DBGU for - the serial console (instead of USART1) (2014-4-1). - * libc/stdio/lib_sccanf.c: Use stroul() vs strol() with %u format - otherwise, range of values is restricted because of sign bit - from kfrolov (2014-4-2). - * arch/arm/src/sama5/sam_boot.c, sam_irq.c, chip/sama5d3x_memorymap.h: - When running from SDRAM, vectors must lie in SRAM (2014-4-2). - * arch/arm/src/armv7-a/arm_head.S and cache.h: On start-up, make - certain that the MMU and caches are disabled (probably un-necessary) - (2014-4-2). - * arch/arm/src/sama5/sam_boot.c: If we have to copy vectors, then - make sure to clean the DCache to be sure that the copied vectors are - in the physical RAM (2014-4-2). - * arch/arm/src/sama5/sam_irq.c: After we modify the AXI MATRIX, make - sure to invalidate all caches and TLBs (probably un-necessary) - (2014-4-2). - * arch/arm/src/sama5/sam_irq.c: Set the VBAR register to zero. If - were started by a bootloader (vs. a RESET), then the VBAR register - may not be in its reset state (zero, 2014-4-3). - * arch/arm/src/sama5/sam_boot.c, sam_irq.c, and chip/sama5d3x_memorymap.h: - When booting from SDRAM, don't relocated vectors to ISRAM. Instead, - just set the VBAR register to address of the vectors in SDRAM. - * arch/arm/src/sama5/sam_clockconfig.c: BMS Fixed to match what the HW - does. From David Sidrane (2014-4-3). - * arch/arm/src/sama5/Kconfig, sam_boot.c, andsam_clockconfig.c: On some - hardware, reconfiguring the PLL while executing out of NOR FLASH causes - crashes. This was fixed by David Sidrane by implementing RAM functions. - The killer code is copied and executed from ISRAM and the crash is - avoided (2014-4-3). - * configs/sama5d3-xplained/Kconfig and include/board*.h; - configs/sama5d3x-ek/Kconfig and include/board*.h: Add support for - 528MHz CPU clock (2014-4-3). - * arch/arm/src/sama5/Make.defs: Fix a build error that occurs when - only USB device tracing is enabled (2014-4-4). - * Documentation/UsbTrace.html: Add some discussion of the USB monitor - (2014-4-4). - * nuttx/arch/arm/src/armv7-a/mmu.h: Bufferable bit did not do what - I thought it was going to do. Result was the NOR FLASH accesses - were very slow (2014-4-3). - * arch/arm/src/sama5/sam_udphs.c: Fix a case where received status - was not being cleared, causing OUT SETUP commands to fail (2014-4-6). - * arch/arm/src/tiva/tiva_syscontrol.c: Add logic for TM4C125GXL based - on logic from Daniel Carvalho with modifications. I think the - LM4F120 may have broken before as well(?). In any event, the LM4F120 - also works well with this change (2014-4-7). - * Back out part of 610e2aa0c224e2936fe8009ef4a2351ce607067a: Need to - be able to select USB console devices when there is no /dev/console - enabled. Noted by Librae (2014-4-8). - * configs/*/defconfig: Increase the number of preallocated watchdogs - in all configurations that use networking or USB (2014-3-9). - * include/nuttx/syslog/syslog.h and ramlog.h: Move syslog.h and - ramlog.h to include/nutt/syslog (2014-4-10). - * sched/errno_getptr.c and getpid.c: Add some checks. If these - functions are called early in initialization before the tasking - structures are initialized, they will not behave properly - (2014-4-10). - * arch/arm/src/sama5/sam_twi.c: TWI data sending is fails to increment - the number of bytes transferred on first byte sent. From David Sidrane - (2014-4-10). - * configs/sama5d3x-ek/src: The red LED is controlled by PE24 which is - also the camera/ISI interface reset line. So if the a camera is - installed, then we must avoid controlling the red LED or we inadvertently - also reset the camera module. Noted by David Sidrane (2014-4-11). - * arch/arm/src/stm32/stm32_usbhost.c/.h and stm32_otgfshost.c: USB host - tracing added by Leo (2014-4-12). - * arch/arm/src/sama5/sam_adc.c, sam_can.c, sam_emac.c, sam_gmac.c, - sam_ssc.c, and sam_twi.c: If running from SDRAM, then BOARD_MCK_FREQUENCY - is not a constant and cannot be used in conditional compilation (2014-4-16). - * drivers/lcd/mio283qt9a.c and include/nuttx/lcd/mio283qt9a.h: Update the - MIO183QT-9A LCD driver to support reading from the LCD. From Toby - Duckworth (2014-4-16). - * arch/arm/src/stm32/chip/stm32f20xxx_pinmap.h: Correct a mapping for - SPI MOSI pin. From dlsitzer (2014-4-26). - * arm/src/sama5/sam_clockconfig.c and common/up_internal.h: Move the - un-definitions of __ramfuncs__ from the .c file to the .h file or, - otherwise, the attribute will be applied differently for the prototype - and the function definition. Sourceforge patch 38 from Luciano Neri - (2014-4-17). - * arch/arm/src/sama5/sam_emac.c: Add missing right parentheses. This - introduced in the above change and is Sourceforge patch 39 from Luciano - Neri (2014-4-17). - * configs/sama5dx-ek/include/board.h and sama5d3-xplained.h: These files - reference type xcpt_t and so must include nuttx/irq.h. This is - Sourceforge bug 25 submitted by Luciano Neri (2014-4-17). - * arch/arm/src/stm32/stm32_otgfshost.c: Some fixes related to low-speed - devices and interrupt endpoints from Leo (2014-4-17). - * configs/stm32f4discovery/src/stm32_usb.c: Add support to register - keyboard and mouse classes if so configured. From Leo (2014-4-17). - * include/nuttx/usb/usbhost: Fix some USB HID-related conditional - compilation. From Leo (2014-4-17). - * drivers/usbhost/usbhost_hidmouse.c: Don't include NAKs from the device - in the error count. From Leo (2014-4-17). - * arch/arm/src/sam34/sam_irq.c: Fix initialization of the default - priorities (2014-4-17). - * arch/arm/src/kinetis/kinetis_irq.c, lpc17xx/lpc17_irq.c, and - tiva/tiva_irq.c: Modify the logic to disables the interrupts and sets - the default interrupt priority so that it uses the ICTR to get the - number of interrupt lines/registers. This is instead of using some - fixed number of initializations based a priori knowledge of the number - of interrupt lines in the MCU. This logic is untested on some MCUs - on initial check-in0 (2014-4-17). - * arm/src/lpc17xx/Kconfig and lpc17_ethernet.c: The default interrupt - priority should be default, not the highest priority (2014-4-19). - * configs/lpcxpresso-lpc1768: Refreshed all defconfig files (2014-4-19). - * configs/olimex-lpc1766stk: Refreshed all defconfig files (2014-4-19). - * configs/zkit-arm-1769: Refreshed all defconfig files (2014-4-19). - * include/nuttx/binfmt/ieee695.h: Beginning of header file for IEEE - 695 OMF header file (2014-4-19). - * arch/arm/include/stm32/chip.h and src/stm32/Kconfig: Add support - for the STM401RE. From Frank Bennett (2014-4-20). - * README.txt, Documentation/README.html, configs/Kconfig and README.txt, - configs/nucleo-f401re: Add support for the Nucleo-F401RE board. From - Frank Bennett (2014-4-20). - * arch/arm/src/sam34/sam_rtc.c/.h: Port RTC driver from SAMA5 to - SAM3/4. From Bob Doiron (2014-4-21) - * arch/arm/src/sam34/sam4s_periphclks.h: Fix error in macros that - disable peripheral clocking. From Bob Doiron (2014-4-21) - * drivers/mmcsd/mmcsd_sdio.c/.h: Misc improvements from Bob Doiron - (2014-4-21) - * arch/arm/src/sam34/sam_hsmci.c and chip/sam_hsmci.h: Extensions - from Bob Doiron needed to support PDC-based HSMCI DMA transfers - (2014-4-21). - * configs/sam4s-xplained-pro: Support for the SAM4S Xplained Pro - board from Bob Doiron (2014-4-21). - * configs/sam4s-xplained-pro: Added card detect (kind of broken - still); added proc/vfat mounting during init to save some typing. - From Bob Doiron (2014-4-21). - * configs/sam4s-xplained-pro: Boost PLLA to 240MHz to allow USB. From - Bob Doiron (2014-4-21). - * arch/arm/src/sam34/sam_wdt.c/.h: Add watchdog driver. From Bob - Doiron (2014-4-21). - * nuttx/configs/sam4s-xplained-pro: Add board-specific watchdog - timer support. From Bob Doiron (2014-4-21). - * drivers/timer.c and include/nuttx/timer.h: Timer "upper half" - driver and lower half interface definition from Bob Doiron - (2014-40-22). - * arch/z16/src/z16f/z16f_espi.c: Add ZNEO ESPI driver (2014-4-24). - * arch/arm/src/stm32/stm32_sdio.c: The dmaflight method must - be conditioned on CONFIG_SDIO_PREFLIGHT. Noted by Pelle - Windestam (2014-4-25) - * configs/nucleo-f401re: Removed bogus references to the MPU - (2014-4-25). - * arch/z16/src/z16f_timerisr.c: Fix calculation of timer - reload and prescaler. The timer frequency was way too fast - (2014-4-25). - * arch/arm/src/stm32/stm32_otgfsdev.c and others: Sourceforge - Ticket #26. up_prioritize_irq should not be called if - CONFIG_ARCH_IRQPRIO is not defined (2014-4-25). - -7.3 2014-06-25 Gregory Nutt - - * arch/arm/src/sama5/sam_clockconfig.c: Needed function sam_pmcwait() - is needed when UDPHS, EHCI, or OHCI is configured but may not be - compiled in due to insufficient conditional logic. From Luciano Neri - (SourceForge patch #40) (2014-4-29). - * arch/arm/include/stm32/chip.h, src/stm32/Kconfig, stm32_allocateheap.c, - configs/nucleo-f401re/nsh/defconfig, and scripts/ld.script: Numerous - changes, most correcting memory usage on the Nucleo-F401RE (2014-4-30). - * /drivers/mtd/w25.c: Extended by Mark Whitehorn to support the 8Mbit - W25Q80BV part (2014-4-30). - * configs/sam4s-xplained-pro: Update LED control logic from Bob Doiron - (2014-4-30). - * drivers/timer.c and include/nuttx/timer.h: Enhanced timer interface - from Bob Doiron (2014-4-30). - * arch/arm/src/sam34/Kconfig and sam_tc.c: Enhanced timer/counter driver - from Bob Doiron (2014-4-30). - * configs/sam4s-xplained-pro/Kconfig, nsh/defconfig, and src/sam_tc.c: - The SAM4S Xplained Pro now uses the extended timer/counter features. - From Bob Doiron (2014-4-30). - * include/nuttx/arch.h and sched/os_internal.h: If the CPU load - measurements are being driven by an external clock, then the prototype - for sched_process_cpuload() must be available in include/nuttx/arch.h - (2014-4-30). - * Documentation/NuttShell.html and many defconfig files: The alternate - console device CONFIG_NSH_CONDEV must not be defined unconditionally. - This causes errors when using Telnet sessions. This was solved by - adding CONFIG_NSH_ALTCONDEV: CONFIG_NSH_ALTCONDEV enables or disables - the feature then, if enabled, CONFIG_NSH_CONDEV provides the alternative - console device name (2014-5-5). - * arch/arm/src/sam34/sam_rtt.c/.h: RTT driver from Bob Doiron. Also - added high resolution RTC emulation using the RTT for the sub-second - counter (2014-5-5). - * configs/sam4s-xplained-pro: Clean-up of LED usage and also some - integration of new timer features. From Bob Doiron (2014-5-5). - * drivers/timer.c and include/nuttx/timer.h: Timer driver updates from - Bob Doiron (2014-5-5). - * binfmt/symtab_findorderedbyname.c: Fix an error in the symbol search - function. Noted by Pelle Windestam (2014-5-6). - * arch/arm/src/stm32/stm32f40xxx_rcc.c and configs/nucleo-f401re/include/board.h: - The Nucleo-F401RE has no on-board crystals and, hence, needs to run - with the PLL input from the on-chip HSI clock (2014-5-6). - * arch/arm/src/armv7-a/arm_memcpy.S: This is the same optimized memcpy() - function that Mike Smith brought in for the ARMv7-M with minor tweaks - by David Sidrane to work with the ARMv7-A (2014-5-6). - * binfmt/libpcode, pcode.c, include/nuttx/poff.h, and binfmt/pcode.h: - Framework to support Pascal P-Code as a binary format. At present this - logic is incomplete and really nothing more than a thought experiment - to determine the feasibility of the P-code binary format (2014-5-7). - * drivers/sensors/Make.defs: Correct build dependency. Sourceforge - ticket #41 from Kosma Moczek (2014-5-8). - * drivers/serial.c, include/nuttx/serial.h, arch/arm/src/stm32/stm32_serial.c - and minor updates to all other drivers using the serial interface: Add an - rxflowcontrol method to the serial interface to better support RX flow control. - From Jussi Kivilinna (2014-5-8). - * arch/arm/include/stm32 and src/stm32: Add support for the STM32152 and - STM32162 Medium+ density parts (plus miscellaneous other improvements to - the original STM32151 logic). From Jussi Kivilinna and Sami Pelkonen - (2014-5-8). - * binfmt/binfmt_dumpmodule.c, binfmt_loadmodule.c, binfmt_unloadmdoule.c, - builtin.c, elf.c, nxflat.c, pcode.c, and include/nuttx/binfmt/binfmt.h: - Extend the binfmt interface to handle error conditions where format-specific - binfmt clean-up is needed in the event of error conditions. This is needed - by the P-Code binfmt (2014-5-8). - * binfmt/libpcode, pcode.c, include/nuttx/poff.h, and binfmt/pcode.h: - Now uses apps/interpreters/prun and is basically functional. More work - is needed because (1) it is too coupled with apps/ and (2) will not work - with CONFIG_NUTTX_KERNEL (2014-5-9). - * arch/arm/src/stm32/stm32_i2c.c: Bring in PX4 fix for I2C in very high - noise environments or with rogue perpipherals. Taken from the PX4 commit - 099b2017ccfa0fc7696f168db2a0c2e13fe5edbc by Tridge here: - https://github.com/PX4/NuttX (2014-5-10). - * include/nuttx/video/rgbcolors.h: Fix typo in several macros: RBG -> RGB. - (2014-5-12). - * drivers/mtd/ramtron.c: Add support for Fujitsu MB85RS1MT part. From - Charles Ash (2014-5-12). - * configs/sam4e-ek/src/sam_ili9325.c: Add an LCD driver for the SAM4E-EK - board. Untested on initial check-in (2014-5-13). - * configs/sam4e-ek/src/sam_ads7843e.c: Add a touchscreen driver for the - SAM4E-EK board. Untested on initial check-in (2014-5-13). - * arch/arm/src/stm32/stm32_i2c_alt.c: Add an alternative I2C implementation - for the STM32 F03 that works around errata in that part. From Patrizio - Simona (2014-5-14). - * arch/arm/src/sam34/sam_gpio.c: Fix some SAM4E compiler errors when - CONFIG_DEBUG_GPIO is enabled (2014-5-15). - * sched/sig_mqnotempty.c: Test for a valid signal number is inverted; this - function could not have been working correctly??? From eero.nurkkala - (2014-5-20). - * arch/arm/src/stm32/stm32_lowputc.c: Fix error in conditional - compilation. From Sami PelKonen (2014-5-20). - * arch/*/src/* (several files): Make sure that all references to - up_prioritize_irq() are conditioned on CONFIG_ARCH_IRQPRIO. Problem - noted by Mike Smith (2014-05-20). - * drivers/wireless/cc3000/Kconfig: Correct SPI mode for CC3000 is CPOL=0 - CHPA=1. See http://processors.wiki.ti.com/index.php/CC3000_Serial_Port_Interface_(SPI) - From Jussi Kivilinna (2014-5-21). - * drivers/wireless/cc3000/cc3000.c and include/nuttx/wireless/cc3000/include/cc3000_upif.h: - Configuration has CC3000_SPI_MODE settings but source uses - CONFIG_CC3000_SPIMODE. From Jussi Kivilinna (2014-5-21). - * drivers/wireless/cc3000/cc3000drv.c: unsoliced_thread does - initialization of message queue, but main thread might block that - thread from running and use the uninitialized message queue. The main - thread must wait until unsolice_thread initializes the required - structures before proceeding. From Jussi Kivilinna (2014-5-21). - * drivers/wireless/cc3000/cc3000.c: Fix build when POLL is enabled. - From Jussi Kivilinna (2014-5-21). - * arch/arm/include/armv7-m/irq.h: Change bne to bne.n in irqrestore() - (2014-5-22). - * Many files: Convert all old-style variadic macros to the C99 form. - Recent GCC changes tightens up that behavior and can cause some problems - (at least for the IAR compiler for some reason). See - https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html#Variadic-Macros. - Noted by Bob Grimes (2014-5-22). - * configs/viewtool-stm32f107/nsh: Configuration refreshed (2014-5-23). - * arch/arm/src/stm32/stm32_i2c_alt.c: Final driver from Max Kriegleder et al. - Reduces footprint and fixes a bug. (2014-5-23). - * tools/configure.sh: In-place SED edit messes up permissions on windows. - From Hannes Delago (2014-5-25). - * include/nuttx/mtd/mtd.h: Needs forward reference to struct spi_dev_s. - (2014-5-25). - * arch/arm/src/stm32/stm32_i2c.c and stm32_i2c_alt.c: Back out PX4 fixes - that were reverted in the PX4 repositories (2014-5-25). - * sched/Kconfig: CONFIG_START_YEAR/MONTH/DAY are not required if the - RTC is enabled (2014-5-26). - * arch/arm/src/stm32/stm32_rtcc.c: Add retry logic to RTC initialization. - It sometimes takes longer for the RTC to initialize, at least as noted - on an F2 part. From dlsitzer (2014-5-27). - * libc/stdio/lib_snprintf.c: If the size passed to snprintf() is zero, - then snprintf() must write nothing, but instead return the size of the - buffer needed to hold the entire string. From Sami Pelkonen (2014-5-30). - * net/arp: Move arp related files from net/uip to net/arp. Files renamed - with arp_ prefix (2014-5-30). - * include/nuttx/net/arp.h and net/arp/arp_timer.c: Moved - include/nuttx/net/uip/uip-arp.h to include/nuttx/net/arp.h; moved - net/net_arptimer to arp/arp_timer.c. (2014-5-30). - * net/igmp: Moved IGMP files from net/uip to net/igmp (2014-5-30). - * net/icmp: Moved ICMP files from net/uip to net/icmp (2014-5-30). - * net/uip/uip_tcptimer.c: NET: Notify upper layer when TIME_WAIT or - FIN_WAIT_2 timeout occurs. Otherwise connections possibly won't get - freed. From Max Holtzberg (2014-6-2). - * TCP fallback allocation: Added all states in which the connections are - about to be closed. Fallback mechanism is disabled when SO_LINGER is - enabled to prevent deadlocks in netclose_disconnect(). From Max Holtzberg - (2014-6-2). - * configs/olimex-stm32_h405: Support for the Olimex STM32 H405 board - contributed by Martin Lederhilger (2014-6-3). - * net/arp/Make.defs: Fix an error introduced recently in the net/ build - (2014-6-3). - * net/iob: Add generic I/O buffering. Not currently used by anything. - (2014-6-4). - * arch/arm/include/sama5 and arch/arm/src/sama5: Basic framework to - support the SAMA5D4 family. Incomplete on initial check-in (2014-6-3). - * arch/arm/src/sama5/chip/sam_xdmac.h: Beginning of XDMAC register - definition header file (incomplete) (2014-6-4). - * arch/arm/src/sama5/chip/sam_l2cc.h: Add SAMA5D4 L2CC register definition - header file (incomplete on initial check-in) (2014-6-5). - * drivers/usbdev/cdcacm.c: Reset RX head to avoid resending last serial - data when USB cable disconnected/re-connected. From Lizhuoyi (2014-6-6). - * drivers/usbdev/pl2303.c: Same change cloned for PL2303 (2014-6-6). - * arch/arm/src/lpc2378: Fix several typos. From Lizhuoyi (2014-6-6). - * arch/arm/src/lpc17xx/lpc17_gpdma.c: Fix an error when DMA is - started: The read-modify-write fails when the DMA is started. This - is because the value read is not the same as the value set (on write - it is the number of transfers to do; on read it is the number of - transfers completed). From Lizhuoyi (2014-6-6). - * configs/sama5d4-ek: Initial board support for the SAMA5D4-EK board. - This initial check-in is basically the SAMA5D3-Xplained board support - with appropriate name changes (2014-6-6). - * stm32/arch/arm/src/stm32_serial.c: Handle configuration for the - case of 8-bit data with parity. From Freddie Chopin (2014-6-11). - * binfmt/libelf/elf.c: Fix a compilation error when CONFIG_ELF_DUMPBUFFER - is defined. From Pelle Windestam (2014-6-12). - * net/, include/nutt/net, and include/netpacket: Add support for "raw" - sockets. From Lazlo Sitzer (2014-6-12). - * arch/arm/src/sama5: Add SAMA5D4 XDMAC driver. Initial check-in is - just the DMAC driver with a few naming changes (2014-6-12). - * configs/sama5d4x-ek/ramtest: Add an SDRAM test configuration - (2014-6-14). - * libc/stdio/lib_libsnoflush.c, lib_memsistream.c, and lib_memsostream.c: - Add support for seekable memory streams (2014-6-14). - * libc/stdio/lib_rawsistream.c, and lib_rawsostream.c: Add support for - seekable raw streams (2014-6-14). - * libc/stdio/lib_stdsistream.c, and lib_stdsostream.c: Add support for - seekable standard streams (2014-6-14). - * configs/sam4x-xplained*/src/sam_buttons.c: Button interrupts not being - disabled after being detached. (2014-6-15). - * binfmt/binfmt_exec.c: Fix a critical error in exec(); argv was not - being passed (2014-6-15). - * arch/arm/src/sama5/sam_dmac.h: Fix some critical typos in the SAMA5D3 - DMA definitions (2014-6-17). - * nuttx/net/net_send_unbuffered.c: Notify the device driver of the - availability of TX data. From Daniel Lazlo Sitzer (2014-6-18). - * net/net_close.c, net_send_unbuffered.c, socket.c, and uip_poll.c: - Various fixes for raw sockets from Daniel Lazlo Sitzer: (1) properly - free the socket in psock_close(), (2) socket() returns failure when - there is no free socket/connection, and (3) Set number of bytes to - transmit is set in the uip_driver_s instance (2014-6-18). - * net/tcp: Move all TCP files from net/uip to net/tcp (2014-6-18). - * net/udp: Move all UDP files from net/uip to net/udp (2014-6-18). - * net/pkt: Move all AF_PACKET files from net/uip to net/pkt (2014-6-18). - * net/Kconfig: Add option to select CONFIG_NET_GUARDSIZE (2014-6-18). - * net/net_send_buffered.c: Add checks from buffer allocation failures. - from Max/Himax (2014-6-19). - * tools/mkfsdata.pl: Apparently, the trailing the 0x00 in http server - files is seen as a bug in javascript and images. From Max/Himax - (2014-6-19). - * net/ and include/nutt/net (many files): Conversion of the TCP - write buffering logic to use I/O buffer chains (not tested on initial - check-in) (2014-6-22). - * include/time.h and sched/clock_gettime.c: Fix typo in conditional - compilation: CONFIG_CLOCK_MONOTONIC vs. CLOCK_MONOTONIC. From Manuel - Sthn (2014-6-23). - * arch/avr/Kconfig and arch/avr/src/avr32/Kconfig: Fix typos in - Kconfig files from Stefan Sperling (2014-6-23). - * net/net_send_unbuffered.c: Remove some spurious white space from - field selectors. SourceForge ticket #42 (2014-6-23). - * arch/arm/src/lpc17xx and configs/lpcexpresso-lpc1768: Added support - for the lpcxpresso's rtc handler, adc, dac, timers, pwm and mcpwm - drivers. From Max (himax) (2014-6-23). - * net/tcp/Kconfig: Cannot enable bother TCP write buffering AND raw - packet sockets. This should not logically be the case, but is because - the implementations are presently too coupled. The logic packet - socket logic in net/net_send_unbuffered.c needs to be broken out into - a separate file so that write buffered TCP and packet socket transfers - can co-exist (2014-6-23). - * net/uip/uip_pktsend.c: Move the logic that copies data into the - device buffer from net/net_send_unbuffered.c to net/uip/uip_pktsend.c. - This makes the packet socket design more consistent with TCP and UDP - (2014-6-23). - * net/: Separate net/net_send_buffered.c and net/net_send_unbuffered.c - to net/tcp/tcp_send_buffered.c, net/tcp/tcp_send_unbuffered.c, and - pkt/pkt_send.c (2014-6-24). - * include/net/if.h and /net/arp/arp_inout.c: Suppress ARP requests on - data sent from packet sockets (2014-6-24). - * include/nuttx/net/netconfig.h: Move include/nuttx/net/uip/uipopt.h to - include/nuttx/net/netconfig.h (2014-6-24). - * include/nuttx/net/netdev.h: Move include/nuttx/net/uip/uip-arch.h to - include/nuttx/net/netdev.h (2014-6-24). - * include/nuttx/net/tcp.h: Move include/nuttx/net/uip/uip-tcp.h to - include/nuttx/net/tcp.h (2014-6-24). - * include/nuttx/net/udp.h: Move include/nuttx/net/uip/uip-udp.h to - include/nuttx/net/udp.h (2014-6-24). - * include/nuttx/net/pkt.h: Move include/nuttx/net/uip/uip-pkt.h to - include/nuttx/net/pkt.h (2014-6-24). - * include/nuttx/net/icmp.h: Move include/nuttx/net/uip/uip-icmp.h to - include/nuttx/net/icmp.h (2014-6-24). - * include/nuttx/net/igmp.h: Move include/nuttx/net/uip/uip-igmp.h to - include/nuttx/net/igmp.h (2014-6-24). - * include/nuttx/net/ip.h: Move include/nuttx/net/uip/uip-ipopt.h to - include/nuttx/net/ip.h (2014-6-24). - * include/nuttx/net/uip.h: Move include/nuttx/net/uip/uip.h to - include/nuttx/net/uip.h (2014-6-24). - * net/uip/uip.h: Rename net/uip/uip_internal.h to net/uip/uip.h - (2014-6-24). - * net/iob: Add support for throttling read-ahead buffering if the - read-ahead buffering is competing with write buffering for I/O - buffers (2014-6-24). - * net/: Many files changed. Convert existing TCP read-ahead logic - to use I/O buffer chains (2014-6-24). - * net/: Clean up all TCP and UDP related naming (204-6-24). - * net/: Clean up all ICMP, IGMP, ARP, and PKT related naming - (204-6-25). - * arch/arm/src/sam34 and include/sam34: Add support for the SAM4CM - family. From Max Neklyudov (2014-6-25). - -7.4 2014-08-15 Gregory Nutt - - * arch/arm/src/stm32/stm32_i2c.c: Fix missing configuration of - GPIO pins in I2C driver. Fix from Alex D. (2014-6-25). - * NET: Fix an include file ordering problem when CONFIG_NET_STATISTICS=y. - (2014-6-26). - * include/nuttx/net/netstats.h: Move statistics from uip.h to new netstats.h - to remove nasty circular inclusion problem (2014-6-26). - * arch/arm/src/sama5: Add logic to redirect all SAMA5D4 interrupts to - the AIC (2014-6-26). - * net/route: Move routing table functions to net/route (2014-6-26). - * net/utils: Move some files into net/utils (2014-6-26). - * net/: Repartition initialization logic so that net/uip is at the bottom - of the food chain, instead of at the top. - * apps/include/hex2bin.h: The hex2bin library did not build with - debug disabled (2014-6-26). - * configs/sama5d4-ek/dramboot and src/dram_main.c: Add a boot loader that - runs from ISRAM and loads an Intel HEX file into DRAM (2014-6-26). - * configs/sama5d4-ek/nsh and scripts/: Setup the SAMA5D4-EK NSH - configuration to use the DRAMBOOT loader by default (2014-6-26). - * binfmt: Various changes associated with symbol tables. Most from Pelle - Windestam (2014-6-27). - * Networking: Add network device ioctl to access PHY registers. From Daniel - Lazlo Sitzer (2014-6-27). - * net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27). - * arch/arm/src/sam34/chip/sam4cm_ipc.h: Add SAM4CM IPC register header - file. From Max Neklyudov (2104-6-27). - * arch/arm/src/sam34: Various fixes PMC and clock configuration for the - SAM4CM port from Max Neklyudov (2104-6-27). - * configs/sama5d4-ek/src/dram_main.c: SAMA5D4: Bootloader needs to flush - D-Cache to memory before disabling the caches (2014-6-27). - * net/Makefile: Fix a Make.defs inclusion omitted in a previous check-in - (2014-6-17). - * net/utils: Move net/uip/uip_chksum.c to net/utils/net_chksum.c - (2014-6-17). - * configs/sama5d4-ek/at25boot and src/at25_main.c: Add a configuration - that will load a bootloader into AT25 Serial FLASH (2014-6-28). - * libc/math: Change double_t to double in rint(). Add rintf() and rintl() - while we are at it (2014-6-28). - * net/iob: Fix some errors in recent network I/O buffering when stack runs - from interrupt level. Reported by Manuel Sthn (2014-6-28). - * net/sockets: Create the net/sockets directory and hook it into the - build system. Move all socket-related C files into net/socket. Move - net/net.h to net/socket/socket.h (2014-6-28). - * net/ipv6: Move IPv6 files from net/uip to net/ipv6 (2014-6-28). - * net/devif: Rename net/uip to net/devif. Rename uip/uip.h to - devif/devif.h (2014-6-28). - * net/devif: Rename many functions in net/devif from uip_* to devif_* - (2014-6-28). - * configs/sama5d4-ek/src/nsh: The SAMA5D4-EK NSH configuration now - supports the RTC by default (2014-6-29). - * arch/arm/src/sama5/Kconfig and sam_hsmci.c: Add configuration to - assign an XDMAC channel to an HSMCI (2014-6029). - * Various fixes for networking and tiny webserver from Max (2014-6-29). - * SAMA5: Various fixes related to DMA in order to get the HSMCI - driver to build for the SAMA5D4 (2014-6-29). - * SAMA5D4-EK: Fix HSMCI card-detect pin selection (2014-6-29). - * net/: Still renaming, mostly uip_* to net_* (2014-6-29). - * arch/arm/src/stm32/stm32_i2c.c and stm32_i2c_alt.c, and - libc/time/lib_daysbeforemonth.c: Make variable definitions - 'static const' when possible to save RAM usage. From Kosma - Moczek (2014-6-30). - * include/stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN} - and [U]INT_FASTn{MAX|MIN}. From Kosma Moczek (2014-6-30). - * drivers/mtd/mtd-config: Extend erase block size to 18-bits in - order (decrease block size to 14-bits) to handle parts with large - erase blocks. From Kosma Moczek (2014-6-30). - * drivers/analog/adc.c: Remove empty ADC write method. From Kosma - Moczek (2014-6-30). - * arch/arm/src/stm32/stm32_serial.c: Unconfigure GPIO pins when - closing a serial port to prevent back effects from back-powering on - the TX pin. From Kosma Moczek (2014-6-30) - * arch/arm/src/stm32/Kconfig: Move temperature ranges from chip - selection configuration prompts. Reorder MCUs in choice menu; - remove duplicates. Add support for the STM32F103RC and RD. From - Kosma Moczek (2014-6-30) - * configs/sam4s-xplained-pro: Correct description of LEDs and - usage. From Kosma Moczek (2014-6-30) - * include/unistd.h: Some POSIX_* and _POSIX_* macros are defined - without value, whereas (as far as I can tell) the newer versions - of the standard require them to have the value corresponding to - the standard version implemented, like 200809L. Are there any plans - to clean this up? For now I've put together a quick patch that - defines those macros to 1, consistent with the rest of unistd.h. - From Kosma Moczek (2014-6-30) - * arch/arm/src/sama5/sam_memories.c: Fix some logic in conversion - of physical and virtual DRAM addresses when running out of DRAM. This - is an important bug fix for the SAMA5D3 and 4 when running out of - DRAM (2014-6-30). - * arch/arm/src/sama5/sam_pio.c: Another *critical* SAMA5D3 and 4 bug - fix: PIO clocking must be enabled for all input pins or else the - value that is read never changes. (2014-6-30). - * net/: Many more functions renamed to follow new modularization of - the networking code. This is part of an ongoing repartitioning - effort and there is still more to be done. There will be no additional - notations in this ChangeLog until the renaming is complete (2014-6-30). - * arch/arm/src/sam34/sam_emac.c, sama5/sam_emaca.c, sam_emacb.c, and - sam_gmac.c: Fix cloned error: Wrong bits being cleared before ORing - in new bits (2014-7-1). - * drivers/syslog/ramlog.c: syslog_putc needs to set the errno and - return EOF on a failure (2014-7-1). - * SAM3/4 and SAMA5 Ethernet: Fix an error in the function that - determines the number of free TX descriptors. This is an important - bugfix on busy networks (2014-7-2). - * SAM4 AES driver. Contributed by Max Neklyudov (2014-7-3). - * crypto/ and include/crypto: Beginnings of a crypto/ subsystem from - Max Neklyudov (2014-7-3). - * arch/arm/src/stm32 and fs/procfs: Add a procfs entry to show the - state of the CCM heap usage. From Pelle Winderstam (2013-7-3). - * SAMA5 OHCI: Fix an error in a DEBUGASSERT statement. Caused assertion - to fire inappropriately when a low- or full-speed device was removed - and CONFIG_DEBUG=y (2013-7-3). - * SmartFS. Fix for a bug that would show up if CONFIG_MTD_BYTE_WRITE - was not selected and the SMART sector size was larger than the mt - device's block size (like it would be if using SMARTFS on larger - flash devices). From Ken Pettit (2014-7-3). - * tools/mkdeps.c: NAME_MAX not available on SunOS; use FILENAME_MAX - or MAXNAMELEN. Noted by Douglas Beattie (2014-7-4). - * drivers/mtd/smart.c: Increase some variables from uint16_t to uint32_t - to handle larger device sizes. From Ken Pettit (2014-7-4). - * SAMA5 OHCI: Pointers to allocated port values were not being nullified - after being deallocated. This caused some assertions to fire when - debug was enabled (2014-7-4). - * include/nuttx/net/ip.h and ipopt.h: ip.h renamed ipopt.h. Moved - parts of uip.h to net.h. Renamed the rest of uip.h to ip.h. Removed - all includes of uip.h; added includes of ip.h wherever needed. - Tried to fix problems of the now missing sneak inclusions because - uip.h was removed. There are probably a few of these that were - missed! (2014-7-4). - * drivers/input/mxt.c/h and include/nuttx/input/mxt.h: Add very basic - support for the Atmel maXTouch touchscreen controller (2014-7-5). - * net/*/*.h: Start moving the private definitions from header files - at include/nuttx/net to the corresponding header file under net/. - So far pkt.h, upd.h, and igmp.h have been sanitized. Still a few - to go (2014-7-5) - * configs/sama5d4-ek/src/sam_maxtouch.c: Add board support for the - maXTouch touchscreen controller (2014-7-5). - * net/*/*.h: Finish moving the private definitions from header files - at include/nuttx/net to the corresponding header file under net/. - This additional header files have been sanitized: arp.h, icmp.h, tcp.h - (2014-7-6) - * net/: Add a few missing configuration options to the Kconfig files - (2014-7-8). - * net/iob/iob_trimhead_queue.c and socket/recvfrom.c: Important fix to - the read-ahead buffer queue management: Consumed bytes were being - trimmed from the head of the queue, but the queue head itself was - not being updated. From Rony XLN (2014-7-7). - * drivers/bch: Add configurable AES encryption support to block-to- - character (BCH) driver. This allows any block device to be accessed - as an encrypted character device. From Max Nekludov (2014-7-7). - * SAM3/4: Fix compile of sam_aes.c if CONFIG_CRYPTO_AES is defined. - From Max Nekludov (2014-7-7) - * SAMA5D3/4 I2C: Test for read or write operation was reversed. How - could this have worked before? (2014-7-7). - * SAMA5D3/4 PIO Interrupts: Correct a typo in - arch/arm/src/sama5/sam_pio.h that could disable PIO interrupt support - if only PIOE interrupts were enabled (2014-7-7). - * SAMA5D4 PIO Interrupts: Macro SAM_PION_VBASE is not defined for the - SAMA5D4 and must be replaced with a table lookup (2014-7-7). - * configs/sam*: Fix some cloned errors in SAM GPIO interrupt setup - (1014-7-7). - * arch/arm/src/sama5/Kconfig and sam_allocateheap.c: Add a - configuration option to reserve DRAM for a framebuffer when executing - out of DRAM. This optional was available before when executing out of - NOR, but needs to work a little differently in this case (2014-7-7). - * arch/arm/src/sama5/sam_lcd.c and chip/sam_lcdc.h: Adapt the SAMA5D3 - LCDC driver to work with the SAMA5D4 which has no hardware cursor - (2014-7-8). - * configs/sama5d4-ek: Add options to support an LCD (2014-7-7). - * arch/arm/src/sama5/sam_twi.c: Now support the up_i2creset() method - (2014-7-9) - * drivers/input/mxt.c: Use i2c_reset() if it thinks that the bus - might by hung (2014-7-9). - * arch/arm/src/sama5/sam_pio.c/.h: Add a new interface - sam_pio_forceclk() that can be used to force PIO clocking on. I am - afraid I was too conservative with PIO clocking in the initial design; - this is the price (2014-7-9). - * arch/arm/src/sama5/sam_twi.c: Use sam_pio_forceclk() so that we can - read the current state of an open-drain output in the TWI reset logic - (2014-7-9). - * arch/arm/src/sama5/sam_pio.c/.h: Fix a typo in Schmitt trigger - configuration; Configure pin as a a vanilla input first so that final - pin configuration is more read-able (i.e., easier to debug) - (2014-7-9). - * drivers/input/mxt: The maXTouch driver works! (2014-7-10). - * configs/sama5d4-ek: The TM7000 LCD works! (2014-7-10). - * configs/sama5d4-ek/NxWM: Add an NxWM configuration (2014-7-10). - * drivers/mtc_rwbuffer.c (and others): Add an MTD layer that will add - read-ahead or write buffering to any MTD driver (incomplete) (2014-7-11). - * arch/arm/src/lpc17xx/lpc17_ethernet.c: Comment out an assertion that - is reported to fire inappropriately. From Max (2014-7-11). - * drivers/mtd (mostly): Addition rwbuffer interfaces should not be - enabled unless they are needed; if rwbuffer support is enabled, it - should not be unconditionally enabled in SMART and FTL (2014-7-11). - * libnx/nxglib/nxglib_colorcmp.c and include/nuttx/nx/nxglib.h: New - utility to compare two colors (2014-7-11). - * graphics/Kconfig and nxbe/nxbe_configure.c: The initial background - color is now configurable (2014-7-11). - * graphics/nxmu/nxmu_server.c and nxsu/nx_setbgcolor.c: Don't change - the background if the color did not really change (2014-7-11). - * arch/arm/src/sama5/sam_ldc.c and sama5d4-ek/include/board.h: Back - out the delay kludge. The actual fix to the LDC instability was to - drive the LCD at 2xMCK instead of 1xMCK (2013-7-12). - * drivers/input/mxt.c: Fix an error in the state machine (2014-7-12). - * drivers/input/mxt.c: Add thresholding so that "move" reports are not - generated unless there is a significant change in the reported - position (2014-7-12). - * SAMA5D4-EK MXT: The maXTouch should be able to handler an I2C - frequency of 400KHz. Valid interrupts should occur only on the - falling edge of the ~CHG signal (2014-7-12). - * SAMA5D3x-EK: Use larger icons in NxWM configuration instead of - scaling (2014-7-14). - * Graphics: Rename CONFIG_NX_MOUSE to CONFIG_NX_INPUT, then add - CONFIG_NX_XYINPUT_MOUSE and CONFIG_XYINPUT_TOUCHSCREEN (2014-7-16). - * drivers/input/mxt.c: Fix error in threshoold test... backward - logic (2014-7-16). - * graphics/nxconsole/nxcon_scroll.c: Fix scrolling in the NxConsole - for the case of the framebuffer device. In this case, the logic - for clearing the vacated region at the bottom was missing so garbage - up from the last, uncleared line (2014-7-17). - * drivers/audio/wm8904.c/.h and include/nuttx/audio.wm8904.h: Framework - for a WM8904 audio driver. The initial driver check-in is simply Ken - Pettit's VS1053 driver forced to compile with only WM8904 definitions - (2014-7-18). - * configs/sama5d4-ek/src/sam_wm8904.c: Add logic to configure and - initialize the WM8904 audio CODEC (2014-7-17). - * arch/arm/src/sama5/sam_sckc.c/.h and chip/sam_sckc.h: Add SAMA5 - slow clock support. - * arch/arm/src/sama5/sam_pck.c and .h: Add support to use the slow - clock as the PCK clock source (2014-7-19). - * drivers/audio/wm8904.c/: The WM8904 audio driver is mostly code - complete and ready to begin initial testing (2014-7-19). - * arch/arm/src/sama5/sam_pio.c: Logic for Schmitt trigger selection - backward (2014-7-20). - * drivers/net/slip.c: Fix an error in SLIP escaping. From Max - Neklyudov (2014-7-22). - * drivers/input/Kconfg: Add missing configuration option to select the - MAX11802 touchscreen controller. From Petteri Aimonen (2014-7-22). - * arm/src/stm32/chip/stm32_dac.h: Fix typos, from Peterri Aimonen - (2014-7-22). - * arch/arm/src/stm32/stm32_otgfsdev.c: STM32 OTGFS device: Various - changes to try to reduce that amount of time in interrupts handles and - with interrupts disabled. Needs verification on other platforms. From - Petteri Aimonen (2014-7-22). - * arch/arm/src/sama5/sam_pck.c: Fix a recently introduced typo that was - being masked by some bad conditional compilation (2015=4-7-22). - * drivers/audio/wm8904.c and include/nuttx/audio/wm8904.h: Remove WM8904 - driver unused parameters, clean-up comments, remove some kruft in - capability reporting (2014-7-22). - * audio/Makefile and pcm_decode.c, include/nuttx/audio/pcm_decode.c, - configs/sama5d4-ek/src/sam_wm8904.c and others: Add new framework for - the PCM decoder. It is now a 'front end' for lower-level drivers like - the WM8904 that performs the PCM decoding from end (2014-7-22). - * audio/pcm_decode.c, configs/sama5d4-ek/src/sam_wm8904.c, - drivers/audio/wm8904.c, and include/nuttx/audio/pcm.h: Rename - pcm_decode.h to pcm.h since it will hold more than just decoding - definitions. Fix some porting errors like idbg should auddbg, etc. - Add wav file header and a few low-level wav utilities (2014-7-22). - * audio/pcm_decode.c and include/nuttx/audio/pcm.h: Flesh out a few - more PCM methods, still incomplete. Re-vision PCM structure - definition (2014-7-22). - * configs/sama*: Disable MMC/SD multiblock transfers in all SAMA5D3/4 - configurations. I suspect an issue but have not had time to run it - down yet so the easiest thing is simply to disable the feature for - now (2014-7-23). - * drivers/audio/audio_null.c, include/nuttx/audio/audio_null.c, and - configs/sama5d4-ek/src/sam_audio_null.c: Add a NULL audio device that - can be used to simply unit-level testing of audio decoders (2014-7/23). - * audio/pcm_decode.c, include/nuttx/audio/audio.h, and drivers/audio/audio_null.c - and wm8904.c: Add ioctls so that PCM decoder can configure the driver - bitrate, num channels, and sample width (2014-7-23). - * drivers/audio/Kconfig: Fix a typo in the audio Kconfig file, - UDIO->AUDIO (2014-7-23). - * configs/sama5d4-ek/nxwm/defconfig: The NxPlayer and audio system are - now enabled in the default configuration (although they have not yet - been fully integrated into the NxWM media player) (2014-7-23). - * configs/sama5d4-ek/nsh/defconfig: Enable the command line media player - in the NSH configuration as well (still does not work, however) - (2014-7-23). - * audio/Kconfig, audio.c, and include/nuttx/audio/audio.h: Add hooks for - fast-forward and rewind needed by CMediaPlayer; add hooks for - equalizer settings needed by the WM8904 (2014-7-24). - * drivers/audio/audio_null.c and wm8904.c: Fix some compile errors when - audio DEBUG is enabled (2014-7-24). - * SAMA5D4-EK NxWM: Configuration refreshed (2014-7-24). - * arch/arm/src/armv7-m/up_initialstate.c: Correct the initial value of - the BASEPRI register. This was apparently never being initialized! - From Max (2014-7-24). - * configs/mbed/src/up_adc.c, up_dac.c, and up_pwm.c and include/board.h: - Port ADC, DAC, and PWM logic from the configs/zkit-arm-1769. From Max - (2014-7-24). - * arch/arm/src/lpc17xx/lpc176x_rtc.c: Eliminate warnings. From Max - (2014-7-24). - * arch/arm/src/lpc17xx/lpc17_pwm.c, lpc17_timer.c, lpc17_dac.c: Mostly - cosmetic updates from Max (2014-7-24). - * arch/arm/src/lpc17xx/lpc17_adc.c and Kconfig : Added burstmode ADC - conversion mode, with CONFIG_ADC_BURSTMODE option in Kconfig. From - Max (2014-7-24). - * arch/arm/src/lpc17xx/lpc17_ethernet.c: Added option to use the kernel - worker thread to do most of the workload with CONFIG_NET_WORKER_THREAD - option in Kconfig. Eliminated a problem with PHY DP83848C : it doesn't - need a specific initialization on mbed. Critical bugfix: From time to - time (after some hours) the Ethernet receiver would lose one receive - interrupt and the IP stack never recover because there is no receive - watchdog as the transmit watchdog. From Max (2013-7-24). - * audio/pcm_decode.c: Add missing audio callback forwarding logic - (2014-7-25). - * arch/arm/armv7-a/l2cc_pl310.h: Move arch/arm/sama5/chip/sam_l2cc.h to - arch/arm/armv7-a/l2cc_pl310.h. Adjust the two corresponding Kconfig - files as well (2014-7-25). - * arch/arm/src/armv7-a/arm_l2cc_pl310.c, l2cc.h, l2cc_pl310.h, Kconfig: - Add initial support for the ARM L2CC-PL310 L2 cache (2014-7-26). - * arch/arm/src/armv7-a/cp15_cacheops.h: Rename ARMv7-A cache.h to - cp15_cache.h. Things will be broken on this commit until I get the - new cache.h in place (2014-7-26). - * arch/arm/src/armv7-a/cache.h: New cache.h file. Renames all functions - like cp15_XYZ_cache() to arch_XYZ_cache() and adds L2 cache support if - L2 cache is enabled (2014-7-26). - * arch/arm/src/sama5/*.c (many files): Change naming from cp_XYZ_cache() - to arch_XYP_cache() so that all cache operations will pick up L2 - support if it is enabled (2014-7-26). - * arch/arm/src/sama5/sam_boot.c: Enables cache early in boot-up sequence - (2014-7-26). - * arch/arm/src/armv7-a/arm_l2cc_pl310.c and l2cc.h: Minor bugfixes/ - improvements (2014-7-26) - * arch/arm/src/armv7-a/Kconfig: L2 Cache currently depends on - EXPERIMENTAL because it does not yet work properly (2014-7-26). - * include/nuttx/audio/audio.h: Move sub-sampling rate definitions from - nxplayer.h to audio.h (2014-7-17). - * audio/pcm_decode.c: PCM: First cut at fast forward by sub-sampling. - This design is overkill: It manages too many audio buffers. I think - that a cleaner design could do all sub-sampling in place without - managing additional audio buffers (2014-7-27). - * drivers/audio/audio_null.c: Was not returning buffers to the upper - level (2014-7-27) - * include/nuttx/audio/audio.h and audio/pcm_decode.c: Misc bugfixes - while integrating fast forward by sub-sampling (2014-7-27). - * audio/pcm_decode.c: Back out a change; the fix really belongs in - NxPlayer. (2014-7-27). - * arch/arm/src/lpc17xx/lpc17_adc.c and arch/arm/src/lpc17xx/lpc17_ethernet.c: - ADC updates from Max. Also fixes some syntax errors that I introduced in - the last commit (2014-7-28). - * audio/pcm_decode.c: Fix a logic error in a DEBUG assertion (2014-7-28). - * configs/sama5d4-ek/src/sam_pmic.c, dram_main.c, sama5d4-ek.h, Makefile. - Add logic to disable the faulty PMIC. This must be done with JP23 open. - It is performed only from the DRAMBOOT loader (2014-7-28). - * drivers/audio/wm8904.c: Fix some compile problems with the WM8904 driver - due to recent audio subsystem changes (2014-7-28). - * arch/arm/src/sama5/sam_timerisr.c and configs/sama5d3*/include/board*.h: - Correct system timer frequency. Input clock is MCK/2, not MCK - (2014-7-29). - * fs/fs_automount.c and include/nuttx/fs/automount.h (plus hooks in other - files): Add support for an auto-mounter that will automatically mount - and unmount a file system a media is inserted and removed (2014-7-29 . - * configs/sama5d4-ek/src/sam_automount.c: Add automounter support for - HSMCI0 and HSMCI1 (2014-7-29). - * configs/sama5d4-ek/Kconfig and src/sam_hsmci.c: Minor warning/latent - bug clean-up of auto-mounter logic (2014-7-29). - * configs/sama5d4-ek/README.txt anand src/sam_nsh.c, fs/fs_automount.c, - and include/nuttx/fs/automount.h: Cosmetic updates to comments and - README files and some naming (2014-7-29). - * configs/sama5d4-ek/nsh/defconfig and nxwm/defconfig: The SAMA5D4-EK - NSH and NxWM configurations now have the auto-mounter configured to - automatically mount the FAT file system on HSMCI0 at /mnt/sdcard - (2014-7-29). - * arch/arm/src/sama5/sam_hsmci.c: Add method to do RX transfer without - DMA. The 8-byte SCR transfer was failing silently with the DMA - transfer, leaving the SD card in single bit mode (2014-7-29). - * arch/arm/src/sama5/sam_hsmci.c: Fix a problem on card insertion/removal - callback handling. Interrupts were being disable so that the callbacks - occurred with interrupts disabled. This resulted in loss of some - interrupts and some not-so-good behaviors. The solution is to perform - all callbacks on the work thread unconditionally (2014-7-30). - * nuttx/fs/fs_automount.c: Auto-mounter: Fix state setting. Not - harmful other than it can cause a debug assertion to fire if you - manually unmount the media before removing it which is, of course, - what you are supposed to do (2014-7-30). - * arch/arm/src/sama5/sam_hsmci.c and README files: Re-enable TX DMA and - verify that DMA writes to the SD card are functional. They are so now - TX DMA is re-enabled in the driver. This might affect the SAMA5D3 - platforms where the TX DMA problem was found. The SAMA4D3 and 4 use - the same HSMCI driver. Much has change since then and it is not - surprising that DMA is now functional. However, the has not be re- - verified on the SAMA5D3 which has a different DMA controller - (2014-7-30). - * arch/arm/src/sama5/sam_dmac.c, sam_pio.c, and sam_pioirq.c: Changes - needed for a clean SAMA5D3 build after all of the recent SAMA5D4 - changes (2014-7-31). - * configs/sama5d3x-ek/nsh/defconfig: Refresh configuration (2014-7-31). - * configs/sama5d3x-ek/Kconfig, README.txt, src/sam_wm8904.c, Makefile, - sam_nsh.c, and sama5d3x-ek.h: Add support for the WM8904 audio CODEC - (2014-7-31). - * configs/sama5d3x-ek/nxplayer: Add a configuration to support the - command line NxPlayer (2014-7-31). - * audio/audio.c: More debug output (2014-7-31). - * configs/sama5d3x-ek/README.txt: REAME update (2014-7-31). - * drivers/audio/wm8904.c: Was not saving I2S interface instance - (2014-7-31). - * sched/sem_wait.c: Use set_errno() and get_errno(). Direct access - inside the OS may not be supported in the future (2014-7-31). - * drivers/audio/audio_null.c, vs1053.c, wm8904.c, include/nuttx/audio/audio.h, - libc/audio/lib_buffer.c: Change how the end of the audio stream is - detected by the leaf audio component. This used to be done by looking - for the first partial buffer. That does not work with the in-place - sub-sampling performed by the PCM decoder: That always reduces the - size of the buffer so that all buffers only partially filled by the - time they get to the leaf. Now, a flag is set in the audio buffer - flags set to indicate the final buffer in the stream (2014-7-31). - * arch/arm/src/sama5/sam_ssc.c: Needs to account for data offset in - audio buffer (2014-7-31). - * drivers/audio/wm8904.c: Can't reset the WM8904 unless we also - reinitialize all registers. Try to get a saner timeout based on - sample rate, bits-per-sample, and buffer size (2014-7-31). - * arch/arm/src/sama5/Kconfig and sam_ssc.c: SCC Frame Synch Delay and - Start Delay are now configurable (2014-8-1). - * drivers/audio/wm8904_debug.c: Add logic to dump WM8904 registers - (2014-8-1). - * drivers/audio/wm8904.c: Fix an error in write logic. I am not sure - why this fixes the problem (2014-8-1). - * include/nuttx/audio/wm8904.h (and implementers of the interface): - the WM8904 driver needs to know the frequency of the MCLK in order - to set up the FLL to generate the correct bitrate (2014-8-1). - * WM8904: Add an option to control WM8904 register dumping (2014-8-2). - * WM8904: Add logic to program the FLL to achieve the bitrate - (2014-8-1). - * arch/arm/src/sama5/sam_ssc.c: Verify that the requested bit width - is supported. Correct some alignment tests that depend upon the data - bit width (2014-8-2). - * audio/pcm_decode.c: Correct the end of audio stream handling. It was - not being detected before so that logic was not examining the WAV - header in the first buffer of the next audio file (2014-8-2). - * configs/sama5d3x-ek/nxplayer/defconfig: Update with last WM8904 - settings (2014-8-2). - * drivers/audio/wm8904.c: Disable the FFL at the end of playing - (2014-8-2). - * include/nuttx/audio/wm8904.h: Fix wm8904_dump_registers macro: - Wrong number of parameters (2014-8-2). - * arch/arm/src/sama5/sam_pck.* and all SAMA5D board header files: - Add Main clock as an option for the PCK clock source (2014-8-3). - * configs/sama5d*-ek/Kconfig and src/sam_wm8904.c: Add option to - use MAINCK as source fort he WM8904 MCLK (2015-8-3). - * include/nuttx/audio/wm8904.h, configs/sama5d3x-ek/src/sam_wm8904.cm, - and sama5d4-ek/src/sam_wm8904.c: WM8904 interface enable method now - returns the previous interrupt state (2014-8-4). - * configs/sama5d3x-ek/src/sama5d3x-ek.h and sama5d4-ek/src/sama5d4-ek.h: - Correct the WM8904 interrupt configuration, active high level. Fix - that and don't pull-up (2014-8-4). - * configs/sama5d3x-ek/src/sam_wm8904.cm, and sama5d4-ek/src/sam_wm8904.c: - Correct ordering of some WM8904initialization: Need to provide MCLK - before initializing the WM8904, not after (2014-8-4). - * drivers/audio/wm8904.c and .h: Correct calculation of bitrate (I am - not sure why this is correct). LR clock divisor is now a constant 32- - bits per frame. Conditioned out interrupt logic; it is not being used. - Also added some FLL lock interrupt/poll logic (which was subsequently - disabled) (2014-8-4). - * SAMA5D3x-EK and SAMA4D4-EK: Add/update usage documents for media - players (2014-8-4). - * drivers/audio/wm8904.c and .h: Add reset logic to put the part back - in its initial state after playing each WAV file. Base samples per - second on frame length, not bits-per-sample. Use a different frame - length for 8-bit and 16-bit data (2014-8-4). - * arch/arm/src/sama5/sam_hsmci.c: TX DMA is again disabled for the - SAMA5D3 family. Although it works with the SAMA5D4 (which has a - different DMA subsystem), it does not work with the SAMA5D3 (2014-8-5, - see also 2014-7-30). - * audio/pcm_decode.c: Handle errors in the PCM WAV file in a way that - the Nxplayer can recover gracefully: Send and Audio Complete message - (2014-8-5). - * arch/*/src/*/*_timerisr.c, up_initialize.c, and up_internal.h: Re-name - up_timerinit() to up_timer_initialize() for compatibility with new - tickless OS interface name (2014-8-6). - * arch/*/src/*/Make.def: Don't build existing timer initialization - logic if CONFIG_SCHED_TICKLESS is defined (2014-8-6). - * include/nuttx/arch.h: First cut at platform-specific interfaces - needed to support tickless OS option (2014-8-6). - * sched/Kconfig: Add a new option CONFIG_SCHED_TICKLESS to enable the - tickless OS. This is a work in progress but should be relatively - safe since the new features are only enabled by this option (Safer - but not 100% safe since it does not protect from typos and other - dumb errors) (2014-8-6). - * arch/sim/src/Makefile, up_idle.c, up_internal.h, and up_tickless.c: - Add support for a simulated interval timer support verification of - the tickless OS (2014-8-6). - * include/nuttx/arch.h: Added another tickless OS interface to get - the timer remaining on the interval timer (2014-8-6). - * include/nuttx/clock.h, sched/clock_initialize.c and clock_internal.h: - If CONFIG_SCHED_TICKLESS is defined, then the global variable - g_system_timer does not exist (2014-8-6). - * sched/Makefile: Don't build in sched_processtimer.c if - CONFIG_SCHED_TICKLESS is selected (2014-8-6). - * sched/clock_gettime.c and clock_settime.c: Use the clock_systimer() - macro, do access the g_system_timer() global directly (2014-8-6). - * sched/clock_systimer.c: Uses interval timer interfaces to get the - time if CONFIG_SCHED_TICKLESS is selected (2014-8-6). - * sched/sched_timerexpiration.c, Makefile, os_internal.h, - sched_addreadytorun.c, sched_processtimer.c, sched_unlock.c, - wd_cancel.c, wd_internal.h, and wd_start.c: Implements the - tickless OS (2014-8-7). - * Many files: Remove CONFIG_DISABLE_CLOCK. Why? This option is not - really very useful and was only selected in a few unusable, mostly - unusable configurations anyway (m9s12/ostest, kl25z/minnsh, - z180/ostest, 8051, sh1, z80, and z8). The only real loss is probably - to the kl25z/minsh configuration . And with the addition of the - tickless OS, I just wanted to make the pain go away (2014-8-7). - * Many files: Change CONFIG_MSEC_PER_TICK to CONFIG_USEC_PER_TICK. - This gives more options for system timers in general, but more - importantly, let's us realize higher resolution for the case of - CONFIG_SCHED_TICKLESS=y -- of course, at the risk of some new - integer overflow problems 2014-8-7). - * Many files: Change all time conversions. Yech. New timer units - in microseconds breaks all existing logic that used milliseconds - in the conversions. Something likely got broken doing this, - probably because I confused a MSEC2TICK conversion with a TICK2MSEC - conversion (2014-8-7). - * arch/sim/src/up_tickless.c and sched/sched_timerexpiration.c: The - tickless OS now appears fully functional and passes the OS test - on the simulator with no errors (2014-8-7). - * sched/mqueue: Move POSIX message queue files from sched/ to - sched/mqueue (2014-8-8). - * sched/signal: Move signal-related files from sched/ to sched/signal - (2014-8-8). - * sched/pthread: Move all pthread files from sched/ to sched/pthread - (2014-8-8). - * sched/semaphore: Move POSIX counting semaphore files from sched/ to - sched/semaphore (2014-8-8). - * sched/environ: Move environment files from sched/ to sched/environ - (2014-8-8). - * sched/group: Move group logic from sched/ to sched/group (2014-8-8). - * sched/wdog: Move watchdog functions from sched/ to sched/wdog - (2014-8-8). - * sched/irq: Move interrupt dispatch logic from sched/ to sched/irq - (2014-8-8). - * sched/clock: Move clock functions from sched/ to sched/clock - (2014-8-8). - * sched/timer: Move POSIX timer files from sched/ to sched/timer - (2014-8-8). - * sched/paging: Move page fill sources from sched/ to sched/paging - (2014-8-8). - * sched/init: Move initialization functions from sched/ to sched/init - (2014-8-8). - * sched/errno: Move errno related files from sched/ to sched/errno - (2014-8-8). - * sched/task: Move task control files from sched/ to sched/task - (2014-8-8). - * sched/: Move a few files in sched/ that did not seem to have a home to - sched/signal and sched/task (2014-8-8). - * sched/sched: Move scheduler files from sched/ to sched/sched - (2014-8-8). - * (Many files): Replace os_internal.h with sched/sched.h in files that - actually reference something in sched.h (2014-8-8). - * sched/task/exit.c: Move sched/exit.c to sched/task/exit.c (2014-8-8). - * (Many files): Remove os_internal.h it has been replace by several new - header files under sched/. There have been some sneak inclusion paths - via os_internal.h, so expect a few compilation errors for some - architectures (2014-8-8). - * Documentation/NuttxPortingGuide.html, arch/sim/src/up_tickless.c, and - include/nuttx/arch.h: Fix errors in documentation and comments related - to the Tickless OS. From Vijay Kumar (2014-9-9). - * arch/arm/src/sama5/sam_tc.c and .h: Can now handle non-constant - BOARD_MCK_FREQUENCY. Also now supports methods to attach user - interrupt handlers (2014-8-9). - * drivers/audio/audio_null.c: Fix an error in a variable name - (2014-8-9). - * arch/arm/src/sama5/sam_oneshot.c, .h, Kconfig, Make.defs, sam_tc.c, - .h, and sam_adc.c: Add support for a one-shot timer wrapper around - the low-level timer/counter logic. This also involved several changes - that rippled into the ADC driver (untested) (2014-8-9). - * arch/arm/src/sama5/sam_freerun.c, .h, Kconfig, and Make.defs: Add - support for a free-running timer wrapper around the low-level - timer/counter logic (2014-8-9). - * arch/arm/Kconfig, src/sama5/sam_tickless.c, Kconfig, Make.defs: Use - the one-shot and free-running timers to implement tickless OS support - for SAMA5 (2014-8-9). - * arch/arm/src/sama5/sam_oneshot.c and sam_tc.c: Fix several bugs in - timer/counter interrupt logic and one-shot timer logic. Comments and - debug output updated in additional files (2014-8-10). - * sched/wdog/wd_start.c: Correct a bug in Tickless OS support: logic to - detect changes in head of timer list was wrong (2014-5-10). - * sched/sched/sched_timerexperation.c, sched.h, and wdog/wd_start.c: In - tickless mode, need to stop the interval timer before inserted a new - delay into the timer list. Otherwise, the time is incorrect on the - first entry of the list (2014-8-11). - * arch/arm/src/sama5/sam_freerun.c and sam_oneshot.c: Correct bad time - conversion, 1000000 not 1000 to convert seconds to microseconds - (2014-8-11). - * sched/sched/sched_timerexpiration.c: Fix inaccurate time conversion. - Remove MSEC_PER_TICK from calculation and convert uint32_t to uin64_t - (2014-8-11). - * libc/time/lib_localtime.c, private.h, tzfile.h and several header and - make-related files: Adds support for localtime. From Max Neklyudov - (2014-8-12) - -7.5 2014-09-28 Gregory Nutt - - * clock/clock_systimespec.c and sched/clock/clock_gettime.c: When - reading the system timer, don't read a struct timespec, convert it - to a fake tick count, then back to a timespec (2014-8-15). - * sched/clock/Make.defs, clock_gettime.c, clock_settime.c, include/time.h, - nuttx/clock.h, configs/vsn/src/sif.c: Remove CLOCK_ACTIVETIME. It is non- - standard, unused, and gets in the way of maintaining clocks (2014-8-15). - * libc/time/lib_localtime.c: Modified to that the coding style is much - closer to NuttX coding style. The local header files private.h and - tzfile.h were removed and incorporated into lib_localtime.c. All - conditional compilation within lib_localtime.c that unconditionally - evaluated to FALSE was removed (2014-8-15). - * drivers/net/Kconfig and include/nuttx/arch.h: Standardize a PHY - interrupt attachment interface (2014-8-16). - * configs/Kconfig, sama5d3-xplained, sama5d3x-ek, and sama5d4-ek: - Convert existing board specific PHY interrupt interfaces to use newly - defined standard interface (2014-8-16). - * include/net/slip.h: Move SLIP prototypes from net.h to slip.h - (2014-8-16). - * include/net/net.h and net/: Fix some missing function headers - (2014-8-16). - * drivers/net/phy_notify.c, include/nuttxarch.h, net/phy.h, and - ioctl.h: Add support for an ioctl that can be used to notify an - application when there is a change in the network status signalled - by a PHY interrupt (2014-8-16). - * drivers/net/phy_notify.c, include/net/if.h, ioctl.h, netdev.h, phy.h, - and net/netdev/netdev_ioctl.c: Finishes the ioctl definition to - subscribe to PHY events. Revamp network ioctl signature to support - arguments other than struct mii_ioctl_data (2014-8-16). - * arch/arm/src/stm32/stm32_eth.c: Modified to support the change to the - network ioctl signature changes. Also add support for new ioctl to - setup PHY event notifications (2014-8-16). - * arch/arm/src/sama5/sam_emaca.c, sam_emacb.c, and sam_gmac.c: Implement - all network ioctls, including the new ioctl to setup PHY event - notifications (2014-8-16). - * include/net/if.h: Add some helper macros to make the code that uses - the ioctls a little more compact (2014-8-17). - * libc/stdio/lib_sscanf.c: NuttX libc tried to guess how many characters - to parse, extracted them into a buffer, then ran strtol() on that - buffer. That guess is often wrong. A better approach would be to - call strtol() directly on the input data, using the endptr return - value to determine how many characters to skip after parsing. From - Kosma Moczek (2014-8-18). - * net/arp/arp_dump.c: Add missing configuration option to select - dumping of ARP packet headers. Move ARP dumping logic from - arp_inout.c to its own file (2014-8-18). - * net/arp/arp_out.c: Move arp_out() from arp_inout.c to its own file - (2014-8-18). - * net/arp/arp_arpin.c: Move arp_arpin() from arp_inout.c to its own file - (2014-8-18). - * net/arp/arp_ipin.c: Rename arp_inout.c to arpipin.c because that is - all that is left in the file (2014-8-18). - * net/arp/arp_format.c: Move the logic that formats an ARP packet into a - separate file where it can be re-used. (2014-8-18). - * net/arp/arp_out.c and net/pkt/pkt_send.c: Change how the IFF_NOARP - flag is handled. This should be set only when data is moved into the - buffer and cleared after tested by the ARP logic. Setting it globally - can cause packets to be sent with no valid MAC addresses (2014-8-18). - * net/arp/arp_send.c: Partial implementation of logic to send ARP - requests to assure that an IP address mapping is present in the ARP - table (2014-8-18). - * net/arp/arp_poll.c: Finished the implementation of logic to send ARP - requests. Complete, fully hooked into the networking logic, and ready - for test (but still untested) (2014-8-18). - * net/icmp/icmp_ping.c, net/socket/net_sendfile.c, sendto.c, - net/tcp/tcp_send_buffered.c, and tcp_send_unbuffered.c: If - CONFIG_NET_ARP_SEND is enabled, then all ICMP, TCP, and UDP send - operations will call arp_send() before attempting the real send - operation. arp_send() will check if the IP address mapping is in - the ARP table and, if not send ARP requests periodically until it is. - This eliminates losing the first outgoing message because there is not - mapping in the ARP table (2014-8-18). - * net/arp/arp_notify.c, arp_send.c, arp_arpin.c, and arp.h: Add - signalling logic so that we do not have to wait so long with the - network responses to ARP requests quickly (2014-8-19). - * include/nuttx/lcd/ili9341.h: Add a register definition header file - for the ILI9341 LCD (2014-8-19). - * net/arp/Kconfig: ARP request logic is no longer EXPERIMENTAL - (2014-8-20). - * net/arp/arp_send.c: ARP request logic needs to do the right thing if - (1) the address is a broadcast or multicast address, and (2) if the - IP address lies outside of the network. Problem noted by Manuel Stuehn - (2014-8-20). - * configs/sam4e-ek/src/Kconfig and src/sam_ili9341.c: Add ILI9341-based - LCD driver. Fully functional (2014-8-20). - * configs/sam4e-ek/nxwm: Add an NxWM configuration for the SAM4E-EK - (2014-8-21). - * configs/viewtool-stm32f107: Refresh some configurations (2014-8-20). - * nuttx/sched/wdog: If we run out of pre-allocated watchdog times, the - logic will allocate additional timers from the heap. A reserve of - pre-allocated watchdog timers is maintained so that there will always - be timers available for interrupt handlers (2014-8-21). - * include/nuttx/wdog.h (and many affected files): wdog.h does not - contain any application interface, only internal OS interface. - Further, it is non-standard. Move wdog.h from include/ to - include/nuttx (2014-8-21). - * Documentation/NuttxPortingGuide.h: For the same reason as above, move - the description of the watchdog timer interfaces from the Users Guide - to the Porting Guide (2014-8-21). - * arch/arm/src/stm32/stm32_uart.h: STM32 F401: Correct support for - USART6 on this chip. From Freddie Chopin (2014-8-22). - * nuttx/sched/wdog and include/nuttx/wdog.h: Add support for statically - allocated watchdog timer (also eliminate some unconventional typing) - (2014-8-22). - * configs/p112/ostest and tools/mkdeps.c: Changes to try to get P112 to - compile with latest SDCC (it still does not) (2014-8-22). - * sched/group/group_leave.c: Need to release the address environment when - the task group is released (2014-8-22). - * mm/mm_granreserve.c and and mm_granmark.c: gran_reserve(): Add a - new function to reserve unallocatable regions in the granule heap - (2014-8-23). - * include/nuttx/pgalloc.h and mm/mm_pgalloc.c: Add a simple page - allocator based on the existing NuttX granule allocator. I am not - certain if the granule allocator is sufficiently deterministic for - long range use, but it gets get a page allocator in place for testing - very quickly (2014-8-23). - * ARMv7-A: Add skeleton implementation and build support for process - address environments (2014-8-23). - * Many files: Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how - it is selected -- the architecture must first declare support - (2014-8-24). - * include/nuttx/addrenv.h, arch/arm/include/arch.h, armv7-a/irq.h, and - other files: Add addrenv.h; First cut at Cortex-A address environment - structures; Add configuration options to setup address environment - (2014-8-24). - * addrenv interface changes: up_addrenv_create() may need to create - .text and .bss/.data separately because of differing access privileges - (read/execute vs read/write). And, as a consequence, up_addrenv_vaddr() - needs to be split into up_addrenv_vtext() and up_addrenv_vdata(). - Affects several files (2014-8-24). - * arch/arm/src/armv7-a/arch_coherent_cache.c: New file. These cache - operations are called from the ELF loader in order to flush D-cache - and invalidate I-cache after an ELF module has been loaded into memory. - With this change, ELF modules work correctly on the SAMA5/Cortex-A - platform (2014-8-24). - * configs/sim: Add build support for ELF modules. Useless at the moment - because there is no x86 relocation logic support (2014-8-25). - * configs/sim: Update some sim/ defconfig files. This now automatically - switches them to x86_64 builds (2014-8-25). - * arch/arm/include/arch.h, armv7-a/irq.h, src/armv7-a/arm_addrenv.c, - armv7-a/arm_mmu.c/.h, sama5/Kconfig, Make.defs, sam_pgalloc.c, - include/nuttx/addrenv.h, arch.h, pgalloc.h, mm/Kconfig, mm_pgalloc.c, - sched/init/os_start.c: Cortex-A/SAMA5 address environment support is - code complete (untested) (2014-8-25). - * arch/arm/include/tiva and src/tive: Add support for the TI CC3200. - From Jim Ewing (2014-8-26). - * configs/cc3200-launchpad: Add support for the TI CC3200 Launchpad. - From Jim Ewing (2014-8-26). - * arch/*/*_blocktask.c, arch/*/*_unblocktask.c, and arch/*/*_exit.c: - Add address environment support to all implementation of up_block_task(), - up_unblock_task(), and _exit() (2014-8-31). - * arch/arm/src/stm32/stm32_flash.c and chip/stm32_flash.h, - include/nuttx/progmem.h, and configs/vsn/src/sif.c: STM32 FLASH fixes: - use size_t instead of uint16_t, make interface more generic. From - Freddie Chopin (2014-8-28). - * Kconfig, Makefile.unix, Makefile.win, syscall/Kconfig, - arch/arm/src/armv6-m/svcall.h, up_svcall.c, armv7-m/svcall.h, and - up_svcall.c: The system call library can now be built with - CONFIG_NUTTX_KERNEL. New selection: CONFIG_LIB_SYSCALL (2014-8-28). - * arch/arm/src/armv7-a/syscall.h: "Add an ARMv7-A system call definition - header file (2014-8-28). - * arch/arm/include/armv7-a/irq.h, arm_syscall.c, syscall/Kconfig, - syscall_funclookup.c, syscall_nparms.c, and syscall_stublookup.c: - ARMv7-A: Add SYSCALL handling logic (2014-8-28). - * nuttx/fs/, drivers/, and sched/: Remove explicit references to errno. - That is a problem from within the kernel for certain configurations - (there are still more references to be fixed) (2014-8-28). - * sched/clock/clock.h: In some configurations, g_system_tmer must be - extern'ed as a private variable in the OS (2014-8-28). - * include/errno.h and nuttx/clock.h: errno and g_system_timer must be - handled in a special way if there are external modules (2014-8-28). - * include/sys/syscall.h: System definitions should depend on - CONFIG_LIB_SYSCALL not CONFIG_NUTTX_KERNEL (2014-8-28). - * arch/arm/src/armv7-a: Rename syscall.h to svcall.h to work around - some include path name collisions; fix some compilation errors in - SYSCALL logic when debug is enabled (2014-8-29). - * arch/arm/include/arm/syscall.h and armv7-a/syscall.h: Fix ARM7/9 - and Cortex-A SYSCALLs: For threads in SVC mode, the SVC instructions - clobbers R14. This must be taken account in the inline assembly - (2014-8029). - * arch/arm/src/armv7-a/arm_syscall.c: Fix hard coded values in - dispatch_syscall() inline assembly. Back out/correct part of last - change; that was going the wrong direction. With this change, the - apps/examples/elf test works with address environments and call - gates! (2014-8029). - * Many, many files: Renamed CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED. - Added configuration CONFIG_BUILD_KERNEL that will be used to generate - a kernel (only) with full process support and will execute programs - only from a file system. This new configuration is defined but only - partially integrated (2014-8-29). - * tools/refresh.sh: Add a tool to make refreshing configurations easier - when you want to do a lot of them (2014-8-29). - * tools/mksyscall.c: Build syscalls that do not need header files (there - are none, however) (2014-8-30). - * include/nuttx/errno.h syscall/syscall.csv and syscall_funclookup.c: - Yet more issues with errno access via syscalls fixed (2014-8-30). - * Makefile.unix, Makefile.win, Directories.mk, FlatLibs.mk, ProtectedLibs.mk, - and KernelLibs.mk: Separate the common directory selection logic - into Directories.mk; add support for kernel build. Move library - selection logic in common *.mk files, one each for flat-, protected-, - and kernel- mode builds (2014-8-30). - * include/nuttx/syscall.h syscall/syscall.csv: clock_systimer needs the - same fix as for get/set_errno when used with system calls (2014-8-30). - * sched/Kconfig sched/init/os_bringup.c tools/cfgdefine.c: Add - configuration options to start the system from a program on a file - system (2014-8-30). - * mm/ and include/nuttx/mm.h: Remove CONFIG_MM_MULTIHEAP. Non-multiheap - operation is no longer supported (2014-8-31). - * configs/sama5d4-ek/kernel: Add a configuration for testing the - kernel build configuration (still a work in progress) (2014-8-31). - * include/nuttx/arch.h, kmalloc.h, mm.h, sched/init/os_start.c, - sched/sched_free.c, and arch/arm/src/sama5/sam_allocateheap.c: Clean - up some kernel build heap allocation issues. The Cortex-A kernel - build now compiles without errors (but cannot link until brk() and - sbrk() are implemented) (2014-8-31). - * mm/*mm_brkaddr.c, *mm_extend.c, Makefile, and include/nuttx/mm.h: Add - low-level memory management hooks that will be needed to support brk() - and sbrk() (2014-8-31). - * Rename krealloc() to kmm_realloc() and kmemalign to kmm_memalign() for - consistency with the rest of the naming (2014-8-31). - * Rename kurealloc() to kumm_realloc(), kumemalign to kumm_memalign(), - and kufree to kumm_free for consistency with the rest of the naming - (2014-8-31). - * Rename kumalloc() to kumm_malloc() and kuzalloc to kumm_zalloc() for - consistency with the rest of the naming (2014-8-31). - * Rename kmalloc() to kmm_malloc(), kzalloc() to kmm_zalloc(), and - kfree() to kmm_free() and kuzalloc to kumm_zalloc() for consistency - with the rest of the naming (2014-8-31). - * mm/mm_sbrk.c, kmm_sbrk.c, umm_sbrk.c, and include/unistd.h: Initial - implementation of sbrk() (2014-9-1). - * arch/arm/src/armv7-a/arm_pgalloc.c, mm/umm_malloc.c, and mm_zalloc.c: - Completes the implementation of sbrk() (untested) (2014-9-1). - * configs/cc3200-launchpad: Updates to the CC3200-Launchpad configuration - for better compatibility. From Jim Ewing (2014-9-1). - * Removed all support from the 8051 from the NuttX source tree. The - obsoleted code along with the removal patch can now be found at - misc/Obsoleted/ (2014-9-1). - * sched/sched/sched_releasetcb.c and task_setup.c, include/nuttx/arch.h - and sched.h, and arch/*/*/*/Make.defs: There used to be two ways to - pass parameters to new tasks, depending upon the configuration: Either - (1) argv[] as created as an array with each string strdup'ed. Or (1) - argv[] array and strings were created on the stack before the new task - was started. Now, there is only one way, way (1). Way (2) might be - slightly more compact, but this is not worth carry the complexity of - two different ways of doing the same thing (2014-9-1). - * sched/init/os_start.c: Fix error in initialize of IDLE TCB due to last - change. The argument list is no long in the TCB, but in the stack. - But not for the IDLE task. It needs its own mini-argv[] list so that - it looks more like other threads (2014-9-1). - * arch/arm/src/armv7-a/arm_addrenv.c, include/nuttx/addrenv.h, and - mm/umm_*.c: Space at the beginning of the process data space is now - reserved for user heap management structures. In the kernel build - mode, these heap structures are shared between the kernel and use - code in order to allocate user-specific data (2014-9-2). - * include/unistd.h, nuttx/mm.h, and kmalloc.h, sched/init/os_start.c - and sched/sched/sched_free.c, mm/kmm_sbrk.c and mm_sbrk.c, and - arch/arm/src/sama5/sam_allocateheap.c: Restructuring of build to - allow use of use-space allocators by kernel logic in the kernel - build (2014-9-2). - * arch/arm/include/armv7-a/irq.h, arm_syscall.c, crt0.c, - include/nuttx/addrenv.h, and mm/umm_*.c: Add support for delivery - of use-mode signals in the kernel build (2014-9-2). - * mm/mm_graninit.c: Granule allocator initialization uses wrong - allocator to setting aside kernel memory (2014-9-3). - * sched/init/os_start.c: IDLE TCB setup needs to indicate that the - IDLE thread is a privileged, kernel thread (2014-9-3). - * include/nuttx/sched.h: Add a flag to group structure: If the group - is created by a kernel thread, then all resources in the group must - be privileged (2014-9-3). - * sched/group/group_malloc.c, group_zalloc.c, group_free.c, - group_create.c, group.h: Group creation logic must use new group flag - when allocating resources so that the privileges on the resource are - set correctly (2014-9-3). - * sched/Kconfig and sched/init/os_bringup.c: Add capability to perform - initial board initialization on a separate worker thread (2014-9-3). - * tools/mkexport.sh: Fix 'make export'. Adding subdirectories to the - sched/ directory broke the header file collection logic (2014-9-4). - * Makefile.unix, Makefile.win, FlatLibs.mk, KernelLibs.mk, and - ProtectedLibs.mk: In the kernel or protected builds, only the user - libraries should be exported (2014-9-4). - * Makefile.unix, Makefile.win, and tools/mkexport.sh: In 'make export', - do not copy internal header files or build scripts if this is a - kernel or protected build (014-9-4). - * tools/mkexport.sh, arch/*/src/Makefile, arm/src/a1x/Make.defs, - sama5/Make.defs, armv7-a/crt0.c: The 'make export' target needs to - bundle up the user C startup file (crt0), not the kernel head object - for the kernel and protected builds (2014-9-4). - * tools/mkexport.sh: Add .config file to export package (2014-9-5). - * configs/16z: Support for this board has been removed from the NuttX - source tree (but still can be found in the misc/Obsoleted directory). - This port is not ready for usage but may return to the NuttX tree - at some point in the future (2014-9-5). - * tools/Makefile.export and mkexport.sh: The apps/ import build requires - that we extract more information from the platform Make.defs file - (2014-9-5). - * tools/Makefile.export and mkexport.sh: Need to export the setting of - WINTOOL as well (2014-9-5). - * SAMA5D4-EK kernel configuration now builds NSH instead of examples/elf - (2014-9-6). - * libc/pthread/pthread_attrinit.c, sched/pthread/pthread_create.c, and - include/nuttx/pthread.h: Fix some conditional compilation in kernel - build mode. And, while we are touching this logic, make - g_default_pthread_attr const (2014-9-7). - * arch/arm/src/armv7-a/arm_addrenv.c: Correct size comparison (pages vs. - sections) (2014-9-7). - * configs/sama5d4-ek/src/sam_bringup.c and sama5d4-ek.h: Need to call - elf_initialize() on bring-up before attempting to load ELF modules - (2014-9-7). - * arch/arm/src/armv7-a/arm_addrenv.c: Fix loop counter... was overrunning - a table on larger ELF files (2104-9-7). - * arch/arm/src/sama5/sam_memories.c, sam_pgalloc.c, and sam_pgalloc.h: In - kernel build with address environment, need logic to map user virtual - addresses to physical addresses, and vice versa (2104-9-7). - * SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK - definitions to board.h header file. From Fabien Comte (2014-9-8). - * Several pthread interfaces: Add const storage class to the phthread - parameters. From Freddie Chopin (2014-9-8). - * libc/math: Corrected atan2 implementations from Denis Arnst (2014-9-8). - * sama5d4-ek/knsh: Rename the kernel configuration to knsh to better - match the naming used with other platforms (2014-9-8). - * configs/cc3200-launchpad/README.txt: Add README file for the CC3200 - Launchpad (2014-9-9). - * configs/sama5d4-ek/README.txt, Kconfig, knsh/defconfig.ROMFS, - src/sam_bringup.c, and sama5d4-ek.h: SAMA5D4-EK kernel config can now - boot from a ROMFS file system (2014-9-9). - * LibTargets.mk, Makefile.unix, and Makefile.win: Move common library - targets out of Makefile.unix and Makefile.win into a new LibTargets.mk - (2014-9-9). - * LibTargets.mk and configs/sama5d4-ek/knsh/Make.defs: Add logic that will - permit us to build user libraries with different CFLAGS than kernel - code. This is needed because we need the -fno-common option when - building ELF code to prevent SHN_COMMON relocations (2014-9-8). - * binfmt/libelf/libelf_symbols.c, libelf_bind.c, and all implementations - of up_relocate(): ELF relocations. Some relocation types do not have - a named symbol associated with them. The design did not account for - that case (2014-9-9). - * binfmt/binfmt_execmodule.c: When allocating a stack for a new process - using the user-space allocator, need to select the address environment - first (2014-9-9). - * arch/Kconfig, arm/src/armv7-a/pginline.h, arm_addrenv.c, and - arm_pgalloc.c and include/nuttx/addrenv.h: Add configuration to use - the fixed DRAM mapping for the page pool (if available) instead of - remapping dynamically to access L2 page tables and page data. Also, - add logic in address environment creation to initialize the shared - data at the beginning of the .bss/.data process memory region - (2014-9-10). - * configs/sama5d4-ek/elf and knsh: These configurations now use the - fixed DRAM mapping for manipulating the page memory pool (2014-9-10). - * arch/arm/include/arch.h and src/armv7-a/arm_addrenv.c, - nuttx/binfmt/binfmt_execmodule.c, libelf/libelf_addrenv.c, - libelf_load.c, libnxflat/libnxflat_addrenv.c, include/nuttx/arch.h, and - mm/umm_initialize.c: Add logic to initialize the per-process user - heap when each user process is started (2014-9-10). - * sched/clock/clock.h, clock_initialize.c, and clock_settime.c: Remove - vestiges of g_tickbias; apply bias instead to g_basetime (2014-9-10). - * include/nuttx/lib.h, sched/init/os_start.c, and - configs/ea3131/locked/mklocked.sh: Replace the empty lib_initialize() - function with a pre-processor macro (2014-9-11). - * libc/misc/lib_stream.c: When a privileged thread exits, we have to use - the kernel allocator to free memory; when an unprivileged thread exits, - we don't have to do anything... heap memory will be cleaned up when the - address environment is torn down (2014-9-11). - * arch/arm/src/stm32/stm32_serial.c and chip/stm32f20xxx_rcc.h: Fix for - UART7 and UART8 on STM32 clock enable from Aton (2014-9-11). - * arch/arm/src/armv7-a/arm_vectors.S: ARMv7-A: Exception register - save/restore needs to work a little differently if we support user - mode processes (2014-9-11). - * configs/cc3200-launchpad/src/cc3200_leds.c and other board files: Add - LED support for the CC3200 Launchpad. From Jim Ewing (2014-9-11). - * arch/arm/src/armv7-a/arm_initialstate.c: All tasks, even user mode - tasks, must start in supervisor mode until they get past the start-up - trampoline (2014-9-11). - * arch/arm/src/armv7-a/arm_vectors.S: Fix logic for returning from - exceptions to user-mode contexts. NuttX processes are now functional - on the Cortex-A (2014-9-11). - * arch/arm/src/armv7-a/arm_fullcontextrestore.S, arm_syscall.c, crt0.c, - and svcall.h: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL. - It changed CPSR while in kernel. That will crash if the new CPSR is - user mode while executing in kernel space. Fixed by adding a - SYS_context_restore system call. There is an alternative, simpler - modification to up_fullcontextrestore() that could have been done: It - might have been possible to use the SPSR instead of the CPRSR and then - do an exception return from up_fullcontextrestore(). That would be - more efficient, but I never tried it (2014-9-12). - * binfmt/libelf/libelf_load.c: ELF: Critical bugfix.. BSS was not being - cleared (2014-9-12). - * configs/sama5d4-ek/knsh/defconfig and defconfig.ROMFS: Enable NSH - file applications in these configurations (2014-9-12). - * libc/Kconfig, unistd/lib_execsymtab.c, configs/sim/nsh/defconfig, and - stm32f4discovery/posix_spawn/defconfig: Having a symbol table is an - option. There are no symbol tables with CONFIG_BUILD_KERNEL, for - example (2014-9-12). - * syscall/syscall.csv and include/sys/syscall.h: exevc, execvl, - posix_spawn, and posix_spawnp were not properly integrated as system - calls (2014-9-12). - * syscall/syscall_lookup.h: Fix typos in the stub lookup table - (2014-9-12). - * configs/stm32f4discovery/netnsh, Kconfig, README.txt, and - include/board.h: Add the network enabled NSH configuration for the - STM32F4Discovery board with the STM32F4DIS-BB base board installed - (2014-9-13). - * nuttx/mm/umm_sbrk.c: Fix a typo in use of a configuration setting - (2014-9-13). - * configs/stm32f4discovery/README.txt: Add STM32F4DIS-BB GPIO pin - usage (2014-9-13). - * arch/Kconfig, arch/arm/include/arch.h, src/armv7-a/arm_addrenv.c, - sama5/sam_pgalloc.c, and include/nuttx/addrenv.h: Add a configuration - option for dynamic stack management (stack management not yet - implemented) (2014-9-13). - * arch/Kconfig arm/src/armv7-a/addrenv.h, arm_addrenv.c, and - arm_addrenv_utils.c, a1x/Make.defs, and sama5/Make.defs, - include/nuttx/addrenv.h and arch.h: Move static helper routines from - arm_addrenv.c and may them global so that they can be shared by - forthcoming stack address environment logic (2014-9-13). - * arch/arm/src/armv7-a/arm_addrenv_stack.c, arm_addrenv.c, - a1x/Make.defs, sama5/Make.defs, and include/nuttx/arch.h: Add logic - needed to manage a virtualized stack. Not yet incorporated into - base OS logic (2014-9-13). - * sched/task/task_posixspawn.c: Kernel proxy thread should be a kernel - thread, not a user task (2014-9-14). - * include/sched.h and spawn.h, libc/Kconfig, spawn/Make.defs, - lib_psa_getstacksize.c, lib_psa_init.c, and lib_psa_setstacksize.c, - sched/task/Make.defs, task_create.c, and task_spawn.c: Don't build - task_create() or task_spawn() interfaces if there is an address - environment (2014-9-14). - * arch/arm/src/armv7-a/arm_addrenv_ustack.c, include/nuttx/addrenv.h, - arch.h, and other files: Rename everything associated with the dynamic - process stack to ustack to make room in the name space for a kstack - (2014-9-14). - * arch/arm/src/armv7-a/arm_addrenv_kstack.c, include/nuttx/addrenv.h, - arch.h, and other files: Add the initial implementation of the process - kernel stack logic. Not yet integrated into the main OS logic nor - tested (2014-9-14). - * binfmt/binfmt_execsymtab.c and Makefile, sched/task/task_execv.c, - task_posixspawn.c, and Make.defs, include/unistd.h, - include/nuttx/binfmt/symtab.h, and libc/unistd/Make.defs: execv() is - a basic system interface. It should not be in libc/ but rather in - sched/task. Its symbol table helper logic also belongs in the kernel - but belongs in binfmt/ with the other symbol table logic (2014-9-15). - * include/sys/syscall.h, syscall/syscall.csv, syscall_lookup.h, and - syscall_stublookup.c: execl() is not a system interface. It belongs - in libc and should not have a system call associated with it - (2014-9-15). - * arch/arm/include/armv7-a/irq.h and src/armv7-a/arm_syscall.c: If we - are configured to use a kernel stack while in SYSCALL handling, then - we need to switch back to the user stack to deliver a signal (2014-9-15). - * arch/arm/src/armv6-m/up_svcall.c, armv7-a/arm_syscall.c, and - armv7-m/up_svcall.c: Fix a typo in system call when fetching parameter - from the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4] - (2014-9-15). - * sched/sched/sched_releasetcb.c: Don't release user stack in kernel - build. Already destroyed with all of the address environment - (2014-9-15). - * arch/arm/src/armv6-m/up_signal_dispatch.c, src/armv7-a/arm_signal_dispatch.c, - and arch/arm/src/armv7-m/up_signal_dispatch.c: Move - common/up_signal_dispatch.c to armv6-m, armv7-m, and armv7-a. The - armv7-a version needs to be different to handle the case where we - are dispatch kernel mode signals when running under a user mode group - (2014-9-16). - * arch/arm/src/armv7-a/arm_syscall.c: Correct stack handling if signal - deliver to user processes (2014-9-16). - * arch/arm/src/armv7-a/arm_physpgaddr.c, pgalloc.h, sama5/sam_pgalloc.c, - and sam_pgalloc.h: Move some share-able logic from sama5/sam_pgalloc.c - to armv7-a/arm_physpgaddr.c (2014-9-16). - * arch/arm/src/sam34/sam_rtt.c: Only SAM4 family has RTTDIS bit in the - MR register. SourceForge bug #33 from Fabien Comte (2014-9-17). - * arch/arm/src/stm32/stm32_can.c: At the end of the interrupt handler, - the interrupts were being disabled, if all packets have been - transferred when the interrupt handler was invoked. This is - problematic, because the interrupt handler calls can_txdone of the - upper half which can enqueue new packets to send. Removed the block - altogether, because can_txdone calls can_xmit which disables - interrupts if there are no new packets to send. From Daniel Lazlo - Sitzer (2014-9-17). - * drivers/can.c: In can_txdone, waiters on the semaphore should be - informed regardless of the return value of can_xmit. First it returns - -EIO if there are no new packets, and second the information of the - waiters is about the last transferred packet. From Daniel Lazlo - Sitzer (2014-9-17). - * SAMA5D4-EK: Add documentation/support for Rev E. board. Refresh NSH - configuration. Fix some build errors/warnings introduced with recent - work with the knsh configuration (2014-9-17). - * arch/sim/Kconfig, src/up_spiflash.c, Makefile, up_initialize.c, and - up_internal.h: Emulated SPI FLASH driver for the sim target from Ken - Pettit (2014-9-19). - * configs/stm32f4discovery/include/board.h, netnsh/defconfig, - src/Makefile, stm32_sdio.c, stm32_boot.c, stm32_nsh.c, - stm32_bringup.c, and stm32f4discovery.h: STM32F4Discovery: Add - support for the microSD card slot on the STM32F4DIS-BB base board - (2014-9-20). - * Change all occurrences of NxConsole to NxTerm (2014-9-20). - * include/sys/ipc.h, shm.h, mman.h, and types.h: Add shared memory - definitions, types, prototypes (2014-9-22). - * fs/smartfs/smartfs_smart.c: SMART FS update from Ken Pettit - (2014-9-22). - * mm/mm_gran/: Move granule allocator and page allocator from mm/. to - mm/mm_gran/. (2014-9-22). - * mm/kmm_heap/: Move kernel heap allocator from mm/. to mm/kmm_heap/. - (2014-9-22). - * mm/umm_heap/: Move user heap allocator from mm/. to mm/umm_heap/. - (2014-9-22). - * mm/mm_heap/: Move common heap logic from mm/. to mm/mm_heap/. - (2014-9-22). - * mm/shm/: Create a home for forthcoming shared memory logic - (2014-9-22). - * fs/procfs/fs_procfs.c: Fix some procfs breakage introduced by - reorganizing some un-reorganizable data structures. From Ken - Pettit (2014-9-22). - * drivers/mtd/smart.c, fs/smartfs/smartfs.h, smartfs_procfs.c, and - smartfs_utils.c, include/nuttx/fs/ioctl.h, and mtd/smart.h: Updated - SMART FS procfs support. From Ken Pettit - * configs/mikroe-stm32f4: Fix a few compile bugs and minor corrections - to the mikroe-stm32f4 configuration source. From Ken Pettit - (2014-9-22). - * mm/Kconfig, shm/Make.defs, shmat.c, shmctl.c, shmdt.c, shmget.c, and - Documentation/NuttxUserGuide.html: Add the documentation, build - framework, and skeleton files for the shared memory feature (no logic - yet provided) (2014-9-22). - * include/sys/syscall.h, syscall/syscall.csv, syscall_lookup.h, and - syscall_stublookup.c: Add system calls for shared memory interfaces - (2014-9-22). - * include/nuttx/shm.h, mm/shm/shm.h, and shm_initialize.c: Add shared - memory initialization logic (2014-9-23). - * include/nuttx/arch.h, Documentation/NuttxPortingGuide.html, and - NuttxUserGuide.html: Add platform-specific interface definitions - needed to support the shared memory feature (2014-9-23). - * arch/arm/include/arch.h, src/armv7-a/addrenv.h, arm_addrenv.c, - arm_addrenv_ustack.c, and arm_addrenv_utils.c: Add logic necessary - to handle remapping of shared memory on context switches (2014-9-23). - * include/nuttx/gran.h, mm/mm_gran/mm_granrelease.c, and Make.defs: Add - interfaces to support un-initializing a granule allocator (2014-9-23). - * arch/arm/src/armv7-a/arm_pgalloc.cm sched/group/group_addrenv.c, and - other files: Fix some inconsistent field name in struct task_group_s: - addrenv should be tg_addrenv (2014-9-23). - * arch/arm/src/armv7-a/pgalloc.h: Extend virtual/physical address - conversions to include addresses in shared memory (2014-9-23). - * include/nuttx/shm.h, sched.h, mm/shm/shm_initialize.c, - binfmt/binfmt_execmodule.c, sched/group/group_leave.c: Add support - for a per-process virtual page allocator. This is a new member of - the task_group_s structure. The allocator must be initialized when a - new user process is started and uninitialize when the process group - is finally destroyed. It is used by shmat() and shmdt() to pick the - virtual address onto which to map the shared physical memory - (2014-9-23). - * mm/shm/shmat.c and shmdt.c: Completes the implementation of the core - shared memory logic: shmget(), shmctl(), shmat(), and shmdt(). This - is still some unfinished platform-specific code that needs to be done - before we can begin testing (2014-9-23). - * include/nuttx/mm: Move mm.h, gran.h, and shm.h from include/nuttx to - include/nuttx/mm (2014-9-24). - * arch/arm/src/stm32/stm32_can.c: STM32 CAN correction suggested by Max - Holtzberg (2014-9-24). - * arch/arm/src/armv7-a/addrenv.h, arm_addrenv_shm.c, - arm_addrenv_utils.c, and pgalloc.h: This completes the implementation - of shared memory support for the Cortex-A platforms (2014-9-24). - * fs/fs_poll.c: Fix unnecessary delays and timing jitter in the - implementation of poll(): No delay if timeout is zero; If timeout is - greater than zero, first check if events are already pending events - before starting the delay. From Johannes Hampel (2014-9-25). - * drivers/mtd/at45db.c: In at45db_bwrite , the buffer is not increased - when writing more than 1 page. Sourceforge bug #34 (2014-9-25). - * crypto/cryptodev.c: Path segments reversed in include file path. - Noted by Brennan Ashton (2014-9-25). - * drivers/mtd/mtd_rwbuffer.c: The MTD Read-ahead/Write buffer layer - appears to be functional (2014-9-25). - * libc/stdio/lib_libdtoa.c: Change to lib_dtoa() to fix precision error - from trailing zeroes. From Bob Doiron (2014-9-26) - * fs/fs_poll.c: Re-implemented poll() delay using sem_timedwait() - (2014-9-26). - -7.6 2014-11-26 Gregory Nutt - - * fs/fs.h and other files: Rename fs/fs_internal.h to fs/fs.h (2014-9-28). - * include/nuttx/semaphore.h and fs/fs.h: Add data structures that will - allow us to move name semaphore support out of the OS and into the - VFS (not complete) (2014-9-28). - * fs/inode: Move inode and VFS utils from fs/. to fs/inode/. (2014-9-28). - * fs/driver: Move driver logic from fs/. to fs/driver/. (2014-9-28). - * fs/dirent: Move directory operations from fs/. to fs/dirent/. (2014-9-23). - * fs/mount: Move mount-related files from fs/. to fs/mount/. (2014-9-23). - * fs/vfs: Move renaming files in fs/. to fs/vfs/. (Don't all belong there) - (2014-9-23). - * fs/semaphore: Create a build structure that will (eventually) support - using the VFS to manage named semaphores (2014-9-23). - * configs/stm32f4discovery/include/board.h: STM32F4-Discovery: Fix some - backward conditional compilation (2104-9-29). - * nuttx/sched/init/os_start.c, semaphore/Make.defs, sem_initialize.c, - and semaphore.h: Semaphore initialization is now only required if - priority inheritance is enabled (2014-9-29). - * fs/Makefile and mqueue/: Add build support for messages queues as part - of the VFS (only build logic, no C files yet) (2014-9-29). - * fs/inode/inode.h and fs/driver/driver.h: Move fs/fs.h to fs/inode/inode.h - and some to fs/driver/driver.h (2014-9-29). - * sched/task/task_vfork.c: Fix vfork(). Now that arguments are kept on - the stack, the way that arguments are passed from parent to child in - vfork() must change. This bug has always been present, but was not - visible with the old strdup() way of passing arguments (2014-9-29). - * arch/arm/src/common/up_vfork.c: Another vfork() problem: If we get to - vfork() via system call, then we need to clone some system call - information so that the return form the cloned system call works - correctly (2014-9-29). - * fs/mqueue: Move mq_open(), mq_close(), and mq_unlink() logic from - sched/mqueue to fs/mqueue. Convert the logic so that it uses the VFS to - managed the message queue namespace (instead of custom logic). By - default, now message queues can be seen in /var/mqueue (2014-9-29). - * arch/sim/src/up_simuart.c, up_uartwait.c: Removed old, strange - up_stdio.c and implemented a simulated UART driver to provide the - console input. Starts a separate, Linux domain pthread to read - the console input in raw mode and provides the incoming data to - NuttX via standard NuttX domain IPCs (2014-9-30). - * arch/sim/src/up_setjmp32.S, up_setjmp64.S, Kconfig, Makefile, - up_initialstate.c, up_internal.h, up_stackframe.c, and include/irq.h: - Add support for 64-bit longjmp/setjmp in simulator platform. This - will permit operation of the simulation natively on a 64-bit platform - (2014-10-2). - * include/fcntl.h: Implement create() as a macro (2014-10-4). - * fs/vfs/Make.defs, fs_pread.c fs_pwrite.c, and include/unistd.h: Add - pread() and pwrite() (2014-10-4). - * include/sys/syscall.h syscall/syscall.csv, syscall_lookup.h, and - syscall_stublookup.c: Add pread() and pwrite() system calls - (2014-10-4). - * include/aio.h: Add aio.h header file (2014-10-4). - * libc/aio/lio_listio.c and Make.defs: Add empty skeleton file where - lio_listio() will eventually be implemented (2014-10-4). - * libc/Kconfig, aio/aio_read.c, aio_write.c, aio_return.c, aio_error.c - aio.h, and Make.defs: Initial implementation of aio_read(), - aio_write(), aio_return(), and aio_error() (2014-10-4). - * include/signal.h and sched/Kconfig: Add definitions for SIGPOLL - (2014-9-5). - * libc/aio/aio_signal.c, Make.defs, and aio.h: Move AIO signal logic - to a common location in aio_signal.c. Also fix several typos - (2014-9-5). - * libc/aio/aio_suspend.c, aio_cancel.c, aio_fsync.c, lio_listio.c and - Make.defs: Initial implementation of aio_suspend(), aio_cancel(), - lio_listio.c, and aio_fsync.c. This completes this implementation - of the asynchronous I/O interfaces but there are still untested - (2014-9-5). - * fs/aio/Make.defs, aio.h, aio_cancel.c, aio_fsync.c, aio_read.c, - aio_signal.c, and aio_write.c: Move all file operations from libc/aio - to fs/aio. These will need to be kernel routines in order to - handler issues with using file descriptors on worker thread - (2014-10-5). - * fs/aio/aio.h, Kconfig, aio_initialize.c, aioc_contain.c, Make.defs, - and include/aio.h: Add a AIO control container to increase the - payload with OS internal stuff (2014-10-6). - * fs/aio/aio_cancel.c, aio_fsync.c, aio_read.c, aio_signal.c, and - aio_write.c: Modify logic to use AIO control block container - (2014-10-6). - * fs/fs_initialize.c, Makefile, fs/inode/fs_inode.c, and inode.h: - Modify FS initialization logic to handle AIO container - initialization (2014-10-6). - * Too many files to list: Major structuring of file system functions - to better support asynchronous I/O. Repository should not be - trusted until I have a chance to verify everything (2014-10-6). - * include/nuttx/mm/mm.h: Fix a place in the memory manager where it - explicitly assumed that the size of a pointer is 4 bytes. That is OK - if the actual size is smaller but makes the heap unstable when used - with the x86_64 host simulation (2014-10-6). - * sched/wqueue, include/nuttx/wqueue.h, and libc/Kconfig sched/Makefile: - Add support for priority inheritance on the low priority worker queue - (2014-10-7). - * sched/Makefile and sched/*/Make.defs: Simplify how C source files are - selected in the build (2014-10-7). - * fs/aio/aio_queue.c, Make.defs, aio.h, aio_fsync.c, aio_read.c, and - aio_write.c: The asynch I/O implementation now satisfies POSIX - priority requirements; it uses the new low priority worker thread - interfaces to adjust the priority of the worker thread according to - the priority of the client thread (2014-10-7). - * arch/arm/src/stm32/chip/stm32_otghs.hstm32_otghs.c/h and - chip/stm32_otghs.h: Add files that implement true high speed support - for the STM32 OTGHS peripheral. From Brennan Ashton (2014-10-7). - * arch/arm/src/stm32/ (several files): Integrates OTGHS support into - the STM32; Eliminates the older OTGHS in FS mode logic. From Brennan - Ashton (2014-10-7). - * arch/arm/src/stm32/Kconfig, stm32_otgfsdev.c, chip/stm32f40xxx_pinmap.h, - configs/stm32f429i-disco/ (several files): Remove non-functional - vestiges of OTGHS in FS mode (including OTGFS2); try to convert the - stm32f429i-disco configuration to use OTGHS instead of OTFHS in F - mode (OTGFS2). But I don't have the boards and can't test (2014-10-7). - * include/syslog.h, debug.h, libc/libc.csv, misc/lib_dbg.c, - lib_dumpbuffer.c, stdio/lib_lowsyslog.c, lib_printf.c, lib_syslog.c, - and fs/driver/fs_syslog.c: Make standard syslog and vsyslog POSIX - compliant (also modify non-standard syslog functions for - compatibility). This will break a lot of things until ALL usage of - syslog is updated to use the modified interfaces (2014-10-8). - * drivers/: Correct everything under nuttx/drivers, nuttx/arch, nuttx/net, - nuttx/binfmt, and nuttx/configs to use the corrected syslog interfaces - (2014-10-8). - * libc/syslog and fs/syslog: Move syslog logic from libc/misc and - libc/stdio to libc/syslog and fs/syslog. Also move some syslog logic - from fs/driver to fs/syslog (2014-10-8). - * fs/syslog/fs_syslogmask.c: Implement syslogmask() (2014-10-8). - * include/sys/syscall.h, syscall/syscall.csv, syscall_lookup.h, and - syscall_stublookup.c: Add syslog system calls (2014-10-8). - * fs/Kconfig, syslog/fs_syslogenable, and include/syslog.h: Remove - non-standard, conditional syslog_enable(), instead only the - required, standard setlogmask() (2014-10-9). - * arch/arm/src/stm32/chip/stm32_exti.h: Correct STM32 RTC EXTI bit - definition. From Lazlo (2014-10-9). - * include/syscall.h, syscall/, and libc/: Remove syslog interfaces - from the set of system calls (2014-10-9). - * libc/syslog: Move syslog back out of the kernel into the C library - (2014-10-9). - * arch/mips/src/pic32mx/pic32mx-devcfg.h: For PIC32MX7, DEVCFG0 bit - 2 must be set. Writing bit 2 as zero can brick the CPU on some - versions. From Cris Kvist (2014-10-9). - * sched/wqueue/, libc/wqueue, and include/nuttx/wqeueue.h: Separate - kernel- and user-mode work queue logic. Decouple work queue data - structures. This is part of the preparation to support multiple - low-priority worker threads (2014-10-10). - * include/nuttx/wqueue.h, libc/wqueue/Make.defs, work_usrthread.c, - work_usrstart.c sched/init/os_bringup.c wqueue/kwork_hpthread.c, - kwork_lpthread.c, and wqueue.h: Modularize starting of worker - threads to better isolate individual initialization characteristics - (2014-10-10). - * arch/arm/src/ stm32_iwdg.c, stm32_wwdg.c, and chip/stm32_dbgmcu.h: - Fix watchdog stop bit usage. From Lazlo (2014-10-10). - * sched/wqueue/, libc/wqueue, and include/nuttx/wqueue.h: Add support - for multiple low-priority worker threads. This is a necessary - piece of the support for asynchronous I/O (2014-10-10). - * sched/wqueue/work_inherit.c: Add logic for priority inheritance with - multiple worker threads. How should this work? Tentatively, the all - get reprioritized together. It would be best to just reprioritize the - single thread doing the high priority work, but we don't know which - that will be in advance (2014-10-10). - * fs/aio/ and include/aio.h: Add support for socket-based transfers - (2014-10-11). - * arch/arm/include/stm32/chip.h, /src/stm32/Kconfig, and - stm32_allocateheap.c: Support for the STM32 F411RE from Serg Podtynnyi - (2014-10-14). - * configs/Kconfig, README.txt, and nucleo-f401re: Extend this board - configuration to also support the Nucleo-F411RE. From Serg Podtynnyi - (2014-10-14). - * tools/Config.mk: Add a PRELINK macro to Config.mk. From Kriegleder - (2014-10-17). - * arch/arm/src/efm32 and arch/arm/include/efm32: Add a basic port for - the SiLabs EFM32 family. Includes many files contributed by Pierre-noel - Bouteville (2104-10-20). - * configs/efm32-gxxx-stk: Add board support for the EFM32 Gecko Starter - Kit (2014-10-20). - * configs/olimex-efm32g880f128-stk: Add board support for the Olimex - EFM32G8809128 STK (2014-10-20). - * drivers/lcd/Kconfig, ili9341.c, Make.defs, and include/nuttx/lcd/ili9341.h: - Add support for a generic ILI9341 driver. From Marco Krahl (2014-10-20). - * configs/stm32f429i-disco/Kconfig, src/ and lcd/: Add support for the - STM32F429i Discovery's LCD. From Marco Krahl (2014-10-20). - * arch/arm/src/lpc43xx/lpc43_gpioint.c, .h, lpc43_irq.c, and - chip/lpc43_gpio.h: Fixes to allow compile of lpc43_gpioint.c. It - likely doesn't work. From Brandon Warhurst (2014-10-21). - * arch/arm/src/stm32/chip/stm32f103r_pinmap.h: Add ADC pinmap - definitions for the STM32 F103R from Martin Lederhilger (2014-10-21). - * arch/arm/src/armv7-m/up_itm.c and itm.h: Add CMSIS ITM header file and - library. From Pierre-noel Bouteville (2104-10-21). - * arch/arm/src/armv7-m/dwt.h and tpi.h: Add CMSIS DWT and TPI header files. - From Pierre-noel Bouteville (2104-10-21). - * arch/arm/src/armv7-m/arm_item_syslog.c, itm_syslog.h, and Kconfig: Add - ARMv7 support to use ITM for SYSLOG debug output. Includes logic from - Pierre-noel Bouteville (2014-10-22). - * arch/arm/src/efm32/efm32_clockconfig.c, efm32_start.c, and Make.defs: - Add logic to initialize and use ITM for syslog. Includes logic from - Pierre-noel Bouteville (2014-10-22). - * sched/sched/sched_timerexpiration.c and include/nuttx/arch.h: Fixes - to tickless operation code, especially in alarm mode. From Brandon - Warhurst (2014-10-23). - * nuttx/arch/arm/src/lpc43xx/lpc43_rit.c, lpc43_rit.h, and related - files: Add support for tickless operation using the NXP LPC43xx. From - Brandon Warhurst (2014-10-23). - * arch/arm/src/efm32/efm32_gpio.c and efm32_gpioirq.c: EFM32 port and - pin decoding backward in every case. From Pierre-Noel Bouteville - (2014-10-23). - * arch/arm/src/armv7-m/up_itm_syslog.c: Correct file naming and fix - compilation errors in up_itm_syslog.c. From Pierre-Noel Bouteville - (2014-10-23). - * configs/sam4e-ek/src/sam_ethernet.c (and other files):SAM4E-EK: Add - support for PHY interrupt (2014-10-24). - * include/wchar.h: Add a mostly bogus wchar.h header file. This file - is mostly bogus because none of the wide character operations are - currently supported in the Nuttx C library (2014-10-27). - * include/termios.h, libc/termios/lib_isatty.c, and Make.defs: Add - isatty() function. From Alan Carvalho de Assis (2014-10-27). - * arch/arm/include/efm32, src/efm32, and configs/efm32-gxxx-stk: - The EFM32 Gecko Starter Kit port is now functional. At least - NSH is running over LEUART0 on the board (2014-10-29). - * arch/arm/src/sam34/sam_serial.c and Kconfig: Add support for SAM3/4 - basic TERMIOS and flow control. There are issues with IFLOW control: - PDC or DMAC support is required (2014-10-29). - * configs/sam4e-ek/src/sam4e-ek.h: Fix an error in a USART1 pin number - (2014-10-29). - * configs/efm32gg-stk3700: Board support for the SiLabs EFM32GG - Giant Gecko Starter kit. Current with basic NSH configuration only. - Testing is on hold until I receive hardware (2014-11-03). - * libc/Kconfig: Move CONFIG_NSH_TMPDIR to CONFIG_LIBC_TMPDIR (2014-11-05). - * libc/stdlib/lib_mkstemp.c, lib_mktemp.c, Make.defs and include/stdlib.h: - Add mktemp() and mkstemp() (2014-11-05). - * libc/stdio/lib_tempnam.c, lib_tmpnam.c, Kconfig, Make.defs and - include/stdio.h: Add tmpnam() and tempnam() (2014-11-05). - * drivers/rwbuffer.c: Fix typo that can cause compiler error (2014-11-05). - * drivers/mtd/m25px.c: Extend MTD support to M25P16. From Sébastien - Lorquet (2014-11-07). - * arch/arm/src/stm32/Kconfig, chip.h, and include/stm32/chip.h: Support - for the STM32F103RG. From Murilo Ponte (2014-11-10). - * configs/stm32f100rc_generic: Removed this generic board configuration. - I have decided to stop support of generic board configurations. Generic - board configurations do not provide support for any specific hardware - but can be useful only if there are not other examples for the setup - for a particular architecture. Not the case here (2014-11-10). - * include/nuttx/vt100.h: Add foreground and background color commands - (2014-11-10). - * sched/wdog/wd_create.c: Fix an important bug in the watchdog creation - logic (2014-11-10). - * include/unistd.h, libc/unistd/lib_access.c and Make.defs: From Lorenz - Meier: The implementation of access() as vararg macro has the issue that - any function call with the same name (even in a C++ class) will match - with it and result in a compile error. I have replaced it with a small - function, and tried to have decent documentation as well. This resolves - the compile issue, and shouldn’t have negative side effects for users - of the function (2014-11-11). - * mm/mm_gran/mm_granrelease.c: If the INTR granule allocator mode is - enabled, there is no semaphore to destroy. From Lorenz Meier (2014-11-12). - * fs/nxffs/nxffs_dump.c: Fix problems with redefinitions of fdb macro. - With the fix to the syslog prototype, a LOG priority must now be the - first parameter. Fixed by replacing all occurrences of fdbg with - syslog(LOG_DEBUG, and eliminating the macro redefinitions. Noted by - Sebastien Lorquet (2014-11-12). - * arch/arm/src/common/up_internal.h: Add protection from C++ name - mangling in the ARM up_internal.h. From Lorenz Meier (2014-11-12). - * include/nuttx/compiler.h: Defines inline functions as not - instrumented - this is relevant for anyone using instrumentation. From - Lorenz Meier (2014-11-12). - * libc/string/lib_strncpy.c: The definition of strncpy() is that empty - space should be zero-filled, the patch adds the zero filling (I didn’t - know this, see e.g. the POSIX spec here: - http://pubs.opengroup.org/onlinepubs/7908799/xsh/strncpy.html). From - Lorenz Meier (2014-11-12). - * arch/arm/include/limits.h: Remove the definition of INT_FAST32_MIN - which is already defined in stdint.h (the correct location). From - Lorenz Meier (2014-11-12). - * arch/arm/src/efm32/efm32_clockconfig.c, configs/efm32gg-stk3700/README.txt - and include/board.h: Fixes to get the EFM32GG-STK3700 basic NSH - configuration running. It works! (2014-11-12). - * drivers/bch/bchdev_driver.c: Add support for seeking in BCH. From - Sébastien Lorquet. (2014-11-13). - * sched/Kconfigs and configs/*/*/defconfig: Remove CONFIG_MAX_TASK_ARGS - (2014-11-13). - * binfmt/: Remove use of CONFIG_MAX_TASK_ARGS in exec() and unload_module() - (2014-11-13). - * libc/unistd: Remove use of CONFIG_MAX_TASK_ARGS in execl() (2014-11-13). - * sched/: Remove some misc. usage of CONFIG_MAX_TASK_ARGS in task_start(), - task_setup(), and vfork() (2014-11-13). - * arch/arm/src/stm32/chip/stm32_otgfs.h: Correct a typo in the STM32 OTGFS - register bit definitions (2014-11-13). - * drivers/lcd/st7565.c/.h and include/nuttx/lcd/st7565.h: Add driver for - ST7565 that works with NHD‐C12864KGZ display. From Pierre-noel - Bouteville (2014-11-13). - * net/route/net_router.c: I don't think that the net_route function has - ever worked correctly. The source ip was updated in the match struct - instead of the route ip. From Brennan Ashton (2014-11-14). - * net/Kconfig arp/Make.defs, arp_send.c, and drivers/net/slip.c: ARP: - Add support for the case where there are multiple networks: One being - Ethernet and the other not. Suggested by Brennan Ashton (2014-11-14). - * net/Kconfig, netdev/netdev_register.c, arp/arp_send.c, - include/nuttx/net/net.h, netdev.h and several network drivers in arch/ - and drivers/: Add a parameter to netdev_register() to indicate the - link protocol supported by the driver. Use this value to replace some - logic committed yesterday (2014-11-15). - * configs/stm32f4discovery/netnsh/defconfig: Needs to set MAC address - (2014-11-15). - * arch/ and drivers/: Remove use of NET_LL_HDRLEN from Ethernet drivers. - Use ETH_HDRLEN instead (2014-11-15). - * net/arp/: Remove use of NET_LL_HDRLEN from net/arp logic. Use - ETH_HDRLEN instead (2014-11-15). - * net/ and include/nuttx/net: All network logic will now handle - variable length link layer protocol headers within incoming packets. - This permits use of multiple network interfaces with differing data - links. For example, ETHERNET + SLIP (2014-11-15). - * arch/arm/src/sam34/sam4s_periphclks.h: Add missing SPI0 clock - configuration macro for the SAM4S. From spasbyspas (2014-11-16). - * arch/arm/src/efm32/efm32_lowputc.c: EFM32 USART setup: Computation of - BAUD includes shift; Eliminate additional shift. From Pierre-noel - Bouteville (2014-11-16). - * net/, include/, drivers/, arch/, various files: Rename - CONFIG_NET_BUFSIZE to CONFIG_NET_ETH_MTU; Add CONFIG_NET_SLIP_MTU. - Add data structures and logic to handle different MTUs when both - Ethernet and SLIP are enabled (2014-11-16). - * net/, include/, various files: Rename CONFIG_NET_RECEIVE_WINDOW to - CONFIG_NET_ETH_TCP_RECVWNDO and CONFIG_NET_SLIP_TCP_RECVWNDO. Add - data structures and logic to handler different TCP receive windows - when both Ethernet and SLIP are enabled (2014-11-16). - * configs/sama5d4-ek/bridge: Add a simple test for the dual EMACs on - the SAMA5D4 (2014-11-17). - * arch/arm/src/sama5/sam_emacb.c: Fix several typos that will prevent - EMAC1 from initializing properly (2014-11-17). - * include/nuttx/net/ip.h and tcp.h, net/icmp/icmp_send.c and - igmp/igmp_send.c: Move IP header flags from tcp.h to ip.h and rename - IP_FLAGS vs TCPFLAGS. The problem fixed here is that there IP flags - were not available when TCP was disabled. The IP flags are used in - ICMP and IGMP (2014-11-17). - * sched/clock/clock_abstime2ticks.c: Calling mq_timedreceived() with - immediate timeout was getting stuck and not timing out. Immediate - timeout is achieved by setting absolute timeout value to past time, - for example abstime={ .tv_sec=0, .tv_nsec=0 }. However absolute - time was converted to relative time using unsigned integer arithmetic - and resulted large ticks count by clock_abstime2ticks, instead of - expected negative ticks value. Change corrects clock_abstime2ticks() - to return negative ticks, if absolute time is in the past. From - Jussi Kivilinna (2014-11-19). - * fs/vfs/fs_poll.c: poll() was not waking up from signals (for example - mq_notify() events). From Jussi Kivilinna (2014-11-19). - * arch/arm/src/stm32/stm32_otghs.c, Make.defs, - configs/stm32f429i-disco/src/stm32_usb.c and Makefile: STM32 F4 OTGHS - device controller driver from Brennan Ashton (2014-11-20). - * configs/sama5d3-xplained/bridge: Add a simple test for the EMAC - and GMAC on the SAMA5D3 working together (2014-11-20). - * libnx/nxtk/nxtk_drawframe.c: Remove warnings when CONFIG_NXTK_BORDERWIDTH - is set to zero. From Pierre-Noel Bouteville (2014-11-20). - * fs/vfs/fs_poll.c: Add proper handling for sem_timedwait errnos. - From Jussi Kivilinna (2014-11-21). - * net/udp/udp_conn.c and udp.h: Extensions to UDP "connection" structure - for the case of multiple networks. In this case, assigned port numbers - only have to be unique with respect to the IP address. So, for - example, you could have multiple port 80's, one on each network - (2014-11-21). - * net/tcp/tcp_conn.c and tcp.h: Make tcp_listener static scope; it is - not used outside of tcp_conn.c (2014-11-22). - * net/udp/tcp_conn.c and tcp.h: Extensions to TCP connection structure - for the case of multiple networks. See the description of the similar - change for UDP above (2014-11-22). - * net/route/net_router.c: Refuse to perform routing table lookups for - the Broadcast IP address. From Brennan Ashton. - * net/netdev/netdev_findbyaddr.c and netdev: Add logic to netdev_findbyaddr() - to return the correct network device for the case where a broadcast - address is used. This change caused trivial ripples through other - files because additional parameters are required for netdev_findbyaddr() - when CONFIG_NET_MULTINIC. Those other file include net/netdev/netdev_rxnotify.c, - netdev_txnotify.c which, in turn, for changes to arp/arp_send.c, - icmp/icmp_ping.c, socket/net_sendfile.c, recvfrom.c, sendto.c, - tcp/tcp_send_buffered.c, and tcp_send_unbuffered.c (2014-11-23). - * arch/arm/src/kl/chip/kl_i2c.h: I2C header file for the Freescale KL - family. From Alan Carvalho de Assis (2014-11-23). - * include/nuttx/fs/fs.h: Fix typo in conditional compilation. From - Alan Carvalho de Assis (2014-11-23). - -7.7 2015-01-26 Gregory Nutt - - * nuttx/drivers/eeprom and include/nuttx/eeprom/: Add support for generic - EEPROM access via a character driver. Add also the EEPROM driver itself. - From Sébastien Lorquet (2014-11-26). - * libnx/nxfonts/nxfonts_pixel-lcd-machine.h and nxfonts_pixel-unicode.h, - include/nuttx/nx/nxfonts.h, graphpics/Kconfig, and build-related files - in libnx/nxfonts: Two new fonts from Pierre-noel Bouteville (2014-11-26). - * configs/lpc4357-evb, arch/arm/src/pc43xx/chip/, configs/Kconfig, and - and other related files: A port of NuttX to the LPC4357-EVB from - Toby Duckworth. This port is a leverage of the LPC3330-Xplorer port - and still have a some misinformation from that port that needs to be - updated for the LPC4357-EVB (2014-11-26). - * arch/arm/include/stm32/chip.h, src/stm32/Kconfig, chip.h, and - chip/stm32f102_pinmap.h: Enable support for the STM32 F102. From - https://github.com/PX4/NuttX/pull/28.diff (2014-11-27). - * drivers/loop.c: Loop device should return -EINTR is interrupt by a - signal (2014-11-27). - * drivers/input/djoystick.c and include/nuttx/input/djoystick.h. Also - drivers/input/Kconfig and Make.defs, and include/nuttx/fs/ioctl.h: Add - an interface definition and upper half driver for a discrete joystick - device (2014-11-27). - * arch/arm/src/efm32/Kconfig and efm32_serial.c: Add support for serial - termios TCGET and TCSET. For the moment, only set/get speed is - implemented. From Pierre-noel Bouteville (2014-11-27). - * drivers/wireless/ and include/nuttx/wireless/cc3000.h: A set of 11 - patches correcting issues with the CC3000 networking. All from Jussi - Kivilinna (2014-11-28). Among these: - 03/11: CC3000 driver was getting stuck at recv() when remote host - closed connection and application tried to read data from remotely - shutdown socket. This patch adds proper handling for remotely closed - socket event. - 07/11: Socket state initialization was done in 'register', while it - should be initialized in 'open' and deinitialized in 'close'. Old - way caused problems when device is closed, power-cycled and then - reopened as old socket state was left enabled. - 08/11: Select thread was getting stuck after 'close, power-cycle, - reopen', since selectsem was not properly setup and cleaned up. - 09/11: 'maxFD' was not properly reset in select worker and not checked - for before calling cc3000_select(). - 10/11: After wlan_stop()/cc3000_close(), irqsem was left with count - '-1'. Therefore on next wlan_start()/cc3000_open(), initial value - for irqsem was wrong. Additional repeated wlan_start()/wlan_stop() - decreased irqsem value further. Obviously this causes driver not to - function correctly and freeze. Patch moves initialization and - destruction of waitsem, irqsem and readysem to - cc3000_open/cc3000_close. - * include/cxx/cctype: Undefine macros defined ctype.h so that builtin - C++ implementations will be used instead. From Lorenz Meier - (2014-11-28). - * configs/stm3210e-eval/src/stm32_djoystick.c: Add a discrete Joystick - supportfor the STM3210E-EVAL (2014-11-28). - * drivers/input/djoystick.c include/nuttx/input/djoystick.h: Add a new - ioctl to get the supported joystick discrete signals (2014-11-28). - * drivers/input/ajoystick.c and include/nuttx/input/ajoystick.h. Also - drivers/input/Kconfig and Make.defs, and include/nuttx/fs/ioctl.h: Add - an interface definition and upper half driver for an analog joystick - device. Initial check-in is only a little more of a clone of the - discrete joystick driver and is as-of-yet untested (2014-11-27). - * libc/Kconfig, misc/Make.defs, misc/lib_ioctl.c, fs/vfs/fs_ioctl.c, - include/nuttx/fs/fs.h, include/sys/ioctl.h, syscall.h, and several - files in syscall/: Add support for a variadic ioctl() function. The - ioctl() interface is a non-standard, Unix interface. NuttX has always - used the older, three-parameter version. Most contemporary systems - now, however, use a variadic form of the ioctl() function. Added an - option to insert a shim layer to adapt the three-parameter ioctl() to - use the variadic interface form. Internally, the ioctl handling is - the same three-parameter logic. The only real complexity to the shim - is in how the system calls must be handled (2014-11-29). - * arch/arm/src/stm32/stm32_i2c.c: Port Tridge's I2C noise resilience - logic from the PX4 repository (2014-11-29). - * arch/arm/src/stm32/chip/stm32l15xxx_pinmap.h: Fix a typo in the - MCO pin definition. From Jussi Kivilinna (2014-12-02). - * arch/arm/src/stm32/stm32_rcc.h: Add missing MCO configuration for - the STM32L1xxx. From Jussi Kivilinna (2014-12-02). - * configs/sama5d3-xplained/src/sam_ajoystick.c: Add analog Joystick - shield support for the SAMA5D3 Xplained board (2014-12-3). - * configs/ucleo-f4x1re/src/sam_ajoystick.c and sam_adc.c: Add - analog Joystick shield support for the Nucleo F4x1RE boards. There - are still some ADC issues to be worke through as of the initial - commit (2014-12-3). - * /drivers/eeprom/spi_xx25xx.c and /include/nuttx/eeprom/spi_xx25xx.h: - Add support for ST Micro EEPROM device geometries. From Sebastien - Lorquet (2014-12-5). - * sched/mqueue: msg type should be char * not void * in mq_send, - mq_timedsend, mq_receive, and mq_timedreceive. Noted by Pierre-Noel - Bouteville (2014-12-05). - * fs/mqueue/mq_open.c and sched/mqueue/mq_msgqalloc.c: In message queue - creation return ENOSPC error if size exceeds the configured size of - pre-allocated messages; Use ENOSPC vs ENOMEM per OpenGroup.org. From - Pierre-Noel Bouteville (2014-12-6). - * Add sys/custom_file.h. Used when CUSTOM_FILE_IO is define and avoids - re-definition errors about the FILE define. From Thomas Gruber via - the PX4 repository (2014-12-06). - * tools/bfd-converter.c and mkdeps.c: Eliminate a warnging about - redefined strtok_r on some platforms (2014-12-8). - * arch/sim/Kconfig: Allow building the simulated framebuffer driver - even if NX is not enabled (12014-12-8). - * configs/sim/traveler and README.txt: Add a configuration build and test - the Traveler first person game using the simulator (2014-12-8). - * arch/arm/src/stm32/chip/stm32f20xxx_pinmap.h and stm32f40xxx_pinmap.h: - Set the GPIO_SPEED_50MHz on all F2 and F4 SPI pin configurations. - This is based on an F411 SPI1 errata but the fixed is generalized to - all SPI and all F2 and F4 (let me know if this introduces any other - issues). Discovered and fixed by Sebastien Lorquet after much - consternation (2014-12-8). - * libc/stdio/lib_avsprintf.c: avsprintf(): Fix a bug in usage of - va_list on x86. On x86, va_list is a pointer to a single copy on the - stack. avsprintf() calls lib_vsprintf() twice and so traverses the - va_list twice using va_start. va_start modifies that single copy on - the stack so that the second call to lib_vsprintf() fails. This appears - to be an issue with x86 only so far (2014-12-8). - * stdint.h: Don't use hex values to specify minimum values of fixed - width, signed values. Hex values are inherently unsigned and not - usable for this purpose in all contexts (2014-12-8). - * arch/arm/src/tiva/tiva_i2c.c, tiva_i2c.h, Kconfig, and Make.defs: Add - build framework and skeleton files for Tiva I2C driver. Initial - commit is just the STM32 I2C driver with name changes and STM32- - specific logic removed (2014-12-9). - * fs/procfs/fs_procfs.c: Add procfs write support. From Ken Pettit - (2014-12-9). - * include/crc8.h, libc/misc/lib_crc8.c, and Make.defs: Add CRC8 support. - From Ken Pettit (2014-12-9). - * drivers/mtd/smart.c, Kconfig, fs/smartfs/smartfs_smart.c, - smartfs_procfs.c, smartfs_utils.c, smartfs.h, Kconfig, - include/nuttx/fs/ioctl.h, smart.h, and mtd/smart.h: Implements wear- - leveling in the SmartFS. From Ken Pettit (2014-12-9). - * arch/arm/src/tiva/tiva_i2c.c: Driver is code complete but still - untested (2014-12-10). - * configs/tm4c123g-launchpad/src/tm4c_at24.c, tm4c_bringup.c, and other - files: Add initialization logic for an external AT24 EEPROM. This - is intended only to support testing of the Tiva I2C driver - (2014-12-10). - * libnx/Makefile, libnx/nxfonts/nxfonts_x11-misc-fixed-*.h, Make.defs, - Makefile.sources, nxfonts_bitmaps.c, graphics/Kconfig, and - include/nuttx/nx/nxfonts.h: Lots of fonts that derive from - X11-misc-fixed-* fonts. Converted for use by NuttX by Pierre-Noel - Bouteville (2014-12-10). - * nuttx/drivers/mtd/m25px.c; M25P serial flash driver: Add subsector - size of the M24P16 part. From Lazlo (2014-12-10). - * libc/string/lib_strncpy.c: Commit d0c76ccacf0dc8988f9617ad82bf4349f456bb08 - will trash a lot of memory if n == 0. From Yasuhiro Osaki (2014-12-11). - * arch/arm/src/stm32/stm32_otghsdev.c. Fix for OTGHS device driver - working in FS mode. From Ken Pettit (2014-12-12). - * libc/stdio/lib_sscanf.c: Accept %X as well as %x as a format - specifier. From Sébastien Lorquet (2014-12-12). - * libc/stdio/lib_sscanf.c: Also accept %F as well as %f (2014-12-12). - * arch/arm/src/stm32/stm32_otghsdev.c: For STM32 OTG HS DEV (in FS - mode): Disable ULPI clock enable in RCC AHB1 Register. If Both ULPI - and the FS clock enable bits are set in FS mode, then the ARM never - awakens from WFI due to a chip issue. This is only an issue if you - are using the internal PHY. From Ken Pettit (2014-12-13). - * drivers/serial/serial.c: In case a thread is doing a blocking - operation (e.g. read()) on a serial device, while it is being - terminated by pthread_cancel(), then uart_close() gets called, but - the semaphore (dev->recv.sem in the above example) is still blocked. - This means that once the serial device is opened next time, data will - arrive on the serial port (and driver interrupts handled as normal), - but the received characters never arrive in the reader thread. - The problem was fixed by re-initializing the semaphores on the last - uart_close() on the device. From Harald Welte (2014-12-13). - * sched/semaphore/sem_recover.c, Make.defs, semaphore.c, - sched/wdog/wd_recover.c, Make.defs, wdog.h, sched/task/task_recover.c: - Add logic to clean up after task_delete() or pthread_cancel() if the - task happens to be waiting on a semaphore when it is cancelled - (2014-12-13). - * arch/arm/src/kl/kl_gpioirq.c, Kconfig, Make.defs, and kl_irq.c: Add - GPIO interrupt capability for the KL architecture. The patch is - almost the same as kinetis_pinirq.c, just minor modifications and - rename kl_pinirq to kl_gpioirq to make it more generic to developers. - From Alan Carvalho de Assis (2014-12-13). - * arch/sim/src/up_ajoystick.c, Kconfig, Makefile, up_idle.c, - up_internal.h, up_x11eventloop.c, up_x11framebuffer.c, - configs/sim/src/Makefile, sim_boot.c, and traveler/defconfig: Add an - X11 mouse-based simulation of an analog joystick device (2014-12-14). - * drivers/sensors/adxl345*, include/nuttx/sensors/adxl345.h and other - files: Add driver support for the ADXL345 accelerometer. From Alan - Carvalho de Assis (2014-12-16). - * configs/freedom-kl25z: Add board support for the ADXL345 accelerometer. - From Alan Carvalho de Assis (2014-12-16). - * Kconfig, include/debug.h, drivers/sensors/*, and Qencoder logic in - arch/arm/src/stm32 and various QEncoder board support files under - config/: Unify sensor debug. ADX driver was using input debug; LM75 - and QENCODE that their own custom debug. Now all use - CONFIG_DEBUG_SENSOR, sndbg() (2014-12-16). - * configs/dk-tm4c129x: Initial board support for the Tiva DK-TM4C129x - Connected Development Kit. The initial commit is just the Tiva - TM4C123G-Launchpad board support with naming changes (2014-12-16). - * include/nuttx/sched.h, sched/Kconfig, sched/init/os_start.c, - sched/pthread/pthread_create.c, sched/task/task_prctl.c, - sched/task/task_setup.c: strncpy() will not copy the terminating \0 - into the destination if the source is larger than the size of the - destination. Ensure that the last byte is always zero and let strncpy - only copy CONFIG_TASK_NAME_SIZE bytes. The issue of unterminated names - can be observed in ps when creating a pthread while - CONFIG_TASK_NAME_SIZE is set to 8. From Daniel Willmann (2014-12-17). - * configs/*/*/defconfig: The previous change increased the task name - size allocation by one to hold a NUL terminator. This changes reduces - the configured name size by one so that no additional memory is used - (2014-12-17). - * drivers/wireless/cc3000/cc3000.c: CC3000 Fix: Data can be unaligned. - When dereferenced as an input ntosh(), a bad value is returned. - Reported by Alan Carvalho de Assis (2014-12-18). - * configs/freedom-kl25z: Update the Freedom KL25Z board CC3000 support - to use the current CC300 interfaces. From Alan Carvalho de Assis - (2014-12-18). - * arch/arm/src/tiva, include/tiva, and many configurations: Change - negative Tiva logic CONFIG_TIVA_DISABLE_GPIOx_IRQS to positive logic - CONFIG_TIVA_GPIOx_IRQ (2014-12-18). - * arch/arm/src/tiva/Kconfig: Fix configuration logic for IRQ interrupts. - The various parts support varying numbers of GPIO blocks and with varying - capabilities to support interrupts on the pins of different GPIO blocks - (2014-12-18). - * arch/arm/src/stm32/chip/stm32f40xxx_rcc.h: PLLSAI register name to - this one in the reference manual. From Marco Krahl (2014-12-19). - * arch/arm/src/stm32/chip/stm32_ltdc.h: Rename CFBLR register name to - the name used in the reference manual. From Marco Krahl (2014-12-19). - * arch/arm/src/stm32/chip/stm32_ltdc.h: Add missing clut register - definition. From Marco Krahl (2014-12-19). - * arch/arm/src/stm32/stm32f40xxx_rcc.c: Configure PLLSAI clock to - enable ltdc register access. From Marco Krahl (2014-12-19). - * configs/stm32f429i-disco/include/board.h: Update board definition for - the ili9341 LCD display. This configures all LCD settings for the RGB - interface. Also adds a customer LCD display template. From Marco Krahl - (2014-12-19). - * arch/arm/src/stm32/stm32_ltdc.h: Define a common layer description for - the ltdc and dma2d controller. From Marco Krahl (2014-12-19). - * arch/arm/src/stm32/stm32_dma2d.c/.h and related files: Add - infrastructure for dma2d support. From Marco Krahl (2014-12-19). - * arch/arm/include/stm32/ltdc.h: Add interface to perform hardware - accelerated layer operation. The following methods must be supported - by the implementation: gevideoinfo, getplaneinfo, getlid, setclut, - getclut, setcolor, getcolor, setcolorkey, getcolorkey, setalpha, - getalpha, setblendmode, getblendmode, setarea, getarea, and update. - And if DMA2D is supported: blit and blend. The method up_ltdcgetlayer - provides access to a reference of a specific ltdc layer. From Marco - Krahl (2014-12-19). - * arch/arm/src/stm32/stm32_ltdc.c: Implements ltdc framebuffer support - for the generic nuttx framebuffer interface, (see nuttx/video/fb.h). - This also implements the interface to perform hardware accelerated - layer operation by the ltdc controller and dma2d controller later - (see nuttx/video/ltdc.h). The following methods are supported by the - ltdc interface: getvideoinfo, getplaneinfo, getlid, setclut, getclut, - setcolor, getcolor, setcolorkey, getcolorkey, setalpha, getalpha, - setblendmode, getblendmode, setarea, getarea, and update. From Marco - Krahl (2014-12-19). - * include/nuttx/lcd/ili9341.h: Update interface control definitions. - From Marco Krahl (2014-12-19). - * configs/stm32f429i-disco/src/stm32_lcd.c: Add support for - initializing ltdc framebuffer and the configured lcd display. This - adds support for initializing of the ltdc controller and the lcd - device connected on the stm32f429i-disco. The following methods are - provided for the generic fb interface: up_fbinitialize, - up_fbgetvplane, and up_fbuninitialize. The following methods are - provided for the ltdc interface: up_ltdcgetlayer. From Marco Krahl - (2014-12-19). - * zrch/arm/src/stm32/Kconfig: Add configuration option for ltdc. This - adds the following ltdc configuration options: dither support, cmap - support, is this the right place for CONFIG_FB_CMAP?, support for - extended ltdc interface. From Marco Krahl (2014-12-19). - * nuttx/configs/stm32f429i-disco: Enable configuration of framebuffer - support for the ltdc controller. From Marco Krahl (2014-12-19). - * configs/stm32f429i-disco/src/stm32_boot.c: Initialize ltdc during - bootup. From Marco Krahl (2014-12-19). - * configs/stm32f429i-disco/ltdc: Add default platform configuration to - test framebuffer support for the ltdc. From Marco Krahl - (2014-12-19). - * libnx/nxfonts/nxfonts_getfont.c: A patch to add previous added font - into nxf_getfonthandle function. From Pierre-Noel Bouteville - (2014-12-19). - * arch/arm/src/tiva, include/tiva, and many configurations: Change - negative Tiva logic CONFIG_SSIx_DISABLE to positive logic - CONFIG_TIVA_SSIx. Add support for SSI2 and SSI3 (2014-12-21). - * arch/arm/src/efm32/efm32_pwm.c/.h, efm32_timer.c/.h, and related - build files: Add support for timer/PWM on the EFM32GG. From - Pierre-noel Bouteville (2014-12-26). - * drivers/serial/Kconfig, serial.c, serialirq.c, and - include/nuttx/serial/serial.h: Add watermark levels to the serial - RX flow control logic. Modify the rxflowcontrol method to accept - the number of bytes in the buffer and a boolean indication of which - watermark was crossed (2014-12-27). - * sched/semaphore/sem_waitirq.c must be built when signals are disabled. - 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- - 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. - 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 - initializing of the ili9341 lcd and ltdc driver to the board specific - initializing routine. From Marco Krahl (2014-12-29). - * arch/arm/src/stm32/stm32_ltdc.c: Clean up documentation, some - formatting improvements. From Marco Krahl (2014-12-29). - * arch/arm/src/tiva/chip/tiva_ethernet.h, lm3s_ethernet.c, and - tm4c_ethernet.h: Add logic to discriminate between LM3S class Ethernet - register definitions and TM4C129X class Ethernet register definitions. - Add TM4C129X Ethernet register definitions (2014-12-30). - * arch/arm/src/tiva/tm4c_ethernet.c, lm3s_ethernet.c, Kconfig, and - Make.defs: First cut at TM4C129X Ethernet driver. Initial commit is - basically just the STM32 Ethernet driver with modifications for a clean - compilation in the Tiva environment (2014-12-31). - * arch/arm/src/stm32/stm32_rtc.c, stm32_rcc.c, Kconfig: Add support for - the internal low speed clock (LSI) as a source of the RTC clock. Some - boards do not have the external 32khz oscillator installed, for those - boards we must fallback to the crummy internal RC clock. Turn on by - defining CONFIG_RTC_LSICLOCK. From Kevin Hester (2015-01-02). - * net/tcp/tcp_conn.c: Fix a logic error when CONFIG_NETDEV_MULTINIC is - selected: net_unlock(flags) will be called will an uninitialized - variable (2015-01-03). - * arch/arm/src/tiva/tiva_irq.c: Fix Tiva IRQ control logic; was limited - to only 64 IRQs. That is a problem for higher numbered IRQs on many - platforms (2015-01-06). - * arch/arm/src/stm32/stm32_sdio.c, drivers/mmcsd/mmcsd_sdio.c and Kconfig, - and include/nuttx/sdio.h: MMCSD SDIO: Add support for a new - SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait loop - to poll the card R1 status to determine when the card was ready for - the next transfer. That busy-wait can be quite long -- up to hundreds - of milliseconds. An alternative is to look the SD D0 pin which - will change state when the card is no longer busy. This change avoids - the busy-wait poll by reconfiguring the SD D0 pin as a GPIO interrupt, - then waiting for the card to become ready without taking up CPU - cycles. This change is conditioned on CONFIG_MMCSD_SDIOWATI_WRCOMPLETE - and is currently only implemented for the STM32 SDIO driver. From - David Sidrane (2015-01-08). - * arch/arm/src/tiva/tiva_timerlib.c and .h: Add a timer library for - generic support of Tiva timers (2015-01-08). - * arch/arm/src/tiva/tiva_timerlow32.c: Add a driver lower half for - drivers/timer.c. Only 32-bit periodic timers are supported. This - provides userspace access to timers. - * configs/px4-v2_upstream, Kconfig, README.txt: Remove the px4-v2_upstream - configuration. Moved to misc/Obsoleted/configs. This was not the - official configuration for the PX4 board and has led to confusion by - NuttX users. The board configuration also requires some ongoing - maintenance and customization to support ongoing PX4 testing and - evaluation. It is best retained the PX4 repositories where it can be - properly maintained and not in the upstream NuttX repository - (2015-01-14). - * net/netdev/netdev_ioctl.c and include/nuttx/net/ioctl.h: Add support - for IPv6 ioctls to manipulate IP addresses (2015-01-14). - * net/icmpv6: Create a future home for ICMPv6 (2015-01-14). - * net/icmp: Remove all logic conditioned on CONFIG_NET_IPv6 - (2015-01-14). - * net/, include/nuttx/net, and a few other files: (1) Copied all ICMP - sources files to net/icmpv6 with proper renaming and removal of IPv4 - logic, (2) remove IPv6 logic from files in net/icmp, (3) copied - include/nuttx/icmp.h to icmpv6.h and removed IPv4 specific logic, (4) - removed all IPv6 logic from icmp.h, (5) IP_HDRLEN became IPv4_HDRLEN - and IPv6_HDRLEN, (6) ip_chksum() became ipv4_chksum() and - ipv6_chksum(), and (7) added partial support for ICMPv6 statistics - (2015-01-14). - * arch/, drivers/net/, include/nuttx/net, and net/devif: (1) Rename - devif_input() ipv4_input(), (2) copy net/devif/devif_input.c to - ipv6_input.c, remove all IPv4-specific logic, (3) rename - net/devif/devif_input.c to ipv4_input.c, remove all IPv6-specific - logic, and (4) xplit IPv4 header structure out as net_ipv4hdr_s from - net_iphdr_s (2015-01-15). - * arch/ and drivers/net: All Ethernet drivers: Call ipv6_input() if - IPv6 is enabled and an IPv6 packet is received (2015-01-15). - * net/devif, net/tcp, net/ucp, include/nuttx/net: Separate tcp_input() - and udp_input() into separate functions tcp_ipv4_input(), - tcp_ipv6_input(), udp_ipv4_input(), and upd_ipv6_input() than can deal - will the data offsets caused by the differing sizes of the IP header - (2015-01-15). - * net/utils/net_ipv6_maskcmp.c: Add missing implementation of - net_ipv6_maskcmp() (2015-01-15). - * Networking: Drivers can have both IPv4 and IPv6 addresses, but a - socket can only only one or the other; The socket connection - structures need to include a union of IPv4 and IPv6 addresses for - the local address binding and for the remote address connections - (2015-01-16). - * Networking: Replace all references to net_ipaddr_t with either - in_addr_t on net_ipv6addr_t. The goal is to support both IPv4 and - IPv6 simultaneously. This requires that the two types be distinct - and not conditionally typedef'ed to net_ipaddr_t (2015-01-16). - * Networking: Replace all references to the macros net_ipaddr_copy, - net_ipaddr_hdrcopy, net_ipaddr_cmp, net_ipaddr_hdrcmp, and - net_ipaddr_maskcmp with the appropriate IPv4 or IPv6 version of the - macro (such as net_ipv4addr_copy). The goal is to support both - IPv4 and IPv6 simultaneously. This requires that the macros be - distinct and not conditionally defined to one on or the other - (2015-01-16). - * Networking: UDP and TCP MSS depends on the IP header size (as well - as the link layer header size) and cannot be represented with a - single value (2015-01-16). - * net/neighbor: Move net/ipv6 to net/neighbor (2015-01-16). - * include/net/if.h: Add a bit to the device flags to indicate if the - device packet buffer holds an IPv4 or an IPv6 domain packet. - Set/clear the flag along with the correct offset to the application - payload data as each packet is received (2015-01-17). - * net/socket, net/tcp, net/udp: Add logic to select the domain of the - outgoing packet before sending any UDP or TCP packet. This sets the - bit to indicate the IPv4 or IPv6 domain and the correct offset to the - output going payload data (2015-01-17). - * net/socket and net/tcp: When we are ready to receive data or when we - have outgoing data ready to be sent, we need to the notify the - appropriate device driver of this condition. The notifying socket - will be configured as either PF_INET or PF_INET6 and must look up the - correct driver using the correct IP domain (2015-01-17). - * net/socket/accept.c: Fix accept() so that it returns the correct IP - address for the selected socket IP domain (2015-01-17). - * Networking: Final detangling off IPv4 and IPv6 TCP/UDP send logic. - The networking subsystem now compiles with IPv6 enabled (2015-01-18). - * 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 - 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). - * drivers/pipes/pipe.c, drivers/usbdev/cdcacm.c, and - mm/mm_gran/mm_granalloc.c: Fixes some issues found by the PX4 team - using Coverity. From Pavel Krienko (2015-01-19). - * net/icmpv6/icmpv6_solicit.c, net/neighbor/neighbor_out.c, and other - files: Add logic to search the Neighbor Table and update the - destination address in the output Ethernet header OR to send an - ICMPv6 Neighbor Solicitation if there is no entry in the Neighbor - table for the IPv6 address (2015-01-20). - * arch/ and drivers/net: Add missing raw/packet socket support to - all Ethernet driverss (2015-01-20). - * arch/ and drivers/net: Networking: Modify all Ethernet drivers: - Do neighbor look-up on all outgoing IPv6 packs in order to properly - set the destination link layer address (2015-01-20). - * Networking: When sending ICMPv6 advertisements and solicitations, - set the NOARP bit so that we don't overwrite the destination MAC - address (2015-01-20). - * Many files: Correct name of fields in struct sockaddr_in6: sin6_port - and sin6_family, not sin_port and sin_family (2015-01-20). - * net/socket/accept.c: Correct the value returned by accept() in the - case where net_lockingwait() is called. It was returning -1 and - losing the errno value. Noted by Rony Xln (2015-01-22). - * net/: After some significant effort, ICMPv6 and TCP are both - functional when IPv6 is selected. UDP still requires testing - (2015-01-22). - * configs/dk-tm4c129x/ipv6: Add an IPv6-enabled NSH configuration - (2015-01-23) - * include/nuttx/net/icmpv6.h and net/icmpv6/icmpv6_ping.c: First cut - at ICMPv6 ping logic. It works in both directions! (2015-01-23). - * arch/arm/src/efm32/efm32_rmu.c and .h: Add support for the EFM32 - reset management unit (RMU). From Pierre-noel Bouteville - (2015-01-23). - * include/nuttx/math.h: Adds support for the expm1 functions: - http://pubs.opengroup.org/onlinepubs/009695399/functions/expm1.html. - From Brennan Ashton (2015-01-23). - * Many file: Add CONFIG_STACK_COLORATION that does the same thing as - CONFIG_DEBUG_STACK but without enabling debug. From David Sidrane - (2015-01-24). - * Remove CONFIG_DEBUG_STACK. Adding CONFIG_STACK_COLORATION makes - this configuration option pointless (2015-01-24). - * net/: Clean up network status collection for IPv6 (2015-01-24). - * arch/ and configs/: Changes to get USART 2 & 3 working on - lpc4357-evb. These changes are required to get USART 2 and 3 working - on the Embest development board. From Toby Duckworth. - -7.8 2015-02-11 Gregory Nutt - - * include/nuttx/math.h and libc/math: Add support for inverse - hyperbolic functions. From Brennan Ashton (2015-01-26). - * include/nuttx/math.h: Add math library definition for isfinite(). - From Brennan Ashton (2015-01-26). - * include/nuttx/math.h and libc/math/lib_erf*.c: Add error function - to math library. From Brennan Ashton (2015-01-26). - * include/nuttx/math.h and libc/math: Add math library defines for - nan(), copysign(), and trunc() functions. From Brennan Ashton - (2015-01-26). - * sched/wqueue/kwork_process and libc/wqueue/lib_usrthread.c: Fix - a backward calculation when determining the time to the next event. - This is a bug in the back-up, "fail safe", work queue timing so it - not as bad as it seems. From Liio Chen via the PX4 repository - (2015-01-27). - * arch/arm/src/stm32/stm32_exti_gpio.c: Disabling any of EXTI 5-9 - interrupts was disabling interrupts for all EXTI 5-9. Same issue with - EXTI 10-15. From Jussi Kivilinna (2015-01-27). - * arch/arm/src/stm32/stm32_rtcc.c and Kconfig: Recent changes to - stm32_rtcc.c do not compile with STM32L15XX configurations. From - Jussi Kivilinna (2015-01-27). - * net/local: Add initial support for local, Unix domain sockets. - Initial support is limited to SOCK_STREAM and is untested on - initial commit (2014-01-27). - * net/iob, net/tcp/tcp_callback.c, and include/nuttx/net/iob.h: There - were issues with the TCP write-ahead buffering if CONFIG_NET_NOINTS was - enabled: There is a possibility of deadlocks in certain timing conditions. - I have not seen this with the Tiva driver that I have been users but - other people claim to see the issue on other platforms. Certainly it - is a logic error: The network should never wait for TCP read-ahead - buffering space to be available. It should drop the packets - immediately. This was fixed by duplicating most of the IOB interfaces: - The versions that waited are still present (like iob_alloc()), but now - there are non-waiting versions of the same interfaces (like - iob_tryalloc()). The TCP read-ahead logic now uses only these non- - waiting interfaces (2015-01-27). - * net/tcp/tcp_send_buffered.c and tcp_wrbuffer.c: Fix another deadlock - condition. tcp_write_buffer_alloc() calls sem_wait() with network - locked. That worked if CONFIG_NET_NOINTS was not defined because - interrupts are automatically restored when the wait happens. But - with CONFIG_NET_NOINTS=y, the wait blocks with the network locked -- - bad style and also can lead to a deadlock condition (2015-01-28). - * arch/arm/src/armv7-a/arm_memcpy.S and arch/arm/src/armv7-m/up_memcpy.S: - ARM assembly language memcpy.S's were not returning a value in R0 they - are required to do. From David Sidrane (2015-01-29). - * net/local: Extend Unix domain socket support to include support - for datagram Unix domain sockets (2015-01-29). - * net/socket/accept.c: Fix a major TCP bug introduced with commit - e71c09ce9777ff732cb60bd07fb43d85522f79d6. Some connection logic was - reordered; setting the socket as 'connected' got moved to BEFORE the point - where the check was made if the socket was already connected. The - resulting behavior was odd: Telnet would connect, but then when you - exit and reconnect, it would fail to connect. But then if try again, it - would connect okay. So the symptom was connect-fail-connect-fail-... - (2015-01-29). - * net/socket/net_poll.c, recvfrom.c, and udp/udp_callback.c: Add UDP - read-ahead support. This enables support for for poll/select on UDP - sockets and also non-blocking UDP sockets. From Macs N (2015-01-30). - * net/local/local_netpoll.c, socket/net_poll.c, and udp/udp_netpoll.c: - Separate out UDP poll logic from net_poll.c into a new udp_netpoll.c; - Create a skeleton local_netpoll (2015-01-30). - * net/socket/net_poll.c and tcp/tcp_netpoll.c: Separate TCP poll logic - out of net_poll.c and move it into the new tcp_netpoll.c (2015-01-30). - * arch/arm/src/efm32/efm32_clockconfig.c: Logic to unconditionally enable - LE clocking. Even you don't use core clock LE as source for LFA or LFB, - to read are write any register not clocked by HFPERCLK or HFCORECLK, - HFCORECLKLE should be enabled. From Pierre-noel Bouteville (2015-01-30). - * drivers/net/slip.c: SLIP interface improvements. From Macs N - (2015-01-30). - * clock_systimespec(): Fixes for compilation errors in certain - configurations. From Macs N. - * drivers/pipes/fifo.c, include/nuttx/fs/ioctl.h, and net/local/local_fifo.c: - Fix a race condition between FIFO buffer operations and the opening and - closing of FIFOs which necessary when the FIFOs are used to support - Unix domain, datagram sockets. The default policy is the deallocate - FIFO buffering when the last client closes the pipe. When when used - for datagram communications, packets left in the FIFO will be lost. - Some like UDP read-ahead is needed: The buffered data in the FIFO - needs to be retained until the reader gets a chance to re-open the - FIFO. Added an ioctl (PIPEIOC_POLICY) to control the buffer policy. - Default (0) is the legacy behavior; Unix domain datagram logic sets - the alternative policy so that the packet data persists after the FIFO - is closed (2015-01-30). - * net/local: Add configuration options so that Unix domain stream and - datagram support can be separately enabled (2015-01-31). - * fs/vfs/fs_unlink.c and include/nuttx/fs/fs.h: Add an unlink method to - both the character and block driver interface. This is important - because if the driver inode is unlinked and there are no open references - to the driver, then the driver resources will be stranded. On the unlink - call, the driver has the opportunity (1) check if there an any open - references, and if not, (2) free the driver resources (2015-01-31). - * drivers/pipes: Implement the unlink method. If the pipe/FIFO is - unlinked, it will marked the pipe/FIFO as unlinked. If/when all open - references to the driver are closed, all of the driver resources will - be freed (2015-01-31). - * arch/avr: Added architecture support for the Atmel AVR ATMega1284P - MCU. From Jedi Tek'Unum (2015-01-31). - * configs/moteino-mega: Added support for the LowPowerLab MoteinoMEGA - that is based on the Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum - (2015-01-31). - * EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville - (2015-02-01). - * drivers/ramdisk.c, include/nuttx/fs/ramdisk.h, and other files: Add - logic to dispose of the driver and RAM buffer when the RAM disk has - been unlinked and all open references to the RAM disk have been - closed. Add new parameters to romdisk() to specify what should be - done with the RAM/ROM buffer -- Should it be freed or not? Changed - all calls to ramdisk() to use these new parameters (2015-02-01). - * net/icmpv6/icmpv6_neighbor.c, icmpv6_notify.c (and other files): Adds - basic logic to support verification that we have the IPv6 address in - the Neighbor Table. This feature is important because otherwise the - first packet sent to a remote peer will fail (it will be replaced - with a Neighbor Solicitation) (2015-01-02). - * net/arp/arp.h, arp_notify.c, and arp_send.c: Fixes another - CONFIG_NET_NOINTS issues. When called sem_timedwait() with the - network locked, the network stays locked while we wait which is not - what we want (without CONFIG_NET_NOINTS, interrupts are re-enabled - while we wait and all is well) (2015-02-02). - * net/icmpv6/icmpv6.h, icmpv6_neighbor.c, icmpv6_notify.c: Apply the - same fix as for ARP to the Neighbor Solicitation logic (2015-02-02). - * sched/sched/sched_timerexpiration.c, Kconfig, and include/nuttx/arch.h: - On my platform I have just 16-bit timer clocked at 32kHz. As result - oneshot timer max delay is 2s. The patch adds limit of maximum ticks - in sched_timer_start(). From Macs N (2015-02-03). - * arch/arm/src/sam34: Add support for Tickless mode of operation for - the SAM4CM platform. From Macs N (2015-02-03). - * include/nuttx/net/icmpv6.h and net/icmpv6/Kconfig: Add support for - sending ICMPv6 Router Solicitation and receiving Router advertisement. - This is a part of the ICMPv6 auto-configuration logic is still not - complete (2015-02-03). - * libnx/nxfonts/nxfonts_getfont.c and nxfonts_sans39x48.h: Fixes a - problem with one of the font files. From Pierre-noel Bouteville - (2015-02-03). - * arch/arm/src/efm32/efm32_rtc_burtc.c: Remove a misbehaving assertion. - From Pierre-noel Bouteville (2015-02-03). - * net/icmpv6: Implemented the ICMPv6 Autonomous Auto-Configuration - logic. This is an IPv6 alternative to DHCP. It obtains the IPv6 - addresses and masks using ICMPv6 Router Solicitation and - Advertisement messages (2015-02-03). - * arch/arm/src/stm32/stm32_aes.c, stm32_aes.h, and - chip/stm32l15xxx_aes.h: Add driver for STM32L162XX AES peripheral. - From Juha Niskanen (2015-02-04). - * net/icmpv6/icmpv6_radvertise.c, Kconfig, and other files: Add option - to send Router Advertisement Messages (2015-02-05). - * net/icmpv6/icmpv6_input.c, arch/arm/src/tiva/tm4c_ethernet.c, and - stm32/stm32_eth.c: Add logic to behave like a router (if so - configured): NuttX will not send the router advertisement message - in response to any router solicitation messages (2015-02-05). - * configs/stm32f4discovery/ipv6 and arch/arm/src/stm32/stm32_eth.c: Add - an IPv6 configuration for the STM32F4-Discovery board (with the - STM32-DISCO_BB base board). Verify that the STM32 Ethernet driver - works with IPv6 (2015-02-05). - * net/icmpv6/icmpv6_input.c and icmpv6_rnotify.c: With these two - changes both ICMPv6 autonomous autoconfiguration and router - functionality appear to be working with no problems (2015-02-05). - * arch/arm/src/tiva and configs/tm4c123g-launchpad: Adds support for - TM4C123G timers; integrates with the TM4C123G Launchpad. From Calvin - Maguranis (2015-02-05). - * arc/arc/src/tiva/tiva_adc.c and .h: Adds a Tiva ADC driver. From - Calvin Maguranis (2015-02-05). - * tmv4c123g-launchpad: Add Tiva ADC support to the TM4C123G-Launchpad. - From Calvin Maguranis (2015-02-05). - * arch/arm/src/stm32/stm32_spi.c: The source clock for SPI 4,5, and 6 - should be PCLK2, not PCLK1 (for F411, F427, and F429). Per David - Sidrane (2015-02-07). - * drivers/syslog/syslog_console.c, include/nuttx/syslog/syslog_console.h, - and the console device initialization logic for all architectures: Add - an option to use the syslog'ing device as the system console. This - option enables a low-level, write-only console device at /dev/console - (similar to the low-level UART console device). From Pierre-noel - Bouteville (2015-02-08). - * net/utils: Clean up and consolidate some clunky stuff in ARP and - ICMPv6 time waiting logic by adding new net_timedwait() function - (2015-4-09). - * arch/arm/src/stm32/stm32_eth.c: Add logic so that STM32 Ethernet - driver can avoid interrupt level processing and, instead, execute on - the work thread (2015-4-09). - * configs/stm32f4discovery/netnsh and ipv6: Convert all STM32F4- - Discovery configurations (with base board) to configure the Ethernet - driver to use the work queue (vs. interrupt level processing) - (2015-4-09). - * libc/unisted/lib_execl.c: Fix bad logic in counting the number of - arguments. This could never have worked. Noted by Pierre-noel - Bouteville (2015-4-09). - * arch/arm/src/sama5/sam_emacb.c: Add support for Multicast address - matching and IPv6 in the SAMA5D4 Ethernet driver (2015-02-09). - * configs/sama5d4-ek/ipv6: Add a configuration for testing IPv6 with - the SAMA5D4-EK (2015-02-09). - * arch/arm/src/armv7-a/arm_doirq.c: ARMv7-A interrupt handler should not - automatically re-enable interrupts on interrupt return. That - interferes with the driver's ability to manage interrupts (2015-02-09). - * arch/arm/src/sama5/sam_emacb.c: Add support for CONFIG_NET_NOINTS in - the SAMA5D4 Ethernet driver so that the driver can operate from the - work queue thread instead of doing everything from the interrupt level - (2015-02-09). - * SAMA5D4-EK: CONFIG_NET_NOINTS is now enabled in the nsh and ipv6 - configurations (2015-02-09). - * arch/arm/src/a1x, arm, c5471, common, dm320, imx, lpc2378, lpc31xx, - sama5, str71x, hc/src.common, sh/src/common, x86/src/common, - z16/src/common, z16f, z80/src/z8: Big, very risky change: Remove all - occurrences of up_maskack_irq() that disable and enable interrupts - with up_ack_irq() that only acknowledges the interrupts. This is only - used in interrupt decoding logic. Also remove the logic that - unconditionally re-enables interrupts with the interrupt exits. This - interferes with the drivers ability to control the interrupt state. - This is a necessary, sweeping, global change and unfortunately - to test (2015-02-09). - * mtd/ramtron.c: Table of parts is not terminated properly if - CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David - Sidrane (2015-02-09). - * arch/arm/src/sam34/sam_emac.c, sama5/sam_emaca.c, and sama5/sam_gmac.c: - Clone the SAMA5D4 IPv6 support to the SAM4E EMAC and SAMAd3 EMAC and - GMAC drivers (2015-02-09). - * net/: Lots of build problems introduced into multiple NIC support. - Many places where conditional logic based on CONFIG_NETDEV_MULTINIC is - confused with CONFIG_NET_MULTILINK. Lots of code changed with IPv6 - that was never compiled with MULTINIC enabled. Still some problem - with parameter passing in the MULTINIC configuration(2015-02-09). - * net/iob/Kconfig: In IOB Configuration, the default number of IOB - chains must be more than zero is UDP read-ahead is enabled (2015-02-10). - * net/tcp/tcp_conn.c and udp/udp_conn.c: Fix several build errors/warning - with IPv4 + IPv6 + multiple networks are enabled (2015-02-10). - * arch/arm/src/sam34/sam_emac.c: SAM4 Ethernet driver bow supports - operation using the high priority work queue so that packet processing - can occur outside of interrupt level processing (2015-02-10). - * SAM4E-EK: The nsh configuration now configures the Ethernet driver - for execution on the HP work thread (2015-02-10). - * arch/arm/src/lpc17xx/lpc17_ethernet.c: Add IPv6 support to the LPC17 - Ethernet driver. Untested... I no longer have a proper environment - for LPC17 debug (2015-02-10). - * include/netinet/in.h and libc/net/lib_addrconfig.c: Some extensions - to netinet/in.h adding some Linux compatible definitions. From Macs N - (2015-02-11). - * arch/arm/src/kl: Add architectural support for the K26Z128VLH4 chip. - From Derek B. Noonburg (2015-02-11). - * configs/freedom-kl26z: Add board support for the Freedom KL26Z board. - From Derek B. Noonburg (2015-02-11). - -7.9 2015-04-14 Gregory Nutt - - * arch/arm/src/tiva: Add support for the TM4C1294. Contributed by - Frank Sautter (2015-02-11). - * configs/tm4c1294-launchpad: Add support for the TM4C1294 Launchpad. - Contributed by Frank Sautter (2015-02-11). - * gettimeofday(): Move gettimeofdady() from sched/clock to libc/time. - Remove gettimeofday() from NuttX system calls. It is only a wrapper - around clock_settime() and does not need a trap. gettimeofday() is - no longer treated as a core OS interface (2015-02-12). - * settimeofday(): gettimeofday has been decrecated in POSIX 2008. - settimeofday() was never part of POSIX, but I decided to add it to - libc as well just for symmetry (2015-02-12). - * drivers/sensors/mpl115a.c and include/nuttx/sensors/mpl115a.h: Add - driver for the Feescale MPL115A baramoter. From Alan Carvalho de - Assis (2015-02-12). - * configs/viewtool-stm32f107: Add support for an optional, add-on - Freescale MPL115A baramoter. From Alan Carvalho de Assis - (2015-02-12). - * sched/clock/clock_systimer.c: Fix a problem in clock_systimer64 that - occurs when (1) the 64-bit system time is enabled, and (2) the value - of CONFIG_USEC_PER_TICK is less than 1 milliseconds (such as when using - the tickless mode of operation). In that case, the conversion of time - to 64-bit millisecond value in clock_systmer64() causes some bad times - to be returned. Time was converted to milliseconds, then to configured - ticks. Precision was lost in the millisecond conversion. The fix is - to first convert time to a 64-bit microsecond value, then to the - configured tick value. Noted by David Sidrane (2015-02-13). - * include/nuttx/rtc.h, arch.h, and arch/*/src/*_rtc.h: Removed all of the - old, malformed RTC interface definitions from include/nuttx/rtc.h. The - necessary prototypes have been removed, renamed, scattered to the wind, - hidden under rocks, -- whatever it takes to make it clear that there is - no RTC interface callable from application code (2015-02-13). - * include/nuttx/rtc.h and fs/ioctl.h: Begin the definition of a proper, - driver based RTC interfaces that is better suited to the architectural - goals of nuttx (2015-02-13). - * drivers/timers/timer.c and watchdog.c: Move timer-related drivers from - drivers/ to drivers/timers (2015-02-13). - * drivers/timers/rtc.c: Add an RTC upper half driver. This is the driver - that is documented in include/nutt/rtc.h (2015-02-13). - * arch/arm/src/stm32/stm32_rtcc.c and stm32_rtc.h: Break out a new internal - interface, stm32_rtc_setdatetime(). This eliminates some un-necessary - time conversions. From Freddie Chopin (2015-02-13). - * arch/arm/src/stm32/stm32_rtc_lowerhalf.c, Make.defs, and stm32_rtc.h: Add - a skeleton implementation of the RTC lower half interface at - arch/arm/src/stm32/stm32_rtc_lowerhalf.c. This is just the framework for - the RTC lower half. None of the interface methods have yet been - implemented (2015-02-13). - * net/icmpv6/icmpv6_advertise.c and icmpv6_solicit.c: Add inclusion of - nuttx/net.h to two files. Without these there can be compilation errors - in certain configurations. From Max Neklyudov (2015-02-13). - * net/net_initialize.c, sched/init/os_start.c, and a few other files: - Divide net_intiialize() into net_setup() and net_initialize() to solve - a chicken-and-egg problem. net_setup() must be called before - up_initialize() is called so that networking data structures are ready - to register new network devices. net_initialize() now does only timer - related operations and is called AFTER up_initialize() where the timers - are configured. Problem note by Max Neklyudov (2015-02-14). - * include/time.h and sys/time.h: Move struct timeval from include/time.h - to include/sys/time.h where it belongs (2015-02-15). - * arch/arm/src/stm32/stm32_rtcc.c, stm32_rtc.h, and Kconfig: Extend the - RTC interface to support reading subseconds. From Jussi Kivilinna - (2015-02-16). - * arch/arm/src/efm32/efm32_usbdev.c: EFM32 USB Device is now basically - functional with this change. From Pierre-noel Bouteville (2015-02-16). - * include/nuttx/net/ip.h: Move macros and common logic for IPv4-mapped - IPv6 addresses from files in net/ to include/nuttx/ip.h. These are - currently only used for UDP, but will need to be be used in many places - in the future (2015-02-17). - * includes/nuttx/compiler.h: Add support for the restrict keyword - (2015-02-17). - * include/netdb.h: Add a mostly-commented-out version of the standard - netdb.h header file (2015-02-17). - * arch/arm/src/tiva/: Updated files to allow for ADC triggering by the - timer. I’ve cleaned up some parts of the ADC code, too, and fleshed - out the PWM triggering ioctl. From Calvin Maguranis (2015-02-17). - * configs/tm4c123g-launchpad: Add ADC support. From Calvin Maguranis - (2015-02-17). - * fs/fat/fs_mkfatfs.c: Use DMA memory for mkfatfs when needed. This makes - mkfatfs use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is - needed to ensure mkfatfs operates with boards that use DMA for microSD. - From Andrew Tridgell via the PX4/NuttX repository (2015-02-17). - * include/nuttx/rtc.h, fs/fs.h, drivers/ramdisk.c, pipes/, and - timers/rtc.c: The inode unlink method should not be support if - operations on the root pseudo-filesystem are disabled (2015-02-18). - * include/nuttx/sched timing functions: Fix some nanosecond comparisons. - Comparisons should be greate than OR EQUAL TO 1000000000 for maximum - value of nanoseconds in struct tm. From Juha Niskanen (2015-02-20). - * tm4c123g-launchpad: Add board button interrupt logic. From Calvin - Maguranis (2015-02-20). - * "Tiva: Move GPIO prototypes out of arch/arm/include/tiva/irq.h to - arch/arm/tiva/tiva_gpio.h where they belong (2015-02-20). - * arch/arm/src/tiva: Tiva GPIO clean-up by Calvin Maguranis (2015-02-20). - * arch/arm/src/stm32/stm32_pwr.c, stm32_pwr.h, and stm32_rtcc.c: Changes - to support fully write protecting the backup domain. N.B. - stm32_pwr_enablebkp did not account for the delay from enable to the - domain being writable. The KISS solution is a up_udelay. A more - complex solution would be a negated write test with restore. From - David Sidrane (2015-02-21). - * arch/arm/src/stm32/stm32_bbsram.c, stm32_bbsram.h, Kconfig, and - Make.defs: Adds the ability to use the STM32F2 and STM32F4 Battery - Backedup SRAM in the file system. With an option to Save Panic - context to one of the files. From David Sidrane (2015-02-21). - * configs/pic32mx-starterkit: Rename from pic32-starterkit to make - room on the namespace for a pic3mz-starterkit. Update src/ directory - file naming to match current standard. Refresh configurations. Move - linker scripts to a new scripts/directory. Make sure that it builds - using the Pinquino toolchain (2015-02-21). - * arch/mips/src/mips32/Toolchain.mk: Current Pinguino toolchain uses - the prefix p32- instead of mips- (2015-02-21). - * configs/pic32mz-starterkit: Add basic board support for the PIC32MZ - (can't build yet of course because there is not yet any PIC32MZ - support) (2015-02-22). - * arch/mips/src/pic32mz and include/pic32mz: Add some PIC32MZ header - file definitions and just enough logic in the source directory so - that we can run 'make menuconfig'. Still a very long way from being - complete (2015-02-22). - * libc/time/lib/lib_sfrtime.c: Missing implementation of %C in - sfrtime() C (was being treated as %y). From Freddie Chopin - (2015-02-23). - * drivers/can.c: In the can_open function: this line - 'dev->cd_ocount = tmp;' needs to be moved a few lines down otherwise - the open count will only be incremented from 0 to 1. This causes - problems when trying to open the can bus from two different tasks. - SourceForge Patch #46 from Anonymous (2015-02-23). - * Tiva TM4c1294: Updates from Frank Sautter (2015-02-24). - * fs/aio: correct some backward tests in aio_read() and aio_write(): - Socket descriptors have higher numbers than file descriptors. In - aio_contain(), Copy u.ptr (void *) when initializing aioc and not - the case specific u.aioc_filep. From Michal Ulianko (2015-02-24). - * include/pthread.h: Fix PTHREAD_COND_INITIALIZER (2015-02-24). - * sched/clock/clock_systimespec.c: When an RTC is used clock_systimespec() - must subtract the basetime from the returned time. It needs to - return the time since power up, no the current time. Issue noted - by Max Neklyudov (2015-02-25). - * fs/vfs/fs_select.c and sched/semaphore/sem_timedwait.c: Fix places - where the errno value was being overwritten by subsequent actions so - that the returned errno value was incorrect. From Max Neklyudov - (2015-02-25). - * include/sys/select.h: Extend the fd_set type definition so that it - can handle more than 32 descriptors (if so configured). From Max - Neklyudov (2015-02-25). - * net/netdev/netdev_unregister.c: Fix a list handling error in - netdev_unregister(). From Max Neklyudov (2015-02-27). - * net/netdev/netdev_register.c: Improve the network device registration - logic. When multiple link types are used, modify how each interface - number is assigned to the device name by incrementing the device - number individually for each interface link type. From Max Neklyudov - (2015-02-27). - * include/nuttx/board.h: Remove common board function prototypes from - other files and consolidate them in this new header file (2015-02-27). - * arch/mips/src/pic32mz/: Implement support IO port interrupts - (2015-03-01). - * configs/pic32mz-starterkit/src: Add support for on-board buttons - (2015-03-01). - * include/nuttx/spi/spi.h: Add an SPIDEV_USER so that there can be - board-specific definitions of SPI devices (2015-03-01). - * arch/arm/src/stm32 and arch/arm/src/stm32: Adds architecture support - for the STM32F372 and F373 (no board support yet). Only tested on - STM32F373CC, but should work on the rest. Contributed by Marten - Svanfeldt (2015-03-01). - * arch/mips/src/pic32mz/pic32mz-spi.c and chip/pic32mz-spi.h: Add - support for a basic SPI driver for the PIC32MZ (2015-03-03). - * include/nuttx/i2c.h: Add a user provided void * argument to the - I2C callback method for the I2C slave interface. Suggested by - Nate Weibley (2015-03-03). - * crypto/, include/nuttx/crypto, and arm/src/common/up_initialize.c: - Fix issues when AES support was added for the STM32L1. From Juha - Niskanen (2015-03-04). - * arch/arm/src/stm32/stm32_spi.c and .h: Add missing SPI callback - functions to the STM32 SPI driver. From Freddie Chopin (2015-03-04). - * arch/*/src/*/*_assert.c, configs/Kconfig, and include/nuttx/board.h: - Add support for dumping board-specific information on assertion. - From David Sidrane (2015-03-04). - * drivers/spi/Kconfig: Add missing CONFIG_SPI_CALLBACK selection. Noted - by Freddie Chopin (2015-03-04). - * arch/arm/src/samv7 and include/samv7: Add basic build directories - and configuration logic for the Atmel SAMV7 family (2015-03-05). - * arch/arm/src/Makefile, armv7-m/Toolchain.defs: Make ARM build system - Cortex-M7 ready (2015-03-05). - * arch/arm/src/sam34/sam_start.c: Leverage start-up logic from STM32 - to (1) Enable the FPU and (2) perform IDLE stack coloration - (2015-03-05). - * arch/arm/src/armv7-m/up_lazyexception.S, Kconfig and severl other - files: Add support for lazy FPU state saving. Not yet verified. - (2015-03-06). - * arch/arm/Kconfig, Make.defs, sam_start.c, configs/Kconfig, - samv71-xult: Add a bare bones framework that will do nothing more than - support configuration for the Atmel SAMV71 Xplained Ultra board. Very - much a work in progress (2015-03-06). - * sched/mqueue/mq_timedsend.c: Should not check for valid time if - there is space in the message queue. Noted by Freddie Chopin - (2015-03-10). - * arch/arm/src/tiva/tiva_timerlib.c: Fix a typo in peripheral wait - logic: gptm, not gpio. From Bradley Noyes (2015-03-10). - * drivers/net/tun.c, Make.defs, include/nuttx/net/net.h, tun.h, and - net/Kconfig: Add TUN device. From Max Neklyudov (2015-03-11). - * fs/fat/fs_fat32.c: fat_unbind() was accessing 'fs->fs_sem' after - freeing the 'fs' struct. From Juha Niskanen (2015-03-11). - * fs/procfs/fs_procfsproc.c: fs_procfsproc: Fix potential NULL pointer - dereference of 'node'. From Juha Niskanen (2015-03-12). - * sched/sched/sched_waitpid.c: Do not use uninitialized boolean in - waitpid(). From Juha Niskanen (2015-03-12). - * libc/stdio/lib_ungetc.c:Fix NULL pointer dereference in ungetc(). - If 'stream' was NULL, 'stream->fs_oflags' was evaluated. From Juha - Niskanen (2015-03-12). - * arch/arm/src/stm32/stm32_i2c.c: Add missing NULL check. From Juha - Niskanen (2015-03-12). - * drivers/usbdev/usbmsc_scsi.c: Add NULL pointer check. From Juha - Niskanen (2015-03-12). - * drivers/bch/bchdev_driver.c: Avoid NULL pointer dereference when - bch->refs == 255. From Juha Niskanen (2015-03-12). - * arch/arm/src/armv7-m/mpu.h: Bad syntax in ARMv7-M MPU logic would - cause failure to write the correct value to the MPU_RASR register. - From Juha Niskanen (2015-03-12). - * net/socket/net_dupsd.c: Do not call sockfd_socket() twice. From - Juha Niskanen (2015-03-12). - * arch/arm/src/stm32/stm32_usbdev.c: Fix stale initialization - invalidating later NULL check. From Juha Niskanen (2015-03-12). - * arch/arm/src/stm32/stm32_serial.c and chip/stm32f10xxx_dma.h: Fix - RX DMA setup for UART5. From Jussi Kivilinna (2015-03-13). - * arch/arm/src/stm32/stm32_serial.c: Make input hardware flow-control - work with RX DMA. From Jussi Kivilinna (2015-03-13). - * drivers/pipes/pipe_common.c: Fix zero-lenth writes to pipes/FIFOs. - From Jussi Kivilinna (2015-03-13). - * drivers/serial/serial.c: Report correct number of bytes free in - serial buffer with FIONWRITE. From Sami Pelkonen via Jussi Kivilinna - (2015-03-13). - * drivers/mmcsd/mmcsd_spi.c: Debugging and manuals (this one - https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf - and this one https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf) - shows that ACMD23 must be preceded with CMD55 command as any other - ACMD commands. Also, after the block reading wait loop must be - inserted before writing the next block of data to the sd card. From - Dmitry Nikolaev via Jussi Kivilinna (2015-03-13). - * arch/arm/src/efm32/efm32_i2c.c: Add I2C driver. From Pierre-noel - Bouteville (2015-03-14). - * fs/mount/, include.sys/mount, syscall/: Add umount2(). umount() is - now a macro that just calls umount2() with flags = 0 (2015-03-14). - * fs/mount/fs_umount2.c, all file systems, include/nuttx/fs/fs.h: Pass - the umount2() flags to every unbind() implementation. That is where - the decision to umount or not will be made (2015-03-14). - * fs/fat/fs_fat32.c: Fix a bug in the FAT unbind() logic. There were - problems with the way certain internal list handling was implemented. - The end result is that newly opened or cloned file structures were - never being added to the list of open files. So when the unmount() - happens, it always looked like there were not open files and a crash - could ensue (2015-03-14). - * fs/fat/fs_fat32.c and fs_fat32.h: Add support for umount2(target, - MNT_FORCE) in the FAT file system (2015-03-15). - * drivers/mmcsd/mmcsd_sdio.c: Fix some bad logic when file system debug - is turned on: Arguments to syslog were missing so that garbage was - being printed (2015-03-15). - * arch/arm/src/sama5/sam_hsmci.c: Fix a bug in SAMA5 HSMCI. The - bitfield mask and shift values were reversed resulting in a trashed - value for the number of blocks in the BLOCKR register. This was - sufficient to prevent DMA writes from working (2015-03-15). - * drivers/mtd/at24xx.c, Kconfig, and include/nuttx/fs/ioctl.h: Add - support for (1) the byte-oriented read() method, (2) devices that - have extended memory regions, and (3) devices that use 8-bit - addressing (2015-03-17). - * arch/mips/src/mips32/Kconfig, Toolchain.defs, and - configs/pic32mz-starterkit/nsh/Make.defs: Changes that will permit - building of the PIC32MZ Start Kit configuration using MPLAB and the - XC32 toolchain. From David Sidrane (2015-03-17). - * arch/arm/src/stm32/stm32_rtc_lowerhalf.c: Fix some errors in the - STM32 RTC lower-half driver that cause compilation failures. From - shilo.xyz (2015-03-19). - * arch/arm/src/sama5/chip/sam_tc.h: Fix typos in timer/counter header - file. From Bob Doiron (2015-03-20). - * configs/olimexino-stm32: Board support for the Olimexino STM32 board - from David Sidrane (2015-03-20). - * PIC32MZ: Incorporated a set of patches that makes the basic NSH - configuration on the PIC32MZ Starter Kit. From Kristopher Tate - (2015-03-22). - * arch/arm/src/tiva: (1) ADC driver has been re-organized; configuration - is now handled in code instead of Kconfig to help reduce bloat and - confusion. (2) Timer changed to remove ADC coupling in Kconfig to code - and moved configuration up from arch/arm/src/tiva to - configs/tm4c123g-launchpad/src. (3) GPIO driver needed small fixes in - the configuration routines and discovered false-positive bugs in - interrupt testing: interrupts are now verified to actually be working - reliably. (4) Attempt to apply some consistency in the tiva arch/ - level's interface to the config/board/ level driver configuration. - From Calvin Maguranis (2015-03-23). - * arch/mips/src/pic32mz: Various fixes for Ethernet support. Still - not fully functional. From Kristopher Tate (2015-030-29). - * arch/arm/src/armv7-m: Add configuration option and logic to support - the D-Cache in write-through mode (2015-03-29). - * arch/arm/src/stm32/Kconfig, stm32_lse.c, stm32_lsi.c, stm32_rtc.c/.h, - stm32_rtcc.c, stm32_rtcounter.c, and stm32f*_rcc.c: The - STM32F4Discovery board doesn't come with a Low speed external - oscillator so the default LSE source for the RTC doesn't work. In - stm32_rtcc.c the up_rtc_initialize() logic doesn't work with the LSI. - The check on RTC_MAGIC on the BK0R register lead to rtc_setup() call - that rightfully enables the lsi clock; but the next times, when the - rtc is already setup, the rtc_resume() call does NOT start the lsi - clock! The right place to put LSE/LSI initialization is inside - stm32_stdclockconfig() in stm32fxxxxx_rcc.c. Doing this I checked - the possible uses of the LSI and the LSE sources: the LSI can be used - for RTC and/or the IWDG, while the LSE only for the RTC (and to output - the MCO1 pin). This change is not verified for any other platforms. - From Leo Aloe3132 - * Rename arch_nshinitialize() to board_app_initialize() (2015-03-30). - * ./*.mk, configs/.gitignore, Makefile, boardctl.c, include/nuttx/fs/ioctl, - include/sys/boardctl.h, syscall.h, and syscall/: Add a new non- - standard OS interface called boardctl(). This is similar to a driver - IOCTL call. But this is an IOCTL call directly on the board logic. - This function will eventually replace all of the ad hoc OS interfaces - that are current used to perform application specific initialization - and application driver test configuration. It essentially formalizes - and institutionalizes these rogue interface in to at least a single - crazy call (2015-03-31). - * configs/: Modify all configurations: Make sure that - CONFIG_LIB_BOARDCTL=y appears wherever CONFIG_NSH_ARCHINIT=y appears. - Remove support for CONFIG_NSH_ARCHMAC. It is not used and there are - better ways to do that operation (2015-03-31). - * configs/Kconfig, boardctl.c, all touchscreen driver setup functions, - include/board.h, include/sys/boardctl.h, and - include/nuttx/input/touchscreen.h: arch_tcinitialize() and - arch_tcunitinitialize() renamed to board_tsc_setup() and - board_tsc_teardown(). These are not long called directly by - applications but only indirectly through the crappy boardctl() OS - interface (2015-03-31). - * configs/Kconfig, boardctl.c, include/nuttx/board.h, include/sys/boardctl.h, - and several ADC files in configs//src/: Rename adc_devinit() to - board_adc_setup(). Add support to the boardctl() interface so that it - can call board_adc_setup() on behalf of an application. Make sure that - the proper features are enabled in the defconfig files that have - CONFIG_EXAMPLES_ADC=y (2015-03-31). - * configs/*/defconfig: Make sure that all defconfig files that require - external graphics intiialization also enable the correct boarctl() - settings (2015-03-31). - * include/nuttx/board.h, include/sys/boardctl.h, nuttx/configs/Kconfig and - boardctl.c, and board configurations and PWM implementations: Rename - pwm_devinit() to board_pwm_setup(). Add CONFIG_BOARDCTL_PWMTEST that - will enable calling board_pwm_setup() from boardctl(). In all - configurations that enable the apps/examples/pwm test, make sure that - boardctl() support is properly enabled (2015-03-31). - * Move include/nuttx/timer.h, rtc.h and watchdog.h to include/nuttx/timers/. - (2015-04-01). - * drivers/timer/cs2100-cp.c and include/nuttx/timers/cs2100-cp.h: Add a - very basic driver for the CS2100-CP Fractional-N Multipler chip (2015-04-02). - * configs/, graphics/, include/nuttx: More renaming: up_lcdinitialize->board_lcd_initialize, - up_lcdgetdev->board_lcd_getdev, up_lcduninitialize->board_lcd_uninitialize - (2015-04-04). - * include/nuttx/nx, libnx/nx, libnx/nxtk: Add a new 'capped' parameter to - nx_drawline(), nxtk_drawlinetoolbar(), and nxtk_drawlinewindow() - (2015-04-05). - * libnx/nx/nx_drawline.c, libnx/nxtk/nxtk_drawlinetoolbar.c and - nxtk_drawlinewindow.c: Implement line caps by drawing a file circle at - the each endpoint of a line with a radius equal to half of the width - of the line (2015-04-05). - * include/time.h, nuttx/time.h, libc/time/lib_dayofweek.c and - lib_gmtimer.c: Implements CONFIG_TIME_EXTENDED as we discussed - relative to providing the last 3 members of the tm struct and support - for filling them in and even using the wday in the STM32 RTC. From - David Sidrane. - * arch/arm/src/sam34/sam_serial.c and samv7/sam_serial.c: A side-effect - of changing serial settings via TERMIOS (such as tcsetattr) is that - serial interrupts were being left disabled. This is not a problem if - the serial configuration is changed when there are no open references - to the serial device. In that case, serial interrupts are disabled and - will not be enabled enabled until the serial device is first opened. - But it is fatal if the serial device is already opened and if there is - a task waiting to receive data. In that case, the side-effect of - disabling interrupts is fatal: That task is then left hanging with - interrupts disabled (2015-04-08) - * arch/arm/src/sama5/sam_serial.c: Backport support for flowcontrol and - termios from SAM3/4 -- UNVERIFIED. (2015-04-08). - * arch/arm/src/sam34/sam_serial.c and samv7/sam_serial.c: The IMR - register is read-only. This means that sam_restoreints() did not - actually re-enable UART interrupts (2015-04-08). - * sigaddset() and sigdelset(): Need to set errno if a bad signal number - is received (2015-04-09). - * sighold(), sigrelse(), sigignore(), sigset() and sigpause(): New - signal handling functions (2015-04-09). - * Fixes to asinh(), atanh(), and sinh(): The 'basic' expansions all - exhibited bad cancellation errors near zero (<= 1E-10). This can be - easily seen e.g. with x = 1E-30, the results are all zero though they - should be extremely close to x. The cutoff values (1E-5, 1E-9) are - chosen so that the next term in the Taylor series is negligible (for - double). Functions could maybe be optimized to use only first term (x) - and a smaller cutoff, just bigger than where the cancellation occurs - (2015-04-09). - * syscall/syscall.csv: Last changes to message queue prototypes did not - make it into call gate logic (2015-04-09). - * syscall/syscall_stublookup.c: Fix some errors that crept in recently - (2015-04-09). - * libc/time/lib_localtime.c: Inconsistent configuration name: - CONFIG_LIBC_TZDIR vs CONFIG_LIBC_TZ_TZDIR. Former wins (2015-04-11). - * libc/time/lib_calendar2utc.c and lib_mktime.c: Fix an error in time - initialization when there is not RTC and the time is initialized from - a fixed configured value. The call to clock_calendar2utc() was - returning the time in units of seconds. The initialization logic, - however, was expecting to get time in units of days. This problem - has been there forever but obviously has not significant impact to - behavior in systems where time is not visible (2015-04-12). - * fs/fat/fs_fat32utils.c: Fix misthink when CONFIG_ENDIAN_BIG=y. From - Lwazi Dube (2015-04-12). - * include/nuttx/net/netdev.h, net/devif/ipv6_input.c, - icmpv6/icmpv6_rsolicit.c and net/icmpv6/icmpv6_solicit.c: Use common - macro(s) for calculating link layer header length. From Brennan - Ashton (2015-04-13). - * apps/netutils/pppd/Kconfig, pppd.c, and ntpv3.h (removed): Remove - ntpclient header file in and NTP client references from the pppd - dir. From Brennan Ashton (2015-04-13). - * configs/galileo: Remove all references to the Galileo board. That - port is not going to happen (I don't even have the hardware anymore) - (2015-04-13). - * drivers/input/max11802.c: Fix possible unmatched IRQ restore. Noted - by Juha Niskanen (2015-04-14). - * atexit(): Fix reference to undefined variable in certain - configurations. From Juha Niskanen (2015-04-14). - -7.10 2015-06-09 Gregory Nutt - - * configs/sim/src/sim.h, sim_zoneinfo.c, Makefile, and sim_boot.c: Add - logic to test localtime and TZ database. See apps/system/README.txt - for info (2015-04-15). - * libc/Kconfig: Fix defaults for timezone limits. They need to be much - larger (2015-04-15). - * Watchdog files: Fix repeated typo wachog.h in several watchdog - drivers (2015-04-15). - * configs/boardctl.c and Kconfig: Add missing causing that caused - failures of PWM test (2015-04-15). - * arch/arm/src/stm32: Defines a second interface for the dma2d controller. - Controlling both LTDC and DMA2D was unpractical from the programmers - view because both controllers are to different. LTDC only controls the - display visibility but the DMA2D controller changes the content of the - frame buffer (buffer of the layer). - - The main features are: - - 1. DMA2D interface - Supports the nuttx pixel formats: - - FB_FMT_RGB8 - - FB_FMT_RGB24 - - FB_FMT_RGB16_565 - Dynamic layer allocation during runtime for the supported formats - - The number of allocatable layer can be configured. - Supported dma2d operation: - - blit (Copy content from source to destination layer) also works - with selectable area. - - blend (Blend two layer and copy the result to a destination layer - which can be a third layer or one of the source layer) also works - awith selectablerea. - - fillarea (Fill a defined area of the whole layer with a specific - color) - - As a result of that the dma2d controller can't transfer data from the - core coupled memory, CCM is disabled but usable by the ccm allocator. - Currently the ccm allocator is used for allocating the layer structure - only. For the dma memory (layers frame buffer) memory is allocated from - heap 2 and 3. - - 2. LTDC interface - I have changed the api for the currently non implemented operations: - - blit (Copy content from a dma2d layer to an ltdc layer) also works with - selectable area. - - blend (Blend two dma2d layer and copy the result to a destination ltdc - layer) also works with selectable area. - - Note! ltdc layer is a layer referenced by the ltdc interface. dma2d layer - is a layer referenced by the dma2d interface. - - One of the most important questions for me was, How can i flexible use an - ltdc layer with the dma2d interface, e.g. as source layer for dma2d - operations? - Get the layer id of the related dma2d layer by a special flag when using - getlid() function of the ltdc interface and use the layer id to reference - the specific dma2d layer by the dma2d interface. - - The ltdc coupled dma2d layers are predefined and can't be dynamically - allocated of freed. They use the same frame buffer memory and the same - color lookup table. - - Changes: - - layer internal format of the clut table - - interrupt handling for register reload (vertical vblank) instead using - waiting loop - - small fixes and refactoring - From Marco Krahl (2015-04-16). - * Add support for the new DMA2D features to the STM32F429i-Disco LTDC - configuration. From Marco Krahl (2015-04-16). - * stdlib.h: MAX_RAND should be RAND_MAX (2015-04-16). - * STM32F429i Disco: (1) Fix a bad return value if the LCD driver is already - initialized. (2) The LCD driver initialization is now performed during the - early boot sequence. (3) Increased the size of the message queue from 32 - to 64 in the lcd configuration. From Marco, ocram.lhark@yahoo.com - (2015-04-17). - * STM23 RTC: Fix an error introduced into stm32_pwr_enablebkp(). That - function must preserve the previous state of backup domain access on - return (2015-04-19). - * include/nuttx/usb/hub.h: Add USB hub header file from Kaushal Parikh - (2015-04-18). - * drivers/usbhost/usbhost_hub.c: Bring in USB hub-related files from - https://github.com/kaushalparikh/nuttx. This is the work of Kaushal - Parikh. This initial commit is incomplete. This is quite a bit more - hub logic that needs to come in before the port is complete - (2015-04-18). - * arch/arm/src/stm32/stm32_rtcounter.c: Now need to enable backup - domain write access when setting the time. From Darcy Gong (2015-04-19). - * include/nuttx/usb/usbhost.h: Bring in more logic from - https://github.com/kaushalparikh/nuttx (2015-04-19). - * drivers/usbhost/usbhost_enumerate.c: Last of USB hub logic from - https://github.com/kaushalparikh/nuttx (2015-04-19). - * include/time.h: Add prototypes for localtime() and localtimer_r() - (2015-04-21). - * include/assert.h: Wrap definitions of assertion macros in do while. - Suggested by orbitalfox (2015-04-22). - * sched/semaphore/sem_wait.c: Missing comma on debug statement caused - compile error with DEBUG on. Why hasn't that been noted before? - (2015-04-23). - * drivers/lcd and include/nuttx/drivers: RA8875 LCD driver contributed - by Marten Svanfeldt (2015-04-24). - * arch/arm/src/stm32/chip/stm32_pwr.c and .h: Adds support for STM32's - Programmable Voltage Detector (PVD) feature. Register access is behind - CONFIG_STM32_ENERGYLITE as the feature has not been verified for - F1/F2/F4 etc. manuals. Tested on STM32L1. PVD interrupt looks generic, - at least #defines it needs are in headers for every chip variant. By - Dmitry Nikolaev, submitted by Juha Niskanen (2015-04-28). - * arch/arm/src/stm32/chip/stm32_exti.h, stm32f30xxx_memorymap.h, and - stm32f37xxx_memorymap.h: Added missing EXTI definitions for the STM32 - F3; Correct an error the port D base address in the STM32 F30x and F37x - memory maps. From Greg Meiste (2015-05-01). - * arch/arm/src/lpc17xx/lpc176x_gpio.c: Reorder steps when an output - GPIO is configured in order to avoid transient bad values from being - output. From Hal Glenn (2015-05-02). - * arch/arm/src/stm32/stm32_otgfsdev.c and stm32_otghsdev.c: Add - protection in the event that out-of-bound endpoint numbers are - received. From David Sidrane (2015-05-02). - * USB host: Merged in the USB hub support that has been happening on - a separate branch up until this point. The interfaces are complete - and most platforms have been verified (still a little to be done - however). (2015-05-02) - * arch/arm/src/lpc31xx/lpc31_ehci.c, chip.h, sama5/sam_ehci.c, and - chip.h: Fix cache related problem in LPC31 and SAMA5Dx EHCI drivers. - All buffers are now aligned with the cache line size in both starting - address and in length. This cause major problems in unlucky builds - where the USB host buffers where unaligned and abutting other data. - The cache flush and invalidate operations could be subverted by - accesses to adjacent data or could have unexpected side effects. This - bug has been in the ECHI drivers forever, but was only revealed due to - unlucky memory allocations during the integration of the hub feature - (2015-05-03). - * arch/arm/src/lpc17xx/lpc17_usbhost.c: Correct some initialization of - data structures. When hub support is enabled, it would overwrite the - end of an array and clobber some OS data structures (2015-05-03). - * configs/olimex-lpc1766stk: Make stacks usage configurable for USB - host waiter. It needs to be a lot deeper when hub support is enabled - (2015-05-03). - * fs/vfs/fs_poll.c: Fix resource leak and memory corruption on poll - failure. From Jussi Kivilinna (2015-05-04). - * All USB host drivers in arch/ and all USB class drivers in drivers/usbhost: - Modify the transfer() and asynch() methods so that the actual size of - the transfer is returned. Unverified on initial commit (2015-05-05). - * drivers/usbhost/usbhost_cdcacm.c: Add initial implementation of a host- - side CDC/ACM driver. Completely untested on initial commit (2015-05-06). - * configs/, drivers/usbhost/usbhost_storage.c, and included/nuttx/usb/usbhost.h: - Rename usbhost_storageinit() to usbhost_msc_initialize(). Add calls - to usbhost_cdcacm_initialize() if CONFIG_USBHOST_CDCACM is selected - (2015-05-06). - * arch/arm/include/kl and src/kl: Add support for the KL25Z64. The - KL25Z64 is a lower memory variant of the KL25Z128 and is used on the - Teensy LC. From Michael as SourceForge patch 50 (2015-05-07) - * configs/teensy-lc and related board support files: Add board support - for the Teensy LC board. Support is based off the Freedom KL25Z board. - 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 - 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. - The previous version would cause a hard fault on startup due to the - modules not being clocked. Also drop the GPIO configuration as it's - done during kl_start(). From Michael Hope (2015-05-07). - * teensy-lc: remap UART0 to the standard pins. From Michael Hope - (2015-05-07). - * arch/arm/src/stm32 and include/stm32: Added support for STM32F302K8 - and STM32F302K6. From Ben Dyer via PX4/David Sidrane (2015-05-08). - * configs/compal_e86: Calypso Compal-E86: Updates for execution out of - FLASH on the C139 phone. From Craig Comstock (2015-05-08). - * STM32 F3: Add DBGMCU register definitions for the F3 family. From - Greg Meiste (2015-05-09). - * arch/arm/src/stm32/chip/stm32_exti.h: Add EXTI line definitions for - the STM32L family (2015-05-09). - * net/tcp/tcp.h: Correct failures in long Telnet sessions by increasing - the size of the number of bytes sent from uint16_t to uint32_t. This - avoids an integer overflow that causes a Telnet sessions to be closed - unexpectedly. From Rony XLN (2015-05-12). - * include/stdio.h, sys/statfs.h, cxx/cstdio, and syscall/syscall.csv: - Remove duplicate prototype of statfs from stdio.h. Belongs in - sys/statfs.h only. Note by Michael Hope (2015-05-12). - * arch/arm/include/kl/chip.h: Fix typo in header file. From Michael - Hope (2015-05-12). - * arch/arm/src/kl/chip/kl_tpm.h: Fix offset to the TPM status register. - From Michael Hope (2015-05-12). - * net/local/local_connect.c: Correct some network lock logic: Two - error conditions where the network was not being unlocked and one - where it was getting unlocked twice. From Jussi Kivilinna (2015-05-12). - * net/local/, fs/vfs/fs_poll.c, drivers/pipes/pipe_common.c/.h, - include/nuttx/fs/fs.h: Add poll support for Unix stream sockets. From - Jussi Kivilinna (2015-05-12). - * net/local/: Local stream sockets had problem of double releasing pipes - (both server and client attempt release), which causes wrong pipe pair - being closed in multi-client case. Solve by adding per connection - instance ID to pipe names. From Jussi Kivilinna (2015-05-12). - * drivers/usbdev/ all class drivers: There needs to be a check to make - sure that the size of a returned string does not exceed the size of - the allocated request buffer. Strings such as vendor names or product - names will be truncated to fit in the request buffer (2015-05-12). - * arch/arm/src/samv7/sam_twihs.c: Fix SAMV TWIHS logic that performs - multi-message transfers with and without repeated starts (2015-05-12). - * maXTouch Xplained Pro: The above TWIHS fix was the last barrier to - getting the touchscreen working in the maXTouch Xplained Pro LCD - (2015-05-12). - * net/route/ and net/netdev/netdev_ioctl.c: Complete implementation of - the IPv6 routing logic. From Max Neklyudov (2015-05-13). - * net/udp/: Add inclusion of assert.h in networking files where needed - to avoid compilation errors. From Max Neklyudov (2015-05-13). - * /net/route/netdev_router.c: Fix bug in IPv6 router from Max Neklyudov - (2015-05-13). - * sched/pthread/pthread_kill.c: Re-implemented pthread_kill(). It was - just a simple wrapper around kill() but since the correct dispatching - of signals for multi-threaded task groups has been implemented, - calling kill() does not do what pthread_kill() is supposed to do. The - corrected implementation of pthread_kill() will direct the signal - specifically to the specific pthread and no other (2015-05-13). - * arch/arm/include/samdl, arch/arm/src/samdl, configs/samd20-xplained: - Rename the samd/ directories and configuration varialbes to samdl to - all the same directory structure to support the SAML21 (2015-05-14). - * arch/arm/include/samdl and arch/arm/src/samdl: And chip definitions, - configuration framework, and placeholder memory map and pin - configuration files for SAML21 support. Still incomplete on initial - commit (2015-05-14). - * include/nuttx/wdog.h, sched/mqueue/mq_timed*.c, semaphore/sem_timed*.c, - signal/sig_timed*.c, timer/timer_settime.c, and wdog/wd_start.c: - Update the type passed to watchdog timer handlers. Using uint32_t is - a problem for 64-bit machines (2015-05-18). - * configs/saml21-xplained: Add a board build configuration for the - SAML21 Xplained Pro. Initial commit is just the SAMD20 Xplained Pro - board support with naming changed. Does not yet build (2015-05-18). - * libc/net/lib_inetntoa.c: Correct errors in printing IP address when - type char is signed. From Max Neklyudov (2015-05-19). - * arch/arm/src/efm32/efm32_rtc_burtc.c: Updated EFM32 RTC driver from - Pierre-noel Bouteville (2015-05-19). - * arch/arm/src/tiva/chip/tm4c_memorymap.h, tm4c_pinmap.h, and vectors.h. - configs/tm4c1294-launchpad/include/board.h and src/tm4c_autoleds.c: - Fixes for Tiva TM4C1294NCPDT. From Frank Sautter. (2015-05-20). - * configs/tm4c1294-launchpad/include/board.h: Added TM4C1294NCPDT - EN0_LED2 (10/100-Base-Tx); removed all booster pack pin definitions. - From Frank Sautter (2015-05-20). - * nuttx/arch/arm/src/sam34/sam_serial.c: In NONBLOCKING mode serial - does not receive bytes from UART. This happens because RX interrupt - was disabled in the setup routine. To fix this I save interrupt - configuration before UART shutdown and restore it after. From Max - Neklyudov (2015-05-21). - * arch/arm/include/lpc11xx and src/lpc11xx: Support for the LPC11xx - family (the LPC1115 MCU in particular). Contributed by Alan Carvalho - de Assis (2015-05-22). - * configs/lpcxpresso-lpc1115: Support for the LPCXpression LPC1115 - board. Contributed by Alan Carvalho de Assis (2015-05-22). - * arch/arm/src/sam34/Kconfig, sam_serial.c, and chip/sam_uart.h: Add - support for optical mode for the SAM4CM UART1. From Max Neklyudov - (2015-05-23). - * arch/arm/src/lpc11xx/: Add support for up_getc() which is needed - for NSH if there is no file system. From Alan Carvalho de Assis - (2015-05-23). - * LPCXpresso-LPC1115: Add a minimal NSH configuration that has the - file system disabled. Update README with OpenOCD instructions. - From Alan Carvalho de Assis (2015-05-23). - * Fix numerous typos in configuration variable names. Tracked down - by Alan Carvalho de Assis (2015-05-23). - * configs/teensy-2.0: Rename configs/teensy so that it is clearly - distinguished from teensy-lc and teensy-3.1 (2015-05-15). - * include/nuttx/mtd/mtd.h: Increase the size of the fields in the - geometry structure (again) to support larger FLASH sizes. Needed - by Sbastien Lorquet (2015-05-26). - * SAM4CM and SAMA5D Free-running timer: Logic that samples the free - running counter reads the pending interrupt status register and - can cause interrupts to be lost. So, if when the status register - is read, the logic must also handle the timer overflow event. - Found and fixed by Max Neklyudov (2015-05-26). - * arch/arm/include/kinetis and arch/arm/src/kinetis: Basic support - for the Kinetis K20 architecture. Taken from PX4. This is the - work of Jakob Odersky (2015-05-26). - * net/: Move some ICMP event lists to the device structure. That - allows for both device-specific event processing and also devices - to generate events like network down. From Max Neklyudov (2015-05-27). - * net/: Extend Macs logic to ARP and ICMPv6. Also found and fix - several IPv6-related compilation errors that have crept in. IPv6 - has been broken for awhile (2015-05-27). - * net/tcp: Fix an important TCP networking bug: 16-bit flags was - being converted to 8-bits in a few locations, causing loss of - status indications (2015-05-27). - * net/socket and net/tcp: net_startmonitor.c always returned OK. In - the case where a socket has already been closed, it correctly handled - the disconnection event but still returned OK. Returning OK caused - the callers of net_startmonitor to assume that the connection was - okay, undoing the good things that net_startmonitor did and causing - the socket to be marked as connected. This behavior was noted by - Pelle Windestam (2015-05-28). - * include/nuttx/net, net/arp, net/devif, net/icmp, net/icmpv6, - net/netdev, net/pkt, net/tcp, net/udp: Modify event list handling: - Now there are two event lists each device structure: (1) One is - for ARP and ICMP data related events, the other is for device - related events. Callback allocation/free routines no accept a - device parameter as well as a list: If the device parameter is - added, then the callback goes into both the connection-related - list AND the device event list. Thus each socket type can - received both custom data-related events as well as common - device related events (2015-05-28). - * net/socket and net/utils: setsockopt() fails when setting timeouts - to values less that an 100 msec. That is because the timeout is - limited to stops of 1 decisecond and because the conversion of - structure timeval was truncating the microsecond remainder. The - utility net_timeval2dsec now accepts and option to determine how it - handles the remainder: truncate, discarding the remainder, use the - remainder to round to the closed decisecond value, or use any non-zero - remainder to the next larger whole decisecond value. Bug discovered - by Librae (2015-05-29). - * configs/stm32f4discovery/src: Move up_cxxinitialize from - nuttx/configs/stm32f4discovery/src to apps/platform/stm32f4discovery - where it belongs (2015-05-29). - * net/sockets, net/tcp, net/udp: UDP Networking: Add support for - device event notification for UDP transfers (2015-05-29). - * net/sockets and net/tcp: TCP Networking: Add support for device event - notification for UDP transfers (2015-05-30). - * libc/Kconfig and stdio/lib_libvsprintf.c: Add an option to disable - support for long long formats in lib_vsprintf. From Alan Carvalho - de Assis (2015-05-30). - * net/net_initialize.c, net/detdev, and net/socket: The network device - list was protected by a re-entrant semaphore. With the recent change - to support network device callback, the network stack needs to access - the network device list too. Some drivers, however, run the network - stack from the interrupt level -- this is bad but a fact in the - current state. Of course, those drivers are unable to take the - semaphore and would assert. - The solution here is to eliminate the device devices semaphore - altogether. This eliminates netdev_semtake() and netdev_semgive() - and replace them with net_lock() and net_unlock() which have the - larger scope that is needed and will integrate properly with the - dinosaur interrupt driven stack (2015-05-31). - * net/socket/connect.c: In the TCP connection operation, it was trying - to setup the network monitor BEFORE the socket was successfully - connected. This, of course, has ALWAYS failed because the socket is - not yet connected and the TCP state is not yet correct for a connected - socket. However, because of other changes net_startmonitor() now - returns a failure condition that causes worse problems when trying to - connect. The fix is to move the logic that starts the network monitor - to AFTER the socket has been successfully connected (2015-05-31). - * tools/configure.c: Fix test for the existence of the apps/ directory. - Fix backward interpretation of options, -l was selecting Windows and - -w was selecting Linux. This was SourceForege Ticket #39 (2015-05-31). - * arch/include/stm32/chip.h and arch/src/stm32/Kconfig: Add basic - support for the STM32F205RG. From SourceForge Ticket 40 (anonymous, - 2015-05-31). - * arch/arm/src/lpc17xx: Review, update, and modify the Ethernet driver - so that it works better with CONFIG_NET_NOINTS=y (2015-06-01). - * configs/: Update all LPC17xx networking configurations so that they - have CONFIG_NET_NOTINTS=y selected (2015-06-01). - * /arch/arm/src/armv7-m, binfmt/libelf, configs/stm32f4discovery/scripts, - /include/nuttx/binfmt, and libxx: Add support uClibc++ exceptions. This - involves additional handling for relative relation types, additional - support for unwinding, as well as additional changes. The culmination - of a big effort from Leo Aloe3132 (2015-06-01). - * configs/olimex-lpc1766stk: Rename the thttpd configuration to thttpd-nxflat. - Add a new configuration, thttpd-binfs, that provides an example of how - to build apps/netutils/thttpd using binfs instead NXFLAT+ROMFS - (2015-06-02). - * tools/cfgdefine.c: Extend the mkconfig tool so that it can dequote a - quoted list of quoted strings. THTTPD uses such a configuration - setting to provide the list of index files (2015-06-02). - * mq_timedreceive(): move the location where the errno value is set; the - ETIMEDOUT errno setting was being overwritten by subsequent actions - before returning. Noted by Freddie Chopin (2015-06-03). - * Networking: Modify how callback structures are stored to avoid - another potential use of a stale pointer (2015-06-03). - * POSIX message queues: Move mq_setattr() and mq_getattr() from - nuttx/libc/mqueue to nuttx/sched/mqueue. Also add syscall support - for mq_setattr() and mq_getattr(). This is necessary in protected and - kernel builds because in those cases the message queue structure is - protected and cannot be accessed directly from user mode code (2015-06-03). - * drivers/net/tun.c: TUN driver bug fix. From Max Neklyudov (2015-06-03. - * drivers/net/Kconfig, include/nuttx/net/mii.h, and - arch/arm/src/lpc17xx/lpc17_ethernet.c: Add support for the Micrel - KSZ8041 PHY to the LPC17xx Ethernet driver (2015-06-03). - * configs/lincoln60/netnsh: Add a network enabled configuration for - the Lincoln60 board (2015-06-03). - * drivers/net/tun.c: Misc. improvements to the TUN driver, mostly related - to poll(). From Max Neklyudov (2015-06-04). - * fs/, fs/unionfs, include/nuttx, include/sys, Documentation: Add - support for a union file system that can be used to overlay and merge - the content of two mounted file systems (2015-06-05). - * arch/arm/src/efm32/efm32_spi.c: Add SPI GPIO pin initialization. From - Pierre-noel Bouteville (2015-06-05). - * configs/sim/unionfs: Add a configuration for testing the Union File - System (2015-06-05). - * configs/lincoln60/thttpd-binfs: Add a thttpd-binfs configuration for - the Lincoln60. That configuration still does not work on initial - commit (2015-06-06). - * arch/arm/src/sama5/sam_can.c: Fix SAMA5 CAN frame construction. From - Max Holtzberg (2015-06-07). - -7.11 2015-08-13 Gregory Nutt - - * arch/arm/src/efm32/efm32_spi.c: Correct write to incorrect register in - EFM32 SPI driver. From Pierre-noel Bouteville (2015-06-09). - * configs/teensy-3.x: Add board support for the PJRC Teensy-3.1 board - (2015-06-09). - * arch/arm/src/samdl, configs/samd20-xplained, and configs/saml21-xplained: - In the SAML21, SERCOM5 uses a different SLOW clock channel (and, hence, - also a different SLOW GCLK generator). This means that the channel - selection cannot be a global definition but must be a per SERCOM - configuration setting (2015-06-10). - * arch/arm/src/kinetis and include/kinetis: Add support for MK20DN--VLH5 - and MK20DX---VLH5. Needed for backward compatible support for - Teensy-3.0 (2015-06-10). - * configs/Kconfig and configs/teensy-3.x: Add support for Teensy-3.0 - (2015-06-10). - * arch/arm/src/stm32/stm32l15xxx_rcc.c: STM322 F15x stm32_stdclockconfig() - was calling stm32_pw_setvos() which accessed PWR_CR via an inactive APB - From Juha Niskaneni (2015-06-11). - * fs/mount: Add the ability to mount a file system on top of en existing - node in the pseudo-file system (2015-06-11). - * arch/arm/src/sam34/sam_clockconfig.c: Add default loop optimization if - EEFC_FMR is available in the configuration (i.e., for SAM4S and 4E). - From Marco Aurélio da Cruz (2015-06-11). - * include/time.h and libc/time: Add asctime(), asctime_r(), ctime(), and - ctime_r() (2015-06-12). - * include/ and arch/: Clean up and review of header files for conformance - to standards (2015-06-12). - * arch/arm/src/samdl: Add build framework for SAML21 DMA support. - Nothing there yet except for skeletal logic taken from SAM3/4 - (2015-06-12). - * include/pthread.h and nuttx/sched/pthread: Use -1 instead of 0 as PID - for unclaimed mutexes. From Juha Niskanen (2015-06-16). - * sched/pthread: Implement pthread_mutex_trylock() for recursive mutexes. - From Juha Niskanen (2015-06-16). - * libc/unistd/lib_getopt.c: Uninitialized variable can cause hardfault - from getopt if required argument is missing. From George McWilliams - (2015-06-18) - * arch/arm/include/samdl and arch/arm/src/samdl: Add architecture support - for the SAMD21 family (2015-06-19). - * configs/samd21-xplained: Board configuration for the SAMD21 Xplained - board (2015-06-21). - * arch/arm/src/sam34/sam_lowputc.c: Back out an error introduced with - commit 02c33f66c5a8be774034cd40e4125e9323c7b4d8. Causes an infinite - loop in up_lowputc(). From Max Neklyudov (2015-06-22). - * arch/arm/src/samv7/sam_lowput.c: Also back the bad change to sam_lowputc.c - for SAMV7 platform (2015-06-22). - * include/nuttx/fs/ioctl.h and power/relay.h: Add relay IOCTL definitions. - From Max Neklyudov (2015-06-22). - * sched/clock/clock_gettime.c: Use up_timer_gettime for CLOCK_MONOTONIC - in tickless mode. From Max Neklyudov (2015-06-22). - * crypto/ and SAM4CM: Add CFB and MAC AES modes. From Max Neklyudov - (2015-06-22). - * SAM4CM: Fix SUPC register definitions. From Max Neklyudov. Also - removed conditional logic form non-SAM4CM parts (Gregory Nutt) - (2015-06-22). - * SAM3/4: Add a TWI driver for the SAM4CM. From Max Neklyudov - (2015-06-22). - * SAMV7 Xplained: In clock configuration, divider was set to 25 to get - 25*12MHz=300MHz CPU clock. The correct multiplier is 24 because the - calculation if (24+1)*12MHz. So the board was running at 312MHz. - From Efim Monjak (2015-06-26). - * NFS client: Fix prototype of unbind method. The function prototype - was not updated for NFS after a recent change to the file system - interface. From Manuel Sthn (2015-06-25). - * Broke the NuttX GIT repository into several, smaller repositories. - Eliminated the misc/ directory and the content under misc/Obsoleted - and misc/sims (2015-06-27). - * Removed the Documentation/ directory. Replaced with a GIT submodule - that will bring in the new standalone Documentation directory - (2015-06-29). - * Removed the configs/ directory. Replaced with a GIT submodule - that will bring in the new standalone boards directory (2015-06-29). - * arch/arm/src/armv6-m/up_exception.S: Fix Cortex-M0 assembly error - when the interrupt stack is enabled. From Alan Carvalho de Assis - (2015-06-30). - * arch/arm/src/armv6-m/up_assert.c: Port some per-process stack - dumping logic from ARMv7-M to ARMv6-M. From Alan Carvalho de Assis - (2015-06-30). - * tools/testbuild.sh: Add a script that can be used to perform - building testing for several board configurations (2015-06-30). - * sched/pthread/pthread_create.c: Group binding needs to be cleared - before sched_releasetcb(), as otherwise group_leave() will be called - and group->tg_nmembers decremented or group being released. - group_leave() should be called only after group_join() is called, - not after group_bind(). From Jussi Kivilinna (2015-07-01). - * arch/arm/src/sama5/sam_ehci.c: Fix some bad conditional compilation - that left a function undefined if CONFIG_USBHOST_ASYNCH is not - selected (2015-07-01). - * arch/arm/src/common/up_vfork.c: Fix a Cortex-A compilation error - when system calls are enabled in modes other than CONFIG_BUILD_KERNEL - (2015-07-01) - * include/nuttx/net/netconfig.h: Fix some backward compilation that was - emitting #error in the wrong condition when SLIP was enabled (2015-07-01). - * drivers/net/slip.c: Fix a missed name change when many of network - interface names changed sometime back but were apparently never updated - for SLIP (2015-07-01). - * drivers/input/stmpe811_base.c: In stmpe811_instanciate() when - CONFIG_STMPE811_MULTIPLE is enabled, and the call to stmpe811_checkid() - fails, then the linked device list is not restored to its previous state. - From Sebastien Lorquet (2015-07-02). - * sched/sched/sched_waitpid.c: Implement WNOHANG for waitpid() only and - for the case of CONFIG_SCHED_HAVE_PARENT not selected. From Max - Neklyudov (2015-07-02). - * arch/sim/src/up_head.S: Implement board_power_off() for the simulation - platform (2015-07-04). - * libc/unistd/lib_gethostname.c: Add support for sethostname() (2015-07-05). - * libc/net: Add support for gethostbyname() and gethostbyaddr(). Also - support included for the non-standard gethostbyname_r() and - gethostbyaddr_r() (2015-07-08). - * drivers/ioexpander and include/nuttx/ioexpander: This commit adds: - - headers in nuttx/ioexpander to define the "generic" ioexpander - framework - - files in drivers/ioexpander for the implementation of the NXP - PCA9555 framework - - bindings in drivers/Kconfig and drivers/Makefile - From Sebastien Lorquet - * arch/arm/src/lpc43xx/chip/lpc4310203050_pinconfig.h: Correct some - LPC4350 GPIO pin configurations. From Alessandro Temil (2015-07-09). - * mm/umm_heap, include/nuttx/kmalloc.h, userspace.h, mm/mm.h, and all - configurations that support protected mode: Redesigned how the user - space heap is accessed from the kernel code in protected mode. It - used to call memory management functions in user space via function - pointers in the userspace interface. That is inefficient because the - first thing that those memory management functions do is to trap back - into the kernel to get the current PID. Worse, that operation can be - fatal is certain fragile situations such as when a task is exiting. - The solution is to remove all of the memory management function calls - from the interface. Instead, the interface exports the users pace - heap structure and then kernel size implementations of those memory - management functions will operate on the userspace heap structure. - This avoids the unnecessary system calls and, more importantly, - failures do to freeing memory when a test exits (2015-07-10). - * libc/netdb: Move netdb functions from lib/net to lib/netdb. Move - the DNS client logic from apps/netutils/dnscient to libc/netdb. - Add support to gethostbyname() so that it will attempt a DNS host - lookup before consulting the host table (if so enabled) (2015-07-10). - * arch/arm/src/samdl/chip/saml_usb.h: Several fixes to register - definitions and types. From Janne Rosberg (2015-07-10). - * include/nuttx/net/ and libc/netdb: Repartitioning of DNS client - logic in preparation for IPv6 support (2015-07-12): - - Rename include/nuttx/net/dnsclient.h to dns.h - - Move internal DNS prototypes from dns.h to libc/netdb/lib_dns.h - - Global standard DNS definitions from libc/netdb/dns_soccket.c to - dns.h - - Eliminate dns_gethostip(). This is now an internal part of - gethostbyname() - - Eliminate interface dns_whois(). Not needed in this new context. - * include/nuttx/net/ and libc/netdb: Modifications to DNS client logic - and to dns_get/setserver() interfaces to support DNS clients at IPv6 - addresses (still no support for resolution to IPv6 addresses) - (2015-07-12). - * include/nuttx/net/ and libc/netdb: Implement the low-level network DNS - packet protocol to request and receive IPv6 address mappings - (2015-07-12). - * libc/netdb: Add a default value for DNS server IP address. Make - sure that the IP address has been initialized before permitting DNS - queries (2015-07-13). - * libc/netdb: Add support for a DNS host name resolution cache. This - can save a lot of DNS name server lookups (but might also have the - negative consequence of using stale IP address mappings (2015-07-13). - * graphics/, libnx/, and include/nuttx/nx: Implement anti-aliasing in - order to clean the drawing of all edges (2015-07-14). - * drivers/lcd/ and include/nuttx/lcd: Modify the SSD1306 LCD driver to - support either the SPI or I2C interface. From Alan Carvalho de Assis - (2015-07-15). - * arch/src/stm32f7 and arch/include/stm32f7: Add architecture support - for the STMicro STM32 F7 (2015-07-15). - * drivers/can.c: Fix an issue in the CAN driver where the rx_sem - count can grow beyond bounds (2015-07-15). - * configs/stm32f762g-disco/: Add initialize support for the STMicro - STM32 F7 Discovery board. This is a work in progress and will be a - while before it is fully functional (2015-07-16). - * arch/../up_etherstub.c, arch/../up_initialize, and other files: Add - CONFIG_NETDEV_LATEINIT that can be used to suppress calls to - up_netinitialize() from early in initialization (2015-07-17). - * arch/arm/src/stm32: Extend STM32 Ethernet operating frequency to - 180MHz. From Sebastien Lorquet (2015-07-17). - * STM32 F7 Discovery: Basic NSH configuration is functional with a - serial console. I-/D-Caches and DTCM have been enabled. The delay - loop has been calibrated -- very fast (2015-07-19). - * drivers/sensor and include/nuttx/sensors: Add support to Bosch BMP180 - barometer. From Alan Carvalho de Assis (2015-07-20). - * configs/stm32f4discovery/: Add support to BMP180 driver on the - STM32F4Discovery. From Alan Carvalho de Assis (2015-07-20). - * arch/arm/src/stm32f7: Add an STM32 F7 Ethernet driver (2015-07-20). - * arch/arm/src/stm32f7: Port the STM32 F4 DMA driver. Untested on - initial commit (2015-07-20). - * arch/arm/src/sam34: Correct some problems with SAM3/4 watchdog driver. - Includes some small improvements. From Max Neklyudov (2015-07-21). - * arch/arm/src/stm32 and include/stm32: Add support for the STMicro - STM32 F446. From David Sidrane (2015-07-22). - * include/nuttx/sched.h, sched/, and fs/procfs: Increase the size of - the scheduling policy field from 1 to 2 bits to allow additional, - planned scheduling policies (2015-07-23). - * pthread_create: Fix an (unlikely) error in fallback value in the - event of a failure (which should never occur) (2015-07-23). - * include/, sched/, and libc/: Add support for sporadic scheduling - parameters in struct sched_param, posix_spawnattr_t, and pthread_attr_t. - Update all user interfaces to pass sporadic scheduling parameters. - (2015-07-23). - * sched/: Separate the round-robin logic into a separate file so that - it is symmetric with the sporadic stuff. Integrate the sporadic - scheduler into the time tick interrupt handling and into the tickless - operation (2015-07-24). - * arch/arm/src/moxart/: Add support for MoxaRT SoC found in the most - Moxa serial converters such as NP51x0, NP66xx, UC72xx. From Anton - D. Kachalov (2015-07-29). - * configs/moxa: Moxa NP51x0 series of 2-port advanced RS-232/422/485 - serial device servers. From Anton D. Kachalov (2015-07-29). - * drivers/net/ and include/nuttx/net: Add support for a Faraday - * FTMAC100 Ethernet MAC Driver. From Anton D. Kachalov (2015-07-29). - * 16550 UART Driver: Add a configuration option to indicate the - THR empty bit is inverted. This is the case for the moxART SoC. - Based comments from Anton D. Kachalov (2015-07-29). - * STM32 F4: Add DMA support to the ADC driver for STM32 F4. From - Max Kriegler (2015-07-30). - * sem_tickwait(): Added this function for internal use within the - OS. It is a non-standard but more efficient version of sem_timedwait() - for use in higher performance device drivers (2015-08-01). - * drivers/net/slip.c: Fix another compilation error (2015-08-02). - * drivers/can.c include/nuttx/can.h, and fs/fs.h: Add CAN IOCTL command - definitions to manage CAN message filtering (2015-08-05) - * drivers/Kconfig and can.c: Add configuration to support DLC to byte - conversions needed for CAN FD mode (2015-08-05). - * arch/arm/src/samv7: Add an MCAN driver for the SAMV7 platform - (2015-08-06). - * drivers/sensors/lm92.c and include/nuttx/sensors/lm92.h: Add a driver - for the LM92 temperature sensor. Contributed by Paul Alexander Patience - (2015-08-06). - * drivers/sensors/as5048b.c and include/nuttx/sensors/as5048b.h: Add - support for an AS5048B rotary magnetic sensor. From Paul Alexander - Patience (2015-08-07). - * include/nuttx/spi/slave.h: Add a definition of an SPI slave - interface (2015-08-08). - * arch/arm/src/samv7: Add the framework for an SPI slave driver. This - driver has a lot of missing logic on initial commit (2015-08-09). - * arch/arm/src/samv7: Basic, no-DMA SPI slave driver is in place - (2015-08-10). - * fs/vfs/epoll.c and include/sys/epoll.h: Add a very simple epoll layer - just around poll calls. To satisfy build app requirements. From Anton - D. Kachalov (2015-08-10). - * drivers/mtd/ramtron.c: Update to include supportf for newer - RAMTRON parts. From David Sidrane (2015-08-10). - * Networking: Allow receipt of empty UDP packets. From Max Neklyudov - (2015-08-11). - * drivers/sensors/mb7040.c and include/nuttx/sensors/mb7040.h: Add - support for a MB7040 sonar driver. From Paul Alexander Patience - (2015-08-11). - * net/udp: Add support for send() for connected UDP sockets - (2015-08-11). - * drivers/sensors/ms5805.c and include/nuttx/sensors/ms5805.h: Add - support for an MS5805 altimeter. From Paul Alexander Patience - (2015-08-12). - -7.12 2015-10-01 Gregory Nutt - - * fs/vfs/fs_poll.c: Use sem_tickwait() instead of sem_timedwait() - From Macs Neklyudov (2015-08-13). - * fs/vfs/fs_poll.c: If we fail to setup the poll for any file - descriptor, for any reason, set the POLLERR bit (2015-08-13). - * libc/stdlib: Add support for div() to the C library. From - OrbitalFox (2015-08-14). - * libc/stdlib: Might as well add ldiv() and lldiv() to since - these are equivalent to div() with long and long long types, - respectively, instead of int (2015-08-14). - * include/signal.h and files that include it: Add si_errno to - siginfo_t (2015-08-14). - * drivers/sensors/mx58xx.c and include/nuttx/sensors/ms58xx.h: - Generalize the MS5805 altimeter driver to support other family - members and rename to ms58xx. From Paul Alexander Patience - (2015-08-14). - * Network drivers. Fix bug in tun interface driver. From Max - Neklyudov (2015-08-17). - * STM32: Added definitions for STM32F303K6, STM32F303K8, STM32F303C6, - STM32F303C8, STM32F303RD, and STM32F303RE devices. From Paul - Alexander Patience (2015-08-17). - * include/nuttx/can.h and all CAN drivers: Add an error indication - bit to the CAN message report. This indication must then be cleared - in all existing drivers. More to come (2015-08-18). - * arch/arm/src/lpc17/lpc17_irq.c: Set NVIC vector address so that - code can execute with a bootloader or can execute from RAM. From - Pavel Pisa (2015-08-20). - * All ARMV7-M IRQ setup: Always set the NVIC vector table address - unconditionally. This is needed in cases where the code is running - with a bootload and when the code is running from RAM. It is also - needed by the logic of up_ramvec_initialize() which gets the vector - base address from the NVIC. Suggested by Pavel Pisa (2015-08-21). - * SAMV7 USBHS DCD: The device controller driver is (finally) functional - (2015-08-21). - * recvfrom(): Correct wait for new data when NET_UDP_READAHEAD is - enabled. Fix size accounting when recvfrom_udpreadahead() sets - state.rf_recvlen == -1. I have not checked if data are accumulated - to the right position in the buffer however. From Pavel Pisa - (2015-08-21). - * sched/wdog/wd_create.c: Correct a counting error in the number - of available watchdog timers. When the number of free timers is - low, the counter could be incremented below zero (2015-08-21). - * arch/arm/src/stm32: Add OTG support for STM32F44x. From David - Sidrane (2015-08-21). - * arch/arm/src/lpc17: Actually implement options to use external - SDRAM and or SRAM for the heap. From Pavel Pisa (2015-08-21). - * gethostbyname(): correct returned address format when DNS is used. - The hostent.h_addr_list should point to raw in_addr or in6_addr - as defined in the standard. Original implementation used that - for numeric addresses but for DNS lookup returned pointer to - whole sockaddr_in or sockaddr_in6. From Pavel Pisa (2015-08-21). - * tools/mksymtab: declare g_symtab array as const to occupy RO - section (Flash). From Pavel Pisa (2015-08-23). - * libc/libc.csv and syscalls/syscalls.csv: Define some symbol - export conditions, correct errno and add sleep and usleep. From - Pavel Pisa (2015-08-23). - * net/ and include/nuttx/net: Remove references to PPP as a - link layer protocol (2015-08-24). - * net/, drivers/net, and include/net: Add definitions to support - a local loopback device and link layer (2015-08-24). - * libc/netdb, net/loopback, include/nuttx/net: Add NetDB support - for the local loopback device (2015-08-24). - * drivers/net/loopback.c: Add basic prototype of a local loopback - device (2015-08-24). - * networking: Correct return value from psock_tcp_accept(). From - SaeHie Park (2015-08-25). - * drivers/mtd/s25fl1.c: Add a driver for ST25L1*K QuadSPI parts - (2015-08-25). - * include/nuttx/spi/qspi.h: Develop a new interface for QSPI, at - least the way that QSPI is implemented on the SAMV71. Originally - planned to use the SPI interface, but it is just now compatible - with the SAMV71 QSPI hardware (2015-08-25). - * drivers/rwbuffer.c: Fix some logic errors. From Dmitry Nikolaev - via Juha Niskanen (2015-08-26). - * net/socket and net/tcp: Fix a problem in when there are multiple - network devices. Polls were being sent to all TCP sockets before. - This is not good because it means that packets may sometimes be - sent out on the wrong device. That is inefficient because it - will cause retransmissions and bad performance. But, worse, when - one of the devices is not Ethernet, it will have a different MSS - and, as a result, incorrect data transfers can cause crashes. - The fix is to lock into a single device once the MSS is locked - locked down (2015-08-27). - * drivers/lcd and include/nuttx/lcd: Add SSD1351 OLED controller - support. Contributed by Paul Alexander Patience (2015-08-28). - * include/nuttx/mtd/mtd.h: Move MTD ioctl command definitions from - include/nuttx/fs/fs.h to include/nuttx/mtd.h. Add ioctl commands - to protect and unprotect memory (2015-08-29). - * binfmt/builtin.c: Fix a memory leak: File was not being closed. - From Bruno Herrera (2015-08-30). - * fs/romfs: One allocation was not being freed if there was a - subsequent failure to allocation I/O buffers resulting in a memory - leak on certain error conditions. From Bruno Herrera (2015-08-30). - * arch/arm/src/up_internal.h and several ARM Make.defs files: In the - original implementation, !defined(CONFIG_ARMV7M_CMNVECTOR) was a - sufficient test to determine if lazy floating point register saving - was being used. But recents changes added common lazy register as - well so now that test must be (!defined(CONFIG_ARMV7M_CMNVECTOR) || - defined(CONFIG_ARMV7M_LAZYFPU)) (2015-08-31). - * arch/arm/include/sama5 and src/sama5: Add basic chip description, - configuration support and interrupt definitions for the SAMA5D2 - (2015-08-31). - * LPC43xx: Fix NVIC_SYSH_PRIORITY_STEP define. From Ilya Averyanov - (2015-09-01). - * LPC43xx: Fix missing #define in eeprom. From Ilya Averyanov - (2015-09-01). - * libc/math/lib_asin.c: The function did not convert for some input - values. Asin did not convert for values which do not belong to the - domain of the function. But aside of that the function also did not - converge for some allowed values. I achieved a conversion of the - function by reducing the DBL_EPSION and by checking if the input - value is in the domain of the function. This is a fix for the - problem but the function should always terminate after a given - number of iterations. From Stefan Kolb (2015-09-01). - * arch/arm/src/lpc43xx/lpc43_spi.c: Fix SPI driver. From Ilya - Averyanov (2015-09-02). - * arch/arm/src/lpc43xx/lpc43_ethernet.c: Add Ethernet support. From - Ilya Averyanov (2015-09-02). - * net/tcp: The logic that binds a specific network device to - a connection was faulty for the case of multiple network - devices. On bind(), the local address should be used to associate - a device with the connection (if the local address is not INADDR_ANY); - On connect(), the remote address should be used (in case the local - address is INADDR_ANY). On accept(), it does not matter but the - remote address is the one guaranteed to be available (2015-09-02). - * configs/Board.mk and configs/*/src/Makefile: Simplify configs/ - Makefiles by combining common logic into a new Board.mk Makefile - fragment. From Paul Alexander Patience (2015-09-04). - * configs/sama5d2-xult: Add a very basic configuration for the SAMAD2 - Xplained Ultra board. This configuration is incomplete and only - intended to support the initial board bring-up (2015-09-05). - * up_initialize() all architectures: Automatically initialize all - the TUN device if it is in the configuration (2015-09-06). - * Change all references from avsprintf to vasprintf. From Sebastien - Lorquet (2015-09-07). - * net/tcp: Fix unbuffered send compilation error when Ethernet is not - enabled. From Alan Cavalho de Assis (2015-09-07). - * LPC31 and SAMA5D EHCI: Fix qh_ioccheck to move bp to next QH. From - Ilya Averyanov (2015-09-07). - * LPC31 and SAMA5D EHCI: Performance improvement: Do not disable the - asynchronous queue when adding a new QH structure. From Ilya - Averyanov (2015-09-07). - * arch/arm/src/sama5: Separate memory mapping tables for SAMA5D2, 3, - and 4 (2015-09-08). - * libc/net/lib_shutdown.c: Add an empty implementation of the - standard shutdown function. This provides only the framework for - the shutdown function; the internal logic is not included - (2015-09-09). - * configs/nucleo-f303re: Support for the STMicro Nucleo F303RE board - from Paul Alexander Patience (2015-09-10). - * arch/arm/src/lpc43xx/lpc43_ehci.c and .h: LPC43xx EHCI driver from - Ilya Averyanov (2015-09-10). - * ARMv7-M, all "lazy" interrupt stack logic. Assembly instruction - that fetches the saved value is incorrect; replace with more - traditional push and pop. This is an important fix. Noted by - Stefan Kolb (2015-09-14). - * All ARMV7-M: Force 8-byte stack alignment when calling from assembly - to C to interrupt handling (2015-09-15). - * drivers/power/battery_gauge.c and include/nuttx/power/battery_gauge.h: - battery.c/h renamed to batter_gauge.c/.h since it really only - implements a battery fuel gauge. From Alan Carvalho de Assis (2015-09-19). - * drivers/power/battery_charger.c and include/nuttx/power/batter_charger.h: - Add a new framework to support a batter charger interface. From Alan - Carvalho de Assis (2015-09-19). - * drivers/power/bq2425x.c and .h: Battery Charger: Add BQ24250 driver. - From Alan Carvalho de Assis (2015-09-20). - * fs/mqueue/mq_open.c: When message queue is opened, inode_reserve() - leaves the reference count at zero. mq_open() logic must assure - that the reference count of the newly created inode is one (2015-09-23). - * arch/sim/src/Kconfig, Makefile, up_setjmp64.S: Modern Cygwin X86_64 - machines follow the Microsoft ABI for parameter passing. The older, - Linux System 5 ABI will not work on X86_64-based Cygwin machines. Also, - the newer Cygwin tool chains do nor pre-pend symbol names with the - underscore character. With these changes the simulator against works - with the newer Cygwin64 platform (2015-09-24). - * arch/arm/src/lpc43xx: Extensive I2C and clocking updates from Lok Tep - (2015-09-29). - * configs/lpc4370-link2: Support for the NXP LPC4370-Link2 development - board from Lok Tep (2015-09-29). - * configs/nucleo-f303re: Add SSD1351 SPI 4-wire interface. From Paul - Alexander Patience (2015-09-29). - * arch/arm/src/armv7-m/up_schedulesigaction.c: Fix logic that determines - if there is a pending signal action before scheduling the next signal - action. Both the test and the scheduling action need to be atomic - (2015-09-30). - * sched/wqueue/kwork_queue.c and libc/wqueue/work_queue.c: Logic that - sets the queued indication and the logic that does the actual queuing - must be atomic (2015-09-20). - -7.13 2015-12-05 Gregory Nutt - - * libc/stdlib/lib_bsearch.c and include/stdlib.h: Add the bsearch() - function from NetBSD (2015-10-02). - * libc/stdlib/lib_qsort.c and include/stdlib.h: Make coding style - more conformant, take description from OpenGroup.org, rename formal - parameters to match names used on OpenGroup.org (2015-10-02). - * drivers/lcd/st7565.c: Extend to include support for the ERC12864-3. - From Pierre-noel Bouteville (2015-10-07). - * fs/tmpfs: Created a directory that will eventually hold a trivial - temporary RAM file file system (2015-10-0i8). - * tools/: Add crappy style checking tool nxstyle.c. See thee tools/ - README file for more info (2015-10-08). - * stm32 F4: Fix some TIM12 pin mappings. From Max Kriegleder - (2015-10-9). - * fs/tmpfs: TMPFS file system is code complete and basically functional - although it has not been heavily tested (2015-10-9). - * drivers/input/button_upper.c and include/nuttx/input/buttons.h: Add a - driver to support application access to board buttons (2015-10-12). - * drivers/input/button_lower.c: Add a generic lower half button driver. - This lower half driver is only usable in a limited number of - situations, but can still serve as a module for the lower half button - driver. (2015-10-13). - * drivers/sensors/zerocross.c and include/nuttx/sensors/zerocross.h: - Add Zero Cross device driver support. From Alan Carvalho de Assis - (2015-10-13). - * configs/stm32f4discovery/src/stm32_zerocross.c: Add low level support - for the Zero Cross driver for the STM32F4-Discovery. From Alan - Carvalho de Assis (2015-10-13). - * drivers/sensors/max6675.c and include/nuttx/sensors/max6675.h: Add - support to Thermocouple-to-Digital converter MAX6675. From Alan - Carvalho de Assis (2015-10-18). - * configs/stm32f4discovery/src: Add board config to support MAX6675. - From Alan Carvalho de Assis (2015-10-18). - * arch/arm/src/samv7/sam_lowputc.c: Reconfigure System I/O when using - USART1. From Frank Benkert (2015-10-20). - * fs/semaphore: Named semaphores: Bad cast in sem_close(). Fixed by - reordering fields of struct nsem_inode_s so that the cast will work - (2015-10-22). - * Many files: Rename board_led_* functions to board_autoled_* functions. - This makes room in the namespace to handler user LED functions - (2015-11-01). - * Many files: Standardize naming of the user LED interface functions. - The new user LED interface functions are now prototyped in only in - include/nuttx/board.h and have name like board_userled_* (2015-11-01). - * drivers/leds/usersled_upper.c and include/leds/usersled.h: Add - a generic character driver that may be used by applications to write - to board LEDs (2015-11-01). - * drivers/leds/usersled_lower.c: Add a generic lower-half user LED - driver that may be used by any board that supports the standard - board user LED interfaces (2015-11-01). - * sched/clock: Fix error in clock_timespec_subtract(). Found by Lok - (2015-11-03). - * drivers/can.c and include/nuttx/can.h: Fix a problem in the CAN - upper-half driver that occurs only for CAN hardware that support a - H/W FIFO of outgoing CAN messages. In this case, there can be a - hang condition if both the H/W and S/W FIFOs are both full. In that - case, there may be no event to awaken the upper half driver. Add a - new (conditional) CAN upper half interface called can_txready() that - can be used by the lower half driver to avoid this hang condition - (2015-11-03). - * arch/arm/src/samv7: Add a call to can_txready() to the MCAN driver - (2015-11-03). - * arch/arm/src/samv7: Add MPU and protected build support (2015-11-06). - * arch/arm/src/samv7: The QSPI FLASH driver is now functional. This - driver operates in the memory-mapped, Serial Memory Mode (SMM) - (2015-11-07). - * drivers/bch: Block-to-character (BCH) driver should forward ioctl() - calls to the contained block driver (2015-11-09). - * arch/arm/samv7/sam_qspi.c: The QuadSPI driver is now functional - (2015-11-10). - * drivers/mtd/s25fl1.c: The S25FL1xx QuadSPI FLASH driver is now - functional (2015-10-11). - * arch/arm/samv7: Add an on-chip FLASH driver (2015-11-12). - * drivers/mtd/mtd_progmem.c: Add an upper half MTD device that can - use the interfaces defined in included/nuttx/progmem.h to provide - a standard MTD interface (2015-11-12). - * drivers/serial/serial.c, serialirq.c and include/nuttx/serial/serial.h: - Implement high level DMA infrastructure for serial devices. From - Max Neklyudov (2015-11-12). - * arch/arm/src/samv7 and arch/arm/include/samv7: Add support for the - SAME70 family of chips (2015-11-14). - * configs/stm32f429i-disco: configs/stm32f429i-disco/src/stm32_nsh.c - file calculated partition boundaries based on page block sizes but - mtd_partition() is expecting calculations based on erase block size. - From Alan Carvalho de Assis (2015-11-16). - * Move rivers/wireless/cc3000/security.c to crypto/aes.c; move - include/nuttx/wireless/cc3000/security.h to include/nuttx/crypto/aes.h - (2015-11-16). - * drivers/mtd/at24xx.c: Add support for multiple AT24xx EEPROM parts, - each with unique I2C addresses, but otherwise identical (2015-11-17). - * drivers/timers/ds3231.c: Add support for the DS3231 I2C RTC. Untested - on the initial commit (2015-11-17). - * arch/arm/src/stm32/stm32_tim_lowerhalf.c: Add a compatible lower-half - timer driver for use with drivers/timers/timer.c. From Wail Khemir - (2015-11-17). - * drivers/sensors/ms58xx.c: Fix some issues with initialization and with - CRC calculation. From Karim Keddam (2015-11-17). - * drivers/mtd/w25.c: Fix W25 FLASH driver page read/write logic. From - Ken Pettit (2015-11-18). - * drivers/mtd/smart.c: Fix a Smart wear-leveling bug. From Ken Pettit - (2015-11-18). - * arch/sim/src/up_spiflash.c: Add support for W25 FLASH simulation. - From Ken Pettit (2015-11-18). - * configs/boardctl.h, Kconfig, include/sys/boardctl.h, and nuttx/board.h: - Add a command to the boardctl() interface to obtain a board unique ID - (2015-11-18). - * drivers/timers/ds3231.c: Driver extended to include support for the - DS1307 RTC (2015-11-18). - * configs/same70-xplained: Add basic NSH configuration for the SAME70 - Xplained board. Initial commit is just the SAMV71-XULT files with - names changed appropriately (2015-11-18). - * drivers/mtd/smart.c: Fixed SmartFS wear level error that occurs when - the logical sector size is too small to save all wear level status - bytes in a single sector. Logical sectors 1 and 2 were simply not - being allocated and then the read_sector and write_sector routines - were failing. From Ken Pettit (2015-11-18). - * drivers/timers/ds3231.c: Untested support for DS1302 and DS3232. - Also definitions for the DS3234, but that is an unsupported SPI RTC - (2015-11-19). - * drivers/mtd/w25.c: Add support for byte write mode. From Ken Pettit - (2015-11-20). - * drivers/timers/pcf85263.c and include/nuttx/times/pcf85263.h: Add - a driver for the NXP PCF85263 I2C RTC. Untested on initial commit - (2015-11-20). - * fs/driver/fs_blockproxy.c: Add logic to create a temporary char driver - using drivers/bch to mediate character oriented accessed to a block - driver (2015-11-21). - * fs/vfs/open.c: If the use attempts to open a block driver, use - block_proxy() to insert a character driver conversion layer in front - of the block driver (2015-11-21). - * libc/stdio/lib_freopen.c and include/stdio.h: Add support for - freopen() (2015-11-22). - * include/sys/types.h and include/nuttx/mm.h: When building on a 64-bit - machine, the size of size_t should be 64-bits. In general, I believe - that sizeof(size_t) should be the same as sizeof(uinptr_t). mmsize_t - should always be 32-bits in any event. The last change to stddef has - been backed out. With these changes, the simulator builds without - * fs/hostfs and arch/sim/src: Add a special file system for use with - simulator that supports access to the host file system from the - simulation. From Ken Pettit (2015-11-25). - * libc/time/lib_strftime.c: Add day-of-week support. (2015-11-25). - * drivers/lcd/ili9432.c: Fixed errors in orientation. Portrait, - RPortrait, and RLandscript should work correly now. They were - displayed mirrored. From Marco Krahl (2015-11-25). - * drivers/mtd/mtd/mtd_procfs/c and include/nuttx/mtd/mtd.h: Add an - interface to un-register an MTD procfs entry. From Ken Pettit - (2015-11-25). - * drivers/mtd/filemtd.c: A new MTD conversion layer that will - convert a regular file (or driver file) to an MTD device. This is - useful for testing on the simulation using the hostfs. From Ken - Pettit (2015-11-25). - * drivers/loop: Add a loop character device. losetup() and - loteardown() should not be called directory from applications. - Rather, these functions are now available as IOCTL commands to the - loop driver (2015-11-25). - * include/nuttx/net/netdev.h and several Ethernet drivers in arch/: - Most network drivers do not support statistics. Those that do only - support them when DEBUG is enabled. Each driver collects an - architecture specific set of statistics and there is no mechanism in - place to view those statistics. Thus, the driver feature was mostly - useless. This change standardizes the driver statistics and puts the - definition in the common network device structure defined in netdev.h - where they can be accessed by network applications. All Ethernet - drivers that collect statistics have been adapted to use these common - statistics (2015-11-26). - * net/net_procfs.c: Add basic support for networking entries in the - procfs (2015-11-27). - * mtd/filemtd.c and smart.c: Add support for a /dev/smart loop device. - From Ken Pettit (2015-11-28). - * sched/pthread/: CRITICAL BUGFIX: Logic was wiping out the indication - that of the type of a pthread. Hence, it could be confused as a - task. Found because this was causing a crash when /proc/nnn/cmdline - was printed (2015-11-29). - * configs/same70-xplained/nsh: The NSH configuration now seems fully - functional: serial console, LEDs, buttons, SDRAM, and HSMCI SD card - (2015-11-30). - * configs/same70-xplained/netnsh: Added and verified a network-enabled - NSH configuration for the SAME70-Xplained board (2015-11-20). - * net/: Remove CONFIG_NET_PINGADDRCONF. This was a uIP way of assigning - IP addresses, but is not standard and not a appropriate feature in - general (2015-12-01). - * fs/procfs: The procfs file system can now be configured so that it - supports a runtime registration of procfs entries with - CONFIG_FS_PROCFS_REGISTER=y (2015-12-01). - * arch/arm/src/stm32/stm32_ccm_procfs.c: Is no longer a part of the - 'base' procfs entries and can now only be supported via run time - registration with CONFIG_FS_PROCFS_REGISTER=y (2015-12-01). - * arch/arm/src/samv7/sam_tc.c: Port the SAMA5 timer/counter driver - to the SAMV7 (2015-12-02). - * arm/arm/src/samv7/sam_tickless.c: Port the SAMA5/SAM4CM tickless - logic to the SAMV7 (2015-12-02). - * fs/semaphore: Named semaphores: Back out "fix" of 2015-10-22. It was - correct before. The change of 2015-10-22 probably broke named - semaphores (2015-12-02). - * arch/arm/src/samv7: Bring programmable clock logic from SAMA5 into - SAMV7 (2015-12-03). - * arch/arm/src/samv7: Add PCK6 as an optional source for the timer/ - counter clock (2015-12-04). - * configs/samv7-xult/: If Tickless mode is selected then enable PCK6 - as a timer/counter clock source (2015-12-04). - -7.14 2016-01-28 Gregory Nutt - - * arch/arm/src/samv7: Port the TRNG driver from the SAMA5D3/4 to the - SAMV7 (2015-12-06). - * arch/arm/src/samv7: Port the WDT driver from the SAMA5D3/4 to the - SAMV7 (2015-12-06). - * arch/arm/src/samv7: Add an RSWDT driver (2015-12-06). - * drivers/net/telnet.c: Move the Telnet driver from apps/netutils/telnetd - to drivers/net. It is a driver a belongs in the OS. There are still - some interface related issues, however (2015-12-07). - * configs/: Update all configurations that use the Telnet daemon; those - configurations now need to separately enable the Telnet driver - (2015-12-07). - * drivers/net/telnet.c: Now works like the loop device. A new interface - called telnet_initialize() registers a telnet session "factory" - device at /dev/telnet. Via ioctl, the factory device can create - instances of the telnet character devices at /dev/telnetN to support - Telnet sessions (2015-12-07). - * arch/arm/src/samv7: In USBHS device driver, fix check if zero length - packet is needed (2015-12-08). - * sched/pthread/: CRITICAL BUGFIX: Logic was wiping out the indication - that of the type of a pthread. Hence, it could be confused as a - task. Same problem as fixed on 2015-11-29, but in different location - (2015-12-09). - * sched/module: Add support for kernel modules. Initial commit is - just the ELF module support with name changes (2015-12-10). - * configs/samv71-xult/module: Add configuration for testing OS - modules (2015-12-12). - * sched/module: Add an implementation of rmmod() (2015-12-12). - * sched/module and fs/procfs: Add some basic module procfs support - (2015-12-12), - * arch/arm/src/armv7-r: Add basic architecture support for the ARMv7-R - processor family (2015-12-13). - * drivers/led: Adds a driver for the PCA9635PW I2C LED driver IC which - can be used to control the intensity of up to 16 LEDs. From Alexander - Entinger (2015-12-15). - * configs/launchxl-tms57004: Add basic board support for TI LaunchXL- - TMS57004. Not much to see there yet (2015-12-15). - * waitpid: CRITICAL BUGFIX. Add a reference count to prevent waitpid - from using stale memory released by the waited-for task group - (2015-12-22). - * sys/time.h: Add timeradd(), timersub(), timerclear(), timerisset(), - and timercmp() as macros. These are non-POSIX interfaces, but - included in most BSD deriviatives, including Linux. From Manuel Sthn - (2015-12-23). - * arch/arm/src/stm32: Add timer input capture driver. From Pierre-Noel - Bouteville (2015-12-24). - * arch/avr: Add support for the Atmega2560. From Dimitry Kloper - (2015-12-19). - * configs/arduino-mega2560: Add support for the Arduino-Mega2560. From - Dimitry Koper (2015-12-29). - * sched/signal, sched/mqueue, sched/timer, include/signal.h, - include/nuttx/signal, fs/aio, libc/aio, and probably other - directories: Add support for the SIGEV_THREAD notification method in - struct sigevent. This initial implementation will only work in the - FLAT build. See the top-level TODO file for additional details - (2015-12-30). - * include/nuttx/compiler.h, include/nuttx/streams.h include/stdio.h - include/syslog.h libc/stdio/, and libc/syslog: introduce support for - Atmel toolchain in-flash strings. Atmel toolchain AVR compiler - provides a transparent in-flash object support using __flash and - __memx symbols. The former indicates to compiler that this is a flash- - based object. The later used with pointer indicates that the referenced - object may reside either in flash or in RAM. The compiler automatically - makes 32-bit pointer with flag indicating whether referenced object is - in flash or RAM and generates code to access either in run-time. Thus, - any function that accepts __memx object can transparently work with RAM - and flash objects. - For platforms with a Harvard architecture and a very small RAM like AVR - this allows to move all constant strings used in trace messages to flash - in the instruction address space, releasing resources for other things. - This change introduces IOBJ and IPTR type qualifiers. The 'I' indicates - that the object may lie in instruction space on a Harvard architecture - machine. For platforms that do not have __flash and __memx or similar - symbols IOBJ and IPTR are empty, making the types equivalent to, for - example, 'const char' and 'const char*'. For Atmel compiler these will - become 'const __flash char' and 'const __memx char*'. All printf() - functions and syslog() functions are changed so that the qualifier is - used with the format parameter. From Dimitry Kloper (2016-01-05). - * drivers/net/tun.c: Fix a compile time error in the TUN driver. From - Vladimir Komendantskiy (2016-01-05). - * Kconfig and include/debug.h: Add configuration to support an - architecture-specific debug.h header file. From Dimitri Kloper - (2016-01-09). - * arch/avr/include/debug.h: Add an AVR-specific header file used when - the AVR MEMX pointer is used. From Dimitri Kloper (2016-01-09). - * tools/cnvwindeps.c: Add a tool that will convert paths in - dependencies generated by a Windows compiler so that they can be - used with the Cygwin make (2016-01-09). - * tools/mkwindeps.sh: A script that coordinates use of cnvwindeps.exe - (2016-01-09). - * tools/mkdeps.c: Deleted mkdeps.sh and mkdeps.bat. The mkdeps - executable generated from mkdeps.c is now that the only supported - way to make dependencies (2016-01-09). - * tools/mkdeps.c: Extended/fixed support for --winpath option. - Dependencies now work under Cygwin with a native Windows toolchain - (2016-01-10). - * libc/netdb: Add support for the use of a DNS resolver file like - /etc/resolv.conf (2016-01-14). - * drivers/sensors/mcp9844.c and include/nuttx/sensors/mcp9844.h: Driver - for the MCP9844 I2C digital temperature sensor with a selectable - resolution. From Alexander Entinger (2016-01-15). - * arch/arm/src/lpc43xx: Numerous LPC43 improvements to SPIFI and ADC - from Lok Tep (2016-01-15). - * configs/lpc4337-ws: Support for the WaveShare LPC4337-WS board. From - Lok Tep (2016-01-15). - * drivers/wireless/pn532.c: Add driver for the NXP pn532 NFC-chip. From - Janne Rosberg and others at Offcode Ltd (2016-01-17). - * drivers/sensors/lsm9ds1.c: Add driver for the STMicro LSM9DS1 chip. - The LSM9DS1 is a system-in-package featuring a 3D digital linear - acceleration sensor, a 3D digital angular rate sensor, and a 3D - digital magnetic sensor. From Paul Alexander Patience (2016-01-17). - * configs/olimex-stm32-h407: Added a port to the Olimex STM32 H407 - board. This board features the STMicro STM32F407ZGT6 (144 pins). - Contributed by Neil Hancock. (2016-01-18) - * arch/arm/src/stm32/stm32_otgfs/hs/host.c: Fix some backward - arguments to stm32_putreg(). Note by Hang Xu (2016-01-18). - * include/nuttx/can.h and several CAN drivers: Add more extensive - error reporting capaibility to the CAN interface. From Frank - Benkert (2016-01-18). - * libc/misc/lib_tea.h and include/nuttx/crypto/tea.h: Add an - implementation of the Tiny Encryption Algorithm (2016-01-19). - * sim/include: Now supports a customizable startup script with a - read-only passwd file (2016-01-20). - * sim/nsh: Uses the custom start up script, includes hooks for - an MOTD message. (2016-01-20). - * include/clock.h and lots of other files: If the 64-bit timer is - selected, then use it whenever clock_systimer() is called rather - then chopping the 64-bit timer down to 32-bits. Add a new type, - systime_t to represent the 32- or 64-bit system timer (2016-01-21). - * sched/clock/clock_systimespec.c: Fix an error in a time - conversion (2016-01-21). - * include/nuttx/clock.h: Get rid of clock_systimer32() and - clock_systime64(). There is now only clock_systimer() (2016-01-21). - * arch/arm/src/kinetis: Numerous updates to the Kinetis ENET driver. - From Andrew Webster (2016-01-21). - * arch/arm/src/kinetis: Add support for the MK60N512VLL100 Kinetis part. - From Andrew Webster (2016-01-21). - * net/tcp and net/iob: Numerous fixes, mostly relate to TCP and IOB - buffering and race conditions. These were necessary for for the - NuttX networking later to be stable in some stress testing. From - Andrew Webster (2016-01-22). - * include/spi/spi.h: Add an optional hwfeatures() method to the - SPI interface (2016-01-23). - * drivers/spi/Kconfig and many other files: Remove CONFIG_SPI_OWNBUS: - Now its not just a good idea, its the law (2015-01-23). - * include/nuttx/math32.h and libc/misc: Add some utilities to support - 64-bit arithmetic operations for platforms that do not support long - long types. Not yet used anywhere (2015-01-25). - * arch/arm/src/samv7/chip: Add an AFEC header file (2016-01-25). - * net/iob: iob_alloc_qentry() has the same issues as did iob_alloc() - fixed on 2016-01-23. (2016-01-26). - * drivers/usbhost/hid_parser.c: Wrong size used in memcpy(). From Hang - Xu (2016-01-25). - * drivers/ioexpander/pca9555.c: Fixed a bug in the function pca9555_setbit - which occurs if someone tries to set one of the pins 8-15. The problem is - that after the check if the pin is greater than 7 the variable addr is - incremented and used in the Call I2C_WRITEREAD. But later in the call to - the I2C_WRITE buf[0] is used as address but this address is not incremented - as it should be. Note address does mean the address to the register in the - ioexpander and not the I2C address. From Stefan Kolb (2016-01-26). - * drivers/ioexpander/pca9555: Convert to use I2C_TRANSFER vs. I2C_WRITEREAD, - the former is thread safe while the latter is deprecated (2016-01-26). - * drivers/i2c/i2c_writeread.c: Create a wrapper that uses I2C_TRANSFER - to implement I2C_WRITEREAD functionality (2016-01-26). - * I2C: Eliminate the I2C_WRITEREAD method (2016-01-26). - * drivers/i2c/i2c_read.c and i2c_write.c: Convert to use I2C_TRANSFER vs. - I2C_READ and I2C_WRITE which are not thread safe (2016-01-26). - * SPI: Rename the STM32 up_spiinitialize() to stm32_spibus_initialize() - (2016-01-26). - * SPI: Rename the SAM up_spiinitialize() to sam_spibus_initialize() - (2016-01-26). - * SPI: Rename the Tiva up_spiinitialize() to tiva_spibus_initialize() - (2016-01-26). - * SPI: Rename the PIC32MX/MZ up_spiinitialize() to pic32mx/mz_spibus_initialize() - (2016-01-26). - * SPI: Rename EFM32's efm32_spi_initialize to efm32_spibus_initialize() - for compatibility with these other changes (2016-01-26). - * SPI: Rename the KL up_spiinitialize() to kl_spibus_initialize() (2016-01-26). - * SPI: Rename the Kinetis up_spiinitialize() to kinetis_spibus_initialize() - (2016-01-26). - * SPI: Rename the LPC31xx up_spiinitialize() to lpc31_spibus_initialize(), - Rename the LPC17xx lpc17_spiinitialize() to lpc31_spibus_initialize(), - Rename the LPC43xx up_spiinitialize() to lpc43_spibus_initialize() - (2016-01-26). - * SPI: Rename the AVR up_spiinitialize() to avr_spibus_initialize(), - Rename the LPC2148 up_spiinitialize() to lpc214x_spibus_initialize(), - Rename the Calypso up_spiinitialize() to calypso_spibus_initialize(), - Rename the eZ80 up_spiinitialize() to ez80_spibus_initialize(), - Rename the STR71xx up_spiinitialize() to str71_spibus_initialize(), - Rename the i.MX1 up_spiinitialize() to imx_spibus_initialize(), - Rename the LPC2378 up_spiinitialize() to lpc23_spibus_initialize(), - Rename the M9S12 up_spiinitialize() to hcs12_spibus_initialize(), - Rename the x86 up_spiinitialize() to i486_spibus_initialize(), - Rename the z16f up_spiinitialize() to z16_spibus_initialize(). - up_spiinitialize() has been completely eliminated. (2016-01-27). - * fs/vfs/fs_poll.c: Fix handling of sem_tickwait() return value - sem_tickwait() does not return an -1+errno, it returns a negated - errno value. Noted by Freddie Chopin. - -7.15 2016-03-27 Gregory Nutt - - * drivers/analog/ads1242.c and include/nuttx/analog/ads1242.h: Driver - for the 24-Bit Differential Input ADC ADS1242 that communicates via - SPI with a MCU. Reading the ADC conversion result as well as configuring - the ADC, setting the input channel, etc. is implemented via ioctl calls. - However, it does not yet implement the standard ADC interface. From - Alexander Entinger (2016-01-29) - * configs/board/src/xyz_cxxinitialize.c: Move C++ initialization logic - out of the RTOS and into the application space, specifically to - apps/platform/board, where it belongs (2016-01-29). - * drivers/modem/u-blox.c and include/nuttx/drivers/u-blox.h: Add an upper - half driver for the U-Blox Modem. From Vladimir Komendantskiy - (2016-01-30). - * arch/arm/src/lpc17xx: Backport lpc43xx I2C driver, replacing the - lpc17xx I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). - * arch/arm/src/lpc11xx: Backport the lpc17xx I2C driver, replacing the - lpc11xx I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). - * arch/arm/src/lpc2378: Backo the Lpc17xx I2C driver, replacing the - lpc2378 I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). - * configs/u-blox-c027: Support for the u-blox GSM and GPS module evaluation - board with NXP LPCExpresso LPC1768. The GSM module is one of LISA-C200, - LISA-U200 or SARA-G350. The GPS module is one of MAX-M7 or MAX-M8. From - Vladimir Komendantskiy (2016-01-31). - * drivers/, arch/, include/, numerous files: Restructuring of the I2C - interface necessary to eliminate some thread-safety issues inherent in - the legacy I2C interface design. This effects the interface definition, - all I2C clients, and all low-level I2C drivers. I have used caution, - but I still expect a change of this magnitude to introduce some errors. - Any bug reports of bug fixes will be much appreciated (2016-02-01). - * drivers/i2c/i2c_driver.c: Add an I2C character drivers to support - raw I2C data transfers for test applications (2016-02-02). - * I2C_RESET: Eliminate up_i2creset(). It should not be a global function; - Now it is an I2C interface method (2016-02-02). - * I2C: Rename up_i2cinitialize and up_i2cuninitilize to follow the correct - naming convention. These are not common interfaces used by the OS; - these are MCU-specific interfaces used only be MCU-specific code. The - the correct naming is xyz_i2cbus_initialize and xzy_i2cbus_uninitialize - where xzy is the MCU mnemonic (2016-02-02). - * Networking drivers that support CONFIG_NET_NOINTS: Fix a race condition - that can cause the TX poll timer to stop running. From Manuel Stuhn - (2016-02-03). - * All Network drivers: Remove the hsec parameter from devif_timer(). - We can get better timing accuracy without it (2016-02-03). - * drivers/ioexpander/pca555.c: Add logic to make the PCA555 driver - thread safe (2016-02-03). - * sched/init/os_start.c and include/nuttx/init.h: Add a state variable - that provides the current level of OS initialization. This is needed by - some logic that may attempt to run early in the start-up sequence but - cannot run if a sufficient level of initialization has not yet occurred - (2016-02-05). - * libc/syslog/lib_syslog.c: If syslog timestamping is enabled, don't try to - get the time if the timer hardware has not yet been initialized - (2016-02-05). - * fs/procfs/fs_procfskmm.c: Add /proc/kmm entry that shows that state of - the kernel heap. Only useful in PROTECTED and KERNEL build modes where - there is a kernel heap (2016-02-06). - * sched/ and arch/: Replace explicit access to the OS internal data structure - g_readytorun() with the wrapper this_task() which hides the implementation - and will permit such things as more scalable representations of task queues - and SMP (2016-02-06). - * include/nuttx/net/arp.h, include/nuttx/net/ioctl.h, net/netdev/netdev_ioctl.c, - and ARP-related files: Add support for IOCTL commands to manage the - ARP table (2016-02-08). - * ARMv7-A, ARMv7-R, and ARMv7-A: Add test-and-set logic and definitions - needed to supports spinlocks (2016-02-09). - * include/nuttx/spinlock.h: Add basic definitions for spinlocks. Not yet - used by NuttX (2016-02-09). - * include/nuttx/arch.h, sched/sched/sched.h: Add some basic definitions - that may be needed for SMP support (2016-02-10). - * sched/init/os_start.c, sched/init/os_smpstart.c, and include/nuttx/arch.h: - Add some tentative SMP start-up logic (2016-02-10). - * arch/arm/sim/up_head.c and up_simsmp.c: Add multi-CPU support to the - simulation to support SMP investigation.. Currently crashes when CONFIG_SMP - is enabled as expected (2016-02-10). - * sched/sched.h and other files: Replace the bool 'prioritized' in the task - list table with a uint8_t bit set so that additional attributes of a task - list can be provided without adding more booleans (2016-10-11). - * Everywhere: Replace irqsave() with enter_critical_section(); replace - irqrestore() with leave_critical_section(). This is part of the onging - development of SMP support (2016-02-13). - * Conform to naming convention: Rename irqsave() to up_irq_save(); rename - irqrestore() to up_irq_restore(). These should no longer be used. If - your code still uses them, please switch to enter_critical_section() - and leave_critical_section() (2016-02-14). - * Also rename irqdisable() and irqenable() to up_irq_disable() and - up_irq_enable() (2016-02-14). - * sched/signal and include/nuttx/sched.h: Move the list of signal - actions from the TCB to the group structure. Signal handlers are not - per thread but, rather, per task group. I know, I preferred it the - other way too, but this is more compliant with POSIX (2016-02-18). - * fs/ procfs/fs_procfsproc.c: Add support for showing CPU if SMP is - enabled (2016-02-19). - * include/pthread.h, sched.h, sys/types.h and other files: Rename - cpuset_t to cpu_set_t which is the type used in some non-standard - Linux/GNU interfaces. Move definitions of cpu_set_t to include/sys/types.h. - Add prototypes for sched_setaffinity(), sched_getaffinity(), - pthread_attr_setaffinity_np(), pthread_attr_getaffinity_np(), - pthread_setaffinity_np(), and pthread_getaffinity_np(). No implementation - is yet in place (2016-02-19). - * sched/sched_cpuselect.c, include/nuttx/sched.h, and other files. Add - a CPU affinity set to the TCB if SMP is enabled and use this CPU set as - a mask for determining which CPUs the thread may run on (2016-02-19). - * libc/pthread, sched/pthread/pthread_start.c, and include/pthread.h: - Add an affinity field to the attrributes to permit controlling - which CPUs a pthread may run on. Implements pthread_att_setaffinity_np() - and pthread_attr_getaffinity_np() (2016-02-19). - * sched/pthread: Add pthread_setaffinity() and pthread_getaffinity() - (2016-02-19). - * sched/sched: Add sched_setaffinity() and sched_getaffinity() (2016-02-19). - * drivers/leds/rgbled.c: Add a driver to manage a RGB LED via PWM. From - Alan Carvalho de Assis (2016-02-22). - * arch/arm/src/stm32f4discovery: Add PWM support for the onboard RGB LED - From Alan Carvalho de Assis (2016-02-22). - * arch/arm/src/samv7: HSMCI driver can now be configured to handle unaligned - data buffers (2016-02-22). - * fs/fat: Add an option to force all transfers to be performed indirectly - using the FAT file system's internal sector buffers (2016-02-22). - * drivers/wireless/ieee802154: New directory. Nothing there yet (2016-02-25). - * wireless/: New top level directory. Nothing there yet (2015-02-26). - * wireless/ieee802154: Add an new directory to the build. Nothing there - yet (2016-02-26). - * include/nuttx/wireless/ieee802154: Add directory (and dummy header file) - (2016-02-16). - * arch/arm/include and src: Rename the imx directories to imx1 to make room - in the namespace for other members of the i.MX family (2016-02-27). - * arch/arm/include/imx6 and src/imx6: Evolving support for the NXP/Freescale - i.MX6Q (2016-02-28). - * configs/sabre-6quad: Placeholder that will eventually become board support - for the NXP/Freescale Sabre 6Quad board (2016-02-28). - * arch/arm/src/stm32: Support for STM32F46xx from Paul Alexander Patience - * sched/semaphore/sem_reset.c and include/nuttx/semaphore.h: Add an internal, - non-standard interface to reset a semaphore count. This is sometimes - needed by drivers in order to recover from error conditions (2016-03-05) - * AT24xx driver: Correct missing address calculation logic. From Frank - Benkert (2016-03-08). - * arch/ renaming: current_regs renamed to g_current_regs in all - architectures. For ARM which is slowly developing SMP capability, - g_current_regs is now an array of dimension 1 in most case but of higher - dimension of the architecture supports multiple CPUs (2016-03-09). - * MTD: Increase block size in mtd_geometry_s to 32-bits (2016-03-09). - * include/nuttx/clock.h: Missing parenteses in MSEC2TICK macro can - cause wrong calculations. From Stefan Kolb (2016-03-09). - * Build system: Added a 'make olddefconfig' target that will refresh - a .config file without interaction. tools/refresh.sh now has a --silent - option so that it can be used in batch modes without human input - (2016-03-09). - * tools/testbuild.sh: .config files were not being updated because (a) - kconfig-conf was being called in the wrong directory and (b) apps/Kconfig - had not yet been created. Now uses 'make olddefconfig' (2016-03-09). - * arch/arm/src/stm32l4 and include/stm32l4: Add support for the STM32L4 - family. From Sebastien Lorquet (2016-03-10). - * configs/nucleo-l476: Add support for the Nucleo-L476 board. From - Sebastien Lorquet (2016-03-10). - * sched/tls and include/nuttx/tls.h: Basic definitions needed to support - thread local storage (TLS). Not used anywhere yet (and may not be used - in the near future either) (2016-03-10). - * sched/sched_note.c and include/nuttx/sched_note.c: Add a configuration - option to buffer RTOS instrumentation data in an in-memory buffer - (2016-03-17). - * drivers/syslog/note_driver.c: Add a character driver that will allow - an application to read buffered scheduler instrumentation data (2016-03-17). - * arch/arm/src/samv7/sam_usbdevhs.c: The USB driver has had some issue that - would occasionally cause loss of packets. Back last December, a fix was - put in for this but the fix apparently worsens the problem; now causing - hangs. The basic problem is that the number of busy banks (NBUSYBKS) - status is not real time but is delayed. This was fixed; now when the DMA - completes and NBUSYBKS > 0, the NBUSYBK is interrupt is enabled and the - operations are deferred until NBUSYBKS is truly zero (2016-03-17). - * net/tcp/tcp_timer.c: Fix some logic when there are multiple network - interfaces. In this case, TCP timeout events can really only being - processed when the poll from the correct device is received (2016-03-20). - * sched/wqueue/kwork_signal.c: Fix logic to find an IDLE worker thread; - the test for busy was backward. From Linfei Chen (2016-03-22). - * include/sys/boardctl.h, configs/boardctl.c, and many configurations: Add - boardctl() support that will permit applications to control USB devices - (2016-03-25). - * configs/stm32l476vg-disco: Add support for the STM32L476VG Discovery - board. From Dave (2016-03-25). - -7.16 2016-06-01 Gregory Nutt - - * PM: Add activity domain to all PM interfaces and driver callbacks. If - CONFIG_PM_NDOMAINS == 1, then the legacy behavior is preserved. If - CONFIG_PM_NDOMAINS > 1, then multiple PM domains are supported. This - will allow separate control for certain power management groups. For - example, a network can be shut down without affect an ongoing UI (and - vice versa) (2016-03-27). - * apps/configs/vsn: Removed the VSN configuration from the main NuttX - repository. The VSN can still be found in the Obsoleted repository - (along with a full explanation in the README file there) (2016-03-29). - * arch/arm/src/armv7-m and stm32: Add support for the IAR toolchain for - the limited case of the ARMv7-M architecture and the STM32 chip. From - Aleksandr Vyhovanec (2016-04-02). - * arch/arm/src/stm32/stm32f40xxx_rtc.c: Add a custom RTC driver. From - Neil Hancock (2016-04-02). - * include/nuttx/timer/rtc.h and drivers/timers/rtc.c: Simplify the RTC - interface. The old interface was way to complex and was not fully - implemented anywhere (2016-04-02). - * Moved NuttX repository to https://bitbucket.org/nuttx/nuttx (2016-04-06). - * arch/arm/src/armv7-m/iar: Convert more assembly language files for - use with the IAR toolchain. From Kha Vo (2016-04-08) - * Fix miscellaneous build issues for the IAR compiler. From Kha Vo - (2016-04-08). - * tools/ide_exporter.py: IDE exported Python script for use with the - IAR toolchain. From Kha Vo (2016-04-08). - * STM3220G-EVAL: Add support for both the IAR and uVision GCC IDEs - From Kha Vo (2016-04-08). - * STM32F429I Discovery: Add support for the uVision GCC IDE. From - Kha Vo (2016-04-08). - * libc/signal and include/signal.h: Rename sigset() to signal(). - sigset() is the System V function; signal() is the obsoleted POSIX - name. These seem to be equivalent. Neither are relevant in modern - POSIX programming but the name signal() probably has the better - credentials. sigset() is now relegated to a #define in signal.h that - makes it equivalent to signal() (2016-04-10). - * configs/nucleus2g: Removed the Nucleus2G configuration. There has - not been any activity with the commercial board in a few years and it - no longer appears to be available from the 2g-eng.com website. - Since the board is commercial and no longer publicly available, it - no longer qualifies for inclusion in the open source repositories. - The code as of this data is still available in the Obsoleted - repository at configs/nucleus2g (2016-04-12). - * arch/arm/src/stm32l4: Fix the STM32L4 SPI driver. That SPI driver is - quite different. They now handle frames of arbitrary size between 4 - and 16 bits. It was broken before a new bit has to be set (RX fifo - threshold) to handle <= 8-bit transactions. If not set, the default is - 16-bit packed >=8-bit frames and the RXNE bit is never set (it is set - when 16-bits are received). weird things as always. - This also add 8-bit access routines to the data register, because a - 16-bit access to the data register when the frame size is below 9 bits - is interpreted as a packed dual frame exchange. Sebastien Lorquet - (2016-04-13). - * net/sockets/listen.c and accept.c and include/nuttx/net: Separate - out psock_listen() and psock_accept() for internal OS usage - (2016-04-14). - * fs/inode/, fs/vfs/, and sched/task/: File and socket descriptors are - no longer allocated for kernel threads. They must use SYSLOG for - output and the low-level psock interfaces for network I/O. This - saves a little memory which might be important for small footprint - configurations (2015-04-14). - * Framebuffer driver: Add a display number to each interface in order - to support multiple display devices (2015-04-14). - * drivers/wireless/nrf24l01.c: Fix backward calculation of relative - frequency. Noted by Henry Zhang (2015-04-15). - * drivers/sensors/h1750fvi.c: Add a character driver for Rohm Ambient - Light Sensor BH1750FVI. From Alan Carvalho de Assis (2016-04-15). - * configs/stm32f4discovery: Integrate BH1750FVI driver in the - STM32F4Discovery board. From Alan Carvalho de Assis (2016-04-15). - * drivers/mtd: Add MTD support for Micron N25Qxxx family of QSPI flash. - From Dave dev@ziggurat29.com (2016-04-17). - * arch/arm/src/stm32l: Add a QSPI driver. From Dave dev@ziggurat29.com - (2016-04-18). - * configs/stm32l476vb-disco: Add support for QSPI based N25Qxxx flash. - From Dave dev@ziggurat29.com (2016-04-18). - * graphics/vnc: Add support for a VNC server. This logic is code - complete, but untested and so not ready for prime time (2016-04-18). - * configs/samv71-xult/vnc: Add a configuration that will be used to - verify VNC (also untested) (2016-04-18). - * drivers/ioexpander: Fix an error in the PCA9555 driver: Under certain - error conditions, interrupts were not being re-enabled. Sebastien - Lorquet (2016-04-20). - * arch/arm/src/stm32 and configs/stm32f429i-disco: Correct some bad - commits that broke the LTDC display example. From Marco Krahl - (2016-04-22). - * configs/samv71-xult/vncwwm: Add a more complex NxWM configuration - to support further VNC testing (particularly of VNC keyboard and - mouse inputs). Initial configuration is not functional (2016-04-23). - * arch/arm/src/stm32l4: Add support for QSPI DMA. From Dave - dev@ziggurat29.com (2016-04-24). - * configs/stm32l476vg-disco: Update stm32l4 disco board to reflect QSPI - DMA support. From Dave dev@ziggurat29.com (2016-04-24). - * arch/arm/src/stm32l4: Add configuration options to allow SRAM2 to be - used for heap, or not at all, and to zero-initialize it on OS start, - or not at all. From Dave dev@ziggurat29.com (2016-04-24). - * drivers/mtd/smart.c: Return code of smart_scan not checked, can - cause success result in failure case, leading to 'dev' pointer being - invalid. From Dave dev@ziggurat29.com (2016-04-27). - * arch/arm/src/stm32l4: Add support for QSPI memory mapped mode. From - Dave dev@ziggurat29.com (2016-04-27). - * configs/stm32l476vg-disco: Add board ioctls for allowing user - application to cause QSPI memory mapped mode to be engaged and - disengaged. Also partitioned QSPI flash for file system and other - (eventually xip). From Dave dev@ziggurat29.com (2016-04-27). - * fs/mount: Fix a backward debug assertion. Noted by David Sidrane - (2016-04-29). - * arch/arm/src/stm32l4: Add support for HSE and MSI clocks, and auto - trim of MSI to LSE (needed for USB). From Dave dev@ziggurat29.com - (2016-04-29). - * arch/arm/src/stm32l4: Add support for unique id function to arch; - modified board to support unique id boardctl. From Dave - dev@ziggurat29.com (2016-05-03). - * Makefile.unix and tools/mkexport.sh: Pass top-level make to the - script to allow -j greater than 1. From David Sidrane (2016-05-04). - * arch/arm/src/stm32, stm32f7, stm32l4: Fix typo in variable name in - serial BREAK logic. Review other serial implementations for similar - naming problems. (2016-05-05). - * arch/arm/src/samv7: Fix typo in MATRIX register definitions. From - Stefan Kolb (2016-05-06). - * arch/arm/src/stm32l4: Problem with resetting backup domain clears - clocking options set up before in *rcc.c use INITS flag to avoid magic - reg value to detect power up reset state of RTC correct a problem - clearing interrupt flags (they weren't) which prevented an alarm from - ever being used more than once per reset cycle. From Dave - dev@ziggurat29.com (2016-05-07). - * arch/arm/src/tiva: Fix a bug of GPIO falling-edge interrupt for tiva. - From Young (2016-05-07). - * drivrs/mtd: Add a driver for SST26F spi/qspi flash devices (SPI mode - only). From Sebastien Lorquet (2016-05-10). - * Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' - message weirdness when 'make clean' is done with no .config or Make.defs - file (2016-05-10). - * include/nuttx/can.h and drivers/can.c: Improve CAN error reporting. - From Frank Benkert (2016-05-11). - * fs/Kconfig: Allow CONFIG_FS_WRITABLE to be manually selectable - (2016-05-11). - * Various file: Search for places where a stray semicolon following an - if condition cause the if body to be executed unconditionally. Fixes - in all SAM DMA logic, unionfs, OS signalling logic, - * configs/nucleo-144: Basic port for the Nucleo-144 board with the - STM32F746ZG MCU. From Kconstantin Berezenko (2015-05-12). - * arch/arm-src/armv7-a: Complete re-design of logic to initialize each - CPUn, n > 0, when CONFIG_SMP=y (2016-05-13). - * arch/arm/src/imx6 and configs/sabre-6quad: The basic i.MX6 port is - complete. This is a very minimal port at present and probably still - has some as-of-yet-undiscovered issues (2016-05-17). - * arch/*/Makefile: Add definitions that can be overrided to use GCC - instead of LD in the final link. From Paul Alexander Patience - (2016-05-18) . - * arch/arm/src/stm32, stm32l4, and stm32f7 serial: Add support for - compliant BSD-style breaks. From David Sidrane (2016-05-18). - * enter/leave_critical_section() may attempt to access task lists before - they have been initialized in the SMP configuration (2016-05-18). - * configs/stm32f103-minimum: Add support for this minimual STM32F103CBT6 - "blue" board. From Alan Carvalho de Assis (2016-05-18). - * arch/arm/src/sam* Watchdogs: Rename up_wdginitialize() to something - more appropriate for an internal, MCU-specific function (2016-05-18). - * configs/*/src/*_watchdog.c: Remove all implementations of - up_wdginitialize() which was only used by apps/examples/watchdog. - That internal OS function is no longer called from application code. - If you want to use the watchdog example, you will need to configure - the watchdog driver by calling the appropriate, MCU-specific driver - configuration function from your board initialization logic - (2016-05-18). - * arch/srm/src/stm32l4: Add CAN support for STM32L4. From Sebastien - Lorquet (2016-05-19). - * arch/arm/src/samv7: Adds a JTAG config and ERASE config to Kconfig to - set the CCFG_SYSIO SYSIO Pins. From David Sidrane (2016-05-19). - * arch/sim/src: Enhance networking support for the simulation under Linux. - Includes updated support for Linux TUN/TAP, and the addition of support - for Linux bridge devices. From Steve (2016-05-20). - * configs/stm32f411e-disco: Add basic configuration for stm32f411e-disco - board with STM32F411VE chip. From Konstantin Berezenko (2016-05-20). - * i.MX6 Sabre-6Quad: Basic SMP NSH configuration is now working. But - this is probably only because the SMP NSH case does not stress the - logic. There are know outstanding SMP issues as noted in the - Sabre-6Quad README.txt file (2016-05-22). - * configs/sabre-6quad: Add an SMP configuration; Enable procfs in all - configurations (2016-05-22). - * include/nuttx/crypto/aes.h: Modifications to the crypto API needed - for LPC43xx. From Alexander Vasiljev (2016-05-23). - * arch/arm/src/lpc43xx: Add AES support. From Alexander Vasiljev - (2016-05-24). - * configs/*/src/tiva_timer.c: Tiva boards: Fix a naming collision, - rename board-specific function from tiva_timer_initialize() to - tiva_timer_configure() to remove conflict (2016-05-23). - * arch/arm/src/sam*: Ensure that the TWIHS (i2c) hw gets its clock - set when the sequence of sam_i2cbus_initialize(), - sam_i2cbus_uninitialize(), then sam_i2cbus_initialize() or twi_reset() - is called. I found this a while back in the stm32 family, so there - may be more arch-es with this sort of bug. I suppose any driver that - has the notion of "do not set the freq if it is already set" could be - suspect. From David Sidrane (2016-05-23). - * arch/arm/src/samv7: Add the up_systemreset interface to the samv7 - arch. The approach is slightly different in that: 1) It enables - ARCH_HAVE_RESET and allows the user to set if, and for how long, to - drive External nRST signal. It also does not contain a default - board_reset, as that really should be done in the config's src if - CONFIG_BOARDCTL_RESET is defined. From David Sidrane (2016-05-23). - * arch/arm/include/lpc43xx and src/lpc43xx: Adds definitions for the - LPC4337jet100 chip. From Alexander Vasiljev (2016-05-24). - * Many files: board_app_initialize() now accepts an argument that may - be used to support initialization in different configurations - (2016-05-24). - * arch/arm/src/samv7: Remove disabling of whole USB on suspend of USBHS. - This fix removes the disabling of the whole USB peripheral on suspend - interrupt. Its enough to freeze the clock instead. When disabling the - whole peripheral, the next wakeup-interrupt comes up with an disabled - clocking. The unfreeze clock has no effect, because the master clock - is disabled. This makes all registers, including the IDR unwriteable - and the IRQ falls in an endless loop blocking the whole system. - Furthermore the disabling of the peripheral clock prevents hotplugging - or reconnecting the USB. From Frank Benkert (2015-05-25). - * drivers/lcd: Add support for PCF8574 LCD Backpack driver. This driver - supports an interface board that is based on the PCF8574 io expander - and supports the HD44780-based (or compatible) LCD modules. There - are a myriad of different vendors of such, but they are principally - the same, save wiring and minor features like jumpers for I2C - addresses. This driver supports known and unknown variants. From - Dave (ziggurat29, 2013-6-26). - * arch/arm/stm32: Add support for a custom 1-wire driver. The serial - driver already supports a 1-wire interface, but this driver uses the - same serial logic to implement a lower half driver much like the I2C - lower half driver. From Aleksandr Vyhovanec (2015-05-25). - * fs/: Add logic to detach a file structure from a file descriptor. - This is for use only within the OS. It permits an open file or driver - to be used across multiple threads (2016-05-26). - * arch/arm/src/stm32l4: Get I2C working for STM32L4. From Dave - (ziggurat29) (2016-05-25). - * fs/ and include/nuttx/fs: Add logic to detach a file structure from a - file descriptor. This is for use only within the OS. It permits an - open file or driver to be used across multiple threads. (2016-05-26). - * drivers/analog/adc.c, include/nuttx/analog/adc.h, and all ADC lower - half drivers: No longer uses global adc_receive() call. Added a new - bind() method to the ADC interface. Now the ADC upper half driver - will register its receipt-of-data callback. This change allows the - ADC lower half driver to be used with a differ ADC upper half - (2016-05-26). - * drivers/analog/ads1255.c: Must not do SPI access from interrupt - handler. Use the worker thread instead. Must also lock the SPI bus - before using it. (2015-05-26). - * drivers/: Several SPI-based drivers modified. All drivers that use - SPI must call SPI_LOCK and SPI_UNLOCK. This is not optional - (2016-05-26). - * drivers/sensors: Fix a bug in crc computation for ms583730. - Implement POSIX read (2016-05-27). - * arch/arm/src/samv7: This is a fix to a problem in the handling of the - oneshot timer. Due to a wrong assumption concerning the behavior - directly after the start of the timer/counter the function - sam_oneshot_cancel(…) calculates the wrong remaining time. The code - assumes that the counter register is zero directly after the start of - the timer, but this is not true. To start the time/counter a software - trigger is invoked, this trigger starts the timer/count and sets the - counter register to zero, but the reset of the counter register is not - performed instantly. According to the datasheet: "The counter can be - reset by a trigger. In this case, the counter value passes to zero on - the next valid edge of the selected clock." Thus the counter is set to - zero between 0 and USEC_PER_TICK microseconds after the clock was - started. - In my fix I use the freerun count value to determine if at least one - tick passed since the start of the timer and thus if the value of the - oneshot counter is correct. I also tried to use the function - up_timer_gettime(…) to achieve this but, at least if compiled with no - optimization the problem vanishes without using the value of the - function, the function call takes too long. - Another problem treated in the fix is that if the oneshot timer/counter - is canceled, we only know the remaining time with a precision of - USEC_PER_TICK microseconds. This means the calculated remaining time - is between 0 and USEC_PER_TICK microseconds too long. To fix this I - subtract one tick if the calculated remaining time is greater than one - tick and otherwise set the remaining time to zero. By doing so the - measured times are much more precise as without it. From Stefan Kolb - (2016-05-27). - * arch/arm/src/sama5: Stefan Kolb's change to the SAMV7 Oneshot Timer - should also be applied to the SAMA5 oneshot time since the drivers are - identical (2016-05-27). - * arch/arm/src/stm32l4: Add support for SPI 4 and 5 on stm32f411 chips. - From Konstantin Berezenko (2016-05-27). - * arch/arm/src/sam34: Stefan Kolb's change to the SAMV7 Oneshot Timer - should also be applied to the SAM3/4 oneshot time since the drivers - are identical (2016-05-29). - * arch/arm/src/stm32: Allow to not use all channel in a lower part of - PWM. From Pierre-noel Bouteville (2016-05-30). - * libc/math: Add a NAN test on 'x' in asin function of lib_asin.c. - Suggested by Pierre-noel Bouteville (2016-05-31). - * arch/arm/src/stm32: Fix logic in F4 RTCC driver that prevent ALARM - interrupt. From Neil Hancock (2016-05-31). - * arch/arm/src/stm32: Fix STM32 ValueLine ADC IRQ number selection. - From David Sidrane (2016-05-31). - * arch/arm/src/samv7: Fix missing unlock of device in MCAN - mcan_txempty(). From Frank Benkert (2016-06-01). - -7.17 2016-07-25 Gregory Nutt - - * drivers/mtd/flash_eraseall.c: Removed. This is no longer used - in the OS and is simply a wrapper around the MDIOC_BULKERASE - IOCTL command. It used to be called (only) from - apps/system/flash_eraseall, but that has been removed because it - violated the OS/application interface -- by calling flash_eraseall(). - The old code can be found in the Obsoleted' repository (and a revised - version can be found at apps/fsutils/flash_eraseall) (2016-06-03). - * arch/arm/src/stm32: STM32 Timer Driver: Change calculation of per- - timer pre-scaler value. Add support for all timers (2016-6-03) - * drivers/lcd: Correct conditional compilation in ST7565 driver. From - Pierre-noel Bouteville (2016-6-03) - * arch/arm/src/stm32: Correct conditional compilation in STM32 timer - capture logic. From Pierre-noel Bouteville (2016-6-03) - * arch/arm/src/efm32: Fix EFM32 FLASH conditional compilation. From - Pierre-noel Bouteville (2016-6-03) - * arch/arm/src/lpc43xx: Fix errors in GPIO interrupt logic. From v01d - (phreakuencies) (2016-06-04) - * arch/arm/src/kl and lpc11xx: rename xyz_lowputc to up_putc. Remove - all references to up_lowputc, everywhere (2016-06-04). - * configs/stm32f103-minimum: Add minnsh configuration. From Alan - Carvalho de Assis (2016-06-04). - * arch/arm/src/stm32: Add the up_getc() function to STM32 in order to - support the minnsh configuration. From Alan Carvalho de Assis - (2016-06-04). - * include/sys/boardctl.h: Needs to be usable with C++ files (2016-06-05). - * tools/tesbuild.sh will now build NxWM configurations (2016-06-05). - * arch/arm/src/stm32: In PWM driver, just update duty if frequency is - not changed and PSM started. This removeis glitch or blinking when - only duty is frequently changed. From Pierre-noel Bouteville (2016-06-05). - * arch/arm/src/kinetis: Add a USB device controller driver. Derived from - the pic32mx usb driver, which uses the same usb controller. From kfazz - (2016-06). - * configs/teensy-3.x: Add USB support and a usbnsh configuration. From - kfazz (2016-06). - * arch/arm/src/stm32: Add support for the STM32F105R. From Konstantin - Berezenko (2016-06-06). - * include/signal.h: Change type of SIG_ERR, SIG_IGN, ... to - _sa_handler_t. The type void does not work with the IAR toolchain. - From Aleksandr Vyhovanec (2016-06-07). - * configs/nucleo-144: Refactored configs/nucleo-144 sub-directories to - support additional nucleo-144 board. Add support for the Nucleo-F767ZI - board. From David Sidrane (2016-06-07). - * arch/arm/src/stm32f7 and include/stm32f7: Added STM32F76xxx and - STM32F77xx families. From David Sidrane (2016-06-08). - * Refactoring configs/nucleo-144 sub-directories to support additional - nucleo-144 board. Add support for the Nucleo-F767ZI board. From David - Sidrane (2016-06-08). - * include/assert.h: Check if NDEBUG is defined. From Paul Alexander - Patience (2016-06-08). - * arch/arm/src/stm32: Fix STM32 DMA code and configuration for STM32F37X - chips. From Marten Svanfeldt (2016-06-08). - * drivers/mtd: Add a driver of IS25xP SPI flash devices. From Marten - Svanfeldt (2016-06-09). - * arch/arm/src/Kconfig and configs/teensy-3.x: Teensy clock fixes. The - High Gain bit in MCG_C1 was preventing teensy from booting except - after a programming session. The second change doesn't appear to - change any functionality, but complies with restrictions in the k20 - family reference manual on FEI -> FBE clock transiions. From kfazz - (2016-06-09). - * configs/*/include/board.h: Fix timer input clock definitions. From - David Sidrane (2016-06-09). - * Networking: In both IPv6 and IPv4 incoming logic: (1) Should check - if the packet size is large enough before trying to access the packet - length in the IP header. (2) In the comparison between the IP length - and the full packet length, need to subtract the size of the link - layer header before making the comparison or we will get false - positives (i.e., the packet is really too small) (2016-06-09) - * configs/: All configurations that have both CONFIG_NSH_LIBRARY=y and - CONFIG_NET=y must now also have CONFIG_NSH_NETINIT=y (2016-06-09). - * arch/arm/src/kinetis: Kinetis pwm support, based on kl_pwm driver. - From kfazz (2016-06-09). - * arch/srm/src/stm32: Fix compilation errors in debug mode of - 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/: 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). - * arch/arm/src/sam34: Fix some errors in AFEC header file. From - OrbitalFox (2016-06-10). - * arch/arm/include/stm32: Correct the can2 rx irq number for stm32f10xx - chips. From Konstantin Berezenko (2016-06-10). - * drivers/include/input: Button upper half driver: Add definitions - needed for compilation with the poll() interface is not disabled - (2016-06-11). - * Kconfig/, include/debug.h, and many other files: (1) Debug features - are now enabled separately from debug output. CONFIG_DEBUG is gone. - It is replaced with CONFIG_DEBUG_FEATURES. (2) The macros dbg() and - vdbg() have renamed as err() and info(), respectively. This also - applies to all of the variants as well, lldbg(), llvdbg(), XXdbg(), - XXvdbg(), XXlldbg(), and XXllvdbg(). (3) Add a new debug level, - warn() (and all variants vwarn(), llwarn(), etc.). (4) Debug - assertions can now be enabled separately from debug output. (5) You - can now enable subsystem/device driver debug output at different - output levels. For example, CONFIG_DEBUG_FS no longer enables file - system debug output. It enables general file system debug logic and - enables selection of CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN, - and CONFIG_DEBUG_FS_INFO (2016-06-12). - * strtoul() and strtoull(): Fix errno settings required by function - definition. Resolved Bitbucket Issue #1. From Sebastien Lorquet - (2016-06-13) - * arch/arm/src/stm32f7: Add SPI driver. DMA not yet supported. From - David Sidrane (2016-06-14). - * configs/nucleo-144: Add test for STM32 F7 SPI. From David Sidrane - (2016-06-14). - * alert(): New debug macro: alert(). This is high priority, - unconditional output and is used to simplify and stanardize crash - error reporting(2016-06-14). - * arch/arm/src/tiva: Bug Fix in tiva_serial.c - UART5, UART6 and UART7 - were not being configured as TTYS0 for printing over serial console. - From Shirshak Sengupta (2016-06-14). - * SAMV7: SPI: SPI-Freq. 40MHz; VARSELECT; hw-features - This change adds the following improvements: - - Increase the allowed SPI-Frequency from 20 to 40 MHz. - - Correct and rename the "VARSELECT" option - This option was included in the code as "CONFIG_SPI_VARSELECT" but - nowhere defined in a Kconfig file. The change renames it to - "CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation - according the datasheet of Atmel. In short, this option switches - the processor from "fixed peripheral selection" (single device) to - "variable peripheral selection" (multiple devices on the bus). - - Add a new Function to the interface to control the timing and delays - of the chip according the ChipSelect lines. This function can - control the delay between the assertion of the ChipSelect and the - first bit, between the last bit and the de-assertion of the - ChipSelect and between two ChipSelects. This is needed to tune the - transfer according the specification of the connected devices. - - Add three "hw-features" for the SAMV7, which controls the behavior - of the ChipSelect: - - force CS inactive after transfer: this forces a (short) - de-assertion of the CS after a transfer, even if more data is - available in time - - force CS active after transfer: this forces the CS to stay active - after a transfer, even if the chip runs out of data. - Btw.: this is a prerequisite to make the LASTXFER bit working at all. - - escape LASTXFER: this suppresses the LASTXFER bit at the end of the - next transfer. The "escape"-Flag is reset automatically. - From Frank Benkert (2016-06-14) - * Many CONFIG_DEBUG_* options did not have matching macros defined in - include/debug.h. Rather, there were various definitions scattered - throughout the sourse tree. These were collected together and - centralized with single macro definitions in include/debug.h - (2016-06-15) - * STM32F7: Add SPI, I2C, and ADC drivers. From Lok Tep (2016-06-15). - * err(), warn(), info(), and alert() renamed to include leading '_'. - This was done to avoid some naming collisions (2-06-16 - * STM32: Move backup domain reset to earlier in the initialization - sequence (stm32_rcc.c() in order to avoid disabling LSE during RTC - initialization. From Alan Carvalho de Assis (2016-06-16). - * SYSLOG: syslog() will now automatically redirect output to lowsyslog() - if called from an interrupt handler (2016-06-16). - * STM32: When configuring a GPIO via stm32_configgpio() the function - will first set the mode to output and then set the initial state of - the gpio later on. If you have an application with an externaly - pulled-up pin, this would lead to a glitch on the line that may be - dangerous in some applications (e.G. Reset Line for other chips, - etc). This changes sets the output state before configuring the pin - as an output. From Pascal Speck (2016-06-17). - * STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4 - (2016-06-17). - * STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4. - From Sebastien Lorquet (2016-06-17). - * Review all uses of *err(). These macro family should indicate only - error conditions. Convert *err() to either *info() or add ERROR:, - depending on if an error is reported (2016-06-17). - * STM32F7: Review, correct, and update I2C, SPI, and ADC drivers. From - David Sidrane (2016-06-17). - * LPC17 Ethernet: Needs to correctly ignore PHYID2 revision number - when comparing PHY IDs (2016-06-18). - * SYSLOG: Consolidate all SYSLOG logic in drivers/syslog. Add an - abstraction layer that supports: (1) redirection of SYSLOG outpout. - This is usually so that you can boot with one SYSLOG output but - transition to another SYSLOG output when the OS has initialialized, - (2) adds common serialization of interrupt output as a configuration - option. Without this configuration setting, interrupt level output - will be asynchronous. And (3) vsyslog is now a system call and is - usable with other-than-FLAT builds (2016-06-19). - * TCP Networking: While working with version 7.10 I discovered a - problem in TCP stack that could be observed on high network load. - Generally speaking, the problem is that RST flag is set in - unnecessary case, in which between loss of some TCP packet and its - proper retransmission, another packets had been successfully sent. - The scenario is as follows: NuttX did not receive ACK for some - sent packet, so it has been probably lost somewhere. But before - its retransmission starts, NuttX is correctly issuing next TCP - packets, with sequence numbers increasing properly. When the - retransmission of previously lost packet finally succeeds, tcp_input - receives the accumulated ACK value, which acknowledges also the - packets sent in the meantime (i.e. between unsuccessful sending of - lost packet and its proper retransmission). However, variable unackseq - is still set to conn->isn + conn->sent, which is truth only if no - further packets transmission occurred in the meantime. Because of - incorrect (in such specific case) unackseq value, few lines further - condition if (ackseq <= unackseq)is not met, and, as a result, we - are going to reset label. From Jakub Łągwa (2016-06-20). - * SYSLOG: Remove lowsyslog(), vlowsyslog(), and associated macros - *llinfo(), *llwarn(), and llerr(). In the redesigned syslog() logic, - these serve no purpose (2016-06-20). - * Make system: Need to build the drivers/ directory even it file - descriptors are not supported. There are things in the drivers/ - directory that are still needed (like SYSLOG logic) (2016-06-20). - * assert.h: Define static assert for C++ usage. From Paul Alexander - Patience (2016-06-21). - * arch/arm/src/stm32l4: Add ioctls to set/get bit timing in stm32l4. - Add ioctl hooks to allow future management of can id filters. From - Sebastien Lorquet (2016-06-21). - * drivers/can.c: Add support for poll. From Paul Alexander Patience - (2016-06-21). - * drivers/syslog: Extend SYSLOG logic so that we can send SYSLOG output - to a file. Not verified on initial commit (2016-06-21). - * arch/arm/src/stm32l4: Add some CAN mode IOCTL calls. These will be - useful for device autotest when the application boots. They are - redundant with the CONFIG_CAN_LOOPBACK option, which can now just be - interpreted as a default setting. From Sebastien Lorquet (2016-06-22). - * drivers/syslog: syslog_dev_flush() needs to check if the inode is a - mountpoint before calling the flush() method. Noted by David Sidrane - (2016-06-22). - * arch/arm/src/stm32f7: Adds SDMMC1 for stm32F7 74-75. From Lok Tep - (2016-06-22). - * drivers/syslog: SYSLOG character device channel will now expand LF to - CR-LF. Controllable with a configuration option (2016-06-22). - * arch/arm/src/stm32l4: Implementation of loopback IOCTLs. From - Sebastien Lorquet (2016-06-22). - * Documentation: Add SYSLOG documentation to the porting guide - (2016-06-22). - * configs/stm32f746g-disco: Removed knsh configuration it failed to - refresh (via tools/refresh.sh). I assume that it is a hand-edited - configuration and, hence, must be removed from the repository - (2016-06-23). - * arch/arm/arc/sam34: DAC bugfix: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY. - Timer bugfix: Fix ops check in TCIOC_STOP. From Wolfgang Reissnegge - (2016-06-23). - * configs/nucleo-144: Added SDMMC support to Nucleo-144. From David - Sidrane (2016-06-23). - * arch/arm/src/stm32: Port STM32L4 CAN IOCTLs to STM32. From Sebastien - Lorquet (2016-06-24). - * drivers/ioexpander: Add support for a very simple GPIO driver. It - supports only pre-conrigured input and output pins and only basic - input and output operations (2016-06-24). - * arch/arm/src/lpc43xx: Correct auto-negotiation mode in the LPC43xx - Ethernet. From Alexander Vasiljev (2016-06-24) - * arch/arm/src/samv7: TWIHS Driver improved and GPIO-Driver fixed for - Open-Drain Pins - - sam_gpioread: Now the actual line level from the pin is read back. - This is extremely important for Open-Drain Pins, which can be used - bidirectionally - - Re-Implemented twi_reset-function and enhanced it so it can be - called from inside the driver (see next point) - - Glitch-Filter: Added a configuration option to enable the twi-built- - in glitch filter - - Added a "Single Master Mode": In EMC Testing the TWI-Bus got stuck - because the TWI-Master detected a Multi-Master access (but there is - no second master). With the option "Single Master" we detect these - events and automatically trigger a twi_reset. We also do an - automatic recovery if a slave got stuck (SDA stays low). - With the above changes I²C-Bus reliability in harsh environments (eg. - EMC) is greatly improved. The small change in the GPIO-Driver was - necessary because otherwise you cannot read back the correct line - status of Open-Drain Outputs and this is needed by the twi_reset - function. From Michael Spahlinger (2016-06-24) - * arch/arm/src/stm32f7: BUGFIX:PLLs IS2 and SAI P Calculation. From - David Sidrane (2016-06-24). - * arch/arm/src/stm32f7: USB support. From Lok Tep (2016-06-27). - * configs/olimex-stm32-e407: Add support for Olimex STM32 E407 - board. From Mateusz Szafoni (2016-06-27). - * drivers/ioexpander: Shadow-Mode: The output- and configuration - registers of the IO-Expander are held in the microcontrollers memory - and only written to the IO-Expander. This reduces bus traffic and - is more error-proof than the normal read-modify-write operation. Retry - Mode: If enabled and an error occurs while writing to the IO-Expander - the current transmission is automatically repeated once. From Michael - Spahlinger (2016-06-27). - * libc/hex2bin: Move the portable library portion of apps/system/hex2bin - to nuttx/libc/hex2bin where it can be shared with the OS internals - (2016-06-27). - * configs/nucleo-144: Added USB OTG device to Nucleo-144. From David - Sidrane (2016-06-27). - * arch/arm/src/stm32l4: STM32 CAN fixes need to be backported to - STM32L4 as well (2016-06-27). - * ARM stack check: Fix double fault on IDLE task with stack size = 0. - From David Sidrane (2016-06-27). - * configs/nucleo-144: Added bbsram test to Nucleo-144. From David - Sidrane (2016-06-27). - * arch/arm/src/stm32f7: Added PWR, RTC, and BBSRAM support for stm32f7. - From David Sidrane (2016-06-27). - * Build system: Fixed build of SAMV71-XULT/nsh. With the changes from - 26f7b8c the build process of the default configuration did not succeed - anymore. From Michael Spahlinger (2016-06-28). - * sched/semaphore: Need to set errno to EINVAL on errors in sem_post() - and sem_wait(). From Paul Alexander Patience (2016-06-28). - * Build system: This change fixes a build problem that only occurs when - reconfiguring from Linux to Windows or vice-versa. It is a problem - that was present but not usually experienced until two things happened: - (1) The pre_config target was added to run before the menconfig - operation and (2) the context target was added before the pre_config - target in order to set up the correct symbolic links (in the apps/platform - directory) needed by the pre_config target. - But then now if you start with a Linux system and run 'make menuconfig' - to switch to Linux, the context target will execute first and set up - POSIX style symbolic links before doing the menuconfig. Then after the - menuconfig, the make will fail on Windows if you are using a Windows - native toolchain because that native toolchain cannot follow the Cygwin- - style symbolic links. - The fix here is to also execute the clean_context AFTER executing - menuconfig. A lot more happens now: It used to be that doing 'make - menuconfig' only did the menuconfig operation. Now it does context, - pre_config, menuconfig, clean_context. Not nearly as snappy as it used - to be (2016-06-28). - * arch/arm/src/efm32, lcp43, stm32, stm32l4: disable interrupts with - NVIC_IRQ_CLEAR. From Paul Alexander Patience (2016-06-28). - * arch/arm/src/stm32f7: STMF7xxx RTC: (1) Remove proxy #defines, (2) - Ensure the LSE(ON) etal are set and remembered in a) A cold start - (RTC_MAGIC invalid) of the RTC, and b) A warm start (RTC_MAGIC valid) - of the RTC but a clock change. The change was needed because in bench - testing a merge of the latest's STM32 53ec3ca (and friends) it became - apparent that the sequence of operation is wrong in the reset of the - Backup Domain in the RCC code. PWR is required before the Backup - Domain can be futzed with. !!!This Code should be tested on STM32 and - if needed rippled to the STM32 families. From David Sidrane - (2016-06-28). - * arch/arm/src/stm32f7: Added STMF7xxx RTC. From David Sidrane - (2016-06-28). - * arch/arm/src/stm32: STM32 BBSRAM fixed (and formatted) flags. From - David Sidrane (2016-06-28). - * arch/arm/src/stm32f7: STM32F7 BBSRAM fixed (and formatted) flags. - From David Sidrane (2016-06-28). - * arch/arm/src/stm32f7: Added STM32F7 DBGMCU. From David Sidrane - (2016-06-28). - * arch/arm/src/samv7: SAMV7: CAN Message Filtering fixed: (1) stdfilters - didn't work because the filter was never enabled (wrong number of bits - to shift), and (2) Filters were never used because the configuration - register cannot be written without using the initialization mode. - Both bugs are fixed by this change. Filtering has been tested with - both standard and extended identifiers and is now working properly. - From Michael Spahlinger (2016-06-29). - * configs/Kconfig and dummy/: Add logic to support custom board - directories that include a Kconfig file. During the context phase - of the build, any Kconfig file in the custom board directory is copied - into configs/dummy, replacing the existing Kconfig file with the - target Kconfig file (2016-06-29). - * arch/arm/src/stm32l4: Port support for both RX FIFOs from STM32 CAN. - From Paul Alexander Patience (2016-06-29). - * Remove all inclusion of header files from the apps/include directory. - This caused a lot of reshuffling of logic: binfmt pcode support, - usbmonitor is now a kernel thread, TZ/Olson database moved to - libc/zoneinfo (2016-06-29). - * drivers/mtd: Several MTD FLASH drivers nullify the freed 'priv' - structure and failed to return NULL as stated in the comments. - Result, will operate on a NULL pointer later. Noted by David Sidrane - (2016-06-30). - * arch/arm/src/kinetis: Add basic support for the K64 family. I - leveraged the changes from https://github.com/jmacintyre/nuttx-k64f - and merged into the existing kinetis code with a lot of changes and - additions (like pin multiplexing definitions). (2016-07-01). - * configs/freedom-k64f: Add support for the NXP Freedom-K64F board. - This is primarily the work of Jordan Macintyre. I leveraged this - code from https://github.com/jmacintyre/nuttx-k64f but with - significant corrections (LEDs, buttons, README, etc) and extensions - and updates to match more recent BSPs (2016-07-01). - * libc/signal: Add raise() (2016-07-04). - * 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 - 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 - implementation). From Max Neklyudov (2016-07-06). - * drivers/usbdev: cdcacm_unbind leaks write request objects. This - arises due to freeing the bulk IN endpoint before the loop that - frees the requests via cdcasm_freereq. That function checks the - parameters and skips the freeing if either is NULL. Freeing the bulk - IN endpoint will cause the first param to be NULL, thereby bypassing - the free operation. To fix, I moved the release of the bulk IN - endpoint until after to loop (much as was the case for the OUT and - read requests, which did not exhibit the problem). From ziggurat29 - (2016-07-07). - * arch/arm/src/stm32l4: Update usb dev/host controller drivers to - reflect new(ish) logging standards; augment device endpoint and fifo - allocation #defines to do more sanity checking, and be automatically - adaptive to size changes. Update README.txt to reflect current status - of the implementation. From ziggurat29 (2016-07-07). - * arch/arm/src/stm32f7: Fixed STM32F7 DMA stm32_dmacapable. DMA working - on SDMMC. From David Sidrane (2016-07-07). - * configs/stm32f4discovery: add configuration files for canard. From - Matthias Renner (2016-07-08). - * drivers/pipe: Add missing configuration for pipe ring buffer size. - From Frank Benkert (2016-07-08). - * STM32L4: Fix incorrect clock setup for LPTIM1. From ziggurat29 - (2016-07-08). - * nucleo-l476rg and stm32lf76vg-disco: Define timer clock frequencies on - STM32L4-based boards. From ziggurat29 (2016-07-08). - * STM32L4: Add support for tickless OS, and incidentally timers, pwm, - oneshot, free-running.... From ziggurat29 (2016-07-08). - * SAM3/4 I2C: Fix reversed logic in twi_startmessage(). From Wolfgang - Reissnegger (2016-07-09). - * VFS ioctl(). Per comments from David Sidrane, file_ioctl() should not - return succeed if the ioctl method is not supported. It probably - should return ENOTTY in that case (2016-07-09). - * libm: This change should significantly improve the performance of - single precision floating point math library functions. The vast - majority of changes have to do with preventing the compiler from - needlessly promoting floats to doubles, performing the calculation - with doubles, only to demote the result to float. These changes only - affect the math lib functions that return float. From David Alessio - (2016-07-11). - * STM32F4 Discovery: Add FPU support for ostest for the STM32F4Discovery - platform. From David Alessio (2016-07-11). - * Build system: Remove the includes/apps link to apps/include. It is - no longer used. From Sebastien Lorquet (2016-07-11). - * printf(): If there are no streams, let printf() fall back to use - syslog() for output (2016-07-11). - * Qemu-i486: Fix qemu-i486/ostest/Make.defs test for M32. From Heath - Petersen (2016-07-12). - * UART 16550: Handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not enabled. - From Heath Petersen (2016-07-12). - * Kinetis Ethernet: Add support for the KSZ8081 PHY (2016-07-12). - * SST26 Driver: Before accessing the sst26 flash, the "Global Unlock" - command must me executed, which I do in the sst26 driver. BUT re- - reading the datasheet, the WREN instruction is required to enable the - execution of this command. This was not done. I have no idea how the - driver currently works except by chance. The writes should never - happen at all, the flash is half-enabled! From Sebastien Lorquet - (2016-07-12). - * Freedom K64F: Add a networking NSH configuration. (2016-07-12). - * N25Qxx Driver: Alter the notion of 'blocksize' to be equivalent to - 'flash write page size' in order to align with assumptions in the - smartfs driver (at least, maybe other things do as well). Correct a - bug that was previously masked by having blocksize=eraseblocksize - which would cause buffer overflows and delicious hardfaults. Trivial - spelling changes in comments, etc. From ziggurat29 (2016-07-12). - * STM32L476 Discovery: Update stm32l476 disco to include init code for - smartfs and nxffs for cases where those fs are included in build. - From ziggurat29 (2016-07-12). - * Kinetis Ethernet and Freedom-K64F: Freedcom-K64F PHY address was - wrong. Modified Ethernet driver to try all PHY addresses and then - only fail if the driver cannot find a usable PHY address. MDIO pin - must have an internal pull-up on the Freedom-K64F (2016-07-12). - * Kinetis Ethernet: Add support for CONFIG_NET_NOINTS (2016-07-12). - * SmartFS: Fix a 32-byte memory leak. From Ken Pettit (2016-07-12). - * Freedom-K64F: SDHC is now enabled in the nsh configuration (but does - not work)Add hooks for automounter; Change NSH configuration to use - Windows (2016-07-13). - * SAMV7 USBHS Device: This change solves a problem which causes data - loss while sending data via USB. This problem is caused by an incorrect - handling of the endpoint state in the USB driver sam_usbdevhs. This - leads under some circumstances to situations in which an DMA transfer - is setup while a previous DMA transfer is currently active. Amongst - other things I introduced the new endpoint state USBHS_EPSTATE_SENDING_DMA - for the fix. To reproduce the problem, I used a program which send as - many data as possible via a CDC/ACM device and verified the received - data on the PC. From Stefan Kolb (2016-07-13). - * STM32: Fix bug in oneshot timer. From Max Neklyudov (2016-07-13). - * STM32L4: Port forward bugfix from stm32 of oneshot timer. From - ziggurat29 (2016-07-13). - * STM32 and EFM32: I'm using syslog through ITM. In this case - syslog_channel function is call before RAM initialization in - stm32_clockconfig. But syslog channel uses a global variable that is - reset to default by the RAM initialization. From Pierre-noel - Bouteville (2016-07-14). - * LPC43xx SPIFI: If CONFIG_SPIFI_SECTOR512 undefined, lpc43_bwrite - doesn't do actual write (probably copy/paste errors). Still not sure - about current state of lpc43_spifi implementation, but for me NXFFS - works with this patch. From Vytautas Lukenskas (2016-07-14). - * SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256, - adds DEBUGASSERT for invalid geometry and additional memory debug - logic. Also fixes the dangling pointer on error bug. From Ken - Pettit (2016-07-14). - * arch/arm/src/lpc43xx: Extend LPC43xx EMC code to support SDRAM on a - dynamic memory interface. From Vytautas Lukenskas (2016-07-19). - * arch/sim/src: Add the simulated QSPI (N25Q) flash to the simulation - and modify sim up_spiflash.c to enable it to run with different MTD - drivers based on config options (currently m25p, sst26 and w25). - From Ken Pettit (2016-07-19). - * drivers/pipe: Add support to allocating different sizes for pipe and - fifo buffers. Adds mkfifo2() and pipe2() which are just like mkfifo() - and pipe(), but allow control of the size of the underlying, in-memory - circular buffer . Move pipe() and mkpipe() to nuttx/libc, they are no - longer core OS interfaces. Capability currently used only by PTY logic - to support, configurable, smaller buffers for PTYs (2016-07-19). - * include/nuttx/drivers: Move driver-related files from include/nuttx - to include/nuttx/drivers. Move driver related prototypes out of - include/nuttx/fs/fs.h and into new include/drivers/drivers.h - (2016-07-20). - * include /nuttx/lib: Move library-related files from include/nuttx to - include/nuttx/lib (2016-07-21). - * drivers/serial/serial.c: Fix a race condition noted by Stefan Kolb. - Between the test if the TX buffer is full and entering a critical - section, bytes may be removed from the TX buffer making the wait - unnecessary. The unnecessary wait is an inefficiency, but not really - a problem. But with USB CDC/ACM it can be a problem because the - entire TX buffer may be emptied when we lose the race. If that - happens that uart_putxmitchar() can hang waiting for data to be - removed from an empty TX buffer (2016-07-22). - * arch/arm/src/stm32 and stm32l4: STM32 F4/L4 RTC ALARM: were enabling - interrupts too early in the power-up sequence, BEFORE the interrupt - system was being initialized (2016-07-23). - * drivers/ioexpander: GPIO driver: Add support for receiving signals - from interrupt pins (2016-07-23). - * drivers/usbdev: USBMSC: Add locks when removing request from queue. - From Wolfgang Reissnegger (2016-07-23). - * drivers/usbdev: USBMSC: Fix reversed logic on waiting for SCSI thread - start. The scsi thread was waiting for the wrong condition. However, - this was masked by the fact that the code creating the scsi thread was - also holding usbmsc_scsi_lock(priv) while initializing data, hence - this lock synchronized the scsi thread start with init completion. - From Wolfgang Reissnegger (2016-07-23). - * arch/arm/src/sam34: SAM3/4 UDP: Fix handling of endpoint RX FIFO - banks. This fixes a race condition where the HW fills a FIFO bank - while the SW is busy, resulting in out of sequence USB packets - (2016-07-23). - * Freedom-K64F: Add PWM support. From Jordan MacIntyre (2016-07-25). - -7.18 2016-10-08 Gregory Nutt - - * drivers/serial/pty.c, serial.c, usbdev/cdcacm.c, include/nuttx/fs/ioctl.h: - Fix FIONWRITE and add FIONSPACE. All implementations of FIONWRITE - were wrong. FIONWRITE should return the number of bytes waiting in - the outgoing send queue, not the free space. Rather, FIONSPACE should - return the free space in the send queue (2016-07-25). - * lib_dumpbuffer: Now prints a large on-stack buffer first to avoid - problems when the syslog output is prefixed with time. From Pierre- - noel Bouteville (2016-07-27). - * sched/clock and sched/sched: Add standard adjtime() interface and - basic timekeeping support. Normally used with an NTP client to keep - system time in synchronizationi. From Max Neklyudov (Merged on - 20160-07-28). - * arch/arm/src/stm32: Add timekeeping support for the STM32 tickless - mode. From Max Neklyudov (Merged on 20160-07-28). - * Top-Level Makefiles. Fix a chicken-and-egg problem. In the menuconfig - target, the context dependency was executed before kconfig-mconf. - That was necessary because the link at apps/platform/board needed to - be set up before creating the apps/Kconfig file. Otherwise, the - platform Kconfig files would not be included. But this introduces - the chicken-and-egg problem in some configurations. - In particular: (1) An NX graphics configuration is used that requires - auto-generation of source files using cpp, (2) the configuration is - set for Linux, but (3) we are running under Cygwin with (4) a Windows - native toolchain. In this case, POSIX-style symbolic links are set - up but the Windows native toolchain cannot follow them. - The reason we are running 'make menuconfig' is to change from Linux - to Cygwin, but the target fails. During the context phase, NX runs - CPP to generate source files but that fails because the Windows native - toolchain cannot follow the links. Checkmate. - This was fixed by changing all of the make menuconfig (and related) - targets. They no longer depend on context being run. Instead, they - depend only on the dirlinks target. The dirlinks target only sets - up the directory links but does not try to run all of the context - setup; the compiler is never invoked; no code is autogeneraed; and - things work (2016-07-28). - * tools/refresh.sh: Recent complexities added to apps/ means that - configuration needs correct Make.defs file in place in order to - configure properly (2016-07-28). - * tools/kconfig2html.c: Update to handle absolute paths when sourcing - Kconfig files (2016-07-29). - * libc/math: This fixes the following libc/math issues: (1) asin[f l]() - use Newton’s method to converge on a solution. But Newton’s method - converges very slowly (> 500,000 iterations) for values of x close - to 1.0; and, in the case of asinl(), sometimes fails to converge - (loops forever). The attached patch uses an trig identity for - values of x > sqrt(2). The resultant functions converge in no more - than 5 iterations, 6 for asinl(). (2) The NuttX erf[f l]() functions - are based on Chebyshev fitting to a good guess. The problem there’s a - bug in the implementation that causes the functions to blow up with x - near -3.0. This patch fixes that problem. It should be noted that - this method returns the error function erf(x) with fractional error - less than 1.2E-07 and that’s fine for the float version erff(), but - the same method is used for double and long double version which - will yield only slightly better precision. This patch doesn't address - the issue of lower precision for erf() and erfl(). (3) a faster - version of copysignf() for floats is included. From David S. Alessio - (2016-07-30). - * I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h - definitions. Add support for an attach() method that may be used when - any subset of pin interrupts occur (2016-07-31). - * PCA9555 Driver: Replace the signalling logic with a simple callback - using the new definitions of ioexpander.h. This repartitioning of - functionality is necessary because (1) the I/O expander driver is the - lower-lower part of any driver that uses GPIOs (include the GPIO - driver itself) and should not be interacting directly with the much - higher level application layer. And (2) in order to be compatible - with the GPIO driver (and any arbitrary upper half driver), the - PCA9555 should not directly signal, but should call back into the - upper half. The upper half driver that interacts directly with the - application is the appropriate place to be generating signal - (2016-07-31). - * drivers/ioexpander/skeleton.c: Add a skeleton I/O Expander driver - (based on the PCA9555 driver) (2016-07-31). - * I/O Expander Interface: Encode and extend I/O expander options to - include interrupt configuration (2016-07-31). - * drivers/ioexpander: Add an (untested) TCA64XX I/O Expander driver - leveraged from Project Ara (2016-07-31). - * I/O Expander Interface: Add argument to interrupt callback. Add a - method to detach the interrupt (2016-08-01). - * drivers/ioexpander: Add a GPIO lower-half driver that can be used to - register a GPIO character driver for accessing pins on an I/O expander - (2016-08-01). - * drivers/ioexpander: Add PCF8574 I/O Expander driver. Some cleanup - also of other expander drivers (2016-08-01). - * drivers/ioexpander: GPIO driver: Add IOCTLs to get the pin type and - to unregister a signal handler (2016-08-01). - * configs/sim: Add simulator-based test support for apps/examples/gpio - 2016-08-01). - * drivers/sensors: Add KXTJ9 Accelerometer driver from the Motorola - Moto Z MDK (2016-08-02). - * arch/arm/sim: Add a simulated I/O Expander driver (2016-08-03). - * configs/sim: Add logic to set the simulated I/O expander for testing - with apps/examples/gpio (2016-08-03). - * fs/fat: FAT performance improvement. In large files, seeking to a - position from the beginning of the file can be very time consuming. - ftell does lssek(fd, 0, SET_CURR). In that case, that is wasted time - since we are going to seek to the same position. This fix short- - circutes fat_seek() in all cases where we attempt to seek to current - position. Suggested by Nate Weibley (2016-08-03). - * tools/sethost.sh: Add sethost.sh. This is a script that you can use - to quickly change the host platform from Linux to Windows/Cygwin. - Might save you a lot of headaches (2016-08-03). - * arch/arm/src/tiva: Add tiva PWM lower-half driver implementation. - From Young (2016-08-05). - * drivers/spi/spi_transfer.c: Add a helper function that encapsulates - and manages a sequence of SPI transfers (2016-08-05). - * drivers/spi: Add an SPI character driver that will permit access to - the SPI bus for testing purposes. This driver is a simple wrapper - around spi_transfer() (2016-08-05). - * drivers/wireless: Add MFRC522 RFID ISO14443 and Mifare transceiver - driver. From Alan Carvalho de Assis (2016-08-06). - * configs/stm32f103-minimum: Add board support to MFRC522 driver. From - Alan Carvalho de Assis (2016-08-06). - * arch/renesas: Rename arch/sh to arch/renesas (2016-08-06). - * arch/arm/src/efm32, stm32, stm32l4: STM32 and EFM32 SPI drivers - adopted an incompatible conventions somewhere along the line. The - set the number of bits to negative when calling SPI_SETBITS which had - the magical side-effect of setting LSB first order of bit - transmission. This is not only a hokey way to pass control - information but is supported by no other SPI drivers. This change - three things: (1) It adds HWFEAT_LSBFIRST as a new H/W feature. - (2) It changes the implementations of SPI_SETBITS in the STM32 and - EFM32 derivers so that negated bit numbers are simply errors and it - adds the SPI_HWFEATURES method that can set the LSB bit order, and - (3) It changes all calls with negative number of bits from all - drivers: The number of bits is now always positive and SPI_HWFEATURES - is called with HWFEAT_LSBFIRST to set the bit order (2016-08-08). - * arch/arm/src/stm32: Add missing SPI2 and SPI3 support for STM32F3F3. - Add STM32F37XX DMA channel configuration. For STM32F37XX, - SYSCFG_EXTICR_PORTE defined twice. From Alan Carvalho de Assis - (2016-08-08). - * arch/arm/src/stm32: Make stm32_pwr_enablebkp thread safe. From - Max Neklyudov (2016-08-09). - * arch/arm/src/stm32: SAM3/4 GPIO: Enable peripheral clock for GPIO port - when GPIO is configured as input. The value of a GPIO input is only - sampled when the peripheral clock for the port controller the GPIO - resides in is enabled. Therefore we need to enable the clock even when - polling a GPIO. From Wolfgang Reissnegger (2016-08-09). - * arch/arm/src/tiva: Fix two bugs of tiva pwm lower-half driver - implementation. From Young (2016-08-10). - * sched/group: Explicitly initialize the group tg_exitsem with - sem_init(). The existing logic worked because the correct - initialization value is all zero, but it is better to initialize the - semaphore explicitly (2016-08-10). - * arch/arm/stm32: Fix bad pllmul values for STM32F1XX connectivity line. - STM32F1XX connectivity line supports only x4, x5, x6, x7, x8, x9 and - x6.5 values. From Michał Łyszczek (2016-08-11). - * include/nuttx/timers: Add oneshot timer lower half interface - (2016-08-11). - * arch/arm/src/stm32: Add a experimental oneshot, lower-half driver for - STM32 (2016-08-11). - * arch/arm/src/samv7: Add option to support oneshot timer without free- - running timer. Add oneshot lower half driver (2016-08-11). - * arch/arm/src/sama5: Add option to support oneshot timer without free- - running timer. Add oneshot lower half driver (2016-08-11). - * arch/arm/src/sam34: SAM4CM: Add option to support oneshot timer without - free-running timer. Add oneshot lower half driver (2016-08-11). - * arch/arm/src/stm32l4: Add oneshot lower half driver (2016-08-11). - * libc/stdlib: strtod() was not returning endptr on error conditions - (2016-08-11). - * libc/math: floor(), floorf(), and floorl(): Fix logic error. Was not - correctly handling negative integral value (2016-08-11). - * configs/sim: Add a configuration useful for testing Mini Basic - (2016-08-12). - * drivers/timers: Add an upper-half, oneshot timer character driver - (2016-08-12). - * arch/sim/src: Add a simulated oneshot lowerhalf driver (2016-08-12). - * arch/arm/src/stm32: STM32F3 SPI: Fix the number of bit setting for - the F3. That and data packing work differently on the STM32F3 than - for other STM32 parts (2016-08-12). - * arch/arm/stm32 and stm32l4: Enabling SPI DMA loses other bits in CR2 - (2016-08-13). - * arch/arm/src/stm32: STM32F3 SPI: Cannot write always 16-bit value to - DR register because of how the F3 implements data packing (2016-08-13). - * Kinetis: Add support for I2C and RTC. From v01d (phreakuencies) - (2016-08-13). - * teensy 3.x i2c. From v01d (phreakuencies) (2016-08-13). - * SH1106 0.96 OLED module support (SSD1306 compatible) + I2C fixes. - From v01d (phreakuencies) (2016-08-13). - * Add support for SAMV7 DACC module. From iotr Mienkowski (2016-08-15). - * Add oneshot board initialization to stm32f103-minimum. From Alan - Carvalho de Assis (2016-08-15). - * drivers/audio/tone.c: Add Audio Tone Generator for NuttX. From Alan - Carvalho de Assis (2016-08-16). - * configs/stm32f103-minimum: Add board configuration to initialize Audio - Tone Generator. From Alan Carvalho de Assis (2016-08-16). - * STM32F411 and STM32F446 map i2c2_sda_4 to different alternate function - numbers. From Konstantin Berezenko (2016-08-17). - * STM32 DMA Fix: Change stm32 adc dma callback to send channel number - instead of index. From Konstantin Berezenko (2016-08-17). - * SAMA5: Add missing oneshot max_delay method (2016-08-18). - * configs/stm32bufferfly2: Add support for the Kamami stm32butterfly2 - development board with optional ETH phy. From Michał Łyszczek - (2016-08-19). - * libc/misc: Separate XorShift128 PRNG from /dev/urandom and make it - generally available (2016-08-20). - * sched/sched_cpuload_oneshot: Use the oneshot timer with optional - entropy to measure cPU load if so configured (2016-08-20). - * drivers/usbhost/usbhost_composite.c: An an EXPERIMENTAL prototype of - how USB host support for composite devices might be implemented. This - 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 - Küng (2016-08-23). - * tools/mkfsdata.pl was still generating the old-style apps/include - inclusion paths (2016-08-23). - * drivers/sensors: Add driver for the LIS3MDL 3 axis magnetometer. From - Alexander Entinger (2016-08-23). - * drivers/sensors: Add driver for the MLX90393 3 axis magnetometer. - From Alexander Entinger (2016-08-23). - * drivers/mtd: Add Fujistu MB85RS256B ramtron support. From Beat Küng - (2016-08-23). - * drivers/sensors: Add driver for the LIS3DSH 3 axis accelerometer. From - Alexander Entinger (2016-08-24). - * drivers/sensors: Add driver for the Bosch BMG160 3 axis gyroscope. - From Alexander Entinger (2016-08-24). - * STM32: Add IAR-style STM32F1xx vectors. Tested on STM32F103RB and - STM32F107RC. From Aleksandr Vyhovanec (2016-08-24). - * libc/header files: Add POSIX type sig_atomic_t. From Sebastien - Lorquet (2016-08-24). - * libc/header files: isatty() should be prototypes in unstid.h, not - termios.h. From Sebastien Lorquet (2016-08-24). - * Documentation: Update to NuttX C coding style document with additions - discussing long comments on the right side of a statement or data - definition (2016-08-24). - * LPC43xx serial: Fix typos in LPC43 serial driver. Found by Vytautas - Lukenskas (2016-08-24). - * libc/time: This commit adds the difftime() function. The function - depends on the toolchain-dependent CONFIG_HAVE_DOUBLE so is not - available on tiny platforms. From Sebastien Lorquet (2016-08-24). - * libc/stdio: Add support for remove(). From Sebastien Lorquet - (2016-08-25). - * STM32 OTGFS device: Fix for lost first word from FIFO - - 1) Do not overwrite Reserved Bits in GINTSTS (per ref manual)* - 2) Acknowledge all pending int on entry to ISR that are Only rc_w1* - 3) Do not disable RXFVL* - 4) Loop until RXFVL is cleared* - 5) Only clear the NAK on the endpoint on the - OTGFS_GRXSTSD_PKTSTS_SETUPDONE to not loose the first WORD of - FIFO all the data (Bug Fix) - - Changed marked *are just driver clean up and ensure ints are not lost. - The bug fix is #5 - - Test case open putty and observer the Set/Get LineCoding. Without this - fix #5 the Get will not match the Set, and in fact the data might be - skewed by 4 bytes, that are lost from the FIFO if the - OTGFS_DOEPCTL0_CNAK bit is set in the OTGFS_GRXSTSD_PKTSTS_SETUPRECVD - as opposed to the OTGFS_GRXSTSD_PKTSTS_SETUPDONE - - Set Line Coding DATA1: 4B | 00 c2 01 00 00 00 08 | c8 1B - Get Line Coding DATA1: 4B | .. .. .. .. 00 00 08 c8 .. 00 00 07 | 7a 72 - - From David Sidrane (2016-08-25). - * Add system() to stdlib.h. Actual implementation is in - apps/system/system (2016-08-25). - * include/nuttx/input: Add missing prototype for btn_lower_initialize() - (2016-08-27). - * configs/stm32f103-minimum: Add board config support to SPI LCD module - JLX12864G-086. From Alan Carvalho de Assis (2016-08-28). - * net/tcp: tcp_ipvX_bind() not actually using the ported selected with - port==0. Also removes duplicate call to pkt_input(). Issues noted by - Pascal Speck (2016-08-30). - * STM32 F7: Remove duplicate call to pkt_input from Ethernet driver. - Issues noted by Pascal Speck (2016-08-30). - * STM32L4 OTGFS device: Apply stm32 fix to stm32l4. From Sebastien - Lorquet (2016-08-31). - * drivers/contactless: Remove contactless drivers from drivers/wireless - to drivers contactless. From Sebastien Lorquet (2016-08-31). - * USB host composite is at least partially functional. No longer depends - on CONFIG_EXPERIMENTAL (2016-09-02). - * MTD: Fixed cloned typos in several FLASH drivers. From Aleksandr - Vyhovanec (2016-09-02). - * MTD: SPI-based driver for Macronix MX25L3233F or MX25L6433F. From - Aleksandr Vyhovanec (2016-09-02). - * sched/: The TCB nchildren field should not be incremented when - pthreads are created (2016-09-06). - * sched/: Move fields related to parent/child task relationship out of - TCB into group structure (2016-09-06). - * STM32L4: Add support for USART3-USART5. For STM32L4 parts, the higher - number USART ports supported varies. Add the HAVE_USARTx definitions - to the configuration to allow enabling the higher numbered USART ports. - From Jim Wylder (2016-09-15). - * configs/stm32l476-mdk: Support basic booting and nsh on Motorola MDK. - The Motorola MDK is based off of an earlier version of NuttX. This - only provides a basic NSH shell. From Jim Wylder (2016-09-15). - * STM32 USB: Set USB address to avoid a failed assertion. From Pierre-noel - Bouteville (2016-09-15). - * STM32 L4 and L7 USB: Pierre's assertion-avoidance change should also be - applied to STM32 F7 and L4 (2016-09-15). - * sched/: mq_send() was not setting the errno value on certain failures - to allocate a message (2016-09-15). - * include/nuttx/modem: Move all modem-related IOCTL commands to a common - file to assure that they will be unique (2016-09-16). - * STM32 F4 Discovery: Add support for XEN1210 3D-board. From Alan - Carvalho de Assis (2016-09-17). - * drivers/sensors: Adds support for the Sensixs XEN1210 3D-board. This - sensor is used on NANOSATC-BR2 a Brazilian CUBESAT project. From - Alan Carvalho de Assis (2016-09-16). - * include/analog/dac.h: Make DAC structure packed. From Marc Rechté - (2016-09-20). - * All SAM Ethernet Drivers: Add support so that the drivers can be built - with CONFIG_NET_MULTIBUFFER=y (2016-09-20). - * Tiva Ethernet: Needs support for CONFIG_NET_MULTIBUFFER=y (2016-09-20). - * drivers/net: NET_TUN=y => NET_MULTIBUFFER=y. From Vladimir - Komendantskiy (2016-09-20). - * SAM3/4: Fix GPIO pull-up/down code. Enabling the pull-down resistor - while the pull-up resistor is still enabled is not possible. In this - case, the write of PIO_PPDER for the relevant I/O line is discarded. - Likewise, enabling the pull-up resistor while the pull-down resistor - is still enabled is not possible. In this case, the write of PIO_PUER - for the relevant I/O line is discarded. From Wolfgang Reißnegger - (2016-09-20). - * SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7 - (2016-09-20). - * Tiva QEI: Add QEI lower-half driver impl. for Tiva series chip. From - Young (2016-09-21). - * STM32, L4, and F7: Remove GPIO_ETH_RMII_TX_CLK. TX_CLK is not present - in RMII. Mateusz Szafoni (2016-09-22). - * sched/: Define 'group' even if HAVE_GROUPID is not set. From Mateusz - Szafoni (2016-09-22). - * sched/: vector table should have dimension NR_IRQS, not NR_IRQS+1. - From Sagitta Li (2016-09-22). - * fs/mount: Corrects a bad assertion noted by Pierre-noel Bouteville. - Also fixes a reference counting problem in an error condition: When - the mountpoint inode is found but is not an appropriate mountpoint, - the reference count on the inode was not being decremented (2016-09-22). - * libnx/nxglib: Fix handling of near-horizontal lines of width 1 in - nxgl_splitline(). Missing handling for degenerate condition caused - width 1 lines such as (0, 0) - (100, 10) to have gaps in the drawing. - From Petteri Aimonen (2016-09-22). - * drivers/net/slip.c: Fix calculations using MSEC_PER_TICK. If - USEC_PER_TICK is less than 1000, then MSEC_PER_TICK will be zero. It - will be inaccurate in any case (2016-09-25). - * Tiva QEI: Add a new ioctl command (set MAXPOS) for tiva QEI. From - Young (2016-09-26). - * LPC43xx Serial: There are some small problems in LPC43xx RS485 mode - configuration. In particular: (1) UART0,2,3 do not have DTR pins - (different from UART1), so, Kconfig needs to be adjusted. (2) - lpc43_uart.c in RS485 mode only configures DIR pin, but doesn't enable - pin output for UART0,2,3. (3) should be option to reverse DIR control - pin output polarity. (4) lpc43xx/chip/lpc43_uart.h doesn't have USART3 - definitions. NOTE: I didn't modified and didn't tested USART1, as it - has different hardware. From Vytautas Lukenskas. From Vytautas - Lukenskas (2016-09-30). - * STM32 Ethernet: Correct typo in conditional logic. From Neil Hancock - (2016-10-01). - * sched/pthread and task: When a pthread is started, there is a small - bit of logic that will run on the thread of execution of the new - pthread. In the case where the new pthread has a lower priority than - the parent thread, then this could cause both the parent thread and - the new pthread to be blocked at the priority of the lower priority - pthread (assuming that CONFIG_PRIORITY_INHERITANCE is not selected). - This change temporarily boosts the priority of the new pthread to at - least the priority of the new pthread to at least the priority of the - parent thread. When that bit of logic has executed on the thread of - execution of the new pthread, it will then drop to the correct - priority (if necessary) before calling into the new pthread's entry - point (2016-10-01). - * configs/stm32f103-minimum: Add stm32_bringup support and userled - example to STM32F103 Minimum board. From Alan Carvalho de Assis - (2016-10-02). - * STM32 L4: Add support for quadrature encoders on STM32L4. Sebastien - Lorquet (2016-10-02). - * configs: Add support for qencoders on various nucleo boards. From - Sebastien Lorquet (2016-10-03). - * STM32 L4 USB Device: Fixed L4 USB Driver by avoiding SETUPDONE and - EPOUT_SETUP. From David Sidrane (2016-10-04). - * configs/olimex-stm32-e407: Add some networking configurations. From - 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 - pointer was returned when a certain underlying function failed. From - Jens Gräf (2016-10-07). - -7.19 2016-12-26 Gregory Nutt - - * include/nuttx/fs/nxffs.h: Needs forward reference to struct mtd_dev_s - and needs to include stdbool.h (2016-10-09). - * STM32F103 Minimum: Note in Kconfig that the board supports buttons. - From Alan Carvalho de Assis (2016-10-11). - * STM32F103 Minimum: Add button support. From Alan Carvalho de Assis - (2016-10-11). - * arch/arm/kinetis and configs/freedom-k64f: Add UID Unique ID. From - Neil Hancock (2016-10-13). - * arch/arm/src/stm32l4: (1) too many parentheses when calculating max - chan count and (2) channel 4 does not have a complementary output. From - Sebastien Lorquet (2016-10-14). - * arch/arm/src/stm32l4: Support Complementary PWM outputs on STM32L4. - From Sebastien Lorquet (2016-10-14). - * Support PWM testing on board nucleo-l476. From Sebastien Lorquet - (2016-10-14). - * arch/arm/src/stm32: Support oversampling by 8 for the STM32 F4. - From David Sidrane (2016-10-15). - * libc/stdio: Fixes sscanf %sn where strlen(data) < n. From David - Sidrane (2016-10-15). - * arch/risc-v: Add support for the RISC-V architecture and - configs/nr5m100-nexys4 board. I will be making the FPGA code for - this available soon (within a week I would say). The board support on - this is pretty thin, but it seems like maybe a good idea to get the base - RISC-V stuff in since there are people interested in it. From Ken - Pettit (2016-10-16). - * C library: Add a dummy setlocale() function to avoid drawing the - function from newlib (2016-10-17). - * libc/wchar: Add wcslen, wmemchr, wmemcmp, wmemcpy and wmemset to NuttX. - From Alan Carvalho de Assis (2016-10-17). - * syscalls: Add setlocale to libc.csv (2016-10-17). - * 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 - (2016-10-18). - * configs/Board.mk: Add extra clean operations (2016-10-18). - * 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). - * arch/arm/src/kinetis: Added missing headers. From David Sidrane - (2016-10-18). - * arch/arm/src/kinetis: Kinetis broke out SPI to kinetis/kinetis_spi.h. - From David Sidrane (2016-10-18). - * arch/arm/src/kinetis: Broke out DMA to use the modern Nuttx chip - inclusion - still STUBS. From David Sidrane (2016-10-18). - * arch/arm/src/kinetis: Kinetis Support ARMV7 Common Vector and FPU. - From David Sidrane (2016-10-18). - * arch/arm/src/kinetis: Kinetis Allow CONFIG_ARMV7M_CMNVECTOR, - CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU. From David Sidrane - (2016-10-18). - * arch/arm/src/kinetis: Kinetis i2c driver offset swapped for value - in kinetis_i2c_putreg. From David Sidrane (2016-10-18). - * Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb, wctype, - localeconv, strcoll, strxfrm. From Alan Carvalho de Assis - (2016-10-18). - * libc/wctype: Add wctype.h; Move lib_wctype.c to libc/wctype. - From Alan Carvalho de Assis (2016-10-18). - * include/: Modify locale.h to add localeconv() and lconv structure. - From Alan Carvalho de Assis (2016-10-18). - * include/sys/time.h: timersub macro modified per recommendations of - phreakuencies (2016-10-18). - * include/: Add isblank() macro to ctype.h. From Alan Carvalho de - Assis (2016-10-19). - * libc/wctype: Add iswctype, towlower, towupper and wcsftime functions. - 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 - (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 - is not defined and setlocale is referenced. With CONFIG_LIBC_LOCALE - defined setlocale will act as if MB string is not supported and return - "C" for POSIX. C and "". From David Sidrane (2016-10-19). - * Xtensa ESP32: Add vectors for interrupt levels 2-6 (2016-10-20). - * strtof(): Add strtof() as simply a copy of strtod with types and - limits changed (2016-10-20). - * arch/arm/src/stm32v7: Register the watchdog device at the configured - device path CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank - Benkert (2016-10-21). - * configs/*/defconfig: The buttons example was changed to archbuttons. As - a result all of the button configurations are broken and need some - renaming in the defconfig files. Noted by Frank Berkert (2016-10-21). - * configs/stm32f103-minimum: Add support to PWM on STM32F103-Minimum - board. From Alan Carvalho de Assis (2016-10-21). - * include/ctype.h and cxx/cctype: Implement ctype.h functions as inline - if possible. cctype can then properly select namespace (2016-10-22). - * libc/unisted: Add strtold() (2016-10-22). - * sscanf: Use strtof() instead of strtod() if a short floating point - value was requested. The should help performance with MCUs with 32-bit - FPU support with some additional code size (2016-10-22). - * Remove support for software prioritization of interrupts (2016-10-23). - * drivers/net/tun.c: Fix bug in TUN interface driver. From Max - Nekludov (2016-10-24). - * arch/arm/src/stm32: A new implementation of the STM32 F4 I2C bottom - half. The commin I2C as this did not handled correctly in the current - implementation (see also https://github.com/PX4/NuttX/issues/54). The - changes almost exclusively affect the ISR. From Max Kriegleder - (2016-10-24). - * arch/arm/src/stm32l4: Fix I2C devices RCC registers. From Sebastien - Lorquet (2016-10-25). - * arch/arm/src/stm32l4: Enable and renames for 32l4 UARTs 4 and 5. - From Sebastien Lorquet (2016-10-25). - * configs/stm32f103-minimum: Fix Timers 2 to 7 clock frequencies. - From Alan Carvalho de Assis (2016-10-25). - * arch/arm/src/stm32: Initial implementation of the STM32 F37xx SDADC - module. There are also changes to ADC, DAC modules. SDADC has only been - tested in DMA mode and does not support external TIMER triggers. This - is a work in progress. From Marc Rechté (2016-10-25). - * Add logic to attach peripheral interrupt sources to CPU interrupts - (2016-10-25). - * CHxN channels are always outputs. From Sebastien Lorquet - (2016-10-26). - * sched/semaphore: Within the OS, when a thread obtains a semaphore - count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is - enabled. If a count is available, then sem_wait() calls - sem_addholder(), otherwise it waited for the semaphore and called - sem_addholder() when it eventually received the count. - - This caused a problem when the thread calling sem_wait() was very - low priority. When it received the count, there may be higher - priority threads "hogging" the CPU that prevent the lower priority - task from running and, as a result, the sem_addholder() may be - elayed indefinitely. - - The fix was to have sem_post() call sem_addholder() just before - restarting the thread waiting for the semaphore count. - - This problem was noted by Benix Vincent who also suggested the - solution (2016-10-26). - * configs/stm32f103-minimum: Add RGB LED support on STM32F103 Minimum - board. From Alan Carvalho de Assis (2016-10-26). - * arch/arm/src/stm32f7: stm32_i2c.c Dejavu. Fixes a bug previously - found in the F4. From David Sidrane (2016-10-26). - * arch/arm/src/stm32f7: stm32f76xx77xx_pinmap.h Missed one. From - David Sidrane (2016-10-26). - * LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas - Lukenskas (2016-10-27). - * sched/clock: Correct clock initialization. The correct range for - the month is 0-11 but is entered as 1-12 in the .config file - (2016-10-27). - * arch/*/include: Add architecture-specific inttypes.h. From Paul - A. Patience (2016-10-27). - * sched/Kconfig: Add ranges to START_YEAR, MONTH, and DAY (2016-10-28). - * configs/nucleo-f303re: Add STM32 F303RE hello configuration; remove - duplicate setting from board.h. From Marc Rechté (2016-10-18). - * arch/arm/src/lpc43xx: Restore RS485 mode on serial port open (if - RS485 is enabled via menuconfig). From Vytautas Lukenskas (2016-10-28). - * arch/arm/src/stm32f7: otgdev fixed typo. From David Sidrane - (2016-10-28). - * arch/xtensa: Basic architectural support for Xtensa processors and - the Espressif. ESP32 added. Totally untested on initial release - (2016-10-31). - * configs/esp32-core: Basic support for Espressif ESP32 Core v2 board - added. The initial release includes an NSH and an SMP test - configuration. Totally untested on initial relesae (2016-10-31). - * configs/bambino-200e: Add basic support to Micromint Bambino 200E - board. This includes contributions from Jim Wolfman. From Alan - Carvalho de Assis (2016-11-01). - * drivers/mtd/at24xx.c: Added EEPROM timeout. Fromo Aleksandr - Vyhovanec (2016-11-02). - * arch/misoc: Adds basic support for the Misoc procoessors and the - LM32 in particular. From Ramtin Amin (2016-11-01). - * configs/misoc. Board support for testing Misoc LM32 with Qemu. - From Ramtin Amin (2016-11-01). - * arch/arm/src/stm32: I think, that Size is (highest address+1 - Base - address). Base address has been removed and if address+count >= size - we are outside of the Flash. From David Sidrane (2016-11-01). - * sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add - pthread_mutexattr_get/set_protocol and non-standard sem_get/set_protocol. - These may use to enable or disable priority inheritance on a single - semaphore (2016-11-02). - * arch/arm/src/stm32: Fix ADC compilation error when DMA isn't enabled. - From Paul A. Patience (2016-11-02). - * drivers/ and drivers/spi: Fix Kconfig warning. This commit moves the - ARCH_HAVE_SPI options outside the check for SPI. Those options don't - depend on SPI, and Kconfig files in arch/ enable them even if SPI - isn't enabled. Source the driver's Kconfig in drivers/Kconfig only - if support for the driver is enabled prevents us from defining these - ARCH_HAVE options in the driver's Kconfig. We should probably remove - the other checks in drivers/Kconfig and check if the drivers are - enabled only in their Kconfig. From Paul A. Patience (2016-11-02). - * Move prototypes for the non-standard include/semaphore.h file to the - non-standard include/nuttx/semaphore.h with the other non-standard - semaphore interfaces (2016-11-02). - * include/semaphores.h: Provide macros for sem_setprotocol() and - sem_getprotocol() if priority inheritance is not enabled. More - SEM_PRIO_* definitions to include/nuttx/semaphore.h (2016-11-02). - * drivers/serial.c: Make sure that priority inheritance is not - enabled for the signaling semaphores used in the serial driver - (2016-11-03). - * arch/arm/src/stm32f7: Fix to SPI-Master driver. Without this the - chip select decoding feature will not work properly. From Michael - Spahlinger (2016-11-03). - * drivers/, net/, fs/, sched, arch/, graphics/, libnx,: Disable - priority inheritance on all semaphores used for signaling (2016-11-03). - * sched/semaphore: Handle a case of missing proxy for sem_setprotocol. - Reorder so that (1) this error is avoided, and (2) >No proxy is needed - if priority inheritance is not enabled (2016-11-03). - * config/*/defconfgs: More fallout from name change of - apps/examples/buttons to archbuttons (2016-11-03). - * configs/nucleo_f303re: Various fixes to get the adc configuration - building again after PR. Refresh all configurations (2016-11-03). - * arch/misoc/src/common: Add interrupting Misoc serial driver. From - Ramtin Amin (2016-11-04) - * Fix a number of header files with mismatched 'extern C {' and '}' - (2016-11-05). - * Provide do-nothing stubs for mutex attribute interfaces if features - ot enabled. pthread_cond includes a signaling semaphore and should - call sem_setprotocol (2016-11-05). - * 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, - [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. - 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 implementation 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 - 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. - From Heesub Shin (2016-11-06). - * 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: - - msr spsr, r1 - - GCC translates this to: - - msr spsr_fc, r1 - - As a result, not all SPSR fields are updated on exception return. - This should be: - - msr spsr_fsxc, r1 - - On some evaluation boards, spsr_svc may have totally invalid value at - power-on-reset. As it is not initialized at boot, the code above may - 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 - 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 - if they are all busy. From Heesub Shin (2016-11-06). - * sched/wqueue: Signal sent from work_signal() may interrupt the low - priority worker thread that is already running. For example, the worker - thread that is waiting for a semaphore could be woken up by the signal - and break any synchronization assumption as a result. It also does not - make any sense to send signal if it is already running and busy. This - commit fixes it. From Heesub Shin (2016-11-06). - * arch/arm/src/stm32f7: STM32F7 SD/MMC driver depends on - CONFIG_SDIO_DMA which is only defined in stm32/Kconfig. Changed to - CONFIG_STM32F7_SDMMC_DMA and defined in stm32f7/Kconfig (2016-11-07). - * arch/arm/src/stm32: Add PWM driver support for STMF37xx. The - changes have been tested successfully for TIM4 and TIM17 (different - IPs). From Marc Rechté (2016-11-07). - * sched/semaphore: sem_trywait() no longer modifies the errno value - UNLESS an error occurs. This allows these functions to be used - internally without clobbering the errno value. From Freddie Chopin - (2016-11-09). - * arch/arm/src/stm32l4: Change the way to configure quadrature encoder - prescalers. From Sebastien Lorquet (2016-11-09). - * libc/unisted: Patch brings strtol() and related functions more - conformant with POSIX. Corner cases like strtol(-2147483648, NULL, 10) - now pass clang -fsanitize=integer without warnings. From Juha Niskanen - (2016-11-10). - * drivers/sensors and configs/stm32f103-minimum: Add Vishay VEML6070 - driver and support for STM32F103-Minimum board. From From Alan - Carvalho de Assis(2016-11-13). - * Misoc LM32: Corrects a bug that never occurred in qemu on simulation or - real fpga. The error was that the r1 register was being modified out of - context switching and not restoring it. From Ramtin Amin (2016-11-14) - * arch/arm/src/samv71: A problem occurred with the SAMV7 USBDEVHS driver - if the USB cable is unplugged while a large amount of data is send over - an IN endpoint using DMA. If the USB cable is plugged in again after a - few seconds it is not possible to send data over this IN endpoint again, - all other endpoints work as expected. - - The problem occurs because if the USB cable is unplugged while an DMA - transfer is in flight the transfer is canceled but the register - SAM_USBHS_DEVDMACTRL is left in an undefined state. The problem was - fixed the problem by resetting the register SAM_USBHS_DEVDMACTRL to a - known state. Additionally all pending interrupts are cleared. - - From Stefan Kolb (2016-11-14). - * configs/esp32-core: ESP32 Core v2: Add configuration to supporting - linking NuttX for execution out of IRAM (2016-11-14). - * libc/unistd: sleep() was returning remaining nanoseconds (kind of), - instead the remaining seconds. From Eunbong Song (2016-11-15). - * sched/irq: Fixes for the SMP case: (1) Change order for SMP case in - enter_critical_section: (1) Disable local interrupts BEFORE taking - spinlock and (2) If SMP is enabled, if any interrupt handler calls - enter_critical_section(), it should take the spinlock. (2016-11-15). - * arch/xtensa: Add EXPERIMENTAL hooks to support lazy Xtensa co- - processor state restore in the future (2016-11-16). - * Add some experimental changes to enter/leave_critical_section to - deal with the case where interrupts are disabled only on the local - CPU (2016-11-16). - * sched/irq: Add logic to handled nested calls to - enter_critical_section() from interrupts handlers (with SMP) - (2016-11-16). - * drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call. - This calls directly from the timer driver into application code. That - is non-standard, non-portable, and cannot be supported (2016-11-17). - *drivers/timer: Add timer driver hooks to support signal notification - of timer expiration. Commented out because invasive interface changes - would also be required to complete the implementation (2016-11-17). - * arch/arm/src/armv7-m: Fix double allocation of MPU region in mmu.h - (2016-11-17). - * timer driver: Use signal to notify of timer expiration. Add generic - argument so that there can be additional usage. From Sebastien Lorquet - (2016-11-17). - * All timer lower half drivers. Port Sebastien's changes to all all - other implementations of the timer lower half. Many changes and - untested. Expect some problems. (2016-11-17). - * sched/irq: irq_csection() has a bad assumption in the SMP case. It - assumed that the state of certain variables. That was true on entry - into the interrupt handler, but might change to the execution of logic - within the interrupt handler (2016-11-18). - * config/ nucleo-l476rg: Add support for timers to nucleo l476. From - Sebastien Lorquet (2016-11-18). - * drivers/net: Add option to use low-priority work queue to all drivers - in drivers/net. Not yet added to all architecture-specific network - drivers (2016-11-18). - * sched/wdog: Most interrupt handling logic interacts with tasks via - standard mechanism such as sem_post, sigqueue, mq_send, etc. These all - call enter_critical_section and are assumed to be safe in the SMP case. - - But certain logic interacts with tasks in different ways. The only one - that comes to mind are wdogs. There is a tasking interface that to - manipulate wdogs, and a different interface in the timer interrupt - handling logic to manage wdog expirations. - - In the normal case, this is fine. Since the tasking level code calls - enter_critical_section, interrupts are disabled an no conflicts can - occur. But that may not be the case in the SMP case. Most - architectures do not permit disabling interrupts on other CPUs so - enter_critical_section must work differently: Locks are required to - protect code. - - So this change adds locking (via enter_critical section) to wdog - expiration logic for the case if the SMP configuration - (2016-11-18). - * SAM3/4: Add delay between setting and clearing the endpoint RESET bit - in sam_ep_resume(). We need to add a delay between setting and - clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay the - USB controller will (may?) not reset the endpoint. If the endpoint is - not being reset, the Data Toggle (DTGLE) bit will not to be cleared - which will cause the next transaction to fail if DTGLE is 1. If that - happens the host will time-out and reset the bus. Adding this delay - may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c, however this - has not been verified yet. From Wolfgang Reißnegger (2016-11-18). - * SAM3/4: Remove unused 'halted' flag in UDP driver. From Wolfgang - Reißnegger (2016-11-18). - * SAM3/4: Remove 'stalled' flag in UDP driver. The flag is not necessary. - The state of the endpoint can be determined using 'epstate' instead. - From Wolfgang Reißnegger (2016-11-18). - * USBMSC: Fix length of mode6 sense reply packet. From Wolfgang - Reißnegger (2016-11-18). - * configs/dk-tm4c129x: Typo fix. From Wolfgang Reißnegger (2016-11-18). - * Typo fix in sam_udp.c. From Wolfgang Reißnegger (2016-11-18). - * STM32: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul A. - Patience (2016-11-19). - * vfork(): Fix a race condition in the SMP case. Existing logic - depended on the fact that the child would not run until waitpid was - called because the child had the same priority as the parent. BUT - in the SMP case that is not true... the child may run immediately on - a different CPU (2016-11-19). - * arch/: Add option to use low-priority work queue to all Ethernet - drivers in arch that support CONFIG_NET_NOINTS (2016-11-19). - * sched/clock: Correct calculation for the case of Tickless mode with - a 32-bit timer. In that case, the calculation was returning - millisecond accuracy. That is not good when the timer accuracy is < 1 - msec. From Rajan Gill (2016-11-19). - * sched/task: task_restart() test not supported on SMP systems. This is - not fully implemented (2016-11-19). - * This commit adds a new internal interfaces and fixes a problem with - three APIs in the SMP configuration. The new internal interface is - sched_cpu_pause(tcb). This function will pause a CPU if the task - associated with 'tcb' is running on that CPU. This allows a different - CPU to modify that OS data structures associated with the CPU. When the - other CPU is resumed, those modifications can safely take place. The - three fixes are to handle cases in the SMP configuration where one CPU - does need to make modifications to TCB and data structures on a task - that could be running running on another CPU. Those three cases are - task_delete(), task_restart(), and execution of signal handles. In - all three cases the solutions is basically the same: (1) Call - sched_cpu_pause(tcb) to pause the CPU on which the task is running, - (2) perform the necessary operations, then (3) call up_cpu_resume() to - restart the paused CPU (2016-11-20). - * task_restart: Make sure new task starts with pre-emption disabled and - not in a critical section (2016-11-21). - * Fix a typo in a spinlock macro (2016-11-21). - * Spinlocks: Added capability to provide architecture-specific memory - barriers. This was for i.MX6 but does not help with the SMP problems. - It is still a good feature (2016-11-21). - * Remove a assertion condition that appears to rarely cause false-alarm - assertions. Teported by Petteri Aimonen (2016-11-21). - * The examples/qencoder app was trying to init the encoder by a direct - call into the board, cheating in a local header to declare the normally - unavailable function prototype. From Sebastien Lorquet (2016-11-22). - * configs: All QE encoder files. Last change made timer hard-coded to 3. - Make configurable (2016-11-22). - * configs: Remove all traces of the no-longer existent ARCHBUTTONS - example. Remove all button configurations that depended on the - obsoleted ARCHBUTTON example (2016-11-22). - * nucleo-l476rg: Add better selection of timer (2016-11-22). - * implementation of dumpgpio for stm32l4, was required for pwm debug. - From Sebastien Lorquet (2016-11-22). - * SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting - for g_cpu_irqlock and CPU0 is waitin for g_cpu_paused (2016-11-22). - * Misoc: Add timer driver. From Ramtin Amin (2016-11-22). - * Misoc: Add commits and warnings about missing calculation of the timer - reload value (2016-11-22). - * SAM3/4: Name of method is now setcallback, not sethandler (2016-11-22). - * sam4s-xplained-pro/nsh: Configuration uses old, improper timer interface. - CONFIG_TIMER disabled in configuration. (2016-11-22). - * sam4s-xplained-pro: Remove obsolete timer initialization logic - (2016-11-22). - * Misoc LM32: Make system timer configurable via CONFIG_USEC_PER_TICK. - From Ramtin Amin (2016-11-23). - * LPC43xx: Add timer driver; configs/bambino-200e: Add support for timer - driver. From Alan Carvalho de Assis (2016-11-23). - * SMP: Fix backward condition in test (2016-11-23). - * ARMv7-A SMP: Add a little logic to signal handling (2016-11-24). - * Misoc LM32: Add signal handling logic. From Ramtin Amin (2016-11-24). - * SMP: Add spin_trylock(). Use this in conditions where other CPUs need - to stopped but we cannot call enter_critical_section (2016-11-24). - * Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik (2016-11-25). - * SMP: Fix yet another potential deadlock (2016-11-25). - * Enable CONFIG_RTC in the hymini-stm32v/nsh2 (kitchensink) config. - From Maciej Wójcik (2016-11-26). - * This adds support for keeping i.MX6 inter-processor communication data - in a non-cached address region (2016-11-26). - * i.MX6: Disable non-cached region support. Add SCU register definitions - (2016-11-26). - * i.MX6: Add some controls to enable SMP cache coherency in SMP mode - (2016-11-26). - * ARMv7-A: Fix some SCU SMP logic (2016-11-26). - * ARMv7-A/i.MX6: Modify handling of the SMP cache coherency - configuration so that it is identical to the steps from the TRM. - Makes no different, however (2016-11-27). - * The Smoothie project needs to compile C++ inside config/boardname/src/ - to use with High Priority Interruption, then I modified the board - configs Makefile to support it. It works fine for the first time - compilation, but if we execute "touch config/boardname/src/Pin.cxx" - and execute "make" it will not detect that Pin.cxx was modified. I - think there is some other place I should modify, but I didn't find - it. From Alan Carvalho de Assis (2016-11-27). - * ARMv7-A/i.MX6 SMP: Move SMP coherent cache setup to earlier in - initialization of CPUn, n>0 (2016-11-27). - * ARMv7 GIC: SGIs are non-maskable but go through the same path as other, - maskable interrupts. Added logic to serialize SGI processing when - necessary (2016-11-27). - * sched_note: Extend OS instrumentation to include some SMP events - (2016-11-27). - * sched_note: Add spinlock instrumentation; In SMP configurations, - select to log only notes from certain CPUs (2016-11-28). - * Misoc LM3: Add Misoc Ethernet driver. Integrate network support into - configs/misoc/hello. Remove configs/misoc/include/generated directory. - I suppose the intent now is that this is a symbolic link? DANGER! - This means that you cannot compile this code with first generating - these files a providing a symbolic link to this location! From Ramtin - Amin (2016-11-28). - * Add tools/showsize.sh (2016-11-28). - * configs/misoc: Add a sample directory containing generated sources. - This is really only useful for performing test builds. You really - must generate the Misoc architecture for a real-life build. From - Ramtin Amin (2016-11-28). - * sched_note: Permit spinlock and critical section notes in in-memory - buffer iff sched_not_get() interfaces is disabled (2016-11-28). - * STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence, - up to three interfaces. From Marc Rechté (2016-11-29). - * Back out a debug change that was included in commit (2016-11-29). - * i.MX6: Don't output the alphabet if CONFIG_DEBUG_FEATURES is not set - (2016-11-29). - * Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin - (2016-11-29). - * drivers/net/: Adapt all Ethernet drivers to work as though - CONFIG_NET_MULTIBUFFER were set. Remove all references to - 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 - Janne Rosberg (2016-11-30). - * 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). - * STM32L4: Correct USART1/2 definitions. Use default mbed UART4 - settings. From Sebastien Lorquet (2016-12-01). - * boardctl: Add new boardctl() command ,BOARDIOC_NX_START, to start the - NX server as a kernel thread (2016-12-01). - * GPDMA driver for the LPC43xx. The GPDMA block is basically the same - as the LPC17xx. Only the clock configuration is different and LPC43xx - has four different DMA request sources, where LPC17xx has only two. - From Alan Carvalho de Assis (2016-12-01). - * Remove RGMP and RGMP drivers (2016-12-02). - * i.MX6: Add an untested SPI driver taken directly from the i.MX1 port - (2016-12-02). - * Eliminate CONFIG_NO_NOINTS. There is no longer any support for - interrupt level processing of the network stack. Lots of files changed - -> lots of testing needed (2016-12-03). - * Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa - (2016-12-04). - * Add support for the SAM5CMP-DB board. From Masayuki Ishikawa - (2016-12-04). - * SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki - Ishikawa (2016-12-04). - * C Library: Allow option to enable IP address conversions even when the - IP address family is not supported (2016-12-04). - * SSD1306: Fix errors in SPI mode configuration. From Gong Darcy - (2016-12-04). - * SAMA5 does not build when executing from SDRAM before board - frequencies are not constant. Rather, the bootloader configures the - clocking and we must derive the clocking from the MCK left by the - bootloader. This means lots more computations. This is untested on - initial commit because I don't have a good PWM test setup right now - (2016-12-04). - * Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount - /proc on startup (2016-12-05). - * SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup - in board bring-up logic (2016-12-05). - * Remove all references to BOARDIOC_PWMSETUP and board_pwm_setup() - (2016-12-05). - * Remove all references to BOARDIOC_ADCSETUP and board_adc_setup() - (2016-12-05). - * Added Timers 2-5 and control of SAI and I2S PLLs. From David Sidrane - (2016-12-05). - * Added support for stmf469 SAI and I2S PLL configuration and STM446 - fixes. From David Sidrane (2016-12-05). - * Expanded otgfs support to stm32F469 and stm32f446. Added missing bits - definitions, Used stm32F469 and stm32f446 bit definitions, Removed - unused header file. From David Sidrane (2016-12-05). - * Remove BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the - board initialization logic just like every other device driver - (2016-12-06). - * STM32F7: Allow the config to override the clock edge setting. From - David Sidrane (2016-12-06). - * For Cortex-A9, should also set ACTLR.FW in SMP mode to enable TLB and - cache broadcasts. Does not fix SMP cache problem (2016-12-07). - * sched notes: Add additional note to see if/when CPU is started in SMP - mode (2016-12-07). - * EFM32: Fix a compilation error. From Pierre-noel Bouteville - (2016-12-07). - * pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop() - (2016-12-08). - * BUGFIX:STM32F427 was rebooting. Over reached family. From David - Sidrane (2016-12-08). - * Add pthread_setcanceltype() and pthread_testcancel() (2016-12-09). - * Added STM32F469 RAM size and deliberated STM32F446 size. From David - Sidrane (2016-12-09). - * Typo in stm32f76xx77xx_pinmap.h edited online with Bitbucket. From - David Sidrane (2016-12-09). - * stm32_allocateheap.c edited online with Bitbucket. From David Sidrane - (2016-12-09). - * LPC43xx SD card: Correct pin configuration options needed for SD card - pins. From Alan Carvalho de Assis (2016-12-09). - * pthread_mutex_destroy(): Fix an error in destroying a mutex which can - occur after a pthread has been canceled while holding the mutex - (2016-12-09). - * Add support for cancellation points (2016-12-09). - * Forgot to add some files in the last commit (2016-12-10). - * Correct some default font IDs. From Pierre-Noel Bouteville - (2016-12-10). - * task_delete() now obeys all cancellation point semantics (2016-12-10). - * Add task_setcancelstate(), task_setcanceltype(), and task_testcancel(). - These are non-standard interfaces analogous to the corresponding pthread_ - interfaces that provide cancellation controls for tasks (2016-12-10). - * i.MX6 interrupt handling: Additional logic needed to handle nested - interrupts when an interrupt stack is used (2016-12-13). - * SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to - CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node - acknowledges the message sent. This will also occur if the device is - not connected to the can-bus. The CAN-Standard declares, that the Chip - has to retry a given message as long as it is not sent successfully (or - it is not cancelled by the application). Every time the chip tries to - resend the message an Acknowledge-Error-Interrupt is generated. At high - baud rates this can lead in extremely high CPU load just for handling - the interrupts (and possibly the error handling in the application). To - prevent this Interrupt-Flooding we disable the ACKE once it is seen as - long we didn't transfer at least one message successfully. From Frank - Benkert (2016-12-13). - * i.MX6: Remove non-cached, inter-cpu memory region. Not a useful - concept (2016-12-13). - * minnsh Configurations: Remove minnsh configurations and support logic: - up_getc() and lowinstream. This was an interesting exercise to see - just how small you could get NuttX, but otherwise it was not useful: - (1) the NSH code violated the OS interface layer by callup up_getc and - up_putc directly, and (2) while waiting for character input, NSH would - call up_getc() which would hog all of the CPU. Not a reasonable - solution other than as a proof of concept (2016-12-13). - * Calypso Boards: Remove all Calypso board configurations (2016-12-13). - * Calypso: Remove Calypso architecture support and support for Calypso - SERCOMM driver (2016-12-13). - * ESP32 core v2: Two changes (1) flushes the UART TX buffer in the esp32 - serial shutdown routine. The ROM bootloader does not flush the FIFO - before handing over to user code, so some of this output is not - currently seen when the UART is reconfigured in early stages of - startup. And changes the openocd config file's default flash voltage - from 1.8V to 3.3V. This is not necessary right now, but may save some - hard-to-debug moments down the track (3.3V-only flash running at 1.8V - often half-works and does weird things...). From Angus Gratton - (2016-12-14). - * Xtensa ESP32: Add missing ENTRY() and RET() macros in C callable - assembly language. At one time I thought that the ESP32 supported the - CALL0 ABI. I was mistaken so there may be a few more like this - (2016-12-14). - * Xtensa ESP32: Fix a couple of bugs associated with handling of CPU - interrupts (2016-12-14). - * Xtensa ESP32: Fix several build-related issues associated with vector - section (2016-12-15). - * Xtensa ESP32: Fix missing CALL0 ABI condition (2016-12-15). - * Xtensa EPS32: Make sure that all C callable assembly functions includes - ENTRY prologue and RET epilogue (2016-12-15). - * Xtensa ESP32: Fix windowspill register handling + Use r6, not r2 when - passing parameters with call4 (2016-12-16). - * Xtensa ESP32: Use r6, not r2 when passing parameters with call4 - (2016-12-16). - * Xtensa ESP32: Correct a logic problem the prevented dumping the IDLE - thread's stack on an assertion (2016-12-16). - * Xtensa ESP32: Fix some missing SMP logic (2016-12-16). - * Xtensa ESP32: Basically a redesign of the interrupt dispatch logic - (2016-12-16). - * Xtensa ESP32: Level 1 interrupts should return via RFE (2016-12-17). - * Xtensa ESP32: One register getting clobber on context save (2016-12-17). - * STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane - (2016-12-17). - * CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be - initialized with correct functions if CONFIG_SERIAL_DMA is set - (2016-12-17). - * Xtensa ESP32: Using wrong register to disable interrupts (2016-12-17). - * Xtensa ESP32: Fix clobbered a9 in co-processor context save/restore - (2016-12-17). - * Xtensa ESP32: Need to clone some logic for synchronous context switch. - Window spill logic in the conmon restores logic is inappropriate in - this context (2016-12-17). - * sscanf(): Add scansets to the scanf function. Enabled - CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec (2016-12-17). - * Xtensa ESP32: Fix context save logic when called in window ABI - configuration. Add an IDLE stack. Don't depend on the mystery stack - received from the bootloader (2016-12-18). - * Xtensa ESP32: Need to spill registers to memory as the last dying - action before switching to a new thread (2016-12-18). - * ESP32 Serial: Add logic to prevent infinite loops in interrupt handler - (2016-12-18). - * Xtensa ESP32: Automatically mount /proc at start-up (2016-12-19). - * Xtensa ESP32: Corrects timer initialization and timer input frequency - (2016-12-19). - * Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu - (2016-12-20). - * Xtensa ESP32: Missing prologue/epilogue macros on C callable function - (2016-12-20). - * Xtensa ESP32: Update APP CPU startup logic to match current Espressif - example code. Fix errors APP CPU startup (2016-12-20). - * fs/procfs: Fix procfs status for SMP case (2016-12-20). - * Xtensa ESP32: Clock frequency is different if running from IRAM or is - booting from FLASH. This is a bootloader issue (2016-12-20). - * Xtensa ESP32: Basic port is function in both single CPU and dual CPU - SMP configurations. There is an NSH configuration for each CPU - configuration (2016-12-21). - * STM32 F4: Merge in support for the Olimex STM32 P407 board (2016-12-21). - * Xtensa ESP32: Add an OS test to verify the port (2016-12-22). - * Xtensa ESP32: Corrects a problem with dispatching to signal handlers: - Cannot vector directly to the signal handling function as in other ABIs - under the Xtensa Window ABI. In that case, we need to go through a - tiny hook when performs the correct window call (call4) otherwise - registers will be scrambled in the signal handler (2016-12-22). - * SAMV7 CAN: Make delete_filter functions more robust. From Frank - Benkert (2016-12-23). - * Xtensa ESP32: Add stack checking logic (2016-12-23). - * sched note: record ID enumeration now results on constant values; ID - values do not change with configuration. This makes writing - post-processing software much easier (2016-12-24). - * STM32 F3: Forgot to update chip.h for STM32F303x[BC]'s 4 ADCs - (2016-12-24). - * STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane - (2016-12-24). - * termios.h: Fix CRTSCTS define to include input and output flow. - From Lorenz Meier (2016-12-26). - * SMP: Enforce this rule: Tasks which are normally restored when - sched_unlock() is called must remain pending (1) if we are in a - critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs - still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In - those cases, the release of the pending tasks must be deferred until - those conditions are met (2016-12-26). - -7.20 2017-03-08 Gregory Nutt - - * i.MX6 SMP/NSH configuration: Enable examples/smp test (2016-12-27). - * SMP: There were certain conditions that we must avoid by preventing the - release of the pending tasks while withn a critical section. But this - logic was incomplete; there was no logic to prevent other CPUs from - adding new, running tasks while on CPU is in a critical section. This - commit corrects this. This is matching logic in sched_addreadytorun to - avoid starting new tasks within the critical section (unless the CPU is - the holder of the lock). The holder of the IRQ lock must be permitted - to do whatever it needs to do (2016-12-27). - * i.MX6: Fix clearing GPT status register. From Masayuki Ishikawa - (2016-12-28). - * SMP: Make checks for CPU lock set more robust. There are certains - conditions early in initialization on during interrupt handling where - things need to be done a little differently (2016-12-28). - * sched_cpulocked: Avoid use of spinlock. That has been reported to - cause a deadlock (2016-12-28). - * SMP: Fix a gap where we may try to make modifications to the task lists - without being in a critical sections. That permits concurrent access to - the tasks lists and many subtle problems. This fix just remains in the - critical section throughout the operation (and possible until the task - is restore in the event of a context switch). Makes a big difference in - stability (2016-12-28). - * SMP: Move shareable function to common file as irq_cpu_locked(). Use - irq_cpu_locked() in sched_unlock(). Use irq_cpu_locked() in - sched_removereadytorun() and sched_setpriority(). Use irq_cpu_locked() - in sched_mergepending() (2016-12-29). - * Add configuration support for builds with Ubuntu under Windows 10 - (2017-01-01). - * Add support for Tom Thumb small mono-space font. From Alan Carvalho de - Assis (2017-01-03). - * Alternative way to encode font spacing for Tom Thumb font (2017-01-04). - * Graphics: Initial separation of font cache from graphics/nxterm. Now in - libnx/nxfronts where it can be shared with other graphics applications - (2017-01-05). - * Font cache: Fix a reference counting issue: count not be initialized - when font cache created. Fix initialization of a semaphore. Enforce - mutually exclusive access to the font cache Replace fixed-size array - with variable size link list. Font cache in libnx needs to use - context-specific memory allocators (2017-01-06). - * Add debug assertion in libdtoa to catch attempts to use floating point - output formats from within an interrupt handler. That will cause - assertions or crashes downstream because __dtoa will attempt to allocate - memory. From Pierre-noel Bouteville (2017-01-06). - * procfs: Correct to snprintf-related errors in fs_procfsproc.c. - Resolves issue #24 (2017-01-07). - * STM32F429i Discovery: Add support for NxWM on STM32F429i-Disco board. - From Alan Carvalho de Assis (2017-01-07). - * STM32F429i-DISCO: Enable keyboard input in nxwm configuration - (2017-01-07). - * STM32F429i-DISCO: Change NxWM cursor character from 137 (graphics - block) to 95 (underscore). NxWM is configured to use a 7-bit character - set so 137 is not a valid character code (2017-01-07). - * NX server: Correct message queue names. Should not be at /dev, but - rather relative to /var/mqueue (2017-01-08). - * NxWM configurations. If using a 7-bit character set, then the cursor - character cannot be 137 (graphic block). Use 95 (underscore) instead - (2017-01-08). - * packed_struct replaced by begin_packed_struct and end_packed_struct. - From Aleksandr Vyhovanec (2017-01-09). - * sched_note: Fix spinlock instrumentation. From Masayuki Ishikawa - (2017-01-12). - * SMP: Fix an error in critical section logic when performing a context - switch from an interrupt handler. The g_cpu_irqset bit was not being - set for the CPU so other CPUs did not know about the critical section - (2017-01-13). - * Kinetis: Added support for CHIP_MK60FN1M0VLQ12 chip. From Maciej - Skrzypek (2017-01-13). - * Kinetis: Fixed wrong MCG VDIV calculation on new NXP K60. From Maciej - Skrzypek (2017-01-13). - * Kinetis Serial: Fixed compile error when UART5 is selected. From Maciej - Skrzypek (2017-01-13). - * Kinetis: Need to set HAVE_UART_DEVICE when UART4 is selected. From - Maciej Skrzypek (2017-01-13). - * Kinetis MCG: Wrong FRDIV set in MCG_C1. From Maciej Skrzypek - (2017-01-13). - * Kinetis: New K60 has no Flex memory. From Maciej Skrzypek (2017-01-13). - * In all implementations of _exit(), use enter_critical_section() vs. - disabling local interrupts (2017-01-13). - * i.MX6: Corrects behavior of last SMP patch with i.MX6 (2017-01-13). - * SMP Signals: Fix some SMP signal delivery logic. Was not handling some - critical sections correctly and was missing logic to signal tasks - running on other CPUs (2017-01-14). - * STM32F103 Minimum: Add support for nRF24 on STM32F103-Minimum board. - From Alan Carvalho de Assis (2017-01-15). - * Kinetis: Add support for K64/K66 RTC lower half driver. From Neil - Hancock (2017-01-17). - * Networking: Fixed some issues that prevented ipv6 to work with ipv4 - enabled. From Pascal Speck (2017-01-18). - * STM32 Oneshot: Fix logic so that it can support multiple oneshot timers - (2017-01-18). - * STM32L4: Port fix for multiple oneshot timers from STM32. Also fixes a - few issues with original STM32 implementation (2017-01-18). - * SAM3/4: Add support for ATSAM4S4C. From Wolfgang Reißnegger (2017-01-18). - * Math library: Leverage optimized ARM functions from BSD license ARM file - (2017-01-19). - * Math library optimatizations for FPU only apply to ARMv8 which is not - yet supported (2017-01-20). - * Move optimized ARM memcpy functions from arch/arm/src/ to - libc/machine/. This is necessary for the PROTECTED and KERNEL build - modes. Otherwise, memcpy() will be built in to kernel space and not - accessible to applications (2017-01-20). - * libc: Fix ARMv7-A/R memcpy assembly (2017-01-20). - * ARM memcpy(): Use DWord vs. HWord offset. ARM 32-bit instructions must - be aligned to DWord boundaries and this gives us more range in the jump - tables (2017-01-20). - * Fix a compile error: in sched_cpuload.c:Line136, the variables ts and - secs are not defined if CONFIG_CPULOAD_ONESHOT_ENTROPY = 0. However, - these variables are used regardless of CONFIG_CPULOAD_ONESHOT_ENTROPY at - lines~180:onwards. From Rajan Gill (2017-01-22). - * CPU load: Correct computation of the nominal period to use when the - source is a oneshot timer (2017-01-22). - * Kernel Modules: Module initializer may now return a symbol table - (2017-01-22). - * Modules: Extend the module interface so that we can access symbols - exported by the module (2017-01-22). - * Shared Libraries: In the FLAT build mode, kernel modules may be used to - provide minimal shared library functionality (2017-01-22). - * Shared libraries: Add a non-standard dllfnc.h function to set the - symbol table (2017-01-23). - * Olimex-stm32-p407: Add a NSH protected build configuration; Enable - procfs/ in all configurations (2017-01-23). - * SMP: Fix timer related issues: Round robin and sporadic scheduling - were only being performed for tasks running on the CPU that processes - the system timer interrupt. Similarly, CPU load measurements were only - be processed for running on the CPU that receives the sampling interrupt - (2017-01-23). - * STM32 F7: Added missing ARCH_HAVE_RESET for F7. From David Sidrane - (2017-01-23). - * STM32: Add missing STM32_BKP_BASE. From David Sidrane (2017-01-23). - * Configurations that enable OSTEST must not disable signals (2017-01-24). - * Add missing sched_note_*() calls to sam4cm SMP functions (2017-01-24). - * Fix return value if x is NaN. From Aleksandr Vyhovanec (2017-01-25). - * MMCSD_SDIO: Only wait for card ejected if card detection is supported. - From Alan Carvalho de Assis (2017-01-26). - * LPC43 pinset definitions: Add more 1 bit to pinset to reach - SFSCLK0-SFSCLK3. Remove PINCONFIG_DIGITAL. From Alan Carvalho de Assis - (2017-01-26). - * sched/modules: Add support for dependencies between modules (2017-01-27). - * Back out use on inline functions to access 16-bit registers. The inline - functions were a work-around for misbehaving compiler years and years - ago. The mon standard macro-ized version should work just fine - (2017-01-27). - * Olimex STM32 P407: Add support for on-board microSD slot. Does not - work... Currently all commands to the SD card timeout (2017-01-28). - * libc/modlib: Add build a configuration logic for a shared module - library (2017-01-29). - * Module names are not needed in libc/modlib when the module library is - used only for shared library support (2017-01-29). - * Shared Libs: Implement module based shared libraries for the PROTECTED - mode build (2017-01-29). - * Typos withim mtd/ with Macronix MX25L. In NuttX/drivers/mtd/Make.defs - letters X between M and 25 are missing. Noted by Oleg Evseev - (2017-01-x30x). - * SAME70-Xplained: Clone some recent SAMV71-XULT changes (2017-01-30). - * Add capabilities() method to SDIO interface. Remove - CONFIG_SDIO_WIDTH_D1_ONLY. That should not be a global propertie, but - rather a capability/limitation of single slot when there may be multiple - slots (2017-01-31). - * Removed dmasupported() method from the SDIO interface. That is now a - bit in the capability set (2017-01-31). - * STM32F7 SDMMC: Add support for single bit operation on SDMMC2 - (2017-01-31). - * STM32F103-Minimum: Fix a compile error. - CONFIG_STM32_TICKLESS_ONESHOT_TIMER is only defined in TICKLESS mode. - Somebody has been hand editing .config files (2017-01-31). - * Timer logic: Add private function prototypes to eliminate a warning; - Functions should not be inline because the may recurse (2017-01-31). - * STM32F7 SDMMC: Make sure that all SDMMC configuration variables begin - with STM32F7_; Eliminate CONFIG_SDMMC1/2_DMA altogether. Does not - appear to be used (2017-01-31). - * STM32F429-DISCO: Move some board initialization logic that is not - usable because it lacks the configuration options to make it so - (2017-01-31). - * Cancellation points: Fix some backward logic in conditional compilation - (2017-02-02). - * Soft links: Add an implementation of readlink() (2017-02-03). - * inode_find: Now takes struct inode_desc_s type as input. That - structure includes some data storage. It was used within inode_find(), - but that means that the life of the data was the life of inode_find(). - That data must persist longer. It is now provided by the caller so that - the life of the data persists for the entire life of the caller - (2017-02-05). - * tools/noteinfo.c: A hack tool that I use to analyze some sched_note - output. Needs a home and may be useful to others (2017-02-05). - * Pseudo File System: Add support for soft links in the top-level pseudo - file system (2017-02-05). - * Updates to Kinetis SDHC driver. From Marc Rechté (2017-02-06). - * SDIO interface: Handle all possible DMA combinations in all SDIO drivers - (2017-02-07). - * up_timer_initialize() is named incorrectly. The prefix should be the - architecture name, not up_ since it is private to the architecture. - up_timerisr() is similarly misnamed and should also be private since it - is used only with the xyz_timerisr.c files (2017-02-07). - * MCG defines are based on the MCG feature configuration. We define the - bits as a common set of names. This means that an index may be added to - a name i.e. LOCK is LOCK0 as that is the superset name. From David - Sidrane (2017-02-07). - * Fixes illdefined BOARD_FR_DIV with BOARD_FRDIV from MCG. Original - BOARD_FR_DIV was never used - that is a good thing because the value ws - defined shifted and the code also shifted it. From David Sidrane - (2017-02-07). - * Added MCG settings that are defined on the K64 SoC. Added - BOARD_MCG_C2_FCFTRIM and BOARD_MCG_C2_LOCRE0 to configure the MCG_C2 - register cleanup of some comments. From David Sidrane (2017-02-07). - * Better granualarity and errno checking of the board's MCG settings. - Allow for complete MCG_C2 definition from the boart.h file. Moved - #ifdef out of code by setting default values. Allow for individule bit - setting in MCG_C2 for BOARD_EXTCLOCK_MCG_C2, BOARD_MCG_C2_FCFTRIM, - BOARD_MCG_C2_LOCRE0. Added range and sanity checking. From David - Sidrane (2017-02-07). - * Cosmetic changes from review of last PR (2017-02-07). - * C library: Remove comments blocks before empty sections (2017-02-08). - * C Library: Add a very limited, first step implementation of setvbuf(). - This is a collaborative effort. Alan Carvalho de Assis did the initial - prototype (2017-02-08). - * setvbuf: Add support for configuration of line buffering (2017-02-08). - * Bamboo-200E: Add netnsh configuration. From Alan Carvalho de Assis - (2017-02-08). - * USBMSC: Always set LUN readonly flag. From Wolfgang Reißnegger - (2017-02-08). - * drivers/lcd: ssd1306_configspi() must have global scope (2017-02-09). - * SIM: Add readlink and setvbuf to nuttx-names.dat (2017-02-09). - * setvbuf: Add support for disabling I/O bufferin (2017-02-09). - * setvbuf: Fix some compile errors in first build of logic to - enable/disable buffering (2017-02-09). - * C Library: Clean-up buffer selections in Kconfig (2017-02-09). - * sem_open(): Fix a compiler error introduced with the setvbuf() changes - (2017-02-09). - * MMC/SD SDIO: Some drivers need to start DMA before sending CMD24 and - some AFTER. From Alan Carvalho de Assis (2017-02-09). - * Kinetis SDHC driver fixes. From Marc Rechté (2017-02-09). - * Bambino-200E: Use .elf extension on all executables. From Alan Carvalho - de Assis (2017-02-09). - * Kinetis: Add support for K66 family. From David Sidrane (2017-02-09). - * Created a kinetis MCG versioning scheme pulled in by Kinetis chip.h - - The motivations is to version the IP blocks of the Kinetis K series - family of parts. - - This added versioning and configuration features for the Kinetis MCG IP - block. - - It is envisioned that in the long term as a chip is added. The author - of the new chip definitions will either find the exact configuration in - an existing chip define and add the new chip to it Or add the MCG - feature configuration #defines to the chip ifdef list in - arch/arm/include/kinetis/kinetis_mcg.h In either case the author should - mark it as "Verified to Document Number:" taken from the reference manual. - - The version KINETIS_MCG_VERSION_UKN has been applied to most all the - SoCs in the kinetis arch prior to this commit. - - The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12, All K64 and K66 - which not have Verified MCG configurations. - - From David Sidrane (2017-02-09). - * Kinetis chip Adding K66 and including MCG versioning. This includes - arch/arm/include/kinetis/kinetis_mcg.h to bring in the MCG versioning - and defines the KINETIS_K66 family for the added SoCs: - - --------------- ------- --- ------- ------- ------ ------ ------ ----- - PART NUMBER CPU PIN PACKAGE TOTAL PROGRAM EEPROM SRAM GPIO - FREQ CNT FLASH FLASH - --------------- ------- --- ------- ------- ------ ------ ------ ----- - MK66FN2M0VMD18 180 MHz 144 MAPBGA 2 MB — — KB 260 KB 100 - MK66FX1M0VMD18 180 MHz 144 MAPBGA 1.25 MB 1 MB 4 KB 256 KB 100 - MK66FN2M0VLQ18 180 MHz 144 LQFP 2 MB — — KB 260 KB 100 - MK66FX1M0VLQ18 180 MHz 144 LQFP 1.25 MB 1 MB 4 KB 256 KB 100 - - From David Sidrane (2017-02-09). - * STM32: Fixes the bkp reference counter issue. From David Sidrane - (2017-02-09). - * STM32F7: Fixes the bkp reference counter issue. From David Sidrane - (2017-02-09). - * C Library: Add setbuf() which is a trivial wrapper around setvbuf() - (2017-02-09). - * tools/mkconfig.c: Add logic to keep all of the buffering options in sync - (2017-02-10). - * VFS rename: Fix issues with rename to subdirectories and some softlink - issues (2017-02-11). - * Add logic to VFS rename: If target of rename exists and is a directory, - then the source file should be moved 'under' the target directory. - POSIX also requires that if the target is a file, then that old file - must be deleted (2017-02-11). - * rename: An inode with no operations should be treated like a directory - for the purposes of rename (2017-02-12). - * rename(): Correct more issues. (1) Move to the root directory in the - pseudo file system, (2) Fix path naming calculation when the path is the - root directory of a mounted file system, and (3) don't do the rename if - the source and destination of the rename are the same (2017-02-12). - * Add basic fstat() support (2017-02-12). - * Add fstat support to binfs (2017-02-12). - * fstat: Add fstat() support to romfs (2017-02-12). - * fstat: Add fstat() support to unionfs (2017-02-12). - * I found an issue inside the cp15_coherent_dcache function in file, - arch/arm/src/armv7-r/cp15_coherent_dcache.S. - - The "mcr CP15_BPIALLIS(r0)" instruction is used for invalidating entire - branch predictor. But the problem is, since this is the generic code - and can be called on any armv7-r architecture based CPU's. It is a - problem, if this instruction is called in uni processor configuration. - Because, BPIALLIS (c7, 0, c1, 6) instruction is only added as part of - the "Multiprocessing Extensions" (As per ARM® Architecture Reference - Manual /ARMv7-A and ARMv7-R edition) - - So in my opinion, this instruction should be under SMP configuration. In - non-SMP configuration this instruction could become undefined. - - From Manohara HK (2017-02-13). - * fstat: Add fstat() support to tmpfs (2017-02-13). - * fstat: Add fstat() support to nxffs (2017-02-13). - * fstat: Add fstat() support to nfs (2017-02-13). - * NFS: Use clock_gettime() instead of deprecated gettimeofday() - (2017-02-13). - * fstat: Add fstat() support to FAT. From Alan Carvalho de Assis - (2017-02-13). - * ROMFS: stat() and fstat() should always indicate that directories are - executable (2017-02-13). - * Kinetis SDHC - Enable clock after selected. From David Sidrane - (2017-02-14). - * Kinetis SPI and I2C are 0 based. The K whole family line has max 4 or - each. But the supported parts have the maximums listed below: - - K46 and K66 3 SPI SPI0-SPI2 - K46 and K66 4 I2C I2C0-I2C3 - - From David Sidrane (2017-02-10). - * Add support for NXP Freedom-k66f development board. From David Sidrane - (2017-02-14). - * Kinetis: Define Alternate addresses for IP blocks in both AIPS0 & - AIPS1. Added ALT version of RNGA, FTM2, DAC0 as a facility to later - define secondary access via AIPS1 to these peripherals. From David - Sidrane (2017-02-14). - * Kinetis: Add support for K66. From David Sidrane (2017-02-14). - * procfs: stat() left several fields in uninitialized state (2017-02-14). - * hostfs: Add support for fstat() (2017-02-14). - * procfs: Add support for fstat() (2017-02-14). - * smartfs: Add support for fstat() (2017-02-14). - * Kinetis Freedom K66F: Add Ethernet support. From David Sidrane - (2017-02-14). - * LPC43 serial: Correct conditional logic that selects /dev/ttySN. - Problem noted by Alan Carvalho de Assis (2017-02-14). - * Add usbnsh config to Bambino 200E board. From Alan Carvalho de Assis - (2017-02-14). - * procfs: Most stat() implementations were not initializating the - st_atime, st_ctime, and st_mtime fields (2017-02-15). - * Kinetis Support RMII clock source select. This defined the RMII clock - source select bits and allows the selection to be made via Kconfig. - From David Sidrane (2017-02-15). - * Kinetis PWM: Add FTM3 to PWM. From David Sidrane (2017-02-15). - * Kinetis:Freedom-K66F uses ENET_1588_CLKIN as RMII clock. From David - Sidrane (2017-02-15). - * Fix for SAMv7 SPI: DLYBS value was calculated, but never written to any - registers. This led to incorrect timings on the bus. From Michael - Spahlinger (2017-02-16). - * C library: Add swab() (2017-02-16). - * C library: Add strtoimax and strtoumax (2017-02-16). - * C library: Add ffs(), rindex(), an index(). Add strings.h. Move - strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they belong in - strings.h.h, not string.h. bzero, bcmp, and bcopy are legacy functions; - the contemporary counterparts should be used instead (2017-02-16). - * Allow board to configure HSE clock in bypass-mode. This is needed to - enable HSE with Nucleo-F746ZG board. From Jussi Kivilinna (2017-02-17). - * C library: Add fstatfs(); fix a reference counting error in fstat() - (2017-02-17). - * Update cwchar. Add cwctype (2017-02-17). - * Add setbuf and setvbuf to cstdio (2017-02-17). - * Port STM32L4 SAI driver from MDK (2017-02-17). - * STM32L4: Bring power management logic from Motrola MDK into NuttX - (2017-02-18). - * 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 - 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 - Rechté (2017-02-19). - * STM32 F7: stm32_allocateheap: allow use DTCM memory for heap. STM32F7 - has up to 128KiB of DTCM memory that is currently left unused. This - change adds DTCM to main heap if CONFIG_STM32F7_DTCMEXCLUDE is not - enabled. From Jussi Kivilinna (2017-02-20). - * This should resolve issue #30: Audio Tone Generator and PWM Multiple - Output Channel options. I don't actually have a setup to verify it, - however (2017-02-20). - * drivers/tone.c: 50% duty needs to be expressed a a fixed precision - number (2017-02-21). - * Kinetis: Created a kinetis SIM versioning scheme pulled in by Kinetis - chip.h. - - The motvations is to version the IP blocks of the Kinetis K series - family of parts. - - This added versioning and configuration features for the Kinetis SIM IP - block. - - It is envisioned that in the long term as a chip is added. The author - of the new chip definitions will either find the exact configuration in - an existing chip define and add the new chip to it Or add the SIM - feature configuration #defines to the chip ifdef list in - arch/arm/include/kinetis/kinetis_sim.h In either case the author should - mark it as "Verified to Document Number:" taken from the reference - manual. - - The version KINETIS_SIM_VERSION_UKN has been applied to most all the - SoCs in the kinetis arch prior to this commit. - - The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12, All K64 and K66 - which not have Verified SIM configurations. - - From David Sidrane (2017-02-21). - * Created a kinetis PMC versioning scheme pulled in by Kinetis chip.h. - - The motivation is to version the IP blocks of the Kinetis K series - family of parts. This added versioning and configuration features for - the Kinetis PMC IP block. It is envisioned that in the long term as a - chip is added. The author of the new chip definitions will either find - the exact configuration in an existing chip define and add the new chip - to it Or add the PMC feature configuration #defines to the chip ifdef - list in arch/arm/include/kinetis/kinetis_pmc.h In either case the - author should mark it as "Verified to Document Number:" taken from the - reference manual. - - The version KINETIS_PMC_VERSION_UKN has been applied to most all the - SoCs in the kinetis arch prior to this commit. - - The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12, - CONFIG_ARCH_CHIP_MK20DXxxxVLH7 All K64 and K66 have been verified PMC - configurations. From David Sidrane (2017-02-22). - * Kinetis: kinetis_clockconfig uses the correct ACKISO. ACKISO is located - in the PMC_REGSC on the majority of the Kinetis SoCs. With the exception - of the MK40DXxxxZVLQ10 where ACKISO is located in LLWU_CS (2017-02-22). - * Kinetis: Refactor you use SIM_SOPT2_PLLFLLSEL, added warning. The - warning has been added because: SIM_SOPT2_PLLFLLSEL is a clock selection - that may feed many clock subsystem: USB, TPM, SDHCSRC, LPUARTSRC. - Therefore, there needs to be a global board level setting to select the - source for SIM_SOPT2_PLLFLLSEL and then derive all the sub selections - and proper fractions/divisors for each modules clock. From David - Sidrane (2017-02-22). - * Add support to QEncoder on STM32F103Minimum board. From Alan Carvalho - de Assis (2017-02-23). - * Olimex STM32 p407: Add external SRAM support. Unfortunately not usable - or testable unless you also disable the serial console (2017-02-23). - * drivers/spi/Kconfig: There is too much SPI in the configuration menu; - SPI Driver Support menu is empty. From Maciej Wójcik (2017-02-23). - * Kinetis: SIM add paramiterized SIM_CLKDIVx_xxFRAC|DIV macros. The makes - for cleaner board definitions. From David Sidrane (2017-02-23). - * kinetis_enet.c add #define for number of loops for auto negotiation to - complete. From Marc Rechté (2017-02-23). - * STM32F4 Discovery: Fix issues with QEncoder support. From Alan Carvalho - de Assis (2017-02-23). - * sigtimedwait: When timer expires, up_unblock_task() is called. This is - okay in the single CPU case because interrupts are disable in the timer - interrupt handler. But it is insufficient in the SMP case. enter_ and - leave_critical_section() must be called in order to manage spinlocks - correctly (2017-02-23). - * Fix QEncoder driver, based on STM32L4 driver. From Alan Carvalho de - Assis (2017-02-23). - * STM32 QEncoder. Enable clocking to the timer on QE setup; disable clock - on QE teardown (2017-02-23). - * Kinetis: Extend clockconfig to support SOPT2_PLLFLLSEL and - SIM_CLKDIV3. A board.h file can now specify the: 1) - BOARD_SOPT2_PLLFLLSEL to select the output of the SIM_SOPT2 MUX from: - MCGFLLCLK, MCGPLLCLK, USB1PFD, and IRC48MHZ. 2) If it defines - BOARD_SIM_CLKDIV3_FREQ then it must define BOARD_SIM_CLKDIV3_PLLFLLFRAC - and BOARD_SIM_CLKDIV3_PLLFLLDIV which wil be used to cpnfigure - SIM_CLKDIV3 [PLLFLLFRAC, PLLFLLDIV]. From David Sidrane (2017-02-23). - * Kinetis serial: Added configurable 1|2 stop bits. HAVE_SERIAL_CONSOLE - -> HAVE_UART_CONSOLE to be consistent with HAVE_LPUART_CONSOLE naming. - From David Sidrane (2017-02-23). - * Kinetis: Add LPUART serial driver and Clock configuartaion to - freedom-k66f board. Pin out LPUART0 for testing. Define - BOARD_SOPT2_PLLFLLSEL ti select MCGPLLCLK. Define - BOARD_SIM_CLKDIV3_FREQ etal to provide BOARD_LPUART0_FREQ. From David - Sidrane (2017-02-25). - * QEncoder: Add mechanism to assure that architecture-specific IOCTL - commands do not overlap (2017-02-25). - * include/nuttx/analog: Add an ioctl.h header file to coordinate analogic - driver IOCTL commands (2017-02-25). - * CAN: Add infrastructure to assure that all CAN IOCTL commands are - uniquely numbered (2017-02-25). - * Wireless and TSC: Add infrastructure to assure that all IOCTL commands - are uniquely numbered (2017-02-25). - * Add basic support for the STM32F334 and Nucleo F334R8 board. From - Mateusz Szafoni (2017-02-16). - * SAM3/4: GPIO bit numbering typo fixes. From Wolfgang Reißnegger - (2017-02-26). - * Add SDCard support over SPI on STM32F103-Minimum board. From Alan - Carvalho de Assis (2017-02-26). - * option to enable Memory Card debug output was hidden with SD cards - connected through SPI. From Maciej Wójcik (2017-02-27). - * Kinetis serial: Fixed up_rxint - did not disable the RX interuppts. - There was an OR where and AND NOT was needed. From David Sidrane - (2017-02-27). - * Kinetis:Add the configuring SIM_CLKDIV2[USBFRAC, USBDIV] in - kinetis_clockconfig. If a board.h provides BOARD_SIM_CLKDIV2_FREQ it - will configure the SIM_CLKDIV2 based on the additional provided - BOARD_SIM_CLKDIV2_USBFRAC and BOARD_SIM_CLKDIV2_USBDIV. The reason for - doing this globaly is that the output the SIM_CLKDIV2 divisor may be - also used for other IP blocks in future configurations (as is done for - SIM_CLKDIV3). From David Sidrane (2017-02-27). - * Kinetis: Refactor clocking in kinetis_usbdev. (1) Removed - SIM_CLKDIV2[USBFRAC, USBDIV] setting as it is now, done in - kinetis_clockconfig, (2) Use BOARD_USB_CLKSRC to select the clock source - to the USB block, (3) Removed CONFIG_TEENSY_3X_OVERCLOCK from the driver - as the board.h will now provide BOARD_SIM_CLKDIV2_USBDIV and - BOARD_SIM_CLKDIV2_USBFRAC to the kinetis_clockconfig. From David - Sidrane (2017-02-27). - * Kinetis: Use BOARD_xxxx to drive system clocking: (1) Shifted the clock - speed of MK20DX128VLH5 to 48 MHz to be able to uses USB. (2) Set - BOARD_OUTDIV3 to 0 - there is no BOARD_OUTDIV3 on a MK20DX128VLH5 or - K20DX256VLH7, (3) Added BOARD_SOPT2_PLLFLLSEL and BOARD_SOPT2_FREQ along - with settings for BOARD_SIM_CLKDIV2_USBFRAC and BOARD_SIM_CLKDIV2_USBDIV - base on the BOARD_SOPT2_FREQ. From David Sidrane (2017-02-27). - * Kinetis: Define uart and lpuart versions of [early]serialinit. Add - serial init to centralize UART/LPUART management. Use kinetis_ not up_ - where arch specific. Defined kinetis_[lp]uart_[early]serialinit to - facilitate bring up both UARTs and LPUARTs as devices and a console. - Support ordering and merging of serial devices names. From David - Sidrane (2017-02-27). - * Adapt more drivers to utilize the IRQ argument feature (2107-02-28). - * irq_attach() and type xcpt_t. irq_attach now accepts a argument that - will be provided to the interrupt handler when the interrupt ocurrs. - This affects many files by replace ad hoc parameter passing logic with a - 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 - (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 - recent changes to the interrupt argument passing (2017-03-02). - * arch_phy_irq: Now returns int instead of xcpt_t oldhandler. The - oldhandler is useless after the changes to the interrupt argument. Also - access an argument for the PHY interrupt. phy_notify.c driver changed - to exploit new interrupt argument passing (2017-03-02). - * STM32/F7/L4: EXTI PVD function no longer returns the xcpt_t oldhandler. - There value is useless and dangerous after the recent changes to - interrupt argument passing (2017-03-02). - * STM3 L4: EXTI COMP function no longer returns the xcpt_t oldhandler. - There value is useless and dangerous after the recent changes to - interrupt argument passing (2017-03-02). - * STM32/F7/L4: EXTI ALARM function no longer returns the xcpt_t - oldhandler. There value is useless and dangerous after the recent - changes to interrupt argument passing (2017-03-02). - * Add support to USB Device on STM32F103-Minimum board. From Alan - Carvalho de Assis (2017-03-02). - * Kinetis GPIO: Pin IRQ logic no longer returns the xcpt_t oldhandler. - There value is useless and dangerous after the recent changes to - interrupt argument passing (2017-03-02). - * STM32 Ethernet: Need two work structures so that pending poll work is - not lost when an interrupt occurs (2017-03-02). - * Kinetis-L GPIO: Pin IRQ logic no longer returns the xcpt_t oldhandler. - There value is useless and dangerous after the recent changes to - interrupt argument passing (2017-03-02). - * PIC32MX: Pin IRQ logic no longer returns the xcpt_t oldhandler. There - value is useless and dangerous after the recent changes to interrupt - argument passing (2017-03-02). - * PIC32MZ: Pin IRQ logic no longer returns the xcpt_t oldhandler. There - value is useless and dangerous after the recent changes to interrupt - argument passing (2017-03-02). - * STM32 L4: Pin IRQ logic no longer returns the xcpt_t oldhandler. There - value is useless and dangerous after the recent changes to interrupt - argument passing (2017-03-02). - * Tiva: Pin IRQ logic no longer returns the xcpt_t oldhandler. There - value is useless and dangerous after the recent changes to interrupt - argument passing (2017-03-02). - * board_button_irq: Button IRQ logic no longer returns the xcpt_t - oldhandler. There value is useless and dangerous after the recent - changes to interrupt argument passing (2017-03-02). - * stm32_gpiosetevent: GPIO IRQ logic no longer returns the xcpt_t - oldhandler. This value is useless and dangerous after the recent - changes to interrupt argument passing (2017-03-02). - * Implements support for smaller interrupt tables as described at - http://www.nuttx.org/doku.php?id=wiki:howtos:smallvectors . This is - largely the work of Mark Schulte. However, I have made several changes - to match with the Wiki document. If you like the change, thanks go to - Marc. For any errors you can blame me (2017-03-03). - * Experimental change to STM32 Ethernet driver a success. Porting change - to all other Ethernet drivers (2017-03-03). - * FS: Don't build block driver proxy if PSEUDOFS_OPERATIONS are disabled - (2017-03-04). - * drivers/net: Add framework for serialization in the case where multiple - low-priority work queues are used (2017-03-04). - * net/drivers/skeleton.c: Back out serialization changes of the last - commit. They are not necessary in the skeleton.c example because the - calls to net_lock() at the beginning of each worker function will - enforce serialization (2017-03-04). - * STM32F33XX DAC, OPAMP, COMP and ADC headers. From Mateusz Szafoni - (2017-03-04). - * STM32 F7 SDMMC: Use new interrupt argument facility (2017-03-05). - * stm32f33xxx: Add HRTIM header file. From Mateusz Szafoni (2017-03-05). - * sendfile(): Fix error introduced with commit - ff73be870e38959b0aaee5961dc47b4b58dc2d86. Noted by Maciej Wójcik - (2017-03-05). - * Kinetis: Eliminate warning when USE_EARLYSERIALINIT is not defined - (2017-03-05). - * STM3210E-EVAL: Eliminate a warning. Return type of board_button_irq is - now type int (2017-03-05). - * dk-tm4c129x: Remove warning for variable that is set but not used - (2017-03-05). - * SAMA5D4-EK: Eliminate warning. Correct type of return value - (2017-03-05). - * STM32F103 Minimum: Eliminate warning stm32_usbdev.o givne twice in same - rule (2017-03-05). - * STM32 OTGHS host: stm32_in_transfer() fails and returns NAK if a - short transfer is received. This causes problems from class drivers - like CDC/ACM where short packets are expected. In those protocols, - any transfer may be terminated by sending short or NUL packet. From - 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 - assert. From Janne Rosberg (2017-03-07). - -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 dependent 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. Suggested 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: Initialization. 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 overflow. 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 descriptions 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 configuration - (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 Rajan Gill (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-21). - * 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 unused, so trying to erase a sector from the first - bank was actually 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 synchronize 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 - Rajan Gill (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-27). - * 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 should 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-17). - * 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-30). - * 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/extended 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 application '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 memory 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-09-06 Gregory Nutt - - * Fix ELF loader up_checkarch on ARM arch. From Cristian Condurache - (2017-05-09). - * Kinetis: Disable MPU when not in protected mode. The hardware reset - state of the the MPU precludes any bus masters other than DMA access - to memory. Unfortunately USB and SDHC have their own DMA and will not - have access to memory in the default reset state. This change - disabled the MPU if present on system startup. From David Sidrane - (2017-06-02). - * Kinetis: teensy-3.x Define USBOTG-FS Read from FLASH access in board - config. Allow the board config to define the USBOTG-FS to have Read - access to FLASH. From David Sidrane (2017-06-02). - * Kinetis: usbdev clean up ensuring proper use of HW. Remove magic - numbers from code, documented the use of undocumented bits. Remove - comments and code that were not appropriate for this hardware. - Removed ifdef that's that were always compiled and removed code - blocks that were never compiled. Ensure proper access order to - hardware. Per the reference manual: disable endpoints prior to - configuring buffer descriptor, then enable endpoints Reorganize - interrupt processing order to offload data after processing errors. - Reorganize initialization so that there is a clear initialization - phase, reset phase for both the hardware and software structures. By - breaking the initialization into smaller pieces, the reset interrupt - only resets the resources within the controller that should be reset. - Rework suspend and resume logic so they perform properly. Made attach - and detach functions optional. As they do not make sense for a bus - powered device. Ensured the calls to up_usbinitialize - up_usbuninitialize do not violate the USB spec. From David Sidrane - (2017-06-02). - * WIP: wireless/ieee802154: More work on association/beacon-enabled - networks. From Anthony Merlino (2017-06-02). - * We developed a huge Changeset over a year ago to make USB Composite - configuration dynamical and be able to instantiate the CDCACM - multiple times inside this device. We use this feature to switch - between one in normal and up to three CDCACMs in maintenance boot. - The control path starts in boardctl.c where the configuration for the - device is constructed. There are still a few issues which I'll ask - you to have a look at before this beast can be merged. (1) To be - able to construct the data dynamically I have changed some - USB-Structs to be packed. Maybe there are additional structs to - change (just for completeness – not for current functionality). (2) - I've added the Macro COMPILE_TIME_ASSERTION two times (in - usbmsc_desc.c and in cdcacm_desc.c) to stay private. Maybe you’ll - find a better place. It’s used to check the size of the structs - against the assumptions. (3) I've changed the interface for some - USB-Functions to receive also the dynamic configuration. Maybe this - can be done more elegant. (4) The original NuttX (without the patch) - seems to have problems with a Composite device holding a CDCACM and - an MSC. The USB SET CONFIGURATION request does not to work at all. - This makes the test fail under Windows and under Linux. Applying this - patch doesn’t change anything – because it only changes the - configuration – not the behavior. Maybe you’ll have a look at - this problem before applying the patch. From Frank Benkert - (2017-06-01). - * power: battery_charger: add ioctl for charging input current. From - Juha Niskanen (2017-06-06). - * MTD FLASH drivers: The byte write method of several drivers had a - cloned error: It was not locking the bus while performing byte write - operations (2017-06-06). - * Kinetis:sim ensure isolation of clock dividers for 0 value case. - This fixes a bug were a SoC does not have a clockdivN register and - passes a 0 for the init value. This prevents overflow of the 0 - decremented to -1 (0xffffffff) spilling over to other clockdivN - feilds. From David Sidrane (2017-06-06). - * teensy-3.x:Removed call to khci_usbattach. The call is not need by - the driver if CONFIG_USBDEV_BUSPOWERED=y. The class register will - enable the soft connect pull up. The khci_usbattach call only set a - flag, and that flag is only tested in the class register. On a USB - powered device if we are running we are attached. From David Sidrane - (2017-06-06). - * teensy-3.x:Refreshed config and made board self powered. From David - Sidrane (2017-06-06). - * Kinetis:USB-FS driver. Removed the notion of attached. The - khci_usbattach is call early in the init either in board_initialize or - in board_app_initialize. In either case it is always done prior to the - the class register. Therefore the khci_usbattach call only set a - flag, and that flag is only tested in the class register. The class - register will enable the soft connect pull up. From David Sidrane - (2017-06-06). - * Kinetis:Fixed waning for kinetis_mpudisable. Missing header file - added. From David Sidrane (2017-06-06). - * STM32L4: Ad support for the STM32L475 family. Incomplete -- still - needs pinmap, rcc, otgfs, syscfg (2017-06-08). - * STM32L4: Add L475 syscfg register definitions (2017-06-08). - * STM32L4: Add STM32L475 RCC definitions/logic (2017-06-08). - * STM32L4: Add STM32L475 OTGFS header file. Not fully reviewed - (2017-06-08). - * STM32L4: Add STM32L475 pinmap. Initial cut is just the the L476 - pinmap with unsupported devices removed (2017-06-08). - * configs/stm32f103-minumum SPI: SPIDEV_WIRELESS used when this has - changed to SPIDEV_CONTACTLESS. From Nicolas Estibals (2017-06-08). - * stm32f103-minimum: Add GPIO device driver example for - STM32F103-Minimum. This change eadds the initialization needed by - stm32f103-minimum board to support the NuttX GPIO Subsystem. From - Alan Carvalho de Assis (2017-06-08). - * STM32L4: Remove some C++ style comments (2017-06-08). - * configs/: a few more places where SPIDEV_WIRELELSS should be - SPIDEV_CONTACTLESS (2017-06-08). - * kinetis: lpserial fixed header inclusion. From David Sidrane - (2017-06-08). - * Kinetis: SPI driver. From David Sidrane (2017-06-08). - * Fix C++ __guard implementation for ARM. The standard C++ ABI that - most platforms follow defines __guard to be 64 bits. The existing - implementation of libxx_cxa_guard.cxx follows this. However, the - 32-bit ARM C++ ABI defines it as 32 bits instead, and changes the - meaning slightly so only the lowest bit is used. This matters because - GCC creates guard symbols without regards to what libxx_cxa_guard.cxx - says. So on ARM, gcc allocates 4 bytes, but __cxa_guard_release - writes 8 bytes, zeroing out another unlucky variable nearby. Fix it - by special-casing 32-bit ARM in libxx_cxa_guard. From Jim Paris - (2017-06-09). - * vfs/poll: fix timeout calculation. From Jim Paris (2017-06-09). - * stm32f103-minimum: Fix a small BUG when reading from output pin. We - need a different read_ops to read from output pin. This patch fixes - the issue. From Alan Carvalho de Assis (2017-06-09). - * testbuild:Added -x to fail build on errors for CI. On CI we want to - know ASAP of a failure. This adds the -x (exit on build failures) - option to faclitate that behavior. Use ${MAKE} ${MAKE_FLAGS} for - make invocation. When -x is provided change MAKE_FLAGS to --silent - --no-print-directory and set -e. Ignore exit status when using grep - for checking for CONFIG_NXWM=y. From David Sidrane (2017-06-10). - * stm32f103-minimum: Use separated read_ops for GPIO interrupt pins. - From Alan Carvalho de Assis (2017-06-11). - * STM32F33: Fix hrtim definitions, Add beginning of HRTIM driver. From - Mateusz Szafoni (2017-06-11). - * STM32 HRTIM: add character driver. From Mateusz Szafoni - (2017-06-11). - * nucleo-f334r8: add HRTIM initialization. From Mateusz Szafoni - (2017-06-11). - * i.MX6: Fix a wrong parameter passed when calling irq_attach() in - imx_serial.c. From Masayuki Ishikawa (2017-06-12). - * Based on the last PR, review all serial driver vector attachment. - Found one additional error and updated all relevant drivers to - current interrupt parameter passing (2017-06-12). - * gethostbyname_r: Fix check for space in buffer (2017-06-12). - * MTD M2PX: If we READ while a write/erase is pending, the command is - ignored and the write/erase continues. If we don't catch this - situation we will return garbage to the user because the flash will - not execute the command. So READ MUST wait for write completion, and - before that, the bus must be locked since it's a precondition to - calling waitwritecomplete(). From Sebastien Lorquet (2017-06-12). - * MTD FLASH driver: Clone Sebastien Lorquet's m25px change to at25, - is25xp, ramtron, and sst25xx (2017-06-12). - * STM32 HRTIM: GPIOs configuration + EEV and FAULT structures. From - Mateusz Szafoni (2017-06-12). - * stm32/stm32l4 PWM: While attempting to output a 70 MHz square wave - from the timer output of a STM32 clocked at 140 MHz (which works fine - in baremetal C), I stumbled on what I believe to be an error in - arch/arm/src/stm32/stm32_pwm.c. Line 1304 we are told that: reload = - timclk / info->frequency; which I believe to be incorrect, it should - be: reload = timclk / info->frequency - 1; since starting to count - from 0, if I want to output half of the TIM clock, I must count to 1 - and not to 2. Surely enough, the original code did output 140/3=47 - MHz, while this correction does allow the output up to 70 MHz. I am - not sure this affects most users generating slow PWM (e.g. PX4) but - for frequencies close to the PCLK, indeed the difference becomes - significant. From JM (2017-06-13). - * mtd/w25: add missing locking and fix SPI_SELECT usage for - w25_unprotect. From Jussi Kivilinna (2017-06-13). - * mtd/w25: wait for BUSY flag to clear in w25_readid and w25_unprotect. - W25Q128 datasheet says that all instructions expect 'Read Status - Register' and 'Erase/Program Suspend' are ignored when BUSY flag in - status register is '1'. Therefore wait for busy flag to clear in - w25_readid() and w25_unprotect(). From Jussi Kivilinna - (2017-06-13). - * freedom-k66f: Use SPI driver. Initialize SPI1 on connector J6. No - real use, as of yet. From David Sidrane (2017-06-13). - * pthreads: Move functions from sched/pthreads to libc/pthreads. - These functions just coordinate other OS interface calls but are not - a fundamental OS interfaces and, hence, do not belong within the OS: - pthread_yield(), pthread_once(), pthread_cond_init(), - pthread_cond_destroy(), pthread_barrier_init(), - pthread_barrier_destroy(), and pthread_barrier_wait() (2017-06-14). - * multiple fixes for stm32f1xx RTC clock: (1) compile issues because - of missing RTC_MAGIC #defines, (2) missing functionality based on - RTC_MAGIC in RTC based on stm32_rtcounter.c, (3) IRQ setup from - up_rtc_initialize was later reset in up_irqinitialize, (4) write - access to backup registers without enabling access to backup domain, - (5) possible races in set/cancel alarm. tested with STM32F103C8 - only. device now wakes up from forced STANDBY mode by alarm. From - Leif Jakob (2017-06-14). - * stm32f103-minimum: Fix compiler error in MCP2415 logic (2017-06-14). - * Fixed ARMv7-M Toolchain setting. Cortex-M4 only have Single - Precision FPU. From Hidetaka Takano (2017-06-14). - * wireless/ieee802154: Lots of fixes, cleanup, new functionality. - Functional. From Anthony Merlino (2017-06-14). - * Fixed ARMv7-M Toolchain definition for Cortex-M4. From Hidetaka - Takano (2017-06-15). - * Improve configure.sh behavior: (1) enable to call from top - directory. (2) enable to designate direct path for config. (3) - install .gdbinit if the target has. From Hidetaka Takano - (2017-06-15). - * Update tools/configure.c to same functionality as configure.sh. Add - an array of optional file names. Currently, .gdbinit is the only - optional file but other things like IDE-specific project files might - need to be copied as well (2017-06-15). - * STM32 HRTIM: outputs enable, period and compare functions, cosmetics. - From Mateusz Szafoni (2017-06-15). - * tool/configure will now copy Eclipse project files if they are - present in the board directory file (2017-06-15). - * configs/.gitignore: Make sure that any .gdbinit, .project, or - .cproject files are ignore so that they are less likely to be - included in a patch or PR (2017-06-15). - * wireless/ieee802154: Fixes issue with wrong information being sent in - a rejected association response frame. From Anthony Merlino - (2017-06-15). - * wireless/ieee802154: Fixes issue with wrong information being sent in - a rejected association response frame. From Anthony Merlino - (2017-06-15). - * Rename configs/mrf24j40-radio to mrf24j40-mac (2017-06-15). - * clicker2-stm32: Add a configuration that will, eventually, be used - for 6loWPAN testing (2017-06-15). - * Fix a typo. And typo in Kconfig file is reflect in all defconfig - files (2017-06-15). - * SAMv7: TWIHS driver add reference counting. From David Sidrane - (2017-06-15). - * STM32 HRTIM: structures for deadtime and chopper, cosmetics. From - Mateusz Szafoni (2017-06-16). - * Clicker2-STM32: Enable RAMLOG in mrf24j40-6lowpan configuration. - Update README (2017-06-16). - * STM32 F4 FLASH: Enable/disable the flash write protection on any - sector. I have verified it to work on the stm32f427. From Sebastien - Lorquet (2017-06-16). - * STM32 SPI/I2S: Back out a bad pin mapping change from - 4ab2a3661ea57211f4ae12fe21c5de3454ba0ef2. Try to staighten out some - I2C3 and SPI3 pin configuration stuff (2017-06-16). - * Clicker2-stm32: Allow both IEEE 802.15.4 MAC character and network - devices to be registered (2017-06-16). - * Clicker2-STM32: Enable networking and 6loWPAN in the - mrf24j40-6lowpan configuration. Fix a couple of new 6loWPAN compile - issues revealed by this new configuration (2017-06-16). - * Merge remote-tracking branch 'origin/master' into ieee802154 - (2017-06-16). - * clicker2-stm32: mrf24j40-6lowpan configuration needs to enabled the - ieee 802.15.4 MAC network device as well (2017-06-16). - * stm32:flash add CONFIG_STM32_STM32F469 to list defining OPTCR1. From - David Sidrane (2017-06-17). - * ieee802.15.4 loopback: Better simulation addressing: sort, extended, - panid, and IP address conversion (2017-06-17). - * ieee802154 MAC: Fix a warning when compiled for a target with 64-bit - addressing (2017-06-17). - * Update some 6loWPAN configurations based on changes to NSH Kconfig - (2017-06-17). - * wireless/ieee802154: Fixes ordering of strings associated with - changed enum. From Anthony Merlino (2017-06-17). - * wireless/ieee802154: Renames mac802154_poll to mac802154_radiopoll to - be more obvious. Merges shared logic for sending data request - commands. Minor improvements and simplified logic. From Anthony - Merlino (2017-06-17). - * STM32 HRTIM: Faults and events configuration, timers mode - configuration, add hrtim ops, ADC triggering and DAC synch events. - From Mateusz Szafoni (2017-06-18). - * Add RFC6775 header file (2017-06-18). - * rfc6775: Fix header, add references, correct naming. This is NOT - ICMPv6, but part of 6LoWPAN that acts like ICMPv6 (2017-06-18). - * wireless/ieee802154: Renames Kconfig option, adds option for - unimplemented receiver priority. From Anthony Merlino (2017-06-18). - * STM32 HRTIM: Fix initialization bug, minor changes. Remove unneeded - definitions. From Mateusz Szafoni (2017-06-18). - * IEEE 802.15.4 MAC: Add list management and prioritization logic that - will permit the MAC layer to support bound multiple clients - (2017-06-18). - * ieee 802.15.4: Need counting protection on the logic that releases - the notification resources. Otherwise, notification handlers may be - operating with a stale pointer (2017-06-18). - * IEEE 802.15.4 Network Driver: Add logic to setup the network mask, - update the MAC-based IPv6 addressing when the network is brought up. - The idea is that addressing changes are supposed to occur only while - the network is down but won't take effect until the network is up - again (2017-06-18). - * Switches IEEE 802.15.4 based code to using byte arrays instead of - uint16_t values for short address and PAN ID. From Anthony Merlino - (2017-06-19). - * Throw error when error happens in the tcp_listen function. From - Roland Takacs (2017-06-19). - * Support listening sockets in the getsockname() function. From Roland - Takacs (2017-06-19). - * IEEE 802.15.4/6LoWPAN: Correct one more usage of saddr; also update a - README and the TODO list (2017-06-19). - * STM32 ADC: invalidate dma buffer before use. Missing invalidation - caused old samples being fetched from cache. From Jussi Kivilinna - (2017-06-19). - * Enable UDP example in clicker1-stm32/mrf24j40-6lowpan example, make - sure that CONFIG_EXAMPLES_UDP_NETINIT is set in all other - examples/udp configurations (2017-06-19). - * Use struct instead of pointer to the struct as sizeof argument in - memset in usbmsc.c. Otherwise it leads to error: argument to - 'sizeof' in 'memset' call is the same pointer type 'struct - usbmsc_lun_s *' as the destination. From Oleg Evseev (2017-06-19). - * /configs/clicker2-stm32/mrf24j40-6lowpan: Enables both client and - server UDP tests on the target; Update a README file (2017-06-19). - * wireless/ieee802154: Cleans up some endianness issues and fixes poll - request issue. From Anthony Merlino (2017-06-19). - * STM32 L4: Set I2C SDA and SCL pins to open drain mode. From Pekka - Ervasti (2017-06-20). - * STM32 L4: I2C4 was writing to wrong RCC registers. From Juha - Niskanen (2017-06-20). - * STM32 F7: Set I2C4 SDA and SCL pins to open drain mode. From Juha - Niskanen (2017-06-20). - * 6LoWPAN: Add debug statements; Update configuration, need to specific - 6LoWPAN compatible port numbers (2017-06-20). - * mac802154_req_data() can return without releasing the exclsem - (2017-06-20). - * STM32: Allow clock frequencies > 168 MHz on stm32f427/429. We need - to enable the power overdrive for this case. This patch allows the - required bits to be set in proper sequence. It also modifies the - local register access operations to allow more than 16-bit registers. - From Sebastien Lorquet (2017-06-20). - * Kinetis:I2C driver added I2C3, reference counting and reset. - Refactored the driver to support reference counting and reset added - I2C3. From David Sidrane (2017-06-20). - * ieee802154 network driver now retries if ieee802154_req_data() - returns EINTR. In clicker2-stm32 6LoWPAN configuration, increased - the number of TX descriptors to match then number of IOBs - (2017-06-20). - * Kinetis:I2C fixed mis-placed kinetis_i2c_endwait. Fixed accedently - replaced post with wait. From David Sidrane (2017-06-20). - * ieee802154_req_data: Don't modify the IOB until we are certain that - no EINTR errors will occur. Otherwise, the retry will fail - (2017-06-20). - * ieee802154 MAC: Free allocated TX descriptor if an error occurs after - the descriptor has been allocated (2017-06-20). - * ieee802154: Adds some missing elements to start support for - beacon-enabled networks. From Anthony Merlino (2017-06-20). - * ieee802154: Fixes Kconfig naming for number of TX desc and number of - notifications. From Anthony Merlino (2017-06-21). - * pthread_mutex_unlock(): Missing check for the case where - pthread_mutex_lock() is called when the mutex is not locked. In that - case, it would increment the underlying semaphore avove 1. This is - the fix for a problem noted by initialkjc@yahoo.com (2017-06-21). - * Missing option to select CONFIG_MAC802154_NNOTIF in Kconfig - (2017-06-21). - * clicker2-stm32/mrf24j40-6lowpan: Network now runs on LP work queue - (2017-06-21). - * STM32 L4 DMA: Correct USART3_RX bad channel definition. From Juha - Niskanen (2017-06-21). - * 6LoWPAN: Correct an error in calculating the location of the UDP - header (2017-06-21). - * wireless/ieee802154: Minor naming change to align better with coding - guidelines. From Anthony Merlino (2017-06-21). - * mrf24j40: Fix a warning (which is actually an error) (2017-06-21). - * 6LoWPAN: Correct a few addressing issues. The apps/examples/udp test - now appears to be fully functional. Also reserve two bytes at the - end of the frame for the FCS (2017-06-21). - * Do not search net device when all-zeros address is used. From Roland - Takacs (2017-06-22). - * Fix problems in last commit noted by Jeongchan Kim: last change - returned -EINVAL vs EINVAL; Treat the case where the mutex is already - unlocked just like the case where the mutex is held by another thread - -- return EPERM (2017-06-22). - * Logic of a353602aa9cc50ed958df11af35e3972101b5f40 only applies if - CONFIG_NETDEV_MULTINIC (2017-06-22). - * 6LoWPAN: Fixes needed when extended addressing is enabled. Currently - breaks short addressing. Loopback driver needs to initialize the MAC - meta data; Address decompression logic must have the MAC address to - handle the most common compression cases. Fix a src/dest address - confusion. Fix yet another addressing problem. That does it. - Several recent, proper bugfixes unmasked a few errors in the 6LoWPAN - logic. But I think full functionality is restored (2017-06-22). - * ieee802154: Stubs out some SCAN.request code. From Anthony Merlino - (2017-06-22). - * drivers/net/tun.c: Use critical section instead of semaphore in - tun_ifdown(). From Masayuki Ishikawa (2017-06-23). - * netdb: Fixed buffer size used for sending DNS queries should depend - on the configured DNS name size. From Ritjaina (2017-06-23). - * 6LoWPAN: Add missing IPv6 address creation to HC1 decode logic. Fix a - typo in an index that prevented use with HC1 and extended addresses - (2017-06-23). - * clicker2-stm32/mrg24j40-6lowpan: Add apps/examples/nettest. Refresh - all configurations that enable the nettest (2017-06-23). - * configs/sim/sixlowpan: Disable I2C tool. Not so useful in a - simulation (2017-06-23). - * 6LoWPAN: TCP logic was not obeying MTU packet size limitations. - Other TCP-specific issues also fixed. There remains a major - outstanding issue with ACK handling. Handle case where the local - address is zero (listen socket). Major re-architecting of TCP logic - to properly handle TCP stuf like ACKs and TCP windowing which were - not properly covered in the initial design. Still does not work; - hangs waiting of ACKs.Various fixes for a clean build if either TCP - or UDP are disabled. Given the current state of TCP, it is - recommended that you disable TCP. HC06, copy TCP header as though it - were data. Modify the the way TCP headers are transferred -- yet - again. TCP packet reassembly now seems to work OK, but no there now - does not seem to be a listener on the port (2017-06-24). - * IEEE802.15.4: Update RX statistics in network driver (2017-06-25). - * 6LoWPAN TCP: Fix more ACK handling, fix some callback flag settings. - Now the TCP test appears fully functional on 6LoWPAN (2017-06-25). - * ieee802154: Finishes transmission of beacon frames, and performing a - passive scan. From Anthony Merlino (2017-06-25). - * ieee80215: starts adding support for beacon-enabled networking. From - Anthony Merlino (2017-06-26). - * STM32L4 serial: Allow configuring Rx DMA buffer size. From Juha - Niskanen (2017-06-26). - * stm32f33xxx_rcc: cleanup + move hrtim clock source selection. fix - typo in stm32f33xxx_rcc.h. From Mateusz Szafoni (2017-06-26). - * 6LoWPAN: Fix duplicate and bad memcpy in loopback driver - (2017-06-26). - * Beacon logic: Damage control. Looks like something went wrong with - the PR merge (2017-06-26). - * ieee802154: Renames mac802154_indalloc to ieee802154_indalloc since - the functions are ieee802154 scoped functions. Improves notification - freeing functionality. Each notification now has a number of - clients. When the last client calls free, the notification is freed - back to the pool. From Anthony Merlino (2017-06-26). - * Clicker2-STM32: Add support for the Telnet client to the - mrf24j40-6lowpan configuration. Useless at the moment because the - NuttX telnet daemon does not yet support IPv6 (2017-06-27). - * ieee802154: Supports get request for coordinator address. From - Anthony Merlino (2017-06-27). - * ieee802154: Finishes beacon association functionality. From Anthony - Merlino (2017-06-27). - * smart: fix wrong freeing of device structure and use-after-free - issues on error paths. From Jussi Kivilinna (2017-06-28). - * net/: IPv6 packet input, Improve checks that the packet is destined - for us. There might be some odd things that can happen in certain - forwarding scenarios (2017-06-28). - * Fix -Werror=implicit-fallthrough on gcc7. From Julien Lecoeur - (2017-06-28). - * Fix warning implicit-fallthrough with arm-none-eabi-gcc 7. From - Julien Lecoeur (2017-06-28). - * 6LoWPAN: Add configurable support for 6LoWPAN star topology. With - this change, the endpoints which are the 'points' of the star will - forward all traffic to the coordinator. The coordinator is assumed - to be the 'hub' of the star. This function also implements IPv6 - forwarding. That forwarding implementation is minimal, just enough - to support the forwarding requirements of the star hub node - (2017-06-28). - * Clicker2-STM32 + net/: Add configurations to support the endpoint - and hub roles in a star topology. Fix various things that broke when - IPv6 forwarding was enabled (2017-06-29). - * 6LowPan: Change how the destination node address is handled in the - star endpoint configuration. When the star endpoint sent the IPv6 - destination address, the HC06 compression logic elided the address -- - meaning that it could be reconstructed by the recipient based on the - receiver's assigned short address. However, when intercepted by the - hub, the uncompressed address does not know the short address of the - recipient and instead uses the short address of the hub. This means - two things: (1) it looks like the hub address is the destination - address, and (2) the uncompressed UDP packet has a bad checksum. - This change assures that the destination IPv6 address is not elided - in the case of the star endpoint configuration (2017-06-30). - * 6LoWPAN: Fix a misconception about HC06 16-bit IPv6 address - compression (2017-06-30). - * 6LoWPAN fix compile issue in star hub configuration (2017-06-30). - * This change backs out the 'misconception' fix of - 76e6dba2e4bfab9515bef2866c5c59fd2a2f0fa0 and reimplements it in a way - that actually seems to work (2017-06-30). - * ieee802154: Random fixes to get beacon-enabled networking more - stable. From Anthony Merlino (2017-06-30). - * 6LoWPAN: TCP send logic was returning a failure in one case when, in - fact, the send was successful (2017-06-01). - * include/nuttx/net and net/: Move private prototype of - netdev_foreach() from the public include/nuttx/net/net.h to the - private net/netdev/ndetdev.h header file where it belongs - (2017-07-01). - * ieee802154: Cleans up some wireless logging. Fixes resp_waittime - field in ieee802154_macattr_u. Supports multiple incoming superframe - events. From Anthony Merlino (2017-07-01). - * Initial clang compile. From Goran Mekić (2017-07-01). - * Add CLANG definitions in Kconfig and Toolchain.defs (2017-07-02). - * samv71-xult: Add support for the MRF24J40 radio and create a - mrf24j40-starhub configuration. A few fixes to IPv6 and 6LoWPAN were - required to have 6LoWPAN and Ethernet coexisting. Untested and - expect some complexity in the bring-up. Put the serial console on - UART3, i.e., on a Arduino serial shield. Add missing MRF24J40 - bring-up logic (2017-07-02). - * stm32f4 discovery: Add logic to register the button driver and the - user led driver if so configured. From Jan Pobrislo (2017-07-02). - * samv71-xult: Fix SP0 vs. TWHS0 in mrf24j40-starhub/defconfig; fix - copy-paste errors in SPI initialization logic. Fix a typo in - MRF24J40 initialization (2017-07-02). - * drivers/wireless/ieee802154: Moved radios to individual - sub-directories. From Anthony Merlino (2017-07-03). - * stm32f40xxx_rtcc ISR register and write protection fix. From Eetu - Nevalainen (2017-07-03). - * samv71-xult/mrf24j40-starhub: Disabled CONFIG_BOARD_INITIALIZE; - Correct MRF24J40 interrupt edge. Fix MRF24J40 interrupt pin. Should - have pull-ups on interrupting inputs. Reset pins backward. Add - reset logic (but comment out because it is not necessary) - (2017-07-03). - * Add some partial IP forwarding logic. Add some fragments of TCP - forwarding logic (2017-07-03). - * IPv6 forwarding logic must decrement the TTL and drop the packet if - the hop limit is exceeded (2017-07-04). - * IP forwarding. Adds a little more structure to handle passing - packets received on one network device to another network device. - Logic is still incomplete (2017-07-04). - * UDP networking: The TTL (time to live) was not being set in the IPv4 - or IPv6 header unless the UDP socket was bound (2017-07-04). - * SAME70-Xplained: Add MRF24J40 support (2017-07-04). - * I've found that the interrupts aren't enabled since nothing updates - them after btn_poll() marks the file descriptor structure as being - polling. I've managed to make it work with this change. From Jan - Pobrislo (2017-07-04). - * include/nuttx/input: Remove bogus, obsolete keypad.h header file - (2017-07-04). - * net/udp: Fix a copy-paste error that could effect networking when - both IPv4 and IPv6 are enabled (2017-07-05). - * configs/Board.mk: Remove comment form end of line. In windows native - build, it appears to be trying to make that an extra parameter to the - AR command. From Jeff (2017-07-05). - * IP Forwarding: Flesh out TCP, UDP, and ICMPv6 packet forwarding - logic. In checking if the Ethernet MAC address is in the - ARP/Neighbor table, add an additional check to skip in the case of - CONFIG_NET_MULTILINK and the devices is not an Ethernet device. Add - IPv4 packet forwarding logic. Initial commit is an untested clone of - the IPv6 forwarding logic with a few minor logic changes for IPv4 - (2017-07-05). - * IP forwarding: Add optional support to forward broadcast and - multicast packets. Add missing ICMP support (2017-07-06). - * FS: Remove DEBUGASSERT() in block_proxy() because the flags are - cleared later. From Masayuki Ishikawa (2017-07-06). - * Eliminate a warning with arm-none-eabi-gcc 7.1.0. From Julien - Lecoeur (2017-07-06). - * In arch/arm/src/stm32/Kconfig when the CPU is a STM32F4, some - STM32_HAVE_xx with xx = {OTGFS, TIM3, TIM4, SPI3, I2S3, I2C3} are - selected by default. But for F410 these peripherals are absent. This - change add tests to check if the target CPU is an F410 or not and - selects according to the situation. This also adds a select for - STM32_HAVE_DAC1 present on this STM32 flavor. From Gwenhael - Goavec-Merou (2017-07-06). - * Rename CONFIG_STM32_STM32F40XX to CONFIG_STM32_STM32FXXXX since it is - used by F4 parts other than F40x (2017-07-06). - * STM32 Kconfig: 'unfold' some of the dependencies to provide better - long term configuration support. This also effective reverts the - recent 15b85738e7b5b9df6377f56e2a6a629346f87964 (2017-07-06). - * ICMPv6: Fix so that ICMPv6 can be used with 6LoWPAN (2017-07-06). - * IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC - addresses (2017-07-06). - * configs/Board.mk: Remove quotes from CONFIG_ARCH_FAMILY. Causes - problems with Windows native build. From Jeff (2017-07-06). - * IP forwarding design simplication; might save some memory. Also fix - some compile issues introduce with last commit in MULTINIC - configuration (2017-07-06). - * IP Forwarding: Another IP forwarding design simplification: Remove - an unnecessary field from state structure (2017-07-06). - * ICMPv6: Fix an address size calculation that was bungled in a recent - commit (2017-07-06). - * Networking: Improve naming and simplify some logic of previous - commit (2017-07-07). - * Networking: Correct some issues that prevent TCP from working - correctly when both IPv4 and IPv6 are enabled (2017-07-07). - * Add definitions that will permit TUN-only networking (2017-07-07). - * Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will - always be unique. It a error in netdev_register: it was not handling - device names properly when TUN is the only network device - (2017-07-07). - * sim/ipforward: Add an IP forwarding configuration using TUN devices - and apps/examples/tun (2017-07-07). - * In TUN driver, do all polling on worker thread. Otherwise, the stack - gets very deep (2017-07-07). - * IP forwarding: Major rearchitecting of the outgoing portion of the - IP forwarding logic necessary into to properly received - device-related forwarding events (2017-07-07). - * ieee802154: Changes mac locking/unlocking to aid in debugging. From - Anthony Merlino (2017-07-07). - * IP forwarding: Remove some unnecessary data structure definitions - (2017-07-07). - * Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou - (2017-07-08). - * Add Gwenhael's change to Makefile.win and update README.txt to - described the new make target (2017-07-08). - * IP forwarding: Two bugfixes (1) IPFWD poll event must be unique and - different from other device poll events otherwise, some other waiting - task might get the poll, (2) Add logic necessary to forward 6LoWPAN - packets (2017-07-08). - * net/procfs: Fix some spacing when both IPv6 and IPv4 are enabled - (2017-07-08). - * Networking routing tables: Fix a compilation error when IPv6 and - routing are enabled (2017-07-08). - * ICMPv6: Add 6LoWPAN and IP forwarding support (2017-07-09). - * configs/b-l475e-iot01a: Add basic support for the STMicro - b-l475e-iot01a board. From Simon Piriou (2017-07-09). - * IP Forwarding: Fix a compile problem when IP forwarding of broadcast - messages is enabled (2017-07-09). - * ieee802154: mac802154_purge_timeout was not unlocking MAC before - returning. From Anthony Merlino (2017-07-09). - * ieee802154: Minor bug fix. Purging of indirect transaction was not - unlocking MAC. From Anthony Merlino (2017-07-09). - * Makefile.*: Add CONFIG_ARCH_CHIP_* definitions to defconfig in - savedefconfig target. Last of the conversions of defconfig files to - compressed format (2017-07-09). - * ieee802154: Improves internal timer logic to handle work serially. - Before, the MAC timer used a watchdog to schedule work with the high - priority worker queue. However, since everything in the MAC is - supposed to be serialized through the use of the high priority work - queue, but the timer uses a watchdog, there are some unintended - consequences. To simplify, we now use the delayed work feature of the - work queue. From Anthony Merlino (2017-07-09). - * Update configure.sh, configure.bat, configure.c: With compressed - format, part of the installation requires that we run 'make - olddefconfig' to restore the uncompressed defconfig format. Also, - while I was at it, I also added options to select host platform on - configure command line (2017-07-10). - * tools/refresh.sh: Now runs make savedefconfig before copying the new - defconfig file in place; Also, added a new option --defaults. Since - the number of defaults that you now have to answer is so large, the - option lets you just accept the default values. So it works just - like --slilent but still prompts you for the decision to save or - discard the new defconfig file (2017-07-10). - * tools/tesbuild.sh: Fix missing $ before variable name (2017-07-10). - * configs/clicker2-stm32: Adds support for per-function-call stack - checking. From Anthony Merlino (2017-07-10). - * drivers/wireless/ieee802154/mrf24j40: Minor timing fix. Matches - recommended value in datasheet. Splits up driver into multiple files - to make it easier to navigate. Fixes issue with non-beacon enabled - mode. From Anthony Merlino (2017-07-10). - * IP Forwarding. Fix some errors in ipforwar.h when - CONFIG_NET_STATISTICS is enabled, but CONFIG_NETDEV_MULTINIC is not. - Add some forward references that are needed when - CONFIG_NETDEV_MULTINIC is not enabled. ipfwd_dropstats needs to - include errno.h (2017-07-10). - * STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu - Nevalainen. (2017-07-10). - * Build System: It is no longer necessary to have a unique Make.defs - file for each configuration. A board may share a common Make.defs - file in the scripts directory. Some duplicate Make.defs files - removed; Some common Make.defs file moved to the scripts/ - sub-directory (2017-07-10). - * configs/clicker2-stm32/mrf24j40-mac: Updates stack size to 2048 to - avoid random stack overflows when logging is enabled. From Anthony - Merlino (2017-07-10). - * Add small hello example for stm32f103-minimum board. From Alan - Carvalho de Assis (2017-07-10). - * ieee802154: Many small bug fixes clean-ups that help stabilize the - functionality. From Anthony Merlino (2017-07-10). - * SAML21 I2C driver. Developed for and contributed with permissin from - Filament company. From Alan Carvalho de Assis (2017-07-11). - * SAMD/L21 I2C: Another update... needs to use - enter/leave_critical_section vs. old irqsave/restore (2017-07-11). - * Remove duplicate Make.defs files in configs/. Move remaining, common - Make.defs files to board/scripts directory (2017-07-11). - * SAMD21: Fix some SPI-related issues. From Matt Thompson - (2017-07-11). - * ICMPv6 w/Autoconfiguration: Fix a compile issue introduced with - recent change for 6LoWPAN support (2017-07-11). - * sockets: Coding fix fix + minor structuring for forthcoming socket - interface logic (2017-07-11). - * drivers/wireless/ieee802154/mrf24j40/: Fixes bug causing radio to - cease transmitting. From Anthony Merlino (2017-07-11). - * ieee802154: Notify radio layer of changes in devmode. From Anthony - Merlino (2017-07-12). - * drivers/mrf24j40: Hook in setdevmode from newly added radio attribute - setting. From Anthony Merlino (2017-07-12). - * ieee802154: Set devmode to endpoint on MAC layer reset. From Anthony - Merlino (2017-07-12). - * I was having issues with the bus freezing up .. slaves holding SDL - low.. so I rewrote a good portion of the interrupt logic based on the - application notes from Atmel. One major improvement is using the - RXNACK flag in the STATUS register, which indicates that no device - responded to an address packet. Assuming that the chip will always - give an interrupt status, I believe it's possible to eliminate the - timer as well. From Matt Thompson (2017-07-12). - * SAMD/L21: Add a USB driver. Developed for Filament Inc. by Offcode, - LTD. From Janne Rosberg (2017-07-12). - * drivers/mrf24j40: Adds header guards to mrf24j40_reg.h. From Anthony - Merlino (2017-07-12). - * C library: Fix an error in mkstemp() the could result in an infinite - loop. From Alan Carvalho de Assis (2017-07-12). - * SAMD/L21: Need to preserve errno value across syslog() call - (2017-07-12). - * SocketI/F: Initial steps to add a socket interface to the - networking. Each address family will have an interface that - describes how to perform socket operations on that address family. - Currently only a couple of methods are defined in the table as a - proof of concept. More to come. Currently there are only tables for - the INET/INET6 family, the Unix LOCAL family, and the raw PACKET - family. Hopefully there will be AF_IEEE802154 and AF_BLUETOOTH - coming down the pike. Add recvfrom() method to interface - (2017-07-12). - * ieee802154: Fixes setting devmode logic. From Anthony Merlino - (2017-07-13). - * drivers/mrf24j40: Fixes issues with sleeping for beacon enabled - networking. From Anthony Merlino (2017-07-13). - * Fixes timing issues for beacon enabled coordinators and endpoints. - From Anthony Merlino (2017-07-13). - * Socket I/F: Added bind(), connect(), listen(), accept(), close(), - addref() and sockcaps() interfaces (2017-07-13). - * ieee802154: Fixes issue with association on beacon-enabled - networking. From Anthony Merlino (2017-07-13). - * drivers/wireless/mrf24j40: Fixes math error for calculating sleep - count values. From Anthony Merlino (2017-07-13). - * STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier - between writing to DMA TX descriptor and restarting DMA TX. Avoid - calling work_queue on pollwork if it's already queued, just skip a - poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to - PB13 not to PG14. From savinz (2017-07-14). - * Socket I/F: Added getsockname() interfaces. Add address family - support for poll() and sendfile() (2017-07-14). - * tools/refresh.sh: Update so that it can find the Make.defs file in - the new location (2017-07-15). - * Numerous fixes, updates generalizations needed in order to merge - Frank Berkert's massive USB composite change of June 1 into master. - Too many changes to summarize adequately here (2017-07-16). - * Makefile.win would only create uboot images for ARM. MIPS support - also needed. From Lwazi Dube (2017-07-16). - * IEEE 802.15.4 MAC: Disable option to select interrupt-level meta - data allocator (2017-07-16). - * ieee802154: Adds retry count to tx descriptor. Renames ack_wait_dur - to ack_waitdur and removes it from private mac struct. From Anthony - Merlino (2017-07-16). - * STM32 F7: I2C4_SDA can also be on GPIO PB7. From Titus von Boxberg - (2017-07-16). - * STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to - internal SRAM. From Titus von Boxberg (2017-07-16). - * Networking: When upd_input() cannot process a packet, it returns - ERROR so that network drivers may try calling ipv4_input() later. In - this case, it must also set d_len to zero. Otherwise, all network - drivers will assume tht there is also an outgoing packet. This - results in a gratuitous ARP (2017-07-17). - * STM32 F7: do not enforce CONFIG_STM32_CCMEXCLUDE for - CONFIG_ARCH_CHIP_STM32F7, macro rename STM32 -> STM32F7, #include - corrections. renamed STM32_LCDTFT_BASE to STM32_LTDC_BASE for - consistency. macro rename STM32 -> STM32F7. initial - (dysfunctional) lcd configuration (from STM32). From Titus von - Boxberg (2017-07-17). - * STM32 F7: option for DSI output, inconsistency: the stm32f746 does - not feature a DSI interface. compileable with LTDC_INTERFACE and - LTDC_USE_DSI. From Titus von Boxberg (2017-07-18). - * ieee802154: Adds special attribute that can be used to perform a - regdump of the radio. Sets txdesc retrycount to the maxretries MAC - attribute when allocated. From Anthony Merlino (2017-07-18). - * STM32 F7: Added functions for DSI clock source selection. From Titus - von Boxberg (2017-07-18). - * Network poll: Remove logic conditioned on non-existent HAVE_NET_POLL - (2017-07-19). - * CDC/ACM. Fix several known problems resulting from merge of USB - composite device. That merge now breaks some of the non-composite - USB devices. These fixes are for CDC/ACM (2017-07-19). - * SAMD21: Changes needed to get USB working. From Matt Thompson - (2017-07-19). - * Initial port to STM32F769I-DISCO. From Titus von Boxberg - (2017-07-20). - * libc/math: Fix wrong output in modf() API. The sign of integral part - given by the modf() should be same as sign of input. But for inputs - between 0 and 1, the sign of integral part was not same as sign of - input. From Lokesh B V (2017-07-20). - * libc/math: Fix wrong output in ceil() API. Ex:for input x = 1.0, the - output should be 1.0, but the output was 2.0. From Lokesh B V - (2017-07-20). - * USB device: Rename usbdev_description_s to usbdev_devinfo_s to avoid - any more confusion of naming with device descriptions in the future. - Instances of usbdev_devinfo_s are now called devinfo vs devdesc when - is a bad naming collision (2017-07-20). - * USB MSC: Add missing logic to define endpoints. The composite - changes broke the the non-composite, USB MSC only case because it - omitted the critical setup when USB MSC was not part of the composite - (2017-07-20). - * libc/stdlib: (1) Fix an error in mkstemp() the could result in an - infinite loop. (2) Fix for wrong output in some cases. For - Example: (a) input: "FILEXX", output: "FILE00" and repeats same - output for further invocations of mkstemp(). But, the output has to be - FILE01, FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: - "FILE100000", for next invocation "FILE200000" and so on. But it's - good, if the output goes like FILE000001, FILE000002, ..., FILE000101, - ... From Lokesh B V (2017-07-21). - * configs: add stm32f334-disco basic support. From Mateusz Szafoni - (2017-07-21). - * USB composite: Remove references to CDC/ACM and USB MSC from - composite logic. They are no longer coupled (2017-07-21). - * nucleo-f334r8: UART2 is default serial port (STLINK Virtual Port). - From Mateusz Szafoni (2017-07-22). - * STM32 HRTIM: add slave timers private data, fix some bad definitions, - some assertions. From Mateusz Szafoni (2017-07-22). - * b-l475e-iot01a: Add initial, unverified support for the - SPSRGF/Spirit1 module. Add a configuration for testing sprit radio - (2017-07-22). - * epoll: fix epoll_wait function. From Simon Piriou (2017-07-22). - * sim arch: Add non blocking read to devconsole driver. From Simon - Piriou (2017-07-22). - * sim arch: poll for TX frames to speed up driver. From Simon Piriou - (2017-07-22). - * sim arch: fix mkdir issue in GNU target. From Simon Piriou - (2017-07-22). - * drivers: add generic upper-half driver for SMPS. From Mateusz - Szafoni (2017-07-23). - * Add power-related debug output (2017-07-23). - * Move SMPS driver to drivers/power (and header to - include/nuttx/power). Rename debug to IOCTLs to more general power - naming; create a separate file to coordinate power-related IOCTL - commands (2017-07-23). - * STM32 F7: enable APB2 DSI clock. From Titus von Boxberg - (2017-07-26). - * drivers/leds: Add support for inverted LEDS. See common anode RGB - LED discussion in the Yahoo group. From Jeff (2017-07-27). - * drivers/analog: Fix some data alignment issues in the ADC driver - (2017-07-27). - * STM32 F7: added missing config option for register value debugging. - From Titus von Boxberg (2017-07-27). - * STM32 F7: No FSMC, only FMC for STM32F7. From Titus von Boxberg - (2017-07-27). - * sig_timedwait: Pending signal structure used after it has been - releasd. From anonymous Bitbucket Issue 59 (2017-07-27). - * Add driver for LTC4151 current and voltage monitor. From Giorgio - Groß (2017-07-28). - * drivers/leds: Lightness correction for RGB LED driver. From Jeff - (2017-07-28). - * We discovered a problem with the samv7 mcan driver which results, - under some circumstances, in a very high CPU load. The problem - occurs, and is easily reproducible, if the device is connected to a - CAN network with a wrongly configured CAN speed (baud rate). In our - tests we set the CAN speed of the device to 1000000 and the speed of - the other CAN nodes to 500000. The device is restarted and sends a - CANopen "bootup message" to the CAN network. This results in huge - amount of errors messages on the CAN bus, probably because of the CAN - feature for acknowledging error messages. The error messages can’t - be read by the device because of the misconfigured CAN speed, instead - the CAN chip reports lots of errors, which are reported to the - application which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). - The CAN errors are reported from the CAN chip via interrupts and thus - the interrupt load is very high in this scenario. To fix the problem - the driver now disables each RX error interrupt after it is occurred. - The RX error interrupts are turned back on if at least one CAN - message is received successfully. From Stefan Kolb (2017-07-28). - * tcdrain implementation based on a new term ioctl. From Sebastien - Lorquet (2017-07-28). - * Spirit Network Driver: Create build directories, Add radio - initialization, interrupt handling logic, packet transmissin and - reception logic. Add some hooks that will eventually support address - filtering (2017-07-28). - * STM32 F7: HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular - FMC RAM type. From Titus von Boxberg (2017-07-28). - * STM32 F7: No board specific dithering values used; corrected - dithering init. Corrected LIPOS/LIPCR calculation. Change only - polarity bits in LTDC_GCR. From Titus von Boxberg (2017-07-29). - * STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is not - dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S. From - Titus von Boxberg (2017-07-29). - * To use an external oscillator module (not just a crystal) with the - STM32F4, one needs to enable the HSEBYP bit in the RCC_CR register. - This change allows an integrator to define STM32_RCC_CR_HSEBYP in - their board.h file if they want this configuration. From Jeff - (2017-07-30). - * 6LoWPAN PktRadio: Some initial changes to support raw packet radios - without IEEE 802.15.4 with 6LoWPAN. Add missing MetaData-related - prototypes and initialization logic. Perform a major renaming to - make room in the 6LoWPAN name space for packet radios. Replace - metadata input parameter type from struct ieee802154_data_ind_s to - void*. This permits radios with different MAC metadata to interact - with 6LoWPAN. Includes many changes to handle variable length radio - addresses. No longer just short and extended; any length.Remove - explicit type struct ieee802154_frame_meta_s from derive interface - methods. Replace with a opaque void * type so that other radio meta - data structures may use the interfaces. Add a new radion interface - to get properties of the radio. Spirit: Finish packet I/O interface - with the network. Fix case where source and destination IP address - were backward. Fix some compile issues when star topology support is - enabled. Condition out some types that depend on definitions that are - only available with 6LoWPAN is enabled (2017-07-30). - * STM32L4 PWR: correct PWR_SR2 REGLPS and REGLPF bits, add port I - registers. Also remove duplicate section from Kconfig. From Juha - Niskanen (2017-07-31). - * STM32L1: Add base address for TIM11. From Juha Niskanen - (2017-07-31). - * net/local: fix accept for local stream sockets. From Jussi Kivilinna - (2017-07-31). - * network: Move USRSOCK specific code from from inet_sockif to - usrsock_sockif. Fix USRSOCK to work with recent changes to - networking layer. From Jussi Kivilinna (2017-07-31). - * PktRadio/6LoWPAN: Add a loopback driver for testing on the simulator. - Fix more issues related to single byte radio addressing. Some - initial fixes resulting for early testing with loopback device - (2017-07-31). - * Simulator: Protect a few more NuttX symbols from collisions with host - symbols (2017-07-31). - * STM32 F7: added function for reset. From Titus von Boxberg - (2017-07-31). - * IoT Board/Spirit: Fix a few issues that interfered with testing. - Move console to the VCOM port (USART) for all configurations. Rename - the spirit-mac configuration to spirit-6lowpan. Add lots of debug - output the spirit network driver (2017-07-31). - * drivers/serial/serial.c: Add support for TCFLUSH. From Sebastien - Lorquet (2017-08-01). - * Fixes for compilation of stm32f746g-disco. From Ivan Ucherdzhiev - (2017-08-01). - * stm32f746g-disco: Make the initialization logic identical to the - standard way that is done for all other board (2017-08-01). - * serial.c: Finish implementation of TCDRAIN. Based partly on logic - from Sebastien Lorquet (2017-08-01). - * serial.c: Use common TX drain logic when closing a driver as with - the TCDRAIN IOCTL (2017-08-01). - * Spirit network driver: Network driver needs to setup IP address - based on configured node address. If no node address is provided, - then it will use a default. Make sure device is in READY state after - reset and before changing to STANDBY. Add a function to wait for a - state change with a timeout (2017-08-01). - * network procfs: Fix so that PktRadio address are shown correctly - (2017-08-01). - * arch/arm/src/lc823450: Initial support for ON Semiconductor LC823450. - From Masayuki Ishikawa (2017-08-02). - * configs/lc823450-xgevk: LC823450-XGEVK board support. From Masayuki - Ishikawa (2017-08-02). - * b-l475e-iot91a: Add apps/examples/nettest and examples/udp to Spirit1 - configuration. Add telnet support. fix driver statistics - configuration (2017-08-02). - * Networking: Add support for some packet radio IOCTL commands - (2017-08-02). - * b-l475e-iot01a: crude update to +CONFIG_BOARD_LOOPSPERMSEC. Not - precise but on assertions no flashes at approximately the correct - rate (2Hz) (2017-08-02). - * Fix for stm32f746g-disco board for button support with interrupt. - This change is tested with buttons app example and it is working with - interrupts (signals). I tried the test with polling but at this point - it doesn't work. From Ivan Ucherdzhiev (2017-08-02). - * configs/stm32f746g-disco: Remove inclusion of STM32-specific header - files from board.h (2017-08-02). - * Spirit1 network driver: Remove extra clear of pending interrupts, - could cause missing interrupts. Fix a deadlock. Also several other - design improvements to eliminate corner cases (2017-08-03). - * poll: fix poll for regular files and block devices. Open Group - documentation says that poll (and select) support regular files and - that 'Regular files shall always poll TRUE for reading and writing'. - From Jussi Kivilinna (2017-08-03). - * mm_mallinfo: do heap end debug assert check with heap semaphore held. - From Jussi Kivilinna (2017-08-03). - * Spirit1 network driver: Modify reg needs to toggle CS to get the - correct status. Make sprit_unlock an inline function. Tx timeout - should run on the HP work queue (2017-08-03). - * Simulator: x86 stack needs to be aligned to 16-byte boundaries - (2017-08-04). - * drivers: handle I2C_TRANSFER return value consistently. Some I2C - peripherals transfers return zero on success, others number of - completed transfers. Make drivers robust against this. From Juha - Niskanen (2017-08-04). - * syslog: Add option to use the CLOCK_MONOTONIC for time stamping. - From Jussi Kivilinna (2017-08-04). - * RAMTRON: Add support for splitting block writes in chunks. Some - Re-RAMs like MB85AS4MT have a write buffer size limitation. From - Boris Astardzhiev (2017-08-04). - * Spirit1 network driver: Correct setting of the length width field; - Add multicast and broadcast addresses to radio properties. Convert - network driver to use STack packets vs. Basic packets. We need to - use the STack packets in order to provide the source address - (2017-08-04). - * tools/mkdeps.c: Eliminate a warning. MAX_PATH may already be defined - in included system files. From Jeff (2017-08-04). - * Spirit1 network driver: Increase number of retries if there is no - acknowledgement; Add interrupt handling for the case where the max - number of retries expires. Fix some badly implemented queue - management code. With these changes the basic UDP and TCP tests - work. Enable AutoACK, TX retries, and RX timeouts in the network - driver (2017-08-04). - * B-L475E-IOT01A: Make spirit-6lowpan configuration match what is - currently under test: Enable multicast, broadcast, but disable CRC - support. Currently CRCs are not working right (2017-08-04). - * b-l475e-iot01a: Add configurations to support a star topology - (2017-08-05). - * Spirit + 6LoWPAN: In STAR configuration, Spirit must use a - configured well known hub address. 6LoWPAN cannot assume that the - PAN coordinator is the STAR hub; it must ask the radio to provide it - with the address of the star hub (2017-08-05). - * IEEE 802.15.4 network driver: Fix more compile issues that only show - up when CONFIG_NET_STARPOINT is defined (2017-08-05). - * STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev - (2017-08-05). - * Spirit Network Driver: Attempts to eliminate RX FIFO errors. Reduce - max packet length to avoid an errata. Reducing the packet length had - no effect on eliminating RX FIFO errors. Add support for watermark - interrupts on RX FIFO. Restructure threading to reduce locking. - Still get a few RX FIFO errors (2017-08-06). - * STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR - Flash. From Alan Carvalho de Assis (2017-08-06). - * MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou - (2017-08-06). - * b-l475e-iot01a: add basic support for external Macronix QuadSPI flash - memory. From Simon Piriou (2017-08-06). - * Spirit radio: Dropping packet size to 94 seems to fix problem with - CRC failures (2017-08-06). - * STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if - flash partition is enabled and (2) Update the README.txt file with - info needed to get SmartFS working. From Alan Carvalho de Assis - (2017-08-06). - * 6LoWPAN: When obtaining the radio MAC address from the IP address, - handle the special case of broadcast and multicast address - (2017-08-06). - * Networking: Move INET socket interface out of net/sockets to its own - directory net/inet (2017-08-06). - * Spirit network driver: TX timeout was never being cancelled! Also - reviewed and cleaned up all error handling logic (2017-08-06). - * sched/: Fix return value in sched_setaffinity(). From Masayuki - Ishikawa (2017-08-07). - * Spirit bugfixes: Was hanging occasionally because there was no - mechanism to restart the poll timer if poll was not performed because - Spirit ws busy. Fixed by not checking if Spirit is busy. The TX - poll can be performed asynchronouly while spirit is busy; any - outgoing data will queued until Spirit is ready. Fixed handling of a - timeout condition. Failure to transmission to the TX state would fail - (timeout) if in a race condition Spirit already committed to the RX - state. The driver needs to recover the state properly and avoid - debug assertions in this event (2017-08-07). - * STM32 USB: I'm working on bringing up USB full-speed support on - STM32F405.  My board does not include a USB power switch, VBus - sensing, over current detection, or ID pin. This commit add a - config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable - VBus sensing and control.  I also sneaked in a change to disable the - configgpio call for the ID pin, which is only used in OTG mode which - isn't supported yet.  The only pins that need to be initialized - should be OTGFS_DP and OTGFS_DM. These changes let a USB mouse - enumerate on my platform if it's plugged in on power-up.  Plugging, - unplugging, clicking, or moving the mouse cause NSH to stop - responding.  Because I'm using the ramlog, I don't have useful debug - messaging yet, so there's a lot more work I have to do to - troubleshoot it or get my JTAG debugging set up, but these patches - shouldn't hurt anything.  I'm hoping my issue is something simple I - overlooked in configuration. From Jeff (2017-08-07). - * I discovered while working on the SAMV7 mcan driver that the - implementation of the CAN error handling is suboptimal. In the - current implementation the many errors are implemented as pending - errors. But those errors are not pending, the errors occurred and - are gone directly afterwards. This commit changes the described - behavior and simplifies the handling of CAN errors. From Stefan Kolb - (2017-08-07). - * IPv6: Remove comparisons to the address with all ones set. IPv6 - does not support broadcast addresses and certainly not in that form. - Replace with multicast addresses beginning with 0xff02 (2017-08-07). - * ICMPv6: Support source link-layer address option in RA. From - Masayuki Ishikawa (2017-08-08). - * libm: Port gamma() and lgamma() from FreeBSD to NuttX. From Alan - Carvalho de Assis (2017-08-08). - * B-L475-IOT01A: Enable UDP broadcast test in the spirit-starhub - configuration (2017-08-08). - * Spirit Radio: Add support for CSMA backoff count reached interrupt - (2017-08-08). - * STM32F4-Discovery: Add a configuration for testing libc++. From - Alan Carvalho de Assis (2017-08-08). - * Remove CONFIG_NET_MULTILINK. This increases code size by a little, - but greatly reduces the complexity of the network code (2017-08-08). - * Networking: Fix netdev_dev_lladdrsize(). In some configurations, it - could return the wrong size for the address of a packet radio - (2017-08-08). - * Fix IPv6 loopback driver that depended on the removed - g_ipv6_allonesaddr. Noted by Masayuki Ishikawa (2017-08-09). - * Networking: Fix typo for 802.11 devices in netdev_register(). Was - being masked before because depended on CONFIG_NET_MULTLINK - (2017-08-09). - * Networking: Fix a compilation issue with - CONFIG_NET_ICMPv6_AUTOCONF=y. From Masayuki Ishikawa (2017-08-09). - * Update NSH documentation to show new usage for addroute and delroute - (2017-08-10). - * cwchar: Use CONFIG_LIBC_WCHAR to only export the wc/mb functions. - When a build does not want to use wide or multibyte char - CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the - wc/mb functions when defined. Regardless of the stat of - CONFIG_LIBC_WCHAR the non mb/wc definitions such as mbstate_t, - wint_t, wctype_t need to be exported. From David Sidrane - (2017-08-10). - * inet_ntop: Was printing negative values for fields >127 - (2017-08-11). - * procfs: Add support for routing tables at proc/net/route - (2017-08-11). - * Unify GCC/Clang config. From Goran Mekić (2017-08-12). - * procfs routing table: Don't print the IPv4 routing table header if - the table is empty. Fix a couple of places where CONFIG_NET_IPv4 was - used wehre IPv6 was intended (not noticed now because I am testing - with both enabled) (2017-08-12). - * C++: Compilation with recent C++ compiler needs an overloaded delete - operator that includes a size_t size argument (2017-08-12). - * ARM: The older ARM7 and ARM9 configurations were determining CFLAGS - based on the GCC version 4.x.x or not. That needx to be extended for - 5.x.x and 6.x.x which also behave like 4.x.x (2017-08-12). - * STM32F7: Some STM32F7 builds failed in build testing due to undefined - STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was - not including chip/stm32_memorymap.h (2017-08-13). - * Fix ESP32 gpio enable reg and default UART pin. Modify default uart - pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim - (2017-08-13). - * stm32/stm32f0: Fix some funny shifts in DAC header files. From Juha - Niskanen (2017-08-14). - * STM32L4 COMP: Input minus pin extended selection. From Juha - Niskanen (2017-08-14). - * STM32L4 DAC: Port from STM32. Add ADC register definitions. Note - that this does not address the somewhat confusing relation between - STM32L4_NDACS and DAC2 config macros that comes from original STM32 - code. From Juha Niskanen (2017-08-14). - * libxx: New sized delete operators are only for C++14 and above - (2017-08-14). - * Miscellaneous fixes from astyle tool. Noted by Arjun Hary - (2017-08-14). - * SAMv71-XULT: Fix MRF24J40 interrupt GPIO number (2017-08-15). - * Clicker2: Configure EDBG SPI CS just to make that it is disabled - (2017-08-15). - * STM32L476VG Discovery: Add a knsh configuration that may be used to - test the PROTECTED build mode (2017-08-17). - * stm32f7:DMA correct comments and document stm32_dmacapable. Updated - comment to proper reference manual for STM32F7 not STM32F4. Added - stm32_dmacapable input parameters documentation. From David Sidrane - (2017-08-17). - * STM32 F7: DMA add dcache alignment check in stm32_dmacapable. In the - case dcache write-buffed mode is used (not write-through) buffer - alignment is required for DMA transfers because a) - arch_invalidate_dcache could lose buffered writes data and b) - arch_flush_dcache could corrupt adjacent memory if the maddr and the - mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE - boundaries. From David Sidrane (2017-08-17). - * STM32 F7: SDMMC remove widebus limitation on DMA. There is no - documentation for the STM32F7 that limits DMA on 1 bit vrs 4 bit - mode. From David Sidrane (2017-08-17). - * dcache write-buffed mode is used (not write-through) buffer alignment - is required for DMA transfers because a) arch_invalidate_dcache could - lose buffered writes data and b) arch_flush_dcache could corrupt - adjacent memory if the buffer and the bufflen, are not on - ARMV7M_DCACHE_LINESIZE boundaries. From David Sidrane (2017-08-17). - * STM32 F7: SDMMC add dcache alignment check in dma{recv|send}setup. - In the case where CONFIG_SDIO_PREFLIGHT is not used. - * drivers/sensors: Add support to HC-SR04 distance sensor. From Alan - Carvalho de Assis (2017-08-17). - * PF_IEEE802154 address family: With this commit PF_IEEE802154 address - family is basically functional. More testing is needed, of course: - Finishes up socket interfaces connect() sendto(), recvfrom(), and - bind() logic. Special initialization, device lookup, driver poll, - and frame input logic. Add configs/sim configuration for testing - (2017-08-19). - * STM32 COMP: add default INM configuration and some missing - COMP1,3,5,7 code. From Mateusz Szafoni (2017-08-20). - * 6LoWPAN/PF_IEEE802154: Created radiodev.h and renamed various - structures to provide a better separation between 6LoWPAN networking - and PF_IEEE802154 address family (2017-08-20). - * STM32 DAC: fix some configuration logic. When STM32_NDAC is greater - than 1, then second channel is always DAC1OUT2. From Mateusz Szafoni - (2017-08-20). - * PF_IEEE802154 address family: IEEE 802.15.4 network device: Make - same changes as per loopback device so that it will build with - PF_IEEE802154 but without 6LoWPAN. More fixes to device registration - and to IEEE 802.15.4 loopback driver for PF_IEEE802154 without - 6LoWPAN. Changes to conditional compilation so that PF_IEEE802154 - can build without 6LoWPAN (2017-08-20). - * drivers/net/tun.c: Currently cannot support TAP mode unless Ethenet - is enabled (2017-08-20). - * PktRadio loopback driver: Fix compile problem by removing - inappropriate const storage class (2017-08-20). - * Networking: Remove driver based backlog support. This affects the - entire network, but is used by only one driver. The only supported - RX backlog is now via common read-ahead buffering (2017-08-21). - * PF_IEEE802154 socket family: (1) Improve some backlog counting - logic; add more assertions to catch cases where the backlog count - might deviate from the actual backlog. (2) Add a maximum backlog - option. This will prevent overrun of the RX frame queue if many - frames are received from the radio, but no application is receiving - the queued data. (3) On input, there may be a list of frames - provided, not just one. When closed() and connection is freed, also - need to free any frames remaining in the RX queue (2017-08-21). - * Network procfs: Add support for network procfs statistics when - nothing is enabled but PF_IEEE802154 (2017-08-21). - * STM32 DAC: Add support for HRTIM triggering. Separate dma buffer - configuration for channels. From Mateusz Szafoni (2017-08-21). - * ENCX24J600: Fix some warnings. Update interface to use newer - parameter passing to interrupt handlers (2017-08-21). - * ENC28J60: Update interface to use newer parameter passing to - interrupt handlers (2017-08-21). - * drivers/analog/comp: add poll support. From Pekka Ervasti - (2017-08-22). - * STM32L4 COMP: Bind to upper half comp driver. From Pekka Ervasti - (2017-08-22). - * STM32L4 ADC: correct EXTSEL macros. From Juha Niskanen - (2017-08-22). - * drivers/lcd: ssd1306: (1) Separate lcd_dev_s setup to separate - object. g_oleddev takes 1 KiB because framebuffer and was allocated - to .data section because of lcd_dev_s function pointer setup. Move - lcd_dev_s setup out, so that g_oleddev goes to .bss and avoid wasting - ROM. (2) Fix memory corruption caused by ssd1306_getrun(). - ssd1306_getrun was writing one extra byte (with value 0) past target - buffer when pixlen is multiple of 8. When pixlen was not multiple of - 8, last byte of buffer was fully cleared, instead of modifying only - the (pixlen % 8) bits of last byte. (3) Add support for board power - control. ThingseeOne has regulator for controlling display power - on/off. Patch adds support for board based power control to SSD1306 - driver. (4) Add DD-12864WO-4A/SSD1309 support to SSD1306 driver. - From Jussi Kivilinna (2017-08-22). - * Network procfs: procfs/net_procfs_route.c building error occur if - CONFIG_NET_ROUTE is enabled. Fix suggested by Aleksandr Kazantsev - (2017-08-22). - * Networking: Fix ompile error if Unix domain sockets selected - (2017-08-23). - * STM32L4 TIM: TIM15,16,17 are always in APB2. From Juha Niskanen - (2017-08-25). - * STM32L4 DAC: report transfer as completed in DMA callback. Without - this even O_NONBLOCK writes block the calling task if DAC was using - DMA. From Juha Niskanen (2017-08-25). - * STM32L4 COMP: comparators share RCC enable bit with SYSCFG. From - Juha Niskanen (2017-08-25). - * power: add driver for TI bq2429x battery charger. TODO: Untested. - Does not have poll() support. From Juha Niskanen (2017-08-25). - * 6LoWPAN: The original, Contiki-based design used only a single - buffer for reassemblying larger packets. This could be a problem - issue for hub configurations which really need the capability - concurrently reassemble multiple incoming streams concurrently. - These was also a design issue in that the reassembly buffer could be - corrupted by outgoing packets. The design was extended to support - multiple reassembly buffers, each associated with the reassembly tag - and source address. This assures that there can be be no corruption - of the reassembly once it has started (2017-08-26). - * Simulator: Adds necessary functionality to build Simulator under ARM - Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not - save/restore floating point registers. From Nickolay Semyonov - (2017-08-26). - * fs: FS_AUTOMOUNTER should depend on SCHED_LPWORK. From Nickolay - Semyonov (2017-08-26). - * configs/lc823450-xgevk: Add eMMC/SD and USB support. From Masayuki - Ishikawa (2017-08-27). - * LC823450: eMMC/SD and USB support for LC823450. From Masayuki - Ishikawa (2017-08-27). - * drivers/analog/comp.c: Fix compilation errors when poll disabled. - From Mateusz Szafoni (2017-08-27). - * stm32_dac.c: conditional logic for timer triggering, fix TSEL - configuration when HRTIM, DMA request remapping, Add DMA buffers - initialization logic. From Mateusz Szafoni (2017-08-27). - * STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer - logic, enable DAC triggering. From Mateusz Szafoni (2017-08-27). - * STM32F33: missing SYSCFG CFGR3 definitions. From Mateusz Szafoni - (2017-08-27). - * STM32 DAC: support external triggering for DMA transfer. From - Mateusz Szafoni (2017-08-27). - * ARM: Add support for STM32F433RC. From Alan Carvalho de Assis - (2017-08-27). - * STM32L4 RCC: Enable ADC clock source. From Juha Niskanen - (2017-08-28). - * drivers: analog: adc: Add poll support. From Juha Niskanen - (2017-08-28). - * STM32, STM32L4, STM32F7 ADC: fix channel 18 sample time. Frpm Juha - Niskanen (2017-08-28). - * STM32L4 ADC: implement peripheral. From Juha Niskanen (2017-08-28). - * work_queue() must cancel existing work prior to queuing new work, - otherwise the work queue list structure can become corrupted. - Problem noted by Pascal Speck (2017-08-28). - * STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni - (2017-08-28). - * Networking: Move TCP specific files from inet/ to tcp/. There is - another TCP-specific logic in inet/ that should be moved sometime, - but those are more entangled (2017-08-29). - * Networking: TCP disconnection callbacks are not retained in a list. - This will support multiple callbacks per lower-level TCP connection - structure. That is necessary for the cae where a socket is dup'ed - and shares the same lower-level connection structure. NOTE: There - still needs to be a call to tcp_start_monitor() when the socket is - dup'ed (2017-08-29). - * Networking: Start the network monitor for a socket when a TCP socket - is dup'ed (2017-08-29). - * Networking: A placeholder for some missing logic in the previous - change related to monitoring network status for dup'ed sockets. If - one of the dup'ed socket's is closed, then network monitor resources - associated with that one socket must be recovered. Also, in the - event that socket is being used on one thread, but then closed on - another, any threads waiting for events from the socket should be - informed of the closure. That latter requirement is not implemented - because current data structures do not support it (2017-08-29). - * Networking: Clean up some naming that has bothered me for a long - time... There are no interrupts and no interrupt handlers in the - network. There are events and event handler (there used to be - interrupt logic in there years ago but that is long, long gone) - (2017-08-29). - * configs: update STM32L4 configs for ADC changes. From Juha Niskanen - (2017-08-30). - * configs: update STM32L4 configs for ADC changes. From Juha Niskanen - (2017-08-30). - * Porting Guide: Add usage tip for reading CAN messages from the CAN - driver without losing message (2017-08-30). - * Networking: socket dup() conditional operation was missing the test - for the condition (2017-08-30). - * ARMv7-M syscall logic: Clear bit 0 in PC settings. Bit 0 is the - thumb mode indication and should not be set in the PC. This extra - bit has not caused problems in the past, but seeing it set in the PC - is unnerving (2017-08-30). - * Networking: Fix a race condition. The accept() operation is - performed with the network locked. However, the network is unlocked - BEFORE the connected state is set. Therefore, a context switch may - occur and the socket may no longer be connected when it is marked so. - Noted by Pascal Speck (2017-08-31). - * Work queue: In a recent change for a problem noted by Pascal Speck, - it was noted (again by Pascal Speck) that the cancellation of - existing work and replacement with new work must be atomic. Thanks, - Pascal (2017-08-31). - * LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. - From Alan Carvalho de Assis (2017-08-31). - * STM32 Timer: Add the set counter function for stm32 timers. From - Sergey Ustinov (2017-08-31). - * configs/Bambino: Add protected mode configuration to Bambino board. - From Alan Carvalho de Assis (2017-08-31). - * STM32L4 DAC: add option for routing DAC output to ADC. Actually - write something to the DAC DMA buffer. From Juha Niskanen - (2017-08-29). - * STM32L4 DAC: separate DMA buffer configuration for channels. From - Juha Niskanen (2017-08-29). - * STM32L4 DAC: Fix naming so that DAC1 and DAC2 always refer to - channels 1 and 2. User should not be bothered by details like how - many IP blocks there are. As no current STM32L4 has second DAC block - (channel 3), remove support for such hypothetical hardware. DMA - channels corrected. From Juha Niskanen (2017-09-01). - * configs/nucleo-l496zg: add DAC and missing TIM frequencies. From - Juha Niskanen (2017-09-01). - * Networking: net_timedwait() and net_lockedwait() no longer return - errors via errno but returned negated errno values like other - internal OS functions (2017-09-01). - * Networking: Fix net_lock returning ERROR when instead of real error - code on failure. From Jussi Kivilinna (2017-09-01). - * net/local: Fix server lc_waitsem overflow. From Jussi Kivilinna - (2017-09-01). - * drivers/bch: Add poll support. From Jussi Kivilinna (2017-09-01). - * STM32 F7: do not enable read-modify-write on DTCM. "AN 4667 - - STM32F7 Series system architecture and performance" recommends to - disable read-modify-write on DTCM: "If the DTCM-RAM is used as data - location and the variables used are byte or/and halfword types, since - there is no ECC management in this RAM on the STM32F7 Series, it is - recommended to disable the read-modify-write of the DTCM-RAM in the - DTCM interface (in the DTCMCR register) to increase the performance." - From Jussi Kivilinna (2017-09-01). - * Networking: IGMP: Remove special support for interrupt level - processing (there is none) and fix some timer cancellation logic. In - many files, correct comments. There is no interrupt level processing - in the networking layer (2017-09-02). - * stm32_dac.c: fix compilation when DMA disabled for channel. From - Mateusz Szafoni (2017-09-02). - * Extend the RTC framework with an alarm read ioctl (RTC_RD_ALARM). - Through it consumer could get configuration settings about previously - scheduled hardware alarms (active status, hours, minutes, seconds). - From Boris Astardzhiev (2017-09-03). - * STM32 F7: Port Boris Astardzhiev's RTC change for STM32L4 to STM32F7 - (2017-09-03). - * STM32: Port Boris Astardzhiev's RTC change for STM32L4 to STM32 - (2017-09-03). - * Kinetis: Unverified implementation of the alarm read function. - Pretty simple because the Kinetis RTC is just a 1Hz counter - (2017-09-03). - * STM32 HRTIM: add burst mode configuration, rename some definitions. - From Mateusz Szafoni (2017-09-03). - * Update net_timedwait() and net_lockedwait() call sites to handle - negated errno in return value. From Jussi Kivilinna (2017-09-04). - * stm32f7: Add new configuration option for enabling flash ART - Accelerator and flash prefetcher. From Jussi Kivilinna - (2017-09-04). - * Simulation: Fix building 32-bit simulation on 32-bit X86. From - Jussi Kivilinna (2017-09-04). - * waitpid(): Corrects two problems when - CONFIG_SCHED_HAVE_PARENT+CONFIG_SCHED_CHILD_STATUS are enabled: (1) - Was erroring out if the waited for task had already exited, and (2) - was not freeing resources when a wait was completed. From Boris - Astardzhiev (2017-09-04). - -7.23 2017-12-04 Gregory Nutt - - * STM32L4: ADC, Kconfig small changes: - - STM32L4 ADC: port analog watchdog ioctls from the Motorola MDK - - STM32L4: Kconfig: add some L486 and L496 chips, remove duplicates - From Juha Niskanen (2017-09-06). - * 6LoWPAN: Correct an error in uncompressing multicast address - (2017-09-08). - * sem_open() should return SEM_FAILED on any failures. This is change - in the POSIX specification since the original sem_open() was written - so many years ago (2017-09-08). - * STM32: Add logic for enabling wakeup pins. From Oleg Evseev - (2017-09-08). - * Update/fix last commit: On some STM32's, the CSR register is 18 vs. 16 - bits wide. Need to use 32-bit register accesses (2017-09-08). - * 6LoWPAN: I believe, based on RFC review, that with the last multicast - change, the NuttX 6LoWPAN is now compliant with RFC 6282 (2017-09-08). - * arch/arm/Kconfig: Add more classic ARM11 architecture selections - (2017-09-09). - * 6LoWPAN/Radio: Rename radio property sp_pktlen to sp_framelen. Add - 6LoWPAN utility to get the max frame length (not yet hooked in) - (2017-09-10). - * 6LoWPAN: Remove the option to disable fragmentation support. Two - reasons: (1) First fragmentation is always required because IPv6 - requires an MTU of 1280 bytes. The is no application use case that can - work without fragmentation support. And (2) it greatly reduces the - complexity of the code (2017-09-10). - * net/sixlowpan: Remove CONFIG_NET_6LOWPAN_FRAMELEN. In this case where - multiple radios are supported, this may not be a constant. 6LoWPAN now - always queries the driver to get the maximum frame length (2017-09-10). - * drivers/smps.c: fix error messages. From Mateusz Szafoni (2017-09-10). - * configs/stm32f334-disco: beginning of lower half driver for high power - LED (powerled). From Mateusz Szafoni (2017-09-10). - * Misc STM32 fixes - - stm32f33xxx_hrtim.h: fix definition - - stm32_hrtim: fix pclk calculation - - stm32_hrtim.c: cosmetics - - add upper-half driver for high power LED driver (powerled) - From Mateusz Szafoni (2017-09-10). - * drivers/video/fb.c: Add framebuffer character device (2017-09-11). - * drivers/video/fb.c: Add support for LCD drivers that use a simulated - framebuffer and must receive explicit notification when there is an - update to a region in the framebuffer (2017-09-11). - * configs/lc823450-xgevk: Enable ADC and watchdog driver. From Masayuki - Ishikawa (2017-09-12). - * arch/arm/src/lc823450: Conform to the NuttX coding style, merge the - latest fix in lc823450_rtc.c, add ADC driver, add watchdog driver. From - Masayuki Ishikawa (2017-09-12). - * net/sock: recvfrom: Fix double leave_cancellation_point on error - path. From Jussi Kivilinna (2017-09-12). - * net/socket: Do not enter cancellation point in psock_send() as this - is already done in send(). From Jussi Kivilinna (2017-09-12). - * net/socket: send: verify that sockfd is valid, fixes assert when using - send on closed socket. From Jussi Kivilinna (2017-09-12). - * drivers/video/fb.c and include/nuttx/video.fb.h: Some improvements - and fixes from early testing sith the sim/fb cnofiguration (2017-09-12). - * sim/configs/fb: Add a configuration for non-graphical testing of the - framebuffer character driver using apps/example/fb (2017-09-12). - * Rename CONFIG_VIDEO_DEVICES to CONFIG_DRIVERS_VIDEO to conform better - to the evolving configuration naming standard (2017-09-12). - * Rename CONFIG_AUDIO_DEVICES to CONFIG_DRIVERS_AUDIO to conform better - to the evolving configuration naming standard (2017-09-12). - * stm32: stm32 alt I2C ensure proper error handling. Injecting data - errors would cause the driver to continually reenter the isr with BERR - an RxNE. This fix allows the error to be cleared and propagated to the - waiting task. From David Sidrane (2017-09-12). - * stm32x i2c fixes, stm32: Fix coding standard error, stm32f7 I2C: fixed - typo in comment. From David Sidrane (2017-09-13). - * STM32 Tickless: Fixes compilation error when timer info/debug messages - are enabled. From Rajan Gill (2017-09-13). - * net/: Fix some errors found by Coverity. - * STM32/STM32 F7: Fix some errors found by Coverity (2017-09-13). - * drivers/video/fb.c: File offset is in units of bytes, not pixels - (2017-09-14). - * drivers/lis3dsh.c: Added the argument parameter (FAR void *arg) to - the interrupt handler provided by the LIS3DSH driver to fit the - definition for ISRs in xcpt_t. Changed the check for working queue - availability in lis3dsh interrupt handler to use work_available() and - not crash in case of an overrun. From Florian Olbrich (2017-09-14). - * configs/stm32f4discover: Added initialization code and Kconfig entries - to set up the LIS3DSH accelerometer driver on STM32F4Discovery rev. C - boards and attach the associated interrupt callback. From Florian - Olbrich (2017-09-14). - * Added initialization code and Kconfig entries for LIS3DSH - accelerometer on STM32F4Discovery + associated changes to LIS3DSH - driver. From Florian Olbrich (2017-09-14). - * LPC31xx: Change naming of some global variables to match coding - standard (2017-09-14). - * wireless/ieee802154/: Moves MAC802154IOC from ieee802154_ioctl.h and - renames ieee802154_ioctl.h to ieee802154_device.h since it only contains - types relevant to the MAC char device now. From Anthony Merlino - (2017-09-15). - * wireless/ieee802154: Adds support for receiving MAC events via IOCTL - through socket interface. Other small fixes and cleanup. From Anthony - Merlino (2017-09-15). - * drivers/wireless: Adds XBee S2C (802.15.4 firmware) support. XBee - driver emulates mac802154 interface. From Anthony Merlino (2017-09-15). - * sched/waitpid.c: Eliminate a warning detected by GCC 6 (2017-09-15). - * drivers/xbee: Fixes a few warnings - - drivers/xbee: Fixes a few warnings - - configs/clicker2-stm32: Updates sections about i8sak usage in the - README - From Anthony Merlino (2017-09-15). - * STM32 Tickless: The attached patch removes the restriction to 16bit - counts when a 32bit timer is used for the new tickless on the stm32. As - it is now, the restriction is very limiting, especially if one wants - high granularity and large achievable intervals and has the hardware - (namely the 32bit timers) available. From Rajan Gill (2017-09-16). - * configs/open1788: Initialization now follows the pattern of other - boards. Add initialization of fb driver. Add a configuration for - testing the framebuffer driver (2017-09-16). - * drivers/video: fb driver now clears framebuffer initially. Eliminates - (or minimizes) initial garbage on the display (2017-09-16). - * SAMV71-XULT: Add support for fb_driver (2017-09-17). - * drivers/lcd: Add suppose for a generic front-end that will convert - any LCD driver into a framebuffer driver (2017-09-17). - * SAMv71-XULT: Add a configuration to test the LCD framebuffer driver. - Not quite yet working properly (2017-09-17). - * configs/stm3210e-eval: Rename stm32_appinit.c to stm32_bringup.c so - that the start up logic is compatible with other, new boards. Bring in - new stm32_appinit.c, add board_initialize(), add support for FB - character driver (2017-09-17). - * configs/stm3240g-eval: Rename stm32_appinit.c to stm32_bringup.c to - better match other architectures. Replace the old-style stm32_appinit.c - with tne new one from the STM32F4-Discovery. Add a configuration for - testing the FB character driver at drivers/video/fb.c using the LCD - frame driver front end at drivers/lcd/lcd_framebuffer.c. Appears to be - fully functional (2017-09-17). - * netinet/in.h: Add missing IN6_IS_ADDR_V4COMPAT macro (2017-09-18). - * configs/stm32f4discovery: Update README. Add summary of differences - with the newest STM32F407G-DISC1 part. Remove a lot of old discussion - that is really no longer helpful (2017-09-18). - * Networking: sockgetname() files need to include udp/udp.h and - tcp/tcp.h or otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are - undefined and the logic is never compiled. Noted by Anthony Merlino - (2017-09-18). - * Add driver for APA102 LED controller. These LEDs are used on LED - Strips and are controlled over SPI (2017-09-18). - * configs/stm32f103-minimum: Add board support for APA102 driver. From - Alan Carvalho de Assis (2017-09-18). - * sched/env_dup.c: Fix an error in the duplication of the child tasks - environment in the special case where the parent's environment was - created, but then all of the variables were unset. In that case, there - is still an allocation in place but the size of the allocation is zero. - This case was not being handled correctly when a child task attempts to - create its environment and inherit the zero-size partent environment. - Noted by Anthony Merlino (2017-09-18). - * STM32L4 DFSDM: add peripheral, DAC, TIM: small changes - - STM32L4 DAC: do not configure output pin if it is not used - - STM32L4 TIM: fix compilation of timers with complementary outputs - when not PWM_MULTICHAN - - STM32L4 DFSDM: peripheral for digital filters for sigma-delta ADCs - Initial version. Timer trigger support is not completed and there is - some issue with DMA. - From Juha Niskanen (2017-09-19). - * stm3240g-eval: Remove some bad conditional compilation (2017-09-19). - * Networking: IPv4 getsockname(): Fix a typo that can cause a compile - error (2017-09-19). - * viewtool-stm32f107: Enable NSH arch-specific initialization. Rename - stm32_appinit.c to stm32_bringup.c for consistency with other boards. - Replace old stm32_appinit.c (now stm32_bringup.c) with 'standard' - stm32_appinit.c from the STM32F4-Discovery. Add CONFIG_BOARD_INITIALIZE - logic to stm32_boot.c. Add support to auto-mount the procfs file system - (2017-09-19). - * Networking: Add implementation of logic for SIOCGIFCONF and - SIOCGLIFCOF IOCTL commands (2017-09-19). - * Networking: drivers/net/loopback.c: Eliminate a warning. - net/netdev/netdev_ifconfig.c: Was not returning all of the address info - (2017-09-19). - * STM32L4 ADC, DFSDM: add routing of ADC data to DFSDM filters. From - Juha Niskanen - - configs/nucleo-l496zg: add DFSDM initialization - - STM32L4 ADC: add option for routing ADC data to DFSDM, fix DFSDM - DMA (2017-09-20). - * SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on - network adatpors in the UP state (2017-09-20). - * In some cases, packets are still not sent behind the router. I found - that NuttX sends the ARP requests not to the router but to the target. - Mistake in file net/route/netdev_router.c. From Aleksandr Kazantsev - (2017-09-20). - * stm32: stm32f40xxx I2C ensure proper isr handling. Injecting data - errors that causes a STOP to be perceived by the driver, will - continually re-enter the isr with SB not set and BTF - and RxNE set. This changes allows the interrupts to be cleared and - propagates a I2C_SR1_TIMEOUT to the waiting task. From David Sidrane - (2017-09-21). - * include/nuttx/net/net.h: Add missing semicolon in prototype. Fixes - error in certain combinations of configuration options. From Pavel Pisa - (2017-09-21). - * drivers/pipes: pipe_common: Fix writing large buffers not triggering - POLLIN for reader poll. From Jussi Kivilinna (2017-09-21). - * drivers/usbdev: Add support for RX flow control to the CDC/ACM driver - (2017-09-22). - * STM32 Serial: Fix some incorrect conditional compilation (2017-09-23). - * drivers/usbdev: Add support for flow control TERMIOs in CDC/ACM - driver (2017-09-23). - * drivers/usbdev: CDC/ACM should reset all 'irregular' notifications to - zero after sending the SerialState packet (2017-09-23). - * drivers/usbdev: Fix some bad conditional logic (2017-09-23). - * Fixes several errors preventing icmpv6_radvertise.c from being - compiled. Fixes conversions to network byte order (namely vlifetime, - plifetime, mtu). IPv6 source address is set to link-local IP address - instead of the address in the netdev structure. This is in compliance to - RFC 4861. RA didn't work on Linux before this change. Finally, router - prefix and prefix length are derived from the IPv6 address and netmask - in the netdev structure. This seems to make more sense than using a - predefined, separate prefix from the config. From Sakari Kapanen - (2017-09-24). - * drivers/usbdev/usbdev: Add RNDIS-over-USB driver. From Sakari Kapanen - (2017-09-24). - * net/igmp/igmp_send.c: Fix incoming IGMP checksum calculation. From - Louis Mayencourt (2017-09-25). - * Fixes for problems found by Coverity in the nuttx repository: - - net/socket/recvfrom.c: Check fromlen integrity before using it. - - net/socket/net_sockets.c: Always check for valid psock before using. - - net/tcp/tcp_send_unbuffered.c: Avoid using psock before - checking its integrity. - - sched/timer/timer_create.c: Fix watchdog resource leak if cannot - allocate a new timer. - From Bruno Herrera (2017-09-25). - * drivers/usbdev/Kconfig: Add comments in regard to RNDIS selection - (2017-09-25). - * configs/nucleo-f410rb: Add support for the nucleo-F410RB board. From - Gwenhael Goavec-Merou (2017-09-25). - * STM32 L4: Add SDMMC driver. From Miha Vrhovnik (2017-09-26). - * Nucleo-L496ZG: Add support for SDMMC driver. From Miha Vrhovnik - (2017-09-26). - * drivers/usbdev/cdcacm.c: Avoid using priv before checking its - validity. From Juha Niskanen (2017-09-26). - * drivers/usbdev/cdcacm.c: Change design for queuing RX packets that - cannot be processed. Previous design had a logic problem that could - cause data loss (2017-09-26). - * drivers/usbdev/cdcacm.c: Add a failsafe time to assure that the RX - pending queue cannot stall indefinitely. I can imagine a corner case - where the serial driver's RX buffer is full and it stops accepting data - and where all of the read requests are queued and there is not event to - restart RX processing. I am not sure that that scenario can really - happen, but the failsafe timer gives me peace of mind (2017-09-26). - * Build break fix: define PWM_TIM2_CH1CFG for channel 1 PWM. From - Tomasz Wozniak (2017-09-26). - * Fixed directory unlocking in tmpfs_opendir. From Dmitriy Linikov - (2017-09-27). - * drivers/usbdev/cdcacm.c: Add some missing logic when flow control is - disabled. Also make sure that the flowcontrol and rxint can handle - being re-entered when cdcacm_release_rxpending() is called (2017-09-27). - * drivers/usbdev/cdcacm.c: Fix confusion between flow control being - enabled and being active. Different things (2017-09-27). - * drivers/usbdev/cdcacm.c: Change ordering of some operations to avoid - races; Add missing uppder watermark logic that is normally in - serial_io.c but must be duplicated in cdcacm.c (2017-09-27). - * net/route: Permit IPv4 and IPv6 routing tables to be of different - sizes (2017-09-27). - * ROMFS for STM32F4 Discovery board. From Tomasz Wozniak (2017-09-28). - * STM32 PWR: Adds stm32_pwr_getsbf and stm32_pwr_getwuf functions that - return the standby flag and the wakeup flag PWR power control/status - register. From Oleg Evseev (2017-09-28). - * net/arp/arp_out.c: Fix IGMP Ethernet address computation. From Louis - Mayencourt (2017-09-28). - * net/route: Adds support for read-only routing tables. Prior to this - change, routing tables were only support in RAM and had to be - initialized with explicit logic to add the necessary routes to the - routing table. With this change, routes may be defined in the - pre-initialized, read-only routing table provided by the board-specific - logic - - This would be particularly useful, for example, in the case where - there is only a single network adaptor and you want all output packets - to go to the single adaptor in all cases. So for that behavior you - could add a read-only routing table to the board-specific long that - contains a single entry, the default route: 0.0.0.0/0 (2017-09-28). - * fs/vfs: file_seek() is an internal OS interface and should not errors - via the errno (2017-09-28). - * fs/vfs: file_read() is an internal OS interface and should not errors - via the errno (2017-09-28). - * fs/vfs: file_write() and file_pwrite() are internal OS interfaces and - should not report errors via the errno (2017-09-28). - * STM32L4 FLASH, DFSDM: option bytes, JEXTSEL bits, ADC1 output to DFSDM - chips change - - STM32L4 FLASH: add function for modifying device option bytes - - STM32L4 DFSDM: add JEXTSEL bits, ADC1 output to DFSDM chips change - ST's documentation hints that ADC output can be routed to DFSDM on - some STM32L4X3 chips, but I got confirmation from tech support that - this is just a documentation error so remove this from Kconfig - From Juha Niskanen (2017-09-29). - * This commit adds support for routing tables in files in a file - system. This might be useful for customized, per-unit routing tables. - There are two issues with it however: - 1. Reading from file system on a per packet basis could be slow. I - think it probably should have a small, in-memory cache of most - frequently used routes for good problem. - 2. Currently the delroute logic is disabled due to a problem with - the design. NuttX does not currently support truncate(). - Therefore, it is not possible to delete entries from the routing - table file. - In this current implementation, that leaves the last entry intact at - the end of the file. An alternative design might include a tag on - each record to indicate if the record is valid or not. That would - work but would add complexity to the other routing table functions - (2017-09-29). - * net/route: Add support for an in-memory routing table cache in order - to improve performance when the routing table is retained in a file. - The cache holds the most recently used routing table entries and so can - eliminate some file access. Flush the in-memory cache when any entry is - deleted from the routing table. When a router matching an IP address is - found, add the routing table entry to the cache (2017-09-29). - * fs/vfs: null check for path on open and buf on write. Null path - check is depend on CONFIG_DEBUG_FEATURES and CONFIG_DEBUG_ASSERTIONS, - added null checking so it's always performed Added null checking on buf - for write(). From Xiao Qin (2017-09-29). - * net/route: File read/write logic should be able to handle short reads - and writes (2017-09-29). - * drivers/syslog: syslog internal functions should not set the errno - variable: ramlog_putc(), syslog_dev_putc(), syslog_dev_write(), - syslog_force() (2017-09-29). - * net/sockets: psock_sendto() is an internal OS interface an should not - set the errno variable (2017-09-29). - * net/sockets: psock_send() is an internal OS interface an should not - set the errno variable (2017-09-29). - * psock_send() no longer sets errno, so send() must now set it - (2017-09-30). - * net/: Versions of psock_send() and pock_sendto() should not set - errno. That is taken care of at a higher level in the send()/sendto() - implementation as appropriate (2017-09-30). - * net/: psock_accept() is an internal interface and should not set the - errno (2017-09-30). - * net/: psock_bind() is an internal interface and should not set the - errno (2017-09-30). - * net/: psock_connect() is an internal interface and should not set the - errno nor should it be a cancellation point (2017-09-30). - * net/: psock_listen() is an internal interface and should not set the - errno (2017-09-30). - * net/: psock_getsockopt() is an internal interface and should not set - the errno (2017-09-30). - * net/: psock_getsockopt() and psock_socket() are an internal interfaces - and should not set the errno (2017-09-30). - * net/: psock_accept() is not a cancellation point (2017-09-30). - * net/: psock_recvfrom() is an internal interface and should not set the - errno nor should it be a cancellation point (2017-09-30). - * net/ and fs/: net_vfcntl(), file_fcntl(), file_dup(), and file_dup2() - are all internal OS interfaces and should not modify the errno value - (2017-09-30). - * net_dupsd() and net_dupsd2() are internal OS functions and should not - set the errno variable (2017-09-30). - * psock_ioctl() and netdev_ioctl() are internal OS functions and should - not set the errno variable (2017-09-30). - * psock_close() and net_close() are internal OS functions and should not - set the errno variable (2017-09-30). - * SAMv7, STM32, STM32 L4: DAC and ADC drivers are not permitted to set - the errno (2017-09-30). - * SIM LPC31xx: Serial and console drivers are not permitted to set the - errno (2017-09-30). - * STM32, STM32 F7: LTDC and DMA2D drivers are not permitted to set the - errno (2017-09-30). - * drivers/serial: 16550 UART driver IOCTL method must not set errno; it - must return a negated errno value (2017-09-30). - * drivers/lcd: ILI9341 initialize method not permitted to set errno - (2017-09-30). - * drivers/sensors: LIS331DL driver not permitted to set errno - (2017-09-30). - * drivers/wireless: CC1101 driver not permitted to set errno - (2017-09-30). - * configs/z80sim and xtrs: Serial driver lower halves ioctl methods - should return a negated errno value, not set the errno variable - (2017-10-30). - * compiler.h, limits.h, types.h: Update SDCC/z80 files to include - support for long long, inline, __FILE__, and __func__ (2017-10-01). - * z80 Make.defs: Fixes dependency generation with newest SDCC compiler - (2017-10-01). - * include/: Add stdnoreturn.h (2017-10-01). - * tools/configure.sh: Add special support so that you can start with a - windows native configuration and install on a different host (and vice - versa). (2017-10-01). - * stm32_hrtim: add support for capture, chopper, deadtime and dump - registers. From Mateusz Szafoni (2017-10-01). - * tools/configure.c: Duplicate new functionaity added to configure.sh - (2017-10-01). - * tools/configure.sh: Another fix for the script. The last change only - worked for Windows Cygwin; for Linux, it needed to remove some - additional things from the defconfig file (2017-10-01). - * configs/z80sim: convert other configurations to default to Linux - (2017-10-01). - * tools/: configure.sh and configure.c should redirect stdout to - /dev/null but should not suppress stderr output (2017-10-01). - * stdnoreturn.h: Add definitions for the C11 noreturn keyword. Also - Remove C++11 dependency. Applies to C too (2017-10-02). - * net/route: Add logic to mark a route as most-recently-used in the - route cache (2017-10-02). - * commit b2ea300b6fb7672cdb682a0957b5dd2cff63804d broke the STM32L4 port - for people not using the L496xx or L4A6xx. That was because - stm32l4_sdmmc.h is included from the stm32l4.h global header, and this - header fires an #error for other chips. I see that ALL stm32l4 have the - same SDMMC except the stm32l4x2, which has none. From Sebastien Lorquet - (2017-10-02). - * net/route: Fix an error in cache list management (2017-10-02). - * Add support for Micron MT25Q series MT25Q128. From Sebastien Lorquet - (2017-10-02). - * binfmt/: Don't schedule starthook if there are no constructors - (2017-10-02). - * binfmt/: exec_module(), load_module(), unload_module(), and - schedule_unload() are internal OS functions and must not alter the errno - variable (2017-10-02). - * stm32f103-minimum: Add ADC support on stm32f103-minimum board. From - Alan Carvalho de Assis (2017-10-02). - * syscall/: The non-standard interface exec() is now enshrined as a - official NuttX API. I really dislike doing this but I think that this - is probably the only want to load programs in the protected mode. It is - currently used by some example code under apps/ that generate their own - symbol tables for linking. Other file execution APIs relay on a symbol - table provided by the OS. In the protected mode, the OS cannot provide - any meaning symbol table for execution of code in the user-space blob so - that is they exec() is really needed in that build case. And, finally, - the interface is completely useless and will not be supported in the - KERNEL build mode where the contrary is true: An application process - cannot provide any meaning symbolic information for use in linking a - different process (2017-10-03). - * STM32L4 RTC, PM: small fixes to subseconds handling, ADC - power-management hooks - - STM32L4 ADC: add PM hooks from Motorola MDK - - STM32L4 RTC: add up_rtc_getdatetime_with_subseconds - - STM32 RTC: workaround for potential subseconds race condition. In - all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed - to lock the values in the higher-order calendar shadow registers - until RTC_DR is read. However many old chips have in their errata - this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD - and likely others): "When reading the calendar registers with - BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after - reading the RTC_SSR register. This happens if the read operation is - initiated one APB clock period before the shadow registers are - updated. This can result in a non-consistency of the three - registers. Similarly, RTC_DR register can be updated after reading - the RTC_TR register instead of being locked." - - STM32L4 RTC: correct RTC_SSR and RTC_TR read ordering. In all - recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to - lock the values in the higher-order calendar shadow registers until - RTC_DR is read. Change the register read ordering to match this and - don't keep a workaround for a hypothetical race condition (not in - any L4 errata, lets for once assume ST's silicon works as it is - documented...) - - STM32L4 PM: remove useless #ifdefs and old non-L4 STM32 code - From Juha Niskanen (2017-10-03). - * sched/semaphore: Rename sem_reset() to nxsem_reset() so that it is - clear this is an internal OS function (2017-10-03). - * sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it - is clear this is an internal OS function (2017-10-03). - * libc/semaphore: Add nxsem_init() which is identical to sem_init() - except that it never modifies the errno variable. Changed all - references to sem_init in the OS to nxsem_init() (2017-10-03). - * sched/semaphore: Rename all internal private functions from sem_xyz - to nxsem_xyz. The sem_ prefix is (will be) reserved only for the - application semaphore interfaces (2017-10-03). - * libc/semaphore: Add nxsem_getvalue() which is identical to - sem_getvalue() except that it never modifies the errno variable. - Changed all references to sem_getvalue in the OS to nxsem_getvalue() - (2017-10-03). - * libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and - nxsem_setprotocola which are identical to sem_getprotocol() and - set_setprotocol() except that they never modifies the errno variable. - Changed all references to sem_setprotocol in the OS to - nxsem_setprotocol(). sem_getprotocol() was not used in the OS - (2017-10-03). - * sched/semaphore: Add nxsem_destroy() which is identical to - sem_destroy() except that it never modifies the errno variable. Changed - all references to sem_destroy() in the OS to nxsem_destroy() (2017-10-03). - * sched/semaphore: Add nxsem_post() which is identical to sem_post() - except that it never modifies the errno variable. Changed all - references to sem_post in the OS to nxsem_post() (2017-10-03). - * sched/semaphore: Add the function nxsem_wait(). This is a new - internal OS interface. It is functionally equivalent to sem_wait() - except that (1) it is not a cancellation point, and (2) it does not set - the per-thread errno value on return. In all OS functions (not - libraries), change sem_wait() to nxsem_wait(). This will prevent the OS - from creating bogus cancellation points and from modifying the per-task - errno variable. This commit also backs out most of commit - b4747286b19d3b15193b2a5e8a0fe48fa0a8638c. That change was added because - sem_wait() would sometimes cause cancellation points inappropriately. - But with these recent changes, nxsem_wait() is used instead and it is - not a cancellation point (2017-10-04). - * sched/semaphore: sem_timedwait() is a cancellation point and, hence, - cannot be called from within the OS. Created nxsem_timedwait() that is - equivalent but does not modify the errno and does not cause - cancellation. All calls to sem_timedwait() change to calls to - nxsem_timedwait() in the OS (2017-10-05). - * sched/semaphore: sem_trywait() modifies the errno value and, hence, - should not be used within the OS. Use nxsem_trywait() instead - (2017-10-05). - * This change renames all internal, private NuttX signal-related - functions to use the prefix nxsig_ so that they cannot be confused with - application interfaces that begin, primarily, with sig_. This is - analogous to similar renaming that was done previously for semaphores - (2017-10-05). - * drivers/input/cypress_mbr3108: Add missing variable for nxsem_wait - return value. From Jussi Kivilinna (2017-10-06). - * fs/vfs and net/socket: fcntl() is not return success fail for - F_SETFL. Reported by Jussi Kivilinna (2017-10-06). - * This commit adds internal versions of the signal interfaces: - - sigtimedwait() -> nxsig_timedwait() - - sigwaitinfo() -> nxsig_waitinfo() - - nanosleep() -> nxsig_nanosleep() - Replace all usage of sigwaitinfo(), sigtimedwait(), and nanosleep() - with the OS internal counterparts nxsig_waitinfo(), nxsig_timedwait(), - and nxsig_nanosleep(). The internal OS versions differ from the - standard application interfaces in that they do not create - cancellation points and they do not modify the application's errno - variable (2017-10-06). - * Adds new OS internal functions nxsig_sleep() and nxsig_usleep. These - differ from the standard sleep() and usleep() in that (1) they don't - cause cancellation points, and (2) don't set the errno variable (if - applicable). All calls to sleep() and usleep() changed to calls to - nxsig_sleep() and nxsig_usleep() (2017-10-06). - * drivers/serial/tcdrain: tcdrain() was recently added to the NuttX C - library. But there is a problem. The specification of tcdrain() - requires that it be a cancellation point. In order to do this, tcdrain - was moved from the C library into the OS and the addition cancellation - point hooks were added. In non-FLAT builds, access via system calls is - also now supported (2017-10-06). - * net/Kconfig: Remove improper use of comma in syntax (2017-10-06). - * mm/: Heap semaphore logic needs to use nxsem_* interfaces when - available, but the standard semaphores only when implementing a - user-space heap. Not this does introduce and issue: the memory - management functions them become cancellation points because of the use - of sem_wait (2017-10-07). - * syscall/: Fix some backward conditional compilation (2017-10-07). - * sched/signal: Add nxsig_kill() which is functionally equivalent to - kill() except that it does not modify the errno variable. Replace all - usage kill() in the OS proper with nxsig_kill() (2017-10-07). - * graphics/vnc/server: Fix an error in the VNC server introduced with - recent big set of changes (2017-10-07). - * sched/signal: Add nxsig_queue() which is functionally equivalent to - sigqueue() except that it does not modify the errno variable. Replace - all calls to sigqueue() in the OS proper with calls to nxsig_queue() to - avoid accessing the errno variable (2017-10-07). - * sched/signal: Add internal OS interface nxsig_procmask(). This - internal interface is equivalent to the standard sigprocmask() used by - applications except that it does not modify the errno value. Also fixes - a problem in that the original sigprocmask() was not setting the errno. - Replace all calls to sigprocmask() in the OS proper with calls to - nxsig_procmask(). (2017-10-07). - * sama5d4-ek: Remove a really old defconfig example file that is so far - out of date that it can only be misleading (2017-10-07). - * Fix some build problems after recent separation of internal OS from - application interfaces. The build problem only occurs in the PROTECTED - and KERNEL builds where separate libraries are built for the - applications and for use within the OS. In these cases, the correct - interfaces must be used. This commit fixes a few of these, so I can get - through build testing, but there are many more that need fixin' - (2017-10-08). - * SDCC Fixes: Change some prototypes and some assumptions about the - size of unsigned int to get to a clean SDCC compile (2017-10-08). - * Fix some problems in the previous commits: Forgot to update sigset() - after change to prototype. Also there was a stray semicolon in the - change signal() (2017-10-08). - * libc/stdio: Build the lib_noflush() and lib_snoflush() stubs even if - CONFIG_FILE_DESCRIPTORS=0. They may still be needed (2017-10-08). - * configs/z80sim: Fix a naming problem. Also, don't try to build the - serial driver if CONFIG_NFILE_DESCRIPTOR=0 (2017-10-08). - * libc and libnx: When the libraries are built into two libraries, a - user space library and a OS space library (as in the PROTECTED and - KERNEL build). Then the user space library must not use the OS internal - interfaces; similarly, the OS must avoid using the userspace interfaces - so that it does not muck the errno value or create spurious cancellation - points (2017-10-08). - * Misc STM32 Fixes - - stm32_hrtim.c: fix burst mode prescaler update - - stm32f334-disco: add flash mode support for powerled driver + - cosmetics - From Mateusz Szafoni (2017-10-08). - * powerled.h: Add fault field to state structure. From Mateusz Szafoni - (2017-10-08). - * libc/termios: Adds tcflow() (2017-10-09). - * RNDIS: Use CONFIG_USBDEV_MAXPOWER instead of hardcoded value. Use - LPWORK for network operations by default. From Sakari Kapanen - (2017-10-09). - * sched/mqueue: Rename all OS internal functions declared in - sched/mqueue/mqueue.h to begin with nxmq_ vs. mq_. The mq_ prefix is - reserved for standard application interfaces. Rename all private static - functions for use the nxmq_ vs. mq_ naming (2017-10-09). - * task: Add new cancellation point interface, - check_cancellation_point() (2017-10-09). - * STM32, STM32L4 serial changes: - - stm32: serial: add interface to get uart_dev_t by USART number, - stm32_serial_get_uart - - stm32: serial: do not stop processing input in SW flow-control mode - - stm32l4: serial: do not stop processing input in SW flow-control - mode - - stm32l4: serial: suspend serial for Stop mode - From Juha Niskanen (2017-10-09). - * Misc STM32 Fixes - - stm32_powerled.c: cosmetics - - stm32_hrtim.c: cosmetics - - stm32/Kconfig: add HRTIM configuration and add DAC external - trigger configuration - - stm32f334-disco: Add powerled example configuration. From Mateusz - Szafoni (2017-10-09). - * drivers/power: Add powerled to Kconfig. From Mateusz Szafoni - (2017-10-09). - * BCM2708: Add enough infrastructrue (more stubs) to get a clean - compilation of the Pi Zero configuration (with many undefined things at - link time). This includes several register definition header files - (some from Alan Carvalho de Assis), basic interrupt handling logic, - boot-up files, GPIO support, build and configuration logic, basic board - support at configs/pizero (2017-10-09). - * sched/mqueue: Add internal function nxmq_send() and nxmq_timedsend() - that are equivalent to mq_send() and mq_timedsend() except that they do - not create cancellation points and do to not modify the errno variable. - Change all calls to mq_send() and mq_timedsend() in the OS to calls to - nxmq_send() and nxmq_timedsend(), making appropriate changes for - differences in return values (2017-10-10). - * sched/mqueue: Add nxmq_receive() and mxmq_timedreceive() which are - functionally equivalent to the standard mq_receive and mq_timedreceive() - except that (1) they do not create cancellation points, and (2) the do - not modify the application's errno variable. Change all calls to - mq_receive() and mq_timedreceive() in the OS to calls to nxmq_receive() - and nxmq_timedreceive(), making appropriate changes for differences in - return values (2017-10-10). - * Fix a few places where there was a semicolon following the 'if' - condition, making the following logic unconditional (2017-10-10). - * The INA219 is a combined voltage and current sensor that can measure - up to 26 volts and a current that depends on an external shunt - resistor. Connection happens via i2c/smbus and the chip features a - power supply rail that is independent from the measured voltage, so it - can measure low voltages. - - This commit adds a driver for this chip. Right now it measures bus - voltage and current, and does not use the internal calibrated current - reading, nor the available power measurement. From Sebastien Lorquet - (2017-10-10). - * configs/clicker2-stm32: Adds SD card, automount, and syslog file - support and fixes a few minor issues - - Moves defines for xbee from clicker2-stm32.h to stm32_xbee.h - - Adds support for uSD click boards and automount support - - Fixes minor guard clause - - Bring-up automounter before MMCSD - - MRF24J40 interrupt should only fire on falling edge. - - Adds file syslog support for logging to file on SD card - From Anthony Merlino (2017-10-11). - * Z80: Makefile fix for use with current SDCC (2017-10-11). - * fs/vfs: Change the return value of internal function fs_getfilep(). - It no longer sets the errno variable but, rather, returns errors in the - same manner as other internal OS functions (2017-10-11). - * Adds OS internal functions nx_send(), ns_recv(), and nx_recvfrom() - which are functionally equivalent to send(), recv(), and recvfrom() - except that they do not set the errno variable and do not cause - cancellation points (2017-10-11). - * Adds OS internal function nx_write() which is functionally equivalent - to write() except that it does not set the errno variable and do not - cause cancellation points (2017-10-11). - * sched/task: task_exithook.c fails to link if signals are disabled - because was unconditionally trying to send the SIGCHLD signal to the - parent in certain configurations. Noted by Jeongchan Kim (2017-10-11). - * arch/arm/src/samv7: Correct an error in RX DMA setup. From Manish - Kumar Sharma (2017-10-11). - * net/socket: psock_send/psock_sendto: remove assert check for null - psock and buf input pointers. Removes check as 'psock == NULL' - altogether because that checked for later in psock_send and - psock_sendto. Change null check for 'buf' so that it is handled same as - in recvfrom.c (return -EINVAL instead of assert). From Jussi Kivilinna - (2017-10-11). - * fs/vfs: Add new internal OS interface nx_read(). nx_read() is - functionally equivalent to read() except that it does not modify the - errno variable and it is not a cancellation point. Changed all - references to read() in the OS to nx_read() (2017-10-11). - * sched/signal: Add logic to wake up a thread that is waiting on a - signal if it is canceled (2017-10-12). - * nxsig_timedwait: Add logic to suppress the wait if there is a pending - cancellation (2017-10-12). - * stm32 SPI: Add missing include required when CONFIG_SPI_CALLBACK is - enabled. From Anthony Merlino (2017-10-12). - * STM32L4 RTC fixes: - - STM32L4 RTC: init mode was never exited because nested locking in - rtc_synchwait() disabled backup domain access - - STM32L4 RTC: Use backup register magic value instead of INITS - bit. The INITS (bit 4) of RTC_ISR register cannot be used to - reliably detect backup domain reset. This is because we can operate - our device without ever initializing the year field in the RTC - calendar if our application does not care about correct date being - set. Hardware also clears the bit when RTC date is set back to year - 2000. - - STM32L4 RTC: put back the SSR race condition workaround. ST has - confirmed that the issue has not been fixed, and that it applies to - STM32L4 too (was not in errata sheets due to documentation bug) See - discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution - - STM32F4, STM32L4, STM32F7 RTC: add more CONFIG_RTC_NALARMS > 1 to - reduce code size - - STM32L4: rename stm32l4_rtcc.c to stm32l4_rtc.c to better match - STM32F7 - - STM32, STM32L4, STM32F7 RTC: stray comment and typos in - chip/stm32_rtcc.h - - STM32L4 RTC: change maximum alarm time from 24h to one month - From Juha Niskanen (2017-10-13). - * TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a situation - where a NULL pointer may be dereferenced. In this configuration, the - TCP connection's 'semi-permanent' callback, s_sndcb was nullified in - tcp_close_disconnect. However, other logic in tcp_lost_connection() - attempt to use that callback reference after it was nullifed. Fixed in - tcp_lost_connectino() by adding a NULL pointer change before the - access. This was reported by Dmitriy Linikov in Bitbucket Issue 72 - (2017-10-13). - * stm32f7 BBSRAM: stm32_bbsram: avoid assert in stm32_bbsram_savepanic. - If panic happens before stm32_bbsram is initialized, - stm32_bbsram_savepanic caused additional assert panic. Function has null - pointer check, so drop DEBUGASSERT. From Jussi Kivilinna (2017-10-13). - * FS FAT: Fix hard-fault when listing contents of FAT root. From Jussi - Kivilinna (2017-10-13). - * configs/stm32f4discovery: Add a USB MSC configuration. From Alan - Carvalho de Assis (2017-10-13). - * 6LoWPAN: Correct a bug in handling uncompressed frames (IPv6 - dispatch) (2017-10-13). - * 6LoWPAN: Fix a whole in the logic of the previous commit. It turns - out that g_uncomp_hdrlen has other usages so it cannot be modified as I - was doing. Instead, I needed to add a separate localt variable, - protosize, to keep track of the two usages of g_uncomp_hdrlen - (2017-10-13). - * configs/: The nx and nxtext examples no longer supports single user - mode (2017-10-14). - * The lcdrw example has been removed because it violates the portable OS - interface (2017-10-14). - * All configurations that use NXIMAGE or NXHELLO must select - NX_MULTIUSER. All configurations that use examples/nxterm must enable - CONFIG_LIB_BOARDCTL (2017-10-14). - * configs/stm32f103-minimum: Add support for LM75 in the - stm32f103-minimum board. From Alan Carvalho de Assis (2017-10-14). - * configs/: All configurations that use NXLINES must select - NX_MULTIUSER. All configurations that use the NX server need to have - larger POSIX messages (2017-10-14). - * boardctl(): Remove the BOARDIOC_GRAPHICS_SETUP command (2017-10-15). - * Initial ADC support for the STM32F33XX - - stm32_adc.h: add JEXTSEL definitions and hrtim trigger configuration - - stm32_adc.c: move STM32F33 ADC logic to a separate file - From Mateusz Szafoni (2017-10-15). - * configs/sim: Update touchscreen driver initialization to use only - multiple-user NX server logic (2017-10-15). - * configs/sim: Convert the traveler configuration so that it uses the - framebuffer driver (2017-10-16). - * task_delete(): Do not permit user applications to delete kernel - threads (2017-10-16). - * kthread_create(): Rename kernel_thread() to kthread_create() for - better naming consistency with task_create() and kthread_delete() - (2017-10-16). - * All other STM32: SHIFTR_SUBFS_MASK was correct in STM32F0 only - - STM32L1: use correct EXTI line definitions (2017-10-17). - * STM32 RTC fixes: - - RTC: canceling an alarm marks it as inactive - - STM32L4, STM32F4, STM32F7 RTC: fix reading alarm value that is - more than 24h in future - - STM32F0 RTC: fix backup register count in stm32_rtcc.h - From Juha Niskanen (2017-10-17) - * BCM2708: Add system timer register definitions and a partial - implementation of the tickless mode timer (2017-10-17). - * BCM2708: Add support for AUX interrupts. Add some build configuration - and support logic for low-level serial output (2017-10-17). - * drivers/usbdev: Correct input flow control logic when watermarks are - not enabled. Problem noedt by and change based on suggestion by Juha - Niskanen (2017-10-18). - * BCM2708: Add hooks to support both Mini- and PL011 UARTs (2017-10-18). - * BCM2708: Fleshes out GPIO interrupt logic (2017-10-18). - * fs/vfs: Fix after recent changes. write() was return negative values - in errno. Noted by Jussi Kivilinna (2017-10-18). - * drivers/usbdev: Move test for NULL pointer before the pointer is - deferences. Noted by Juha Niskanen (2017-10-18). - * net/: Fix some build issues noted when both IPv4 and IPv6 are - enabled. From Anthony Merlino (2017-10-18). - * photon: Support SPI1 and SPI3. From Anthony Merlino (2017-10-18). - * BCM2708: Allow pass parameters with AUX interrupts; Add mini-UART - break capability. BCM2708: Add Mini-UART logic. Still missing UART - configuration logic (2017-10-18). - * Alexey T, Bitbuck Issue 73: Lower part of STM32 CAN driver - arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and clears - TXFP bit in the CAN_MCR register (it means transmission order is defined - by identifier and mailbox number). - - This creates situation when order frames are put in upper part of CAN - driver (via can_write) and order frames are sent on bus can be - different (and I experience this in wild). Since CAN driver API - pretends to be "file like" I expect data to be read from fd the same - order it is written. So I consider described behaviour to be a bug. - - I propose either to set TXFP bit in the CAN_MCR register (FIFO - transmit order) or to use only one mailbox (2017-10-19). - * The timer frequencies (BOARD_TIMx_FREQUENCY) are incorrectly defined - in configs/stm3240g-eval/include/board.h. Since the APB prescalers are - set to divide by 4 and 2 respectively, the frequencies should be - "2xAPBx" as said in the comment.  The correct frequencies are already - defined but as STM32_APBx_TIMx_CLKIN. From Mattias Edlund (2017-10-19). - * drivers/ioexpander: The IRQ subsystem now supports passing a void * - parameter to IRQ handlers. Use that method to support multiple pc9555 - devices, by passing a pointer to the device to the board defined irq - handler. Now the CONFIG_ for multiple PCA devices just allocates device - structures dynamically instead of statically when not enabled. - - The same interrupt handler is entered with the device structure - parameter in all situations, multiple or single PCA. One should still - be careful if multiple PCA devices share the same IRQ. From Sebastien - Lorquet (2017-10-19). - * libc/match: Use of exp() vs expf() in logf() caused function to be - slow. From Alan Carvalho de Assis (2017-10-19). - * drivrs/mtd/filemtd.c: add block device MTD interface. Block MTD - interface allows using block device directly as MTD instead of having to - use file-system in between. NOTE that this provides the opposite - capability of FTL which will let you use an MTD interface directly as a - block device. From Jussi Kivilinna (2017-10-19). - * There was a reference counting problem in the TCP logic of - net_clone(). net_clone() which is the common logic underlying dup() and - dup2() for sockets. When net_clone() calls net_start_monitor() and - net_start_monitor() returns a failure (because the underlying TCP - connection) then net_clone() must back out the reference count on the - structure. Problem noted by Pascal Speck and this implementation of the - solution is based on his suggestion (2017-10-19). - * There was a possible recursion that could eventually overflow the - stack. The error occurred when closing the socket with inet_close() - while a socket callback was still queued. When the socket callback was - executed by devif_conn_event(), this resulted in a call to - psock_send_eventhandler() with TCP_CLOSE flag set which then called - tcp_lost_connection(). tcp_shutdown_monitor() then called - tcp_callback() again, which again called psock_send_eventhandler(), and - so on.... Noted by Pascal Speck. Solution is also similar to a - solution proposed by Pascal Speck (2017-10-19). - * nucleo-f334r8/adc: change serial console to USART2 (STLINK COM). From - Mateusz Szafoni (2017-10-19). - * stm32f33xxx_adc.c: fix some warnings and compilation error when extsel - not in use. From Mateusz Szafoni (2017-10-19). - * net/tcp: Same change to tcp_send_buffered.c probably also applies to - tcp_send_unbuffered.c (2017-10-19). - * net/tcp: Same change to tcp_send_buffered.c probably also applies to - tcp_sendfile.c (2017-10-19). - * tcp_lost_connection() is called from two places in tcp_sendfile.c - (2017-10-19). - * net/tcp: Same change to tcp_send_buffered.c probably also applies to - sixlowpan_tcpsend.c and inet_recvfrom.c (2017-10-19). - * drivers/sensor: Add driver for the APDS-9960 gesture sensor. From - Alan Carvalho de Assis (2017-10-20). - * include/nuttx/sensors/ioctl: deduplicate SNIOC_CFGR. From Jussi - Kivilinna (2017-10-20). - * drivers/sensors/hts221: power-on sensor for loading calibration data. - From Jussi Kivilinna (2017-10-20). - * arch/arm/src/stm32f7/i2c: fix I2C_M_NORESTART handling. From Jussi - Kivilinna (2017-10-20). - * drivers/sensors/apds9960.c: Use work_queue to read/process data when - receive an IRQ. From Alan Carvalho de Assis (2017-10-20). - * STM32L1, STM32L4 RTC: add periodic interrupts, update L1 RTC - implementation - - STM32L4 RTC: add support experimental CONFIG_RTC_PERIODIC - - STM32 RTC: separate STM32L1 RTC into a separate file - STM32L1 RTC is very close to F4 or L4 versions, with two alarms and - periodic wakeup support so backported L4 peripheral to L1. - - RTC: Add periodic alarms to upper and lower halves - From Juha Niskanen (2017-10-20). - * stm32_adc.c: clear pending interrupts. From Mateusz Szafoni - (2017-10-20). - * drivers/bch: The character driver to block device access now supports - an IOCTL to get the geometry of the underlying block device (2017-10-20). - * fs/fat: Remove mkfatfs from the OS. This is a user-space application - and belongs in apps, not in the OS (2017-10-20). - * configs/nucleo-f334r8: add logic for zero latency high priority - interrupts example. From Mateusz Szafoni (2017-10-22). - * Misc STM32 chagnes - - STM32 HRTIM: Fix warnings related with RCC - - STM32F33xxx ADC: Add some publicly visible interfaces and some - code to support injected channels - - STM32F33xxx DMA: Add public interface to handle with DMA interrupts - From Mateusz Szafoni (2017-10-22). - * stm32f103-minimum: Add an ADPS-9960 example configuration. From Alan - Carvalho de Assis (2017-10-23). - * net/icmp: This change adds support for semi-standard IPPROTO_ICMP - AF_INET datagram sockets. This replaces the old ad hoc, nonstandard way - of implementing ping with a more standard, socket interface (2017-10-23). - * net/inet: Add check for protocol before handing out TCP and UDP - sockets (2017-10-23). - * arch/arm/common/up_checkstack: fix assert panic when both TLS and - interrupt stack are enable. From Jussi Kivilinna (2017-10-23). - * net/icmp: Correct some comments, typings, spacing problems from last - big ICMP socket change (2017-10-23). - * configs/: All defconfig files that include - CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and - deselect CONFIG_DISABLE_POLL (2017-10-24). - * net/icmpv6: This commit adds support for semi-standard IPPROTO_ICMP6 - sockets. This is a replacement for the non-standard ICMPv6 ping support - that violated the portable POSIX OS interface (2017-10-24). - * mm/mm-heap: memalign: fix heap corruption caused by using unaligned - chuck size. Unaligned nodes generated by memalign later cause heap - corruptions when nodes are shrink further (for example, 24 bytes -> 8 - bytes, when alignment is 16 bytes). From Jussi Kivilinna (2017-10-24). - * lm3s8962: NX configuration needs CONFIG_NXSTART_EXTERNINIT=y - (2017-10-24). - * sched/: move POSIX thread specific data from pthread TCB to common - TCB structure. This change allows using - pthread_getspecific/pthread_setspecific from main thread. Patch also - enables using pthread data with config option CONFIG_DISABLE_PTHREAD=y. - From Jussi Kivilinna (2017-10-25). - * net/local: fix typo in config macro name. From Juha Niskanen - (2017-10-25). - * Olimex stm32-h407 serial support for the on-board UEXT connector - (fixed style & defconfig). Add USART6 for UEXT connector. Add - nsh_uext configuration and README update. From Jan Pobříslo (2017-10-26). - * configs/nucleo-l496zg/nsh: enable I2C4 bus with i2ctool. From Jussi - Kivilinna (2017-10-26). - * arch/arm/stm32f7: i2c: restore bus frequency after I2C reset. Copy - frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C - driver. From Jussi Kivilinna (2017-10-26). - * arch/stm32l4: port STM32F7 I2C driver to STM32L4. STM32L4 I2C driver - is in work-in-progress state (plentiful of TODOs and #warnings) and lags - many features found in more up-to-date STM32 I2C drivers. The peripheral - on STM32F7 and STM32L4 are identical except for L4's 'wakeup from stop - mode' flag and STM32F7's I2C driver is in more 'ready to use' state. - - Commit ports the STM32F7 I2C driver to STM32L4. The I2C clock - configuration is kept the same as before (I2CCLK = PCLK1 80 MHz) - instead of switching to STM32F7 arch default that is I2CCLK=HSI. - Further work would be to add configuration option for choosing I2C - clock source instead of current hard-coded default. From Jussi - Kivilinna (2017-10-26). - * drivers/sensors/lis2dh: fixes for self-test. From Jussi Kivilinna - (2017-10-26). - * include/nuttx/fs/: Move prototype of foreach_mountpoint out of - include/nuttx/fs/fs.h to fs/mount/mount.h (2017-10-26). - * fs/mount: Implements procfs /proc/fs/blocks and /proc/fs/usage files, - replacing the NSH df command. Also implements procfs /proc/fs/mount - file, replacing the NSH mount command when there are no arguments - (2017-10-26). - * Correct a problem that was causing an apparent directory to be - reported as a file instead of a directory by opendir. This happened - after adding these three new procfs entries: fs/block, fs/mount, and - fs/usage. Of course, there is no directory fs in this case, only three - files that have fs/ in their relative pathnames. The logic was - detecting that fs was the name of the enty to report, but it was then - declaring that fs was a file (because fs/block is of type file). This - was fixed by adding a check for matching lengths. i.e., if strlen(fs) - != strlen(fs/block), then report fs as a directory instead of a file - (2017-10-26). - * fs/procfs: Missing some conditional logic for cases where mountpoint - procfd entries excluded (2017-10-27). - * drivers/can/mcp2515.c: Fix the MCP2515 Bit Rate Prescale - calculation. Fix BRP for SET_BITTIMING ioctl as well. From Alan - Carvalho de Assis (2017-10-27). - * sensors/lis2dh: Fix use of obsolete dbg macro. From Jussi Kivilinna - (2017-10-27). - * nucleo-f334r8: Add highpri example configuration. From Mateusz - Szafoni (2017-10-28). - * STM32 F33xx: Add ADC DMA support to STM32F33 configuration. From - Mateusz Szafoni (2017-10-28). - * drivers/net: Remove the old, unfinished Crystal LAN driver. I don't - even have the hardware that it goes with anymore (2017-10-28). - * configs/mx1ads: This commit removes board support for the mx1ads - board. That board support was never completed and I no longer even have - the hardware. The unfinished board support is still available in the - Obsoleted repository if anyone would ever like to resurrect it - (2017-10-28). - * STM32 ADC: Added support for ADC's IO_ENABLE_TEMPER_VOLT_CH ioctl on - STM32F10XX and STM32F20XX. From Dmitriy Linikov (2017-10-30). - * STM32 F2: Fixed build for STM32F20XX platforms when - CONFIG_STM32_DMACAPABLE is enabled. From Dmitriy Linikov (2017-10-30). - * fs/userfs: This completes coding of the UserFS client and of the - UserFS feature in general. This feature is being merged to main now - because I believe it is innocuous. It is, however, untesed. The next - step will be to develop a test case to verify the feature. Uses Unix - domain local sockets instead of message queues. Easier to transfer big - data in local sockets than message queues (2017-10-30). - * Fix DEBUGASSERT() issues with nxhello on lc823450-xgevk - - sched/task: Remove DEBUGASSERT in task_exitstatus() and - task_groupexit() - - graphics: Change DEBUGASSERT condition in nx_runinstance() - From Masayuki Ishikawa (2017-10-31). - * Fix GPIO operation of STMPE811 driver. - 1. STMPE811_GPIO_DIR was defined for register name and later was - redefined to be the pin direction mask for `stmpe811_gpioconfig`. I - decided to change register name to be STMPE811_GPIO_DIR_REG, and keep - pin direction mask STMPE811_GPIO_DIR, so that any external code that - already use this driver will be unchanged. - 2. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0 - for input, but `stmpe811_gpioconfig` set the opposite. - 3. The call to `stmpe811_gpiowrite` from inside of - `stmpe811_gpioconfig` leaded to deadlock. - From Dmitriy Linikov (2017-10-31). - * sim/userfs: Add a configuration for testing the UserFS using - apps/examples/userfs (2017-10-31). - * Fixes a memory leak that is caused because the client message queue is - not unlinked after the client disconnects from the NX server. From - Masayuki Ishikawa (2017-10-31). - * drivers/wireless/ieee80211: Fix typos and spelling errors as needed - for Photon build. From Anthony Merlino (2017-11-01). - * net/icmpv6: Add some header file necessary for correct build. From - Anthony Merlinoo (2017-11-01). - * libc/userfs: Correct return value from dispatchers. Should return - zero on success, not the number of bytes sent (2017-11-01). - * net/ipforward: Fixes typo that caused build error when IP forwarding - was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as well. From - Anthony Merlino (2017-11-01). - * ieee802154: Simplifies notify() and rxframe() calls to a single - notify() call. dataind's and all other "notifs" are now "primitives" - which aligns with standard terminology From Anthony Merlino (2017-11-01). - * fs/userfs: Correct check for response type (2017-11-01). - * net/local: This commit modifies the Unix domain local socket design. - Local sockets are built on top of pipes. The Local socket - implementation maintained file descriptors to interrupt with the pipes. - File descriptors have the bad property that they are valid only while - running on the thread within the task that created the local socket. - - As a policy, all internal OS implementations must use "detached" files - which are valid in any context and do not depend on the validity of a - file descriptor at any point in time. This commit converts the usage - of file descriptors to detached files throughout the local socket - implementation (2017-11-02). - * fs/userfs: There are some deadlock issues that make the UserFS - un-usable at the current time. Added to the TODO list; also feature is - now marked EXPERIMENTAL (2017-11-02). - * drivers/serial/serial.c: Optimize wait time in tcdram() for buffer - emptying. According to the specification, the close function must wait - until all data has been written before it closes the file (except - O_NONBLOCK is set). The maximum waiting time for this is not specified. - - To be able to edit the file list of the process, the close function - has to lock the file list semaphore. After that the close function of - the serial driver is called. - - Waiting for the complete transmission of all data is done in the - serial driver. This causes the semaphore to remain locked until all - data has been sent. However, no other thread of the process can edit - the file list for that time (open, close, dup2, etc.). This is not - optimal in a multithreaded environment. Therefore, we have to keep - the waiting time within the driver as short as possible. From Frank - Benkert (2017-11-02). - * drivers/loop: Don't use file descriptors... Use the internal file - system interfaces so that the loop device can be shared across threads - (2017-11-02). - * drivers/mtd/filemtd.c: Don't use file descriptors... Use the internal - file system interfaces so that the loop device can be shared across - threads (2017-11-02). - * mac802154: Fixes a warning for unused variable and returns -1 from - macnet_notify() if event is not used. From Anthony Merlino (2017-11-03). - * drivers/lcd/max7219.c: Add support to MAX7219 LED Matrix as LCD - interface. From Alan Carvalho de Assis (2017-11-04). - * configs/stm32f103-minimum: Add board support for MAX7219 LED Matrix - controller. From Alan Carvalho de Assis (2017-11-04). - * stm32f334-disco, nucleo-f334r8: add missing ram_vectors configuration - in linker script. From Mateusz Szafoni (2017-11-04). - * Kconfigs: Add CONFIG_LCD_UPDATE that works like CONFIG_NX_UPDATE but - can be enabled without enabling the graphics subsystem (2017-11-04). - * SAMv71-XULT: Remove non-functional framebuffer configuration - (2017-11-05). - * stm32f103-minimum: Remove warning when selecting MMCSD support, Add - board_usbmsc_initialize to stm32f103-minimum. From Alan Carvalho de - Assis (2017-11-05). - * nucleo-f334r8/highpri: missing ADC trigger configuration. From - Mateusz Szafoni (2017-11-05). - * stm32f334-Disco: beginning of lower-half driver for SMPS (buck-boost - onboard converter). From Mateusz Szafoni - * Misc. STM32 Fixes: - - STM32 HRTIM: add helper macros - - STM32F33xxx ADC: injected channels support, fix some definitions, - add interface to disable interrupts - From Mateusz Szafoni (2017-11-05). - * fs/userfs: This commit converts the underlying IPC used by the - UserFS from Unix domain local sockets to UDP LocalHost loopback - sockets. The problem with the local sockets is that they do require - operations on the top level pseudo-file system inode tree. That tree - must be locked during certain traversals such as enumerate mountpoints - or enumerating directory entries. - - This conversion is unfortunate in the sense that Unix local domain - sockets are relatively lightweight. LocalHost UDP sockets are much - heavier weight since they rely on the full UDP stack. If anyone is - up for a complete redesign, then using some shared memory and a POSIX - message queue would be lightweight again. - - This commit also fixes several bugs that were not testable before the - inode tree deadlock. I cannot say that the logic is 100% stable but - it does not have basic functionality (2017-11-05). - * fs/userfs: Fix return value from dup method. In order to return a - pointer, the parameter must be a pointer to a pointer (2017-11-06). - * configs/stm32f429i-disco/ltdc: This configuration has been deleted - because it violated the portable POSIX OS interface. It used - apps/examples/ltdc and include ltdc.h and dma2d.h which were also - removed for the same reason (2017-11-06). - * arch/arm/include/stm32 and stm32f7: Remove ltdc.h and dma2d.h. - Those header files in that location permitted inclusion into - application space logic and, hence, facilitated and encouraged calling - into the OS and violating the portable POSIX OS interface. The - definitions in those header files were move the appropriate location in - the counterpart, architecture specific files at arch/arm/src/stm32 and - stm32f7 dma2d.h and ltdc.h (2017-11-06). - * lpc43xx Ethernet: Fix some backward logic setting full-duplex and - 100mbps when autoconfiguration is disabled. Noted by Anonymous in - Issue #76 (2017-11-06). - * sched/sched/sched_cpuselect.c: For SMP, In order to find the cpu - with the lowest priority thread, we have to remember the already found - lowest priority. Noted by Anonymous in Issue #75 (2017-11-06). - * Add IPL2 support for LC823450 - - arch/arm/src/lc823450: Add IPL2 support - - configs/lc823450-xgevk: Add IPL2 support - From Masayuki Ishikawa (2017-11-07). - * drivers/audio: Add WM8774 support. From Masayuki Ishikawa - (2017-11-08). - * lc823450-xgevk audio support - - arch/arm/src/lc823450: Add IPL2 support - - configs/lc823450-xgevk: Add IPL2 support - - libc/audio: Fix compilation error in lib_buffer.c - - arch/arm/src/lc823450: Add I2S support - - configs/lc823450-xgevk: Add WM8774 support - From Masayuki Ishikawa (2017-11-08). - * drivers/usbdev/rndis.c: fix packet receiving logic. The logic didn't - take single-byte termination frames in account. From Sakari Kapanen - (2017-11-08). - * net/icmpv6/icmpv6_radvertise.c: Add option to manually specify router - prefix. From Sakari Kapanen (2017-11-08). - * net/icmpv6/icmpv6_radvertise.c: set the prefix length to - preconfigured value (2017-11-08). - * STM32 L4 RCC: restore backup-registers after backup-domain reset. - From Jussi Kivilinna (2017-11-08). - * STM32 L4: Build stm32l4_idle.c only if CONFIG_ARCH_IDLE_CUSTOM is - not enabled. From Jussi Kivilinna (2017-11-08). - * drivers/power/bq2429x.c: Add BATIO_OPRTN_SYSON for enabling BATFET - after SYSOFF. From Jussi Kivilinna (2017-11-08). - * lc823450 auto LED support - - arch/arm/src/lc823450: Add auto LED for CPU activity - - configs/lc823450-xgevk: Add auto LED support - From Masayuki Ishikawa (2017-11-09). - * tools/configure.sh: This commit adds a -m option for macOS. For - anyone not aware, Apple renamed OSX to macOS recently; thus the 'm' - instead of 'o'. This does not change the other uses of *_OSX to macOS. - From jeditekunum (2017-11-09). - * tools/configure.c: Update functionality to match last change to - tools/configure.sh (2017-11-10). - * STM32L4 serial PM interface improvements: Check rx/tx buffers for - pending data in pmprepare. Remove adhoc PM interfaces and move serial - suspend functionality behind CONFIG_PM. From Jussi Kivilinna - (2017-11-10). - * procfs: Fix uptime being clse to maximum 32-bit value in certain - config. From Juha Niskanen (2017-11-10). - * libc: Add support for readv() and write(). Also includes some - cosmetic changes to some unrelated files (2017-11-11). - * libc/signal: Add support for sigwait() (2017-11-11). - * sched/signal/sig_nanosleep.c and libc/time/lib_nanosleep.c: - Implement clock_nanosleep(). nanosleep() is now reduced to a libc - wrapper around clock_nanosleep() (2017-11-11). - * Changes from review of clock_nanosleep(): Misplaced right bracket, - but return value in one failure case (2017-11-11). - * include/netinet/tcp.h: Add trivial standard tcp.h header file - (2017-11-12). - * Trivial re-ordering of socket option bit numbers to match order - presented on OpenGroup.org (2017-11-12). - * arch/arm/src/stm32/stm32f33xx_adc.c: Eliminate warnings about - cj_channels and j_chanlist being set but not used (2017-11-12). - * configs/stm32l476-mdk: Add support for the on-board LEDs (2017-11-12). - * include/netinet/tcp.h: Add trivial standard tcp.h header file - (2017-11-12). - * configs/stm32l476-mdk: Repartition bring-up logic so that it is more - like other board directories. Add support for USERLED driver. Add - bring-up initialization logic for the USERLED driver (2017-11-12). - * drivers/usbdev/rndis.c: Fix some issues in rndis.c Introduce - rndis_transmit() and change rndis_rxdispatch() to avoid packet - corruption. Introduce max packet size for dual speed whichis mainly - used for high speed mode. Fix adjusting MTU warning on Linux host. Fix - data corruption if a packet size excceds MTU. NOTE: Max packet size is - not configured dynamically. This should be fixed in the future - version. Change HPWORK to ETHWORK. NOTE: In the commit 07b98ccbb5, - max packet size of bulkout was assumed to be 64. In this commit, - priv->epbulkout->maxpacket is used instead. From Masayuki Ishikawa - (2017-11-13). - * configs/stm32f4discovery: RNDIS support on STM32F4Discovery - - Add RNDIS configuration. NOTE: STM32F4Discovery + DM-STF4BB - - Add stm32_netinit.c to avoid a compilation error - - Add RNDIS initialization in stm32_bringup.c - NOTE: MAC address for the host side starts 0xaa. This assignment - scheme should be fixed later. From Masayuki Ishikawa (2017-11-13). - * configs/: apps/system/free has been deleted because it violates the - portable POSIX OS interface. Remove CONFIG_SYSTEM_FREE=y from all - defconfig files (2017-11-13). - * fs/procfs/fs_procfsprogrem: Add /proc/progmem. This is an - alternative way to get the information that was previoulsy available in - apps/system/free. apps/system/free was removed because it made illegal - calls into the OS violating the portable interface. This new procfs - entry provides the same information with no such violation (2017-11-13). - * Nucleo-F746ZG: Use the serial console over /dev/ttyACM0 by default. - The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is - better to use the serial over the /dev/ttyACM0 that is created - automatically when the board is plugged in the computer. From Alan - Carvalho de Assis (2017-11-13). - * SAMA5/SAMv7: It is necessary to disable pre-emption and interrupts - around a loop that copies TX data into the hardware in order to avoid a - TX data underrun condition. From Anthony Merlino (2017-11-13). - * fs/profcs: Add file to show user space heap. This replaces the NSH - free command (2017-11-13). - * fs/procfs: Optimization of previous commits. /proc/umm and - proc/progmem are deleted. /proc/kmm is renamed /proc/meminfo and - contains the output that was in all three files previously (2017-11-13). - * configs/stm32f439i-disco: Add an fb configuration (2017-11-13). - * configs/stm32f429i-disco/fb: Fix a compile issue. Disable all NX - features in the fb configuration. NX is not needed (2017-11-13). - * configs/stm32f429i-disco/fb: Refactor initialization logic so that - it is a little more like other boards. Remove double initialization of - framebuffer or LCD drivers (whichever is enabled) (2017-11-13). - * configs/stm32f429i-disco: Add logic to auto-mount procfs. Enable - procfs in all configurations that use NSH (2017-11-13). - * configs/stm32f429-disco/fb: Enable support for the STMPE811 - touchscreen controller and also for the apps/examples/touchscreen test - (2017-11-14). - * Remove CONFIG_GRAN_SINGLE. It adds no technical benefit (other than - some minor reduction in the number of interface arguments) but adds a - lot of code complexity. Better without it (2017-11-14). - * mm/mm_gran: Add a function to get information about the state of the - granuale allocator (2017-11-14). - * fs/procfs: Add logic to show the state of the page allocator in - /proc/meminfo (2017-11-14). - * mm/mm_gran: Fix some issues found during test of the new gran_info() - interface (2017-11-14). - * configs/stm32429i-disco/src: Fix a compile error when - CONFIG_BOARD_INITIALIZE is defined (2017-11-14). - * configs/lc823450-xgevk: Fix compilation errors on Cygwin. From - Masayuki Ishikawa (2017-11-15). - * mm/mm_gran: Combine some common logic into a function (also fixes a - subtle bug) (2017-11-15). - * Build system: Fix CONFIG_BUILD_KERNEL logic directories that have - ubin and kbin subdirectories. Conditional logic was fine for - CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless - dependencies if CONFIG_BUILD_KERNEL (2017-11-15). - * arch/arm/src/lpc43: Add LPC43xx CAN driver. From Alexander Vasiljev - (2017-11-15). - * arch/arm/src/lpc43: UART_RX pins should be configured with input - buffers enabled. Otherwise it cannot be read. From Alexander Vasiljev - (2017-11-15). - * STM32F429i-Disco: Convert NxWM configuration to use LTDC framebuffer - driver instead of SPI serial. Also reduce number of layers from 4 to 1 - in fb configuration. Only one layer is used (2017-11-15). - * configs/stm32f429i-disco/ide: Remove the uVision IDE setup that goes - along with the ltdc configuration that was removed on 2017-10-28 - (2017-11-16). - * configs/stm3220g-eval/ide: Remove the uVision IDE setup. This has - not been used for years and it a maintenance problem for me (2017-11-16). - * arch/arm/src/xmc4: Fix XMC4xxx USIC UART sginal to be high level when - in idle. From Alan Carvalho de Assis (2017-11-16). - * arch/arm/src/xmc4: Kconfig was not selecting XMC4_USIC for USIC1. - From Alan Carvalho de Assis (2017-11-16). - * configs/xmc4500-relax: Add config for UART3 on RXD P0.0 and TXD P0.1 - pins. From Alan Carvalho de Assis (2017-11-16). - * STM32 F72xx and F73xx: Add register definition header files and - clocking logic. From Bob Feretich (2017-11-17). - * STM32F7: Fix typos in two RCC register definition header files. - From Bob Feretich (2017-11-17). - * STM32F7: Completes architecture support for the STM32 F72x and F73x - families. Adds support for the Nucleo-144 boards with STM32F722. From - Bob Feretich (2017-11-18). - * configs/sim: Disable NX graphics support in the fb configuration. - * libnx: Changes to allow the font subsystem to be built without - enabling the entire graphics system (CONFIG_NX). Adds CONFIG_NXFONTS - and CONFIG_NXGLIB. NX and NXFONTS are still pretty heavily entangled. - Needed to duplicate some Kconfig setting for NXFONTs if it can be - configured and built independently of NX. Also includes some - build-related fixes (2017-11-18). - * configs/mcb1700: Add support for Keil MCB1700 board. From Alan - Carvalho de Assis (2017-11-18). - * configs/open1788/pdcurses: Add a configuration for testing pdcurses - (2017-11-19). - * C library: Fix sscanf character conversion (%c): do not add '\0' at - the end as for strings, cause, for example, parsing one character will - fill two bytes: character itself and zero one '\0' after it, so will - overflow one byte variable argument and corrupt memory for variables - allocated after it. From Oleg Evseev (2017-11-19). - * arch/arm/src/xmc4:xmc4_uart_configure() expects the channel# not - uartbase as an input parameter. From Alan Carvalho de Assis - (2017-11-20). - * configs/open1788: Add support for the discrete joystick driver. - Update the pdcurses configuration to use apps/examples/djoystick - (2017-11-20). - * net/icmpv6: icmpv6_input() needs to set d_len to 0 after consuming - echo reply, otherwise, garbage will get sent out. From Anthony Merlino - (2017-11-20). - * configs/open1788: Enable discrete joystick input. This is - sufficient to get through all menuing that does not require text input - (2017-11-20). - * net/sixlowpan: Fix an endian-ness problem in 6LoWPAN address - decompression. From Anthony Merlino (2017-11-20). - * net/sixlowpan: The logic that extracts interface identifier from the - IP address needs to be generalized to handle cases where the address is - not a link local address. From Anthony Merlino (2017-11-20). - * arch/arm/src/xmc4 UART: Enable RX/TX status and small fixes. From - Alan Carvalho de Assis (2017-11-21). - * Various fixes for errors ound while debugging OTG on L496 - - STM32, STM32 L4, and STM32 M4: USB OTGFS DMA trace output fix - - STM32: Add dump buffer feature to stm32 F4 series - - STM32 and STM32 L4: Fix bad USB OTGFS register address - - STM32 L4: Fix typo in USB OTGFS register usage - - STM32 L4: Add check in USB OTGFS driver to assure that SYSCFG is - enabled - - Nucleo-L496ZG: Make HSE on Nucleo-L496ZG default to enable USB - From Miha Vrhovnik (2017-11-21). - * Two changes for STM32F7. - 1) The first enables building with CONFIG_ARCH_IDLE_CUSTOM enabled. - 2) The second allows changing voltage output scaling setting and - prevents enabling over-drive mode for low frequencies (STM32 F74xx, - 75xx, 76xx, 77xx) - From Jussi Kivilinna (2017-11-21). - * Replicate Jussi Kivilinna's change for the newly added STM32F2xx and - F3xx family members. This change allows selecting voltage output scale - mode and enable over-drive only when needed (2017-11-21). - * mm: Add a debug assertion to check for integer overflow in malloc - (2017-11-21). - * net/icmpv6: Fix an error in the poll logic. It was assume that the - input parameter pvconn was valid. It was not. Instead, the poll logic - must work like the sendto() and recvfrom() logic: It must keep a copy - of the conn structure in the private data (2017-11-21). - * net/icmpv6: Remove the 'list' field from struct icmpv6_conn_s. It - is not used (2017-11-21). - * net/icmp: Ports the changes in ICMPv6 of commits - 4629cf9461e5ac6f5f01ef8c9bee3ec9a60ce081 and - 74a633ea94bc308cd2eca0ec6c2be798d5794e72 to ICMP. ICMP and ICMPv6 - sockets are nearly identical, bug-for-bug (2017-11-21). - * net/sixlowpan: Add htohs() in arguments to debug statements that - print IP addresses so that they are all shown in friendlier host - order. From Anthony Merlino (2017-11-21). - * stm32f33xxx_rcc: Fix CAN clock enable. From Mateusz Szafoni - (2017-11-22). - * drivers/lcd_framebuffer.c: If BPP is less then 8, then we need to - byte-align the update region (2017-11-22). - * configs/stm32f103-minimum: Add framebuffer driver initialization for - stm32f103-minimum board. From Alan Carvalho de Assis (2017-11-22). - * mm: Fix a typo in a debug assertion (2017-11-22). - * net/icmp and icmpv6: Fix some errors in debug assertions introduced - with last changes in this area. Also updates a REAME.txt file - (2017-11-22). - * net/: Fix some issues with regard to UDP broadcast handling. This - is Bitbucket Issue #77. This commit tentatively closes the issues, - subject to verification (2017-11-22). - * sixlowpan: Support sending to a router that is on-link and may be - able to forward the packet for us if the destination is not reachable - directly. From Anthony Merlino (2017-11-22). - * Pass header-payload offset to application for use when the MAC layer - is in promiscuous mode - - mac802154_device: When in promiscuous mode, the char driver sends - the entire frame, including the MAC header. This change adds an - offset field indicating the header-payload boundary. It is set to 0 - when not in promiscuous mode as the header is not passed to the - application - - mac802154: Adds support for getting promiscuous mode state - From Anthony Merlino (2017-11-22). - * USB RNDIS - Fixes minor build error while using USB RNDIS with USB - debugging information enabled. From Anthony Merlino (2017-11-22). - * clicker2-stm32: Adds support for USB RNDIS device. From Anthony - Merlino (2017-11-22). - * STM32 L4 USB OTGFS: Remove dumpbuffer feature added in the last - commit. I don't want in features that cannot be controlled be via - Kconfig files and I do not accept debug code in the upstream GIT. My - mistake for merging it in the first place (2017-11-22). - * include/nuttx/video/fb.h: Add definition for a Y2 color format. I - don't know if this standard but I do have 2-bit greyscale hardware so - the definition is needed (2017-11-22). - * sixlowpan: Fixes build error introduced by recent PR when routing - table is enabled. From Anthony Merlino (2017-11-22). - * sixlowpan: Fixes build error introduced by recent PR when routing - table is enabled. From Anthony Merlino (2017-11-22). - * net/netdev: Add support for the SIOCGIFBRDADDR ioctl() command - (2017-11-22). - * include/nuttx/audio: Remove CONFIG_SCHED_WORKQUEUE check in pcm.h. - From Masayuki Ishikawa (2017-11-23). - * sched/semaphore/spinlock.c: Disable local interrupts in spin_setbit() - and spin_clrbit() in order to avoid a deadlock condition. From - Masayuki Ishikawa (2017-11-23). - * configs/stm32f4disovery: Add support for JLX12864G display on STM32F4 - Discovery board. From Alan Carvalho de Assis (2017-11-23). - * configs: All NX configuration... Because of recent changes to - libnx/nxfonts, Supported bit per pixel must be separated specified for - NXFONTs too and need to match the select BPP for NX (2017-11-24). - * fs/procfs: Correct ordering of procfs entries. For consistency, use - alphabetical ordering (2017-11-24). - * configs/xmc4500-relax: Setup max. freq. 120MHz and setup pull-up to - UART RXD pin. From Alan Carvalho de Assis (2017-11-24). - * arch/arm/src/xmc4: Do not run at 144MHz unless BOARD_FCPU_144MHZ is - selected in the board.h header file. From Alan Carvalho de Assis - (2017-11-24). - * configs/xtrs: Removed the XTRS configuration This was an unverified - port of NuttX to a TRS-80 simulator. It was removed because (1) it is, - as I said, unverified as well as unsupported, and (2) the TRS-80 - simulation is a sub-optimal platform. That platform includes a 16-bit - ROM image and only a 48Kb RAM space (2017-11-24). - * arch/arm/src/xmc4: Remove hard-coded values in clock configuration. - USB will be fixed later. From Alan Carvalho de Assis (2017-11-25). - * drivers/lcd: Add support for external LCD initialization required by - some board logic. configs/zpa214xpa: Tried to get the LCD working - again unsuccessfully. Too much bit rot I suppose (2017-11-25). - * STM32F4 Discovery: Fix some errors due to missing inclusion of - stm32_gpio.h (2017-11-25). - * XMC4 Serial: The Alternative Receive Interrupt was not being - configured (2017-11-25). - * drivers/lcd: Make LCD driver configuration independently selected from - NX graphics configuration. This makes things awkward and loses some - error checking but is a necessary step in order to make LCD drivers - usable when the NX graphics system is disabled (2017-11-25). - * STM3240G-EVAL: Mount procfs if enabled (2017-11-25). - * arm/src/xmc4: Include Alt. Interrupt Enable to RX_EVENTS and rename - serial GPIO configurations. From Alan Carvalho de Assis (2017-11-25). - * configs/: CONFIG_QENCODER was renamed to CONFIG_SENSORS_QENCODER: - update occurrences in several Kconfig files (2017-11-25). - * configs/stm3240g-eval: Add support for pdcurses and the pdcurses - demo programs in the 'fb' configuration (2017-11-26). - * arch/arm/src/stm32: Fix compile error when trace is enabled. - I2CEVENT_ERROR was used but never defined (2017-11-26). - * configs/lc823450-xgevk: Enable CONFIG_SMP for audio.Update README.txt - regarding SMP audio. From Masayuki Ishikawa (2017-11-27). - * lc823450 smp audio - - arch/arm/src/lc823450: Remove a workaround in up_cpu_paused(). - Introduce g_gpio_lock to improve write performance in SMP mode. - NOTE: This is a tentative solution and should be replaced with more - generic one. Add a workaround in up_txready() to avoid data - corruption. From Masayuki Ishikawa (2017-11-27). - * arch/arm/src/lpc43xx: lpc43_adc.c was being selected by the build - system when DAC was selected (2017-11-27). - * configs/lc823450-xgevk: Add RNDIS configuration. From Masayuki - Ishikawa (2017-11-28). - * drivers/input/nunchuck.c: Add Nintendo Wii Nunchuck driver. From - Alan Carvalho de Assis (2017-11-28). - * configs/stm32f4discovery/include/board.h: Remove only I2C pin config, - we can use PB6 and PB9. From Alan Carvalho de Assis (2017-11-28). - * configs/stm32f4discovery/src: Add stm32f4discovery board support for - Nunchuck joystick. From Alan Carvalho de Assis (2017-11-28). - * net/devif: Do not add link layer header size to d_len inside - devif_forward(). From Anthony Merlino (2017-11-29). - * Framebuffer Driver: Small modification convention for multi-planar - displays (of which there are none) (2017-11-29). - * configs/stm32f103-minimum: Add Nunchuck board support for - stm32f103-minimum board. From Alan Carvalho de Assis (2017-11-29). - * drivers/mtd: Add a driver for Macronix MX35LFxGE4AB serial NAND - flash. From Ekaterina Kovylova (2017-11-29). - * net/pkt: Eliminate a compile error due to missing include and also a - warning (2017-11-29). - * sched/task/task_exithook.c: Clear atexit() function pointer before - calling it. On most archs, up_assert() calls exit() so without this - change, if atexit() function triggers an assertion we are in endless - loop. From Juha Niskanen (2017-11-30). - * arch/arm/src/xmc4/Kconfig: Define user friendly SPI, I2C, LIN, and - I2S aliases to follow other arch names. From Alan Carvalho de Assis - (2017-11-30). - -7.24 2018-03-02 Gregory Nutt - - * 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 - index is 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 improve 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 misconceptions 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). - * configs/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 solicitation) 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. From Gregory Nutt (2018-01-04). - * fs/nxffs: Add partial implementation of the truncate method: It - extends files, but cannot yet shrink them. From Gregory Nutt (2018-01-04). - 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() (they 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 existing 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). - * 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 statements. 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). - * 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/, graphics/, 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-6quad: 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). - * 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 typos related 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). - * arch/arm/src/lpc17xx: DisableDisable 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/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 (2018-02-16). - * 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 - * 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-06-03 Gregory Nutt - - * arch/arm/src/stm32/stm32f33xxx_adc.c: Fix bug in RCC reset logic that - resets ADC1 configuration when both ADC1 and ADC2 are in use From Mateusz - Szafoni (2018-03-02). - * drivers/wireless/cc1101.c: Driver improvements from from lihaichen - (2018-03-03). - * Remove all usage of printf() from the OS. That is not an acceptable - context for the use of an application-oriented interface that depends on a - task-specific file descriptor and C buffered I/O. From Gregory Nutt - (2018-03-03). - * stm32_hrtim: fix capture_get function, add software capture trigger, add - software reset trigger, add outputs polarization configuration From - raiden00pl (2018-03-04). - * Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and debug - wrappers -- does not return a value. Rename _vsyslog to nx_vsyslog. Use - internal nx_vsyslog in the few cases where a return value is required. - From Gregory Nutt (2018-03-04). - * arch/srm/src/stm32f7: Add CONFIG_RTC_PERIODIC support. Also makes the - RTC lowerhalf more like in STM32L4. From Juha Niskanen (2018-03-05). - * drivers/i2c: Add support for the pca9540bdp i2cmultiplexer. From Giorgio - Groß (2018-03-05). - * arch/arm/src/stm32: Add support for the STM32F401xB and STM32F401xC - families. From Gregory Nutt (2018-03-05). - * drivers/power: Add pm_unregister From Juha Niskanen (2018-03-06). - * arch/srm/src/stm32f7: add PM hooks to ADC, I2C and SPI. From Juha - Niskanen (2018-03-06). - * Makefile.unix: Eliminate the spurious errors reported by 'make - savedefconfig' From Gregory Nutt (2018-03-07). - * drivers/net/phy_notify.c: Use phy debug macros instead of net debug - macros. ninfo() and nerr() are used a bit too much, so the console output - is difficult to read with network debug. From Sebastien Lorquet - (2018-03-09). - * drivers/lcd/ft80x: ACTIVE host command appears to be formatted - differently than other host commands; Fix ROM CHIPID. Appears to be - big-ending, BCD. Fix some compile issues when debug features are - enabled. From Gregory Nutt (2018-03-09). - * drivers/lcd/ft80x: Fix a typo that caused the driver to fail to recognize - the ft801 chip version. From Gregory Nutt (2018-03-11). - * drivrs/leds: Userled driver was using LCD debug output instead of LED - debug output. From Sebastien Lorquet (2018-03-11). - * net/tcp: Add support for TCP Keepalive, add SO_KEEPALIVE socket option. - Adds socket options needed to manage TCP-keepalive and TCP state machine - logic to detect if that the remote peer is alive. From Gregory Nutt - (2018-03-12). - * arch/arm/src/stm32/usb: skip recipient check for descriptor related - requests From Simon Piriou (2018-03-12). - * net/tcp: In tcp_input(), add the logic to detect, decode, and respond to - TCP Keep-Alive packets. In tcp_timer(), fix some problems with the way - that TCP Keep-Alive probes were being formatted. From Gregory Nutt - (2018-03-12). - * stm32f103-minimum: add support for DFU bootloader From Simon Piriou - (2018-03-12). - * arch/arm/src/stm32/lowputc: Fix uart glitch when lowputc is enabled.. - From Simon Piriou (2018-03-12). - * libc/time: Add an implementation of clock() From Gregory Nutt - (2018-03-13). - * drivers/sensors: Add support for Sensirion SHT2x humidity sensor From - Juha Niskanen (2018-03-13). - * drivers/serial/Kconfig: Kconfig is too big, divide into Kconfig, - Kconfig-uart, Kconfig-usart, Kconfig-sci, Kconfig-16550. More than one - MCU supports LPUARTs. Add Kconfig-lpuart and remove MCU-specific LPUART - definitions. Affects Kinetis and STM32L4. From Gregory Nutt (2018-03-14). - * libc/lzf: Add Marc Alexander Lehmann's LIBLZF3.6 library From Boris - Astardzhiev (2018-03-14). - * configs/stm32f4discover/posix_spawn: With recent changes, needs to enable - boardctl() w/symbol table support. From Gregory Nutt (2018-03-16). - * fs/craomfs: Add CROMFS file system. CROMFS is a compressed, in-memory - read-only file system based on LZF. From Gregory Nutt (2018-03-19). - * sched/sched: Fix a deadlock in SMP mode. Two months ago, I introduced - sched_tasklist_lock() and sched_tasklist_unlock() to protect tasklists in - SMP mode. This change works well for HTTP audio streaming aging test with - lc823450-xgevk. However, I found a deadlock in the scheduler when I tried - similar aging tests with DVFS autonomous mode where CPU clock speed - changed based on cpu load. In this case, call sequences were as follows. - To avoid this deadlock, I added sched_tasklist_unlock() when calling - up_cpu_pause() and sched_addreadytorun(). Also, added - sched_tasklist_lock() after the call. Also added critical sections to - lib_filesem.c, mm_sem.c, and net_lock.c for SMP for SMP. From Masayuki - Ishikawa (2018-03-20). - * arch/arm/src/stm32l4: Port 1wire driver from stm32. From Juha Niskanen - (2018-03-20). - * mm/iob/iob_copyin.c: Fixed problem with send() ret value when using - nonblocking io over buffered tcp socket From Dmitriy Linikov (2018-03-20). - * tools/gencromfs.c: Adds tools/gencromfs.c, a tool that can be used to - generate CROMFS file system images. From Gregory Nutt (2018-03-20). - * |arch/arm/src/stm32l4: Add PM hooks to I2C, SPI and 1-wire From Juha - Niskanen (2018-03-21). - * drivrs/sensors/lis2dh: Clear INT1 at SNIOC_WRITE_INT1THRESHOLD ioctl - From Jussi Kivilinna (2018-03-21). - * drivers/sensors/sht21: Change I2C_TRANSFER return value so that it return - on zero on success, not the count of bytes transferred. From Juha - Niskanen (2018-03-22). - * i2c/i2c_master.h: Change incorrect comment about I2C_TRANSFER return - value to indicate that the method returns zero on success rather than the - number of bytes transferred. From Juha Niskanen (2018-03-22). - * configs/: Remove configurations using canutils/libuavcan and - examples/uavcan. libuavcan has not built for a year or so. The basic - problem is that as NuttX advances, the old frozen version of libuavcan has - become absolute because it violates the portable POSIX OS interface. No - one is maintaining the port so there is no alternative but to remove it. - From Gregory Nutt (2018-03-23). - * STM32, STM32L4: Add one bit read and write to 1-wire interface. This is - needed for devices that require single bit timeslot generation and for - 1-Wire search algorithm triplets. From Juha Niskanen (2018-03-23). - * arch/arm/src/imx6: Bring in a few i.MX6 fixes that were committed on the - i.MX RT branch. From Gregory Nutt (2018-03-23). - * configs/: Add definition of strip to many Make.defs files. From Gregory - Nutt (2018-03-25). - * arch/arm/src/nrf52: Initial support for the NRF52 include UART and GPIO - support. From Janne Rosberg (2018-03-26). - * Per Matias Edlund: I recently used the tcflush function and found that it - failed with ENOTTY. The reason is that the TCFLSH case in the function - uart_ioctl in the file drivers/serial/serial.c does not update the ret - value." On success, the TCFLSH IOCTL logic needs to explicitly set the - return value (ret) to zero. From Gregory Nutt (2018-03-26). - * netdb: Fix boundary conditions in dns_recv_response(). Fix typos in - include/nuttx/net/dns.h From Masayuki Ishikawa (2018-03-27). - * configs/nrf52-pca10040: Add support for the NRF52-PCA10040 board - including LEDs and buttons From Janne Rosberg (2018-03-27). - * arch/arm/src/stm32: In case of PHY failure, usually because of the lack - of 25/50 MHz REFCLK input, the Ethernet block would lock up in a while - loop waiting for readiness, which will never happened. This prevented the - board from starting at all in the case of a PHY failure. This commit adds - a retry loop to avoid bricking the board if the Ethernet block is unable - to start. From Sebastien Lorquet (2018-03-27). - * mac802154: Adds basic support for RX-ENABLE.request primitive From - Anthony Merlino (2018-03-28). - * mac802154: Adds ackreq flag to TX descriptor for use by radio driver. The - radio layer is responsible for a full "transaction". Because of - differences in radio capabilities, the radio must be responsible for the - handling of acks and retransmissions. This commit simply passes the ackreq - meta-data flag along to the radio. Also Fixes bug where primitive was - freed when it shouldn't have been, causing double free call. From Anthony - Merlino (2018-03-28). - * wireless/bluetooth: Bring in the Bluetooth stack from the Intel/Zephyr - arduino101_firmware_source-v1.tar package. - * drivers/bluetooth: Adds re-architected version of the Bluetooth UART - driver from the Intel/Zephyr arduino101_firmware_source-v1.tar package. - From Gregory Nutt (2018-03-29). - * wireless/bluetooth and include/nutt/net: Add support for Bluetooth IOCTL - commands. From Gregory Nutt (2018-03-30). - * net/bluetooth: Adds basic support for AF_BLUETOOTH sockets. From Gregory - Nutt (2018-03-31). - * arch/arm/src/tiva: Fix compilation errors on Tiva ADC code when ADC is - enable. From Vinicius Maciel (2018-04-01). - * drivers/wireless/bluetooth: Add a NULL device to support some very low - level testing on the Simulator. From Gregory Nutt (2018-04-03). - * configs/sim: Add a configuration that will support some limited testing - of the Bluetooth stack. From Gregory Nutt (2018-04-03). - * Change all Sony related copyright to conform with our company's internal - rules. From Masayuki Ishikawa (2018-04-04). - * drivers/wireless/cc3000: Eliminate support for the CC3000 wireless part - because it doesn't use the USRSOCKET. From Alan Carvalho de Assis - (2018-04-04). - * configs/spark: Removes Spark board configuration. Still available in the - Obsoleted repository. If there is no CC3000 support, then there is no - purpose in supporting the Spark either. From Gregory Nutt (2018-04-04). - * drivers/1wire: Add 1-wire subsystem and ds28e17 driver From Juha - Niskanen (2018-04-04). - * stm32/Kconfig: Add ADC injected channels configuration; stm32f334-disco: - Add buck/boost converter example configuration From Mateusz Szafoni - (2018-04-04). - * drivers/mtd/w25.c: Fix w25_cacheflush sector bug. From lihaichen - (2018-04-04). - * arch/arm/src/stm32 and stm32l4: In 1wire driver, do not write useless - WRITEBIT zero return value to const buffer From Juha Niskanen (2018-04-04). - * drivers/sensors: Add LSM330 SPI and ADXL372 drivers along with the - cluster driver infrastructure. From Bob Feratich (2018-04-07). - * drivers/power/motor.c: Add generic upper-half motor driver From Mateusz - Szafoni (2018-04-09). - * drivers/sensors/max31855: Add multiple max31855 sensors feature and - support for bambino-200e and stm32f4discovery From Tiago Almeida - (2018-04-09). - * arch/arm/include/tiva and configs/cc3200-launchpad: Remove all support - for the CC3200 and CC3200-Launchpad. This was a port that was started but - never completed. What good is partial CC3200-Launchpad board support with - no wireless support? From Gregory Nutt (2018-04-09). - * drivers/sensors/apds9960.c: Fix APDS9960 work queue BUG found by Kyle - Lei From Alan Carvalho de Assis (2018-04-10). - * tools/uncrustify.cfg: An initial cut at an uncrustify C formatting - script. From Gregory Nutt (2018-04-11) Updated, corrected, and verified. - From Bob Feretich (2018-04-11). - * tools/nxstyle.c;: Add check for blank lines before and after single line - comments. From Bob Feretich (2018-04-11). - * arch/arm/src/: Problem: stm32f30xx hangs waiting for LSE to initialize. - Reason for hang is that operation of setting LSE_ON does not take effect - because there is no clock on PWR peripheral. this is initialized later in - the code From Michał Łyszczek (2018-04-11). - * arch/arm/src/imxrt: Brings in basic support for the i.MX RT 1050 - 'crossover' SoC. Includes timer and UART support. This port was the - joint effort of Janne Rosberg, Ivan Ucherdzhiev, and myself. I give - credit to Ivan for the kill because he is the one to held on to the end. - From Ivan Ucherdzhiev (2018-04-12). - * sched/sched: Change ordering of round-robin time slice check - (sched_process_scheduler()) and processing of wdog timers (wd_timer()). - wd_timer()'s callback function can change current running task and, hence, - must be done after the time slice check. The time slice check will - decrement the currently running task's time slice allotment. If such a - context switch occurs, then the newly started task will lost one could of - that allotment before it even has a chance to run. From EunBong Song - (2018-04-13). - * arch/arm/src/stm32: Adds a Bluetooth HCI UART lower half driver for the - STM32. From Gregory Nutt (2018-04-13). - * configs/imxrt1050-evk: This commit adds support for booting from the on - board HYPER Flash. From Ivan Ucherdzhiev (2018-04-13). - * configs/stm32fdiscovery: Add support in bringup logic to initialize the - HCI UART and register the HCI UART network device. From Gregory Nutt - (2018-04-13). - * fs/smartfs: Fix a hardfault in SmartFS. Problem occurred when opening a - file with O_CREAT (only) when the file arelready exists but has a size of - zero. From Michał Łyszczek (2018-04-14). - * arch/arm/src/xmc4: Add SPI support for Infineon XMC45xx microcontroller - From Alan Carvalho de Assis (2018-04-14). - * fs/mount: Fix wrong size reported by df -h. Reason is that size in bytes - is calculated always on uint32_t types and cards bigger than 4GB will - overflow uint32_t type. Solution is to use uint64_t where possible. From - Michał Łyszczek (2018-04-14). - * tools/mkromfsimg.sh: Include an option in mkromfsimg.sh to ignore - FAT/RAMDISK. This permits you to build tiny systems with ROMFS but with - the rather large FAT FS support. From Alan Carvalho de Assis (2018-04-14). - * arch/arm/src/imxrt: Corrects error in serial interrupts and baud setup. - Now the basic IMXRT1050-EVK port is ready. The console is working. From - Ivan Ucherdzhiev (2018-04-17). - * arch/arm/src/imxrt: Add power management hooks From Gregory Nutt - (2018-04-17). - * net/sixlowpan: Fix a nasty, byte-ordering/endian-ness problem. The root - cause has been found and corrected. And a half dozen or so bandaid fixes - were reverted. From Gregory Nutt (2018-04-17). - * arch/arm/include/tms570, arm/src/armv7-r, and arm/src/tms570: Adds - support for the TMS570LS3137ZWT and corrects several ARMv7-R and TMS570 - issues From Gregory Nutt (2018-04-18). - * configs/tms570ls31x-usb-kit: Adds support for the TI Hercules TMS570LS31x - USB Kit From Ivan Ucherdzhiev (2018-04-18). - * drivers/ieee802154/xbee: Adds a timeout to send logic to handle case - where XBee module fails to respond to a Transmit request with a Transmit - Status From Anthony Merlino (2018-04-19). - * arch/arm/src/tiva: Allow building of Tiva platform with no serial - console. From Dmitry Sharihin (2018-04-19). - * drivers/net: Add TAP (network bridge) mode to tun.c. In previous - implementation, TAP mode did not handle a packet correctly. Also, the - driver did not set the link layer type and could not assign the interface - name. This change fixes such issues and supports TAP mode correctly. From - Masayuki Ishikawa (2018-04-20). - * arch/arm/src/nrf52: Add watchdog timer drivers. Includes significant - updates from Alan Carvalho de Assis From Levin Li - (2018-04-20). - * configs/nrf52-pca10040: Add support for starting the watchdog timer on - the nRF52. From Alan Carvalho de Assis (2018-04-20). - * net/tcp: Extended support for sending to non-blocking tcp sockets. From - Pelle Windestam (2018-04-20). - * configs/nrf52-pca10040: Add a configuration for testing the watchdog - timer. From Alan Carvalho de Assis (2018-04-20). - * arch/arm/src/nrf52: nrf52_wdt_initialize() should return a success/fail - indication. From Gregory Nutt (2018-04-20). - * arch/arm/src/stm32: Enable DMA for SPI on stm32f30xxx MCUs. From Michał - Łyszczek (2018-04-20). - * configs/imxrt1050-evk: Add logic to support user LED From Jake Choy - (2018-04-20). - * fs/vfs: Fix negative errno set in fs_open.c From Michał Łyszczek - (2018-04-20). - * /arch/arm/src/lpc17xx: Fix USB device endpoint allocation bookkeeping. - From Michael Jung (2018-04-21). - * configs/stm32f4discovery: Add MAX7219 support to STM32F4Discovery board - From Alan Carvalho de Assis (2018-04-21). - * configs: Review all implementations of board_lcd_initialize(). The NuttX - convention is that all internal functions that return errors as an 'int' - must return a negated errno value on failure and a non-negative value on - success. Most were right but eight of them had cloned logic that returns - 1 on success and zero on failure... both of which are interpreted as - success by the caller since they are non-negative. From Gregory Nutt - (2018-04-21). - * Makefile: Add support for nconfig frontend for 'make nconfig' From Michał - Łyszczek (2018-04-22). - * arch/arm/sc/lpc17xx: Freeing endpoints should be set the same allocations - as when endpoint was allocated. From Gregory Nutt (2018-04-23). - * configs/imxrt1050-evk: Add procfs auto-mount support in imxrt_bringup.c. - From Ivan Ucherdzhiev (2018-04-24). - * drivers/1wire: Add PM hooks and unlink support to sht21 sensor (allowing - hot-swappable I2C bus from 1-wire converter). Unlike most other unlink - implementations in NuttX drivers, this one does not allow any I2C - operations after unlink, making it possible to deallocate the I2C bus. - From Juha Niskanen (2018-04-24). - * configs/ stm32f746g-disco. Add clang support to stm32f746g-disco board - From Goran Mekić (2018-04-24). - * net/udp: Fix several issues using connected UDP sockets: sendto() should - not accept an address. Normally send() should be used with connect UDP - sockets instead. recvfrom() is no longer necessary. recvfrom() and - poll() should not reset to accept any addresses but should, instead, only - accept inputs and events from the connected remote peer. On of these - issues was noted by 李桂丁 . Changes were made as - summarized here: - http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch08lev1sec11.html - From Gregory Nutt (2018-04-25). - * include/nuttx/wireless: Add a setbaud() method to the HCI UART lower half - interface that can be used to change the default BAUD selection. - arch/arm/src/stm32: Implement the setbaud() method for the STM32 HCI - UART. From Gregory Nutt (2018-04-25). - * arch/arm/src/imxrt: Minor repartitioning to account for the fact that the - GPIO5 base address is not contiguous with the GPIO1-4 base addresses. - From Gregory Nutt (2018-04-25). - * arch/arm/src/imxrt/chip: Add some missing definitions for GPIO5 From - Gregory Nutt (2018-04-25). - * fs/vfs: Added support for checking if a descriptor is a socket in - fstat(). From Pelle Windestam (2018-04-26). - * drivers/wiresless/ieee80211: Correct some initialization problems with - BCM43362 chip. Adds BCM43428 support. arch/arm/src: Add support for SDIO - card to SDIO driver. From hhuysqt (2018-04-26). - * arch/arm/src/imxrt: Add LIBCXX test configuration for IMXRT. From - Gregory Nutt (2018-04-26). - * configs/photon: Configurations the use the SDIO card interface must - support CONFIG_STM32_SDIO_CARD. From Gregory Nutt (2018-04-26). - * arch/or1k/src and configs/or1k. Adds basic architectural support for the - OpenRISK mor1kx architecture. The initial commit was verified on a Qemu - simulation but is otherwise untested. From Matt Thompson (2018-04-26). - * configs/stm32f429i-disco: Add a LittlevGL configuration for - stm32f429i-disco From seyyah (2018-04-26). - * net/udp: Correct an error introduce in recent fixes for UDP connected - sockets. The interaction between psock_udp_send() and psock_udp_sendto() - was perverse: It should always pass a NULL destinatino address. From - Gregory Nutt (2018-04-26). - * Cosmetic changes to README and to comments. From Gregory Nutt - (2018-04-26). - * arch/arm/include/nrf52: All nRF52 IRQs above NRF52_IRQ_TEMP were wrong. - From Alan Carvalho de Assis (2018-04-26). - * net/udp: Fix a backward conditional test added in commit - 434da18cd71ae667c801f41291fbbc205b24320b. From Gregory Nutt (2018-04-27). - * arch/arm/src/imxrt: IMXRT LPUART Clock enable fix. From Ivan Ucherdzhiev - (2018-04-27). - * fs/vfs and net/udp: Repartition logic of commit - 0c963449d6e8f5f8b2dfe96e9de3116633a3749a, moving into net/udp. Add - support to handle connected UDP sockets. The correct 'optimal blksize' to - return is the MSS. The MTU is always too big. From Gregory Nutt - (2018-04-27). - * arch/arm/src/imxrt: Add IOMUX implementation for GPIO5. From Jake - (2018-04-27). - * net/udp: Remove an unused variable warning. Add some comments. From - Gregory Nutt (2018-04-27). - * arch/arm/src/kinetis: USB device fixes: Use correct CONFIG OTG control, - Fix interrupt storm when cable is disconnected. The DM, DP state were - incorrect because the pulldowns were not enabled. Also the pending - asynchronous resume interrupt needed to be re-armed after the suspend is - in effect. This is now done in the isr. From David Sidrane (2018-04-28). - * arch/arm/src/tiva: Add TERMIOS IOCTL support to the Tiva serial driver. - From Dmitry Sharihin (2018-04-28). - * configs/nucleo-l476rg: Add support to Nokia LCD PCD8544 on nucleo-l476rg - From Alan Carvalho de Assis (2018-04-28). - * configs/nucleo-l476rg: Add nxdemo configuration to nucleo-l476rg using - PCD8544 From Alan Carvalho de Assis (2018-04-28). - * Makefile.unix: There is a sort command in the 'make savedefconfig' file. - I found that sort behaves differently on different platforms based on the - environment variable LC_ALL. Now, Makefile.unix will force LC_ALL=C just - for the sort command so that we can all generate equivalent defconfig - files. From Gregory Nutt (2018-04-29). - * arch/arm/src/tiva: Implements an EEPROM driver in compliance with MTD - driver as provided by NUTTX for TM4C1294. The EEPROM driver currently - supports only two functionalities - read bytes(multiple of 4) and write - bytes (multiple of 4). From Shirshak Sengupta (2018-04-29). - * arch/arm/src/tiva: Implemented Flash CONFIG_MTD_BYTE_WRITE for TM4c1294. - Implemented the tiva_write function which will write an arbitrary number - of bytes to flash (in multiple of 4). From Shirshak Sengupta (2018-04-29). - * progmem interface: Discern r/w and erase page sizes. Introduce new - up_progmem_erasesize architecture API to be able to communicate the - read/write page size independently from erase page size. Implement - up_progmem_erasesize for all architectures that already support progmem, - assuming that for those architectures the sizes of both read/write and - erase pages are identical. From Michael Jung (2018-05-01). - * arch/arm/src/include/kinetis and src/kinetis: Add architecture support - for the Kinetis K28F. From Gregory Nutt (2018-05-01). - * arch/arm/src/imxrt: This commit fixes more issues with the i.MX RT GPIO - IRQ. Add check for interrupt mask register before dispatching ISR. The - GPIO_ISR bits are set independent of the GPIO_IMR bits. Fixed a range - check for extint in function imxrt_irqinfo(). From Jake Choy (2018-05-01). - * configs/imxrt1050-evk: This commit adds support for the imxrt button. - From Jake Choy (2018-05-01). - * arch/arm/src/lpc17xx: This commit adds a configurable option to allow - using a part of LPC17xx's internal flash memory as a Memory Technology - Device via NuttX' mtd_progmem infrastructure. Tested with LPC1769. From - Michael Jung (2018-05-01). - * arch/arm/src/imxrt: Add GPIO5 IRQ support. From Jake Choy (2018-05-02). - * configs/freedome-k28f. Adds support for the Kinetis Freedom-K28F board. - From Gregory Nutt (2018-05-02). - * fs/nfs/rpc_clnt.c: Commit 091e3f7 broke the NFS client. sendto() can - (correctly) no longer be used with a connected UDP socket. In that case, - send() must be used instead. From Michael Jung (2018-05-02). - * drivers/rgbled: Adds support for multichannel PWM (multiple PWM channels - on a single timer) From Anthony Merlino (2018-05-02). - * drivers/sensors: Adds support for INA3221 power sensor. This has a 3 - channel bus/shunt voltage pairs. From Anthony Merlino (2018-05-02). - * configs/photon: Adds RGB led support From Anthony Merlino (2018-05-02). - * arch/arm/src/nrf52: Add nRF52 Flash PROGMEM support From Alan Carvalho - de Assis (2018-05-04). - * configs/freedom-k28f: The NSH configuration is now functional on the - freedom-k28f board. Also fixes corrects the active logic level for the - RGB LED. arch/arm/src/kinetis/chip: Fixes an error in vector - configuration. From Gregory Nutt (2018-05-05). - * configs/freedom-k28f: If drivers/leds/rgbled.c is enabled, then treat the - board as though it had no discrete LEDs. From Gregory Nutt (2018-05-05). - * arch/arm/src/lpc17xx: Add support for ARMv7-M run time stack checking on - NXP LPC17xx MCUs based on CONFIG_ARMV7M_STACKCHECK. Basically copied from - stm32. From Michael Jung (2018-05-06). - * arch/arm/src: All ARM and MIPS architectures now support - CONFIG_ARCH_IDLE_CUSTOM From Gregory Nutt (2018-05-07). - * drivers/mtd/mtd_config.c: mtdconfig_register() returned OK instead of - -ENOMEM on failed malloc From Michał Łyszczek (2018-05-08). - * configs/teensy-3.x/usbnsh: Remove CONFIG_USBDEV_DUALSPEED from - configuration. Hardware supports only FS. From Gregory Nutt (2018-05-09). - * libc/unistd: Initial, minimal implementation of sysconf(). Only - sufficient to support the functionality of less standard - getdtabilesize(). From Michael Jung (2018-05-10). - * Documentation/NuttShell.html: Document the mkfatfs the -r option which - can be used to specify the number of entries in the FAT12/FAT16 root - directory. From Gregory Nutt (2018-05-11). - * LibTargets.mk, tools/Config.mk: Drop executable bit on installed - libraries. The rules to install libraries under lib/ were modified to use - mode 0644 instead of the default 0755. From Andrey Zabolotnyi (2018-05-12). - * arch/arm/src/stm32: Add internal pull-up option for SDIO pins (also picks - up an unrelated change to a README.txt file) From Alan Carvalho de Assis - (2018-05-12). - * arch/arm/src/kinetis + SDHC configs: Make Kinetis SDHC pullups work the - same as the STM32 SDIO pullups From Gregory Nutt (2018-05-12). - * net/udp: Resolve race condition in connection-less UDP sockets with - read-ahead buffering. In connection-mode UDP sockets, a remote address is - retained in the UDP connection structure. This determines both there - send() will send the packets and which packets recv() will accept. This - same mechanism is used for connection-less UDP sendto: A temporary remote - address is written into the connection structure to support the sendto() - operation. That address persists until the next recvfrom() when it is - reset to accept any address. When UDP read-ahead buffering is enabled, - however, that means that the old, invalid remote address can be left in - the connection structure for some time. This can cause read-ahead buffer - to fail, dropping UDP packets. Shortening the time between when he remote - address is reset (i.e., immediately after the sendto() completes) is not a - solution, that does not eliminate the race condition; in only makes it - smaller. With this change, a flag was added to the connection structure - to indicate if the UDP socket is in connection mode or if it is - connection-less. This change effects only UDP receive operations: The - remote address in the UDP connection is always ignored if the UDP socket - is not in connection-mode. No for connection-mode sockets, that remote - address behaves as before. But for connection-less sockets, it is only - used by sendto(). From Gregory Nutt (2018-05-13). - * include/sys: Add resource.h From Gregory Nutt (2018-05-13). - * rgbled: Fixes led issues caused by uninitialized memory with - CONFIG_RGBLED_MULTICHAN. The uninitialized pwm_info_s struct caused a - rogue channel to be started causing errors in the pwm driver From Anthony - Merlino (2018-05-14). - * arch/arm/src/imxrt/chip: Add pin multiplexing header files. From Gregory - Nutt (2018-05-14). - * configs/nucleo-l452re: Add buttons example From Juha Niskanen - (2018-05-15). - * arch/arm/src/imxrt/imxrt_serial.c: Fix some interrupt instabilities; must - be in a critical section when modifying serial interrupts. - configs/imxrt1050-evk/nsh/defconfig: Use the BASEPRI register to - enable/disable interrupts; enable the PROCFS file system. From Gregory - Nutt (2018-05-15). - * arch/arm/src/imxrt: Add missing support for the Cortex-M7 caches; - configs/imxrt1050-evk: Enable I- and D-Caches in the nsh configuration. - Calibrate the delay loop. Add support for the on-board LED. From Gregory - Nutt (2018-05-15). - * arch/arm/src/imxrt: Corrects some IOMUX controls. From Jake Choy - (2018-05-15). - * net/sixlowpan: Preserve big-endian (network order) when uncompressing - address. From Anthony Merlino (2018-05-15). - * arch/arm/src/imxrt/chip: Add DMA channel assignments. From Gregory Nutt - (2018-05-15). - * arch/arm/src/stm32f7: Add support for the second SDMMC device. The - second SDMMC device was already supported but the clock was never - enabled. This fixes that. From William Douglas (2018-05-15). - * arch/arm/src/imxrt: Add eDMA support (unverified). From Gregory Nutt - (2018-05-16). - * net/sixlowpan: TCP send should have PSH and ACK flags set when sending. - This matches the standard network (Ethernet) TCP send logic. From Anthony - Merlino (2018-05-17). - * net/udp: Recent changes to UDP in order to correct problems with UDP - connection mode introduced a new bug: The 'to' address passed to sendto() - must now be NULL in connection mode. But there are errors because there - was one place where the 'to' address was still being used. This commit - adds logic to first check for UDP connection mode. If the UDP socket is - connected, then the NULL 'to' address is ignored and saved connection - address is used instead. From Gregory Nutt (2018-05-17). - * arch/arm/src/stm32: Added Vbat measurement to adc driver for STM32F20xx - and STM32F4xxx. As with the MCU temperature and VREFINT measurement, this - change requires user to enable the corresponding channel first. For Vbat - channel the ioctl cmd is IO_ENABLE_DISABLE_VBAT_CH, and its arg should be - a pointer to bool which must be true to enable and false to disable the - Vbat channel. Moreover, since Vbat input contains a built-in voltage - divider, it is highly suggested to disable Vbat input channel after - measurement is done in order to prevent battery drain through the - divider. From Dmitriy Linikov (2018-05-18). - * configs/stm32l1discovery: Add support for the STM32L152RCT6 version. - From Gregory Nutt (2018-05-18). - * configs/stm32f4discovery/audio: Add board configuration for CS43L22 audio - example. From Alan Carvalho de Assis (2018-05-19). - * drivers/lcd and configs/olimex-lpc1766stk: Remove support for the - Nokia6100 LCD. That LCD uses a 9-bit SPI interface (the 9th bit being the - command/data bit that is normally a discrete). That communication was - never successfully integrated. I now believe that it would would require - some special support from the low-level, MCU SPI driver to manage that 9th - bit. The deleted code is still available in the Obsoleted repository in - the nuttx/drivers/lcd, nuttx/configs/olimex-lpc1766stk, and Patches - directories. From Gregory Nutt (2018-05-19). - * arch/arm/src/lpc17xx/lpc17_usbdev.c: Fix loss of RX initiatives. USB - bulk endpoints are double buffered on LPC17xx MCUs. This means that up to - two packets might be received on an OUT endpoint that can not be handled - immediately if the receive request queue is empty. Thus, rxpending must - be a counter not a boolean flag. From Michael Jung (2018-05-20). - * configs/imxrt1050-evk/src: Add support for on-board NOR FLASH boot. From - Ivan Ucherdzhiev (2018-05-21). - * fs/fat: In fs_stat(), when stat'ing the root directory, avoid calculating - the address of the root directory entry. The calculation is bogus (but - not harmful) because the root directory does not have a directory entry. - Noted by Boris Astardzhiev. From Gregory Nutt (2018-05-23). - * fs/fat: Avoid calculating the bogus directory entry address for the FAT - root directory (since it has no directory entry). This change should have - no effect, other than making the logic clearer. From Boris Astardzhiev - (2018-05-24). - * configs/indium-f7: Removes support for the Indium-F7 board. This was - done for two reasons: (1) The board support was just clone of the - Nucleo-144 board support with naming changes. There has been no support - and no further development for the board support. (2) There does not seem - to be any available Indium-F7 board available to the public anywhere on - the internet. There is not even a reference to the board on the - rafresearch.com web stie. Gotta go. Its in the way. From Gregory Nutt - (2018-05-24). - * arch/arm/src/imxrt: Add Ethernet driver. From Jake Choy (2018-05-25). - * arch/arm/src/imxrt: Add cache operations to permit the Ethernet driver to - work with the D-Cache enabled, at least in write-through mode. Add - support for PHY interrupts and PHY IOCTLs. - * configs/imxrt1050-evk/netnsh/defconfig: Disable LED support because pins - conflict with PHY. Enable device statistics. Enable NSH ifup and ifdown - commands. Add an NSH configuration for testing Ethernet. From Gregory - Nutt (2018-05-25). - * configs/xmc4500-relax: Add board support for SPI From Alan Carvalho de - Assis (2018-05-26). - * configs/olimex-stm32-p407: Add a zmodem test configuration. From Gregory - Nutt (2018-05-26). - * drivers/serial: Add a timeout to uart_tcdrain(). Even if tcflush() is - used to discard buffered data, the close() can still hang if (a) hardware - flow control is enabled, (b) CTS == 1, and (c) there is data stuck in the - hardware Tx FIFO. tcflush() does not currently clear the MCU serial - drivers' hardware Tx FIFOs. This is a workaround for that. From Gregory - Nutt (2018-05-27). - * Build system: Remove fixed lib/ subdirectory and its content. Replace - with new directory called staging/ that is created dynamically when - building and removed when 'make clean' is done. This both improves the - name and eliminates a garbage directory from the repository. From Gregory - Nutt (2018-05-29). - * Build system: Move all build-related files (except the top-level - Makefile) into the tools/ sub-directory. This really cleans up the - top-level directory. From Gregory Nutt (2018-05-29). - * libs/: This commit moves all of the libraries under a common directory - called libs/ (libc, libnx, and libxx). This most certainly break libcxx - for now. From Gregory Nutt (2018-05-29). - * libs/libdsp: Adds DSP support library. From Mateusz Szafoni (2018-05-30). - * arch/arm/src/kinetis: In kinetis_lowputc.c, fix esBRFA calculation - effecting baudrate. Previous BRFA was not cleared and or-ed into new - BRFA, hence, buadrate was wrong. Where Baud Rate Fractional Divisor - (BRFD) UART baud rate = clock / (16 * (SBR + BRFD)) From David Sidrane - (2018-05-30). - * arch/arm/src/kinetis: In kinetis_lowputc.c, fixed parity settings. - Kinetis UART must be placed in 9 bit mode (M=1) with when 8 bit data with - parity is required. If left in 8 bit mode (M=0) with parity then D7 of the - TX/RX register becomes parity bit. Hence what is called 9-bit or 8-bit - Mode Select is a misnomer. 8 bit mode when parity is enabled is really 7 - bit with parity. From David Sidrane (2018-05-30). - * arch/sim: Various fixes necessary to build the simulator under MSYS2. - From Gregory Nutt (2018-05-31). - * Makefile: The clean_context target needs to invoke a corresponding - clean_context target in the apps/Makefile in order to remove linkages - From Gregory Nutt (2018-05-31). - * configs/stm32f4discovery: Add Load Modules flags to STM32F4Discovery - board From Alan Carvalho de Assis (2018-06-01). - * libs/libc/modlib/modlib_verify.c: Fix backward test for an error. From - Gregory Nutt (2018-06-01). - * Change all references from OSX to macOS From Gregory Nutt (2018-06-01). - * tools/sethost.sh: Add support for macOS From Gregory Nutt (2018-06-01). - * configs/olimex-stm32-p407: Add the module configuration. From Gregory - Nutt (2018-06-01). - * configs/xmc4500-relax/src: Call xmc4_spidev_initialize() in xmc4_boot.c. - From Alan Carvalho de Assis (2018-06-02). - * configs/stm32f4discovery: Add a module configuration for testing the - kernel module example with the STM32F4Discovery board. From Alan Carvalho - de Assis (2018-06-02). - -7.26 2018-09-08 Gregory Nutt - - * tools/kconfig2html.c: Due to new usage, tool needs to be able to - handle configuration files with names other than Kconfig. From - Gregory Nutt (2018-06-03). - * arch/arm/src/stm32: Added progmem interface support for STM32F20XX - From Dmitriy Linikov (2018-06-05). - * arch/arm/src/stm32/chip/stm32_flash.h: Add register definitions for - F1 parts that have dual banked FLASH. From Dmitriy Linikov - (2018-06-05). - * arch/arm/src/stm32: STM32 FLASH logic has reached a limit in - complexity and, hence, needs to be divided into multiple C files of - lower complexity. From Gregory Nutt (2018-06-05). - * configs/lc823450-xgevk: Add loopback test for digital MIC on lc823450 - via i2schar driver. From Masayuki Ishikawa (2018-06-05). - * arch/arm/src/stm32: Implement support for STM32 F1 banked FLASH From - Gregory Nutt (2018-06-05). - * arch/arm/src: Change ASSERT macros to DEBUGASSERT. From Juha - Niskanen (2018-06-06). - * stm32f334-disco/buckboost: Use a PID controller from libdsp From - Mateusz Szafoni (2018-06-06). - * arch/: Make sure the up_irq_enable() is available on all - architectures. From Gregory Nutt (2018-06-06). - * Based on a change recommended by Mark Shulte: - Signal handlers maybe run with interrupts enabled or disabled, - depending on how the task the received the signal was blocked. (i.e.: - If sem_wait() is called, then we disable interrupts, then block the - currently running task). This could be dangerous, because user code - would be running with interrupts disabled. - This change forces interrupts to be enabled in up_sigdeliver() before - executing the signal handler calling up_irq_enable() explicitly. - This is safe because, when we return to normal execution, interrupts - will be restored to their previous state when the signal handler - returns. From Gregory Nutt (2018-06-06). - * arch/arm/src/stm32: Ports stm32 ltdc and stm32 dma2d to use the - framebuffer interface From Marco Krahl (2018-06-06). - * syslog: Enable a partial, crippled version of syslog_flush(); - arch/: Call syslog_flush() from assertion handling logic. From - Gregory Nutt (2018-06-07). - * libs/libc/net: Add inet_aton() From Juha Niskanen (2018-06-08). - * libs/libc/netdb: Add getaddrinfo() and friends. From Juha - Niskanen (2018-06-08). - * configs/imxrt1050-evk: Add knsh configuration.. PROTECTED mode NSH - build. From Gregory Nutt (2018-06-08). - * libs/libc/termios: Add lib_cfmakeraw.c From Masayuki Ishikawa - (2018-06-12). - * drivers/xbee: Fixes issue with timeouts. Timeouts were in ticks but - should have been in ms. This caused false triggers of timeout - causing redundant packets, etc. From Anthony Merlino (2018-06-13). - * arch/arm/src/lc823450: Add lc823450 Bluetooth support. From - Masayuki Ishikawa (2018-06-13). - * stm32f7: serial: Fix ioctl TIOCSSINGLEWIRE - The TRM notes that UE must be disabled in order to write HDSEL in - USART_CR3. This was not being done, so calls to TIOCSSINGLEWIRE were - silently failing. - This change checks the state of UE in USART_CR1, clears the UE bit - before writing HDSEL, then re-enables it if necessary. From Kurt - Kiefer (2018-06-14). - * drivers/sensors: Add support for Telair T6713 carbon dioxide - sensor. From Juha Niskanen (2018-06-15). - * arch/arm/src/stm32f7: This change ports in Marco Krahl's STM32F4 - framebuffer overlays for the LTDC and DMA2D into the STM32F7. That - driver was same as the STM32F4 driver. From Gregory Nutt (2018-06-15). - * Eliminate use of the non-standard type systime_t and replace it the - equivalent, standard type clock_t From Gregory Nutt (2018-06-16). - * syscall/: clock_systimer() is no longer a system call. It has been - replaced with the equivalent, standard interface clock() as the - system call. - sched/clock: Move the implementation of clock() from libs/libc/time - to sched/clock. This is necessary because it calls the (now) - internal OS function clock_systimer. clock() is now accessed only - via a system call in certain configurations. From Gregory Nutt - (2018-06-16). - * /arch/arm/src/xmc4: Fix XMC4 SPI. It was working only for the first - transfer From Alan Carvalho de Assis (2018-06-16). - * configs/xmc4500-relax: Add support to MAX6675 on XMC4500-Relax - board. drivers/sensors/max6675.c: Increases SPI frequency from - 400Khz to 4MHz. From Alan Carvalho de Assis (2018-06-16). - * This commit brings in a partial STMicro STM32H7. From Simon Laube - (2018-06-16). - * configs/stm32f4discovery: Remove STM32F4BB dependence from RNDIS; add - RAMDISK support. From Alan Carvalho de Assis (2018-06-18). - * arch/arm/src/stm32l4: STM32L4 has fetchadd and testset From Juha - Niskanen (2018-06-18). - * libs/libc/netdb/lib_getaddrinfo.c: The 'port' argument to the static - alloc_ai() function is always in network byte order. However, that - static function was still calling HTONS() on the port, incorrectly - converting it back to host byte order. From Gregory Nutt (2018-06-18). - * arch/arm/src/: This commit removes support for the dedicated vector - handling from the many older architectures. Only common vectors are - now supported. From Gregory Nutt (2018-06-19). - * fs/smartfs: Fixed filesystem corruption when writing to small file - after open(... O_APPEND) From Dmitriy Linikov (2018-06-20). - * arch/arm/src/stm32f7: Port input capture from stm32 From Juha - Niskanen (2018-06-21). - * arch/arm/src/armv7a and imx6: Add support for per-CPU IRQ and FIQ - interrupt stacks (bugfix). Add support so that up_assert will print - the correct interrupt stack on an assertion (FIQ stack is still not - printed). From Gregory Nutt (2018-06-21). - * net/udp: When sending a broadcast (or multicast) packet do not - attempt to look up the device by the destination IP address. Rather, - use the locally bound address for these cases to select the correct - network device. From Gregory Nutt (2018-06-22). - * net/: There are many different checks for IPv6 multicast addresses. - Most of the checks are different. RFC 3513 clearly specifies how to - detect an IPv6 multicast address: they should begin with 0xffxx. I - did not change some of the checks in ipv6_input.c, however. In that - file, the comments indicate that the code should only pick of certain - multicast address that begin withi 0xff02. From Gregory Nutt - (2018-06-23). - * net/: Fix a sixlowpan typo bug recently introduced; Rename - g_ipv6_allzeroaddre with the more meaning g_ipv6_unspecaddr since the - all-zero address is the IPv6 unspecified address (sometime - IN6_ADDR_ANY). Replace more inline tests for IPv6 multicast with - common net_is_addr_mcast() macro. From Gregory Nutt (2018-06-23). - * net/: Rename CONFIG_TCP_REASSEMBLY to CONFIG_IPv4_REASSEMBLY. Add - some fixes to get a clean compile with CONFIG_IPv4_REASSEMBLY - enabled. There are several problems with the current - implementation: It is untested (and depends on - CONFIG_EXPERMIMENTAL). It uses some Ethernet specific definitions - (and depends on CONFIG_NET_ETHERNET). There is only a single - reassembly buffer. The last two issues prevent use of this feature - in any context where IPv4 packets may be reassembled for multiple - network devices concurrently). From Gregory Nutt (2018-06-24). - * net/tcp: Re-think CONFIG_NET_TCP_RWND_CONTROL TCP windowing - controls. From Gregory Nutt (2018-06-24). - * net/udp: Fix a hole in the address lookup logic. From Gregory Nutt - (2018-06-25). - * stm32f7: Fix compile error caused by intentional use of fall through - From Daniel Agar (2018-06-25). - * net/: Add driver interface index support. Add implementation of - if_nametoindex() and if indextoname(). Raw AF_PACKET sockets now - depend on CONFIG_NETDEV_IFINDEX. Add syscall support for - if_nametoindex() and if_indextoname(). - Includes an algorithm to prevent an interface index from being reused - until all network interfaces have by assigned once. The prevents - removable devices from being removed, unregistered and re-installed, - re-registered and keeping the same interface index. From Gregory - Nutt (2018-06-25). - * net/netdev: Fix.. Too many calls to net_unlock() From Gregory Nutt - (2018-06-25). - * net/udp: Add support for the UDP_BINDTODEVICE protocol socket - option From Sebastien Lorquet (2018-06-25). - * configs/stm32f746g-disco: Add support for STM32F746G-disco board - LCD From Marcin Wyrwas (2018-06-25). - * arch/arm/src/stm32f7/chip/stm32f72xx73xx_dma.h: Macros did not - account for the increase from 8 to 16 DMA channels. From Gregory - Nutt (2018-06-26). - * configs/nucleo-l476rg: Add support for an extern SPI-driver SD card - on the Nucleo-L476RG. From Gregory Nutt (2018-06-26). - * fs/mount/fs_automount.c: Ignore return values from work_cancel(). - From Gregory Nutt (2018-06-27). - * arch/arm/src/lc823450: Fix setintstack macro in chip.h. In case of - CONFIG_SMP=y, g_cpu0_instack_base and g_cpu1_instack_base are not - allocated just after g_instack_alloc but these values show the - addresses for interrupt stack of each CPU. So to set the stack - pointer based on these variables, temporal register has to be used. - From Masayuki Ishikawa (2018-06-27). - * arch/arm/src/imxrt: Add support for the i.MXRT RTC. This initial - commit is code complete (with limited features and options) but untested. - The HPRTC is functional. However, if the LPSRTC is enabled, then - there is a hang during LPSRTC initialization. It appears that there - is some problem in providing clocking and initializing the LPSRTC - domain. From Gregory Nutt (2018-06-27). - * tools/testbuild.sh: Add option to specify location of nuttx - directory. From Gregory Nutt (2018-06-27). - * stm32f7: I2C reset Configure I2C pins as GPIO output. Pins were - reset to inputs in the deinit. This resets them to outputs. From - David Sidrane (2018-06-27). - * Commit 0c963449d6e8f5f8b2dfe96e9de3116633a3749a, 'fs/vfs: Added - support for checking if a descriptor is a socket in fstat().', - changed sys/stat.h in way that breaks smartfs file-type stat flags. - CROMFS is similarly broken, as tools/gencromfs.c was not updated to - match the sys/stat.h changes. This commit fixes both issues. It - probably is not a good idea to use NuttX sys/stat.h bit-field values - directly in stored structure of filesystem. From Jussi Kivilinna - (2018-06-28). - * arch/arm/src/imxrt: Add trivial SNVS from Rev 1. of the Reference - Manual. From Gregory Nutt (2018-06-28). - * arch/arm/src/lpc43: Fix lpc43 CAN configuration. Configuration - settings were used and documented in README.txt files, but never in - any Kconfig file. From Gregory Nutt (2018-06-28). - * tools/refresh.sh: Add a --prompt option that will let you use - --silent but will prompt before overwriting the original defconfig. - From Gregory Nutt (2018-06-28). - * Update tools/link.sh per suggestions by Mark so that it can be used - with MSYS vs copydir.sh. From Gregory Nutt (2018-06-29). - * configs/pcblogic-pic32mx, sure-pic32mx, ubw32: Update configurations - so that either the MPLAB or Penguino toolchains may be used. From - Gregory Nutt (2018-06-29). - * net/tcp: Re-work of TCP receive window size algorithm. The new - logic is based only on the ability to buffer TCP read-ahead data. - From Gregory Nutt (2018-07-01). - * arch/arm/src/xmc4/xmc4_gpio.c: Add a specific bit encoding for - opendrain GPIO pin. From Alan Carvalho de Assis (2018-07-02). - * configs/stm32f746g-disco: Add support for STM32F746G-disco board - SDRAM Changed fb config to use SDRAM and fixed compilation From - Marcin Wyrwas (2018-07-02). - * arch/arm/src/lc823450: Add tx start threshold to lc823450_i2s.c In - addition, lc823450_i2s_send() now accepts byte-aligned stream. From - Masayuki Ishikawa (2018-07-03). - * drivers/usbhost/usbhost_max3421e.c: Add support for the Maxim M3421E - USB host driver. From Gregory Nutt (2018-07-03). - * net/udp: Restore some legacy behavior that was lost with the - implementation of CONFIG_NET_UDP_BINDTODEVICE: If no device has a - local address when the broadcast packet is sent and the UDP socket is - not bound to a device, there select some arbitrary device. This is - certainly lunacy in the case where there are multiple network devices - registered because the wrong device will probably be returned. It - works find, however, for the legacy case where only a single network - device is registered. From Gregory Nutt (2018-07-04). - * arch/arm/src/samv7: Add ability for CAN BUS_OFF autorecovery - according ISO11898-1:2015. With this change we added an ioctl for - triggering the autorecovery sequence for BUS_OFF to the CAN-driver - and the SAMV7 low-level driver. According the datasheet: If the - device goes Bus_Off, it will set MCAN_CCCR.INIT of its own accord, - stopping all bus activities. Once MCAN_CCCR.INIT has been cleared by - the processor (application), the device will then wait for 129 - occurrences of Bus Idle (129 * 11 consecutive recessive bits) before - resuming normal operation. At the end of the Bus_Off recovery - sequence, the Error Management Counters will be reset. During the - waiting time after the resetting of MCAN_CCCR.INIT, each time a - sequence of 11 recessive bits has been monitored, a Bit0 Error code - is written to MCAN_PSR.LEC, enabling the processor to readily check - up whether the CAN bus is stuck at dominant or continuously disturbed - and to monitor the Bus_Off recovery sequence. MCAN_ECR.REC is used to - count these sequences. From Frank Benkert (2018-07-04). - * This commit attempts remove some long standard confusion in naming - and some actual problems that result from the naming confusion. The - basic problem is the standard MTU does not include the size of the - Ethernet header. For clarity, I changed the naming of most things - called MTU to PKTSIZE. For example, CONFIG_NET_ETH_MTU is now - CONFIG_NET_ETH_PKTSIZE. - This makes the user interface a little hostile. People thing of an - MTU of 1500 bytes, but the corresponding packet is really 1514 bytes - (including the 14 byte Ethernet header). A more friendly solution - would configure the MTU (as before), but then derive the packet - buffer size by adding the MAC header length. Instead, we define the - packet buffer size then derive the MTU. - The MTU is not common currency in networking. On the wire, the only - real issue is the MSS which is derived from MTU by subtracting the IP - header and TCP header sizes (for the case of TCP). Now it is derived - for the PKTSIZE by subtracting the IP header, the TCP header, and the - MAC header sizes. So we should be all good and without the recurring - 14 byte error in MTU's and MSS's. From Gregory Nutt (2018-07-04). - * arch/arm/src/stm32f7/stm32_sdmmc.c: Add SDIO card support. From - Ramtin Amin (2018-07-05). - * net/tcp: Set the default TCP MSS to the value required by RFC 879 - and never change it under any circumstance unless the remote host - requests a larger MSS via an option the TCP header. From Gregory - Nutt (2018-07-05). - * configs/viewtool-stm32f107: Add a TCP performance test using - apps/examples/tcpblaster. From Gregory Nutt (2018-07-05). - * net/tcp: Fix a deadlock condition that can occur when (1) all - network logic runs on a single work queue, (1) TCP write buffering is - enabled, and (2) we run out of IOBs. In this case, the TCP write - buffering logic was blocking on iob_alloc() with the network locked. - Since the network was locked, the device driver polls that would - provide take the write buffer data and release the IOBs could not - execute. This fixes the problem by unlocking the network lock while - waiting for the IOBs. From Gregory Nutt (2018-07-06). - * stm32_dac.c: set OUTEN bit for DAC1CH2 and DAC2CH1 - power/motor: direction parameter is now int8 + add overload fault - libdsp: all floats with f-sufix - libdsp: add precision option for library - libdsp: add debug option for library and assertions in functions - libdsp: add current samples correction for SVM3 - libds: add some motor control specific functions - libdsp: add basic speed observer - libdsp: fix phase shift in SMO observer - libdsp: add more logic to FOC - config/sim/dsptest: add dsptest configuration - libdsp/lib_motor.c: remove unused comparison - libdsp/lib_observer.c: update some comments From Mateusz Szafoni - (2018-07-07). - * drivers/leds/pca9635pw.c and - configs/stm32f4discovery/src/stm32_pca9635.c: Fix pca9635pw LED - driver compilation From Alan Carvalho de Assis (2018-07-07). - * arch/arm/src/lpc54xx: The LPC54608 can only run at a maximum - frequency of 180Mhz. This configuration requires uses the clk_in, - external crystal clock, to drive the PLL. When that input was - selected, the board bootup failed waiting for the PLL to lock. After - referring the driver from NXP, we should turn on power sources for - the ext clock if system pll input select clk_in. NOTE that the - LPC54628 did not require this step... perhaps because the system - oscillator power was already enabled. From kxjiang (2018-07-08). - * tools/mkexport.sh: Save the System.map file in the export package so - that it can be used to extract addresses. From Gregory Nutt - (2018-07-08). - * tools/mkexport.sh: Save the User.map file in the export package if - available. From Gregory Nutt (2018-07-09). - * include/nuttx/fs/hostfs.h: Update duplicated definitions in HOSTFS - that must match NuttX values. From ligd (2018-07-09). - * arch/arm/src/stm32l4/chip/: Corrects some mistakes in pin definitions - for the STM32L4 family. According to datasheet of STM32L496xx, - STM32L475xx and STM32L443XX the AF2 of PE14 is TIM1_BKIN2 not - TIM2_BKIN. From Daniel Pereira Carvalho (2018-07-10). - * arch/arm/src/lc823450: Add lc832450 elf test From Masayuki Ishikawa - (2018-07-12). - * - arch/arm/src/stm32h7: After numerous changes, the basic STM32 H7 - NSH configuration is now functional From Mateusz Szafoni (2018-07-12). - * nucleo-h743zi/nsh: use Nucleo Virtual console as default serial From - Mateusz Szafoni (2018-07-12). - * STM32 F0, F1-F4, F7, L4, H7: Added Single Wire Kconfig variable. - From David Sidrane (2018-07-12). - * drivers/audio: Fix compile error in i2schar.c - (CONFIG_DEBUG_ASSERTIONS=y) From Masayuki Ishikawa (2018-07-13). - * configs/viewtool-stm32f107: Add support for the MAX3421E to the - viewtool-stm32107 board support From Gregory Nutt (2018-07-13). - * configs/lc823450-xgevk: Fix parallel build on lc823450-xgevk - This change fixes an archive file (*.a) corruption by locking - $(TOPDIR). Please note that locking the current directory is - insufficient because some archive files such as libapps.a are - specified with absolute path. From Masayuki Ishikawa (2018-07-14). - * configs/lc82345-xgevk: Add posix_spawn configuration From Masayuki - Ishikawa (2018-07-14). - * libs/libc/unistd/Kconfig: Fix backward conditional logic. From - Gregory Nutt (2018-07-14). - * configs/stm32f4discovery/src/stm32_rgbled.c: Krassimir Cheshmedzhiev - claims that sys/types.h needs to be included to avoid undeclared - 'OK' From Gregory Nutt (2018-07-15). - * arch/arm/src/stm32f7/chip/stm32f72xx73xx_pinmap.h: All of the SDMMC - pins were set to 50 MHz, but not the clock. This sets the clock to 50 - MHz also. This combined with turning on I/O compensation makes - intermittent failures go away. From Bob Feritich (2018-07-15). - * arch/arm/src/stm32f7: Port Bob Feritich's change to SDMMC2 and to - all other STM32F7 architectures. Also add a configuration option to - automatically enable I/O compensation. - arch/arm/src/stm32: Port Bob Feritich's change to STM32 F2 and F4 - which appear to have identical SD support and I/O compensation - requirements. From Gregory Nutt (2018-07-15). - * arch/arm/src/stm32l4: Added custom pin mapping for STM32L4X2XX - processors. From Daniel P. Carvalho (2018-07-16). - * stm32f746g-disco/nxdemo: Add a configuration to build working nxdemo - application From Fanda (2018-07-17). - * configs/nucleo-l432kc: Fix RAM size; STM31L4x2xx has only 64Kb of - RAM. Remove references to I2C and SDIO: There is no I2C2 or SDIO on - the STM32F4x2xx. From Daniel P. Carvalho (2018-07-17). - * net/udp/udp_finddev.c: Fix for network byte-order issue when - checking if an address is a multicast address. From Jake Choy - (2018-07-17). - * arch/arm/src/lc823450: Add SPI flash driver for lc823450. NOTE: Only - bus accelerator mode is supported. From Masayuki Ishikawa - (2018-07-18). - * net/ and include/nuttx/net: Add getpeername() support From ligd - (2018-07-19). - * syscall/: Add support for getpeername() and get_sockname() system - calls. From Gregory Nutt (2018-07-19). - * libs/libc/stdlib and include/stdlib.h: Add implementation of - random() and srandom(). From Gregory Nutt (2018-07-19). - * kinetis: USB0 fix interrupt storm on error. The ERROR bit of - USBx_ISTAT needed to be cleared once an error occurs. From David - Sidrane (2018-07-19). - * configs/lpcxpresso-lpc54628/lvgl: Update lvgl board config to use - the new version From Alan Carvalho de Assis (2018-07-19). - * arch/arm/src/lc823450: Add support for mpu and userspace - configs/lc823450-xgevk: Add kostest PROTECTED build - configs/lc823450-xgevk: Add knsh PROTECTED build From Masayuki - Ishikawa (2018-07-20). - * syscall/: Fix 6th parameter type of posix_spawnp in syscall.csv - From Masayuki Ishikawa (2018-07-20). - * libs/libc/unistd/: Add a crippled version of daemon(). From Gregory - Nutt (2018-07-20). - * arch/arm/src/stm32f7/: Fix data timeout errors with multiblock - transfers. From Bob Feretich (2018-07-20). - * drivers/mmcsd/mmcsd_sdio.c: Fix an error that was causing SDIO - multiple block transfers from achieving full performance. From Bob - Feretich (2018-07-20). - * drivers/leds/max7219.c: Add support to MAX7219 to control 7-segment - displays - configs/stm32f4discovery/src: Add board support to MAX7219 as - numeric display controller From Alan Carvalho de Assis (2018-07-22). - * Rename all usage of samdl/SAMDL to samd2l2/SAMD2L2 to make room in - the name space for the forthcoming samd5e5/SAMD5E5 From Gregory Nutt - (2018-07-22). - * syscall/: Fix parallel build in making context. This change avoids - running $(MKSYSCALL) and .context in parallel and ensures that - tools/mksyscall is built before it is actually used. From Masayuki - Ishikawa (2018-07-23). - * arch/arm/src/samv7/sam_mcan.c: Correct an error in the BUS_OFF - reporting. In case of BUS_OFF the old implementation was leading to - a package storm. Now it reports the error condition BUS_OFF only - once. From Frank Benkert (2018-07-23). - * arch/arm/src/kinetis: SDHC fix SDIO driver so that DMA works. - There were 2 problems. The first was that the interrupt did test DINT - and raise a completion events. But since DINT is just an indication - of DMA completion, TC is a valid way to determine that the transfer - is complete. The second problem is that Software Reset For DAT Line - SDHC_SYSCTL[RSTD] clears the bits 24-0 in SDHC_PROTO this looses the - wide bus setting DTW From David Sidrane (2018-07-23). - * arch/arm: Add CONFIG_DEBUG_MEMFAULT to Kconfig. Also, fix - src/armv7-m/up_memfault.c From Masayuki Ishikawa (2018-07-24). - * fs/tmpfs/fs_tmpfs.c: Correct logic in tmpfs_ioctl() that extracts - the priv state structure from the file system structures. It was not - getting the right value and causing mmap() to fail. Noted by Jesse. - From Gregory Nutt (2018-07-24). - * include/sys: Fix SYS_maxsyscall in syscall.h From Masayuki Ishikawa - (2018-07-25). - * libs/libc/netdb: Fix a link error in lib_gethostbynamer.c with - protected build. NOTE: g_lo_ipv4addr also exists in - net/loopback/lo_globals.c which can be linked with kernel build only. - From Masayuki Ishikawa (2018-07-25). - * arch/arm/src/imxrt/chip/imxrt_lpspi.h: IMXRT1050 LPSPI register and - bit definitions added. - arch/arm/src/imxrt/imxrt_serial.c: IMXRT1050 LPUART TERMIOS support - added. From Ivan Ucherdzhiev (2018-07-26). - * include/sys: Remove unused SYS_nnetsocket from syscall.h. Because - SYS_nnetsocket is not implemented so far, it should be removed so that - SYS_prctl can work correctly. From Masayuki Ishikawa (2018-07-26). - * binfmt/: Refactor binfmt_exec.c. This change also fixes an argv - issue for CONFIG_SCHED_ONEXIT=n or CONFIG_SCHED_HAVE_PARENT=n From - Masayuki Ishikawa (2018-07-26). - * arch/arm/src/imxrt: I finally got the Ethernet CRC32 to work - properly after the FAE pointed me in the right direction: (1) Added - CRC32 functions for multicast address filtering, (2) Do not reset PHY - settings when doing an ifup, (2) Use chip's unique id as the device - MAC, and (4) Enable discard enet frames with errors at PHY layer. - From Jake Choy (2018-07-26). - * arch/arm/src/samd5e5 and configs/metro-m4: Initial commit the port - to the SAMD5x/E5x MCU family and also support for the Adafruit Metro - M4 board. It port is untested and unfinished. It currently will not - even link due to some missing clock related logic. From Gregory Nutt - (2018-07-26). - * configs/stm32vldiscovery: Changed the status LED to be the green one - as mentioned in the README file. Removed the global array for buttons - and replace it with the only button. Improve defconfig for the nsh - configuration. From Ouss4 (2018-07-27). - * arch/arm/src/samd5e5: Completes XOSC32, XOSC0/1, MCLK, and GCLK - configuration logic. Still needs FDPLL and FDLL support. From - Gregory Nutt (2018-07-27). - * arch/arm/src/samd5e5/sam_clockconfig.c: Implement DFLL and DFPLL0/1 - support. This completes coding the the re-architected clock - configuration logic. From Gregory Nutt (2018-07-28). - * arch/arm/src/samd5e5: Bring in untested SPI and I2C drivers from - SAMD2L2. From Gregory Nutt (2018-07-29). - * arch/arm/src/samd5e5: Leverage the SAMD2L2 DMA controller. From - Gregory Nutt (2018-07-29). - * arch/arm: Introduce CONFIG_DEBUG_HARDFAULT_INFO to Kconfig - arch/arm/src/armv7-m: Introduce CONFIG_DEBUG_HARDFAULT_INFO to - up_hardfault.c - arch/arm/src/armv6-m: Introduce CONFIG_DEBUG_HARDFAULT_INFO to - up_hardfault.c From Masayuki Ishikawa (2018-07-30). - * sched/mqueue/mq_notify.c: Fix - only part of struct copied to - internal structure. As source address the address of the struct - member sigev_value was used, and it is not located the start of the - struct. This leads to invalid data being copied to internal - structure. Both source and destination should be of type struct - sigevent* . From Simon Liedl (2018-07-30). - * arch/arm/src/samd5e5/sam_usb.c: Bring the SAMDL2 USB driver into the - SAMD5E5 port. From Gregory Nutt (2018-07-30). - * drivers/usbhost/usbhost_max3421e.c: Fix several errors found in - early testing. - drivers/usbhost/usbhost_max3421e.c: Mutual exclusion semaphore must - be re-entrant. - drivers/usbhost/usbhost_max3421e.c: Fix unmatched SPI lock/unlock. - From Gregory Nutt (2018-07-30). - * configs/metro-m4: Correct SERCOM3 pin configuration From Gregory - Nutt (2018-08-01). - * stm32f746g-disco: touchscreen support: Fixed FT5x06 driver to - correctly close (previously it unregistered interrupt handler during - close). Also added LittlevGL demo for STM32F746G-DISCO From Marcin - Wyrwas (2018-08-01). - * drivers/analog: Add driver for digital to analog converted DAC7571. - configs/nucleo-l432kc: Add support for a connect DAC7571 converter. - From Daniel Pereira Carvalho (2018-08-02). - * drivers/sensors/adxl345: remove comment references to touchscreens - From Russ Webber (2018-08-02). - * arch/arm/include/armv7-m, arch/arm/include/armv7-m, - arch/arm/include/stm32f7: Add a configuration to enable workaround - for r0p1 Errata 837070: Increasing priority using write to BASEPRI - does not take effect immediately. - This update is required to be serialized to the instruction stream - meaning that after this update completes, it takes effect immediately - and no exceptions of lower priority than the new boosted priority can - preempt execution. Because of this erratum, the priority boosting - does not take place immediately, allowing the instruction after the - MSR to be interrupted by an exception of lower priority than the new - boosted priority. This effect is only limited to the next - instruction. Subsequent instructions are guaranteed to see the new - boosted priority. - This was raised in Bitbucket issue 113 from Vadzim Dambrouski. From - Gregory Nutt (2018-08-02). - * net/tcp: Remove g_netstats.tcp.syndrop++ from tcp_data_event() From - Masayuki Ishikawa (2018-08-03). - * include/nuttx/i2c/i2c_master.h: Add a definition to distinguish a - new START of messages from a repeated start. No lower-half I2C - drivers actually implement this new flag bit, however. - drivers/i2c/i2c_writeread.c: Use new repeated START definition where - appropriate. Rename I2C_M_NORESTART to I2C_M_NOSTART since it may be - used in other contexts than a repeated start. Add comments to - clarify setup for repeated start. From Gregory Nutt (2018-08-03). - * configs/nucleo-l432kc: Fix stm32_userleds. After change LD2 to LD3 - in board.h stm32_userleds.c was broken. From Daniel P. Carvalho - (2018-08-03). - * arch/arm/src/stm32f7: This commit ports the stm32f20xxf40xx_flash.c - driver to the STM32F7 platform and fixes some relevant problems in - the header files. From Evgeniy Bobkov (2018-08-03). - * net/netlink: This commit brings in a fragmentary, experimental - implementation of NETLINK sockets. There is not too much to that - socket support on this initial commit, just the netlink socket - framework. However, I decided to bring it into master because there - is a enough that I would not want to lose what is in place. And - since it is dependent on CONFIG_EXPERIMENTAL, its presence on master - should be innocuous. From Gregory Nutt (2018-08-03). - * configs/metro-m4: Add an option to build the Metro M4 image to run - out of SRAM. This ought to be a safer and quicker way to do the - initial bring-up (having bricked the first Metro M4 due to a bad - FLASH image). From Gregory Nutt (2018-08-03). - * Revise the Cortex-M7 workaround: That change had the subtle - side-effect of unconditionally enabling interrupts in the primask. - That may be what we want in most cases, but certainly not all. This - does increase the size of the inline function by about 48-bits per - instantiation. From Gregory Nutt (2018-08-04). - * configs/olimex-stm32-p407: Add kernel ELF (kelf) configuration. - From Gregory Nutt (2018-08-04). - * binfmt/ and sched/group: Re-architect the way that loadable ELF or - NXFLAT modules are unloaded. Memory resources must be recovered when - the task loaded into memory exits. The original implementation used - the death-of-child SIGCHLD signal to perform the unload. There are - several problems with this: It is overly complex, it requires that - the parent task stay resident while the loaded task runs, and it has - fatal logic flaws in the protected and kernel model builds because - the user signal handler attempts to run in the kernel address space. - This commit corrects with using a mindlessly simply BINFMT callback - when the task exits. From Gregory Nutt (2018-08-05). - * Kconfig files: Fix several errors noted by Alex Denisov in Bitbucket - issue 115. From Gregory Nutt (2018-08-05). - * configs/olimex-stm32-p407/kmodule: Add a configuration that can be - used for testing installation of kernel modules in the protected - build. From Gregory Nutt (2018-08-05). - * sched/group: Fix a deadlock when loading an ELF From Masayuki - Ishikawa (2018-08-06). - * arch/arm/src/lc823450: Change C-Buffer under-level control. The - under-level setting was changed from 1KB to 55KB. In previous - implementation, the setting can ben changed by the tx threshold but - it is fixed at startup. Also, check write size and adjust alignment - if needed. - configs/lc823450-xgevk: Change IOB related params for RNDIS. Since - TCP flow control scheme was changed, HTTP audio streaming has not - been working. These IOB params are not optimized but HTTP audio - streaming now works. From Masayuki Ishikawa (2018-08-06). - * arch/arm/src/stm32l4/chip/stm32l4x3xx_pinmap.h: Recent commit removed - some of the pin definitions for STM32L451xx, and probably some other - chips of the STM32L4x3 subfamily, breaking our builds. Some chips of - the subfamily don't have these peripherals, but some do, so that is - not a valid reason to remove them. From Juha Niskanen (2018-08-06). - * stm32f103-minimum: Add blackpill LED support From Russ Webber - (2018-08-07). - * Build System: This change extends support for the two-pass build. - Its primary purpose is to incorporate source logic generated by - applications into the kernel phase of the build. - In the two pass build, the application logic is built during the - first phase, pass 1. In that phase, the application may generate and - install source files in the pass1/directory. The operating system is - built during phase 2 of the build. At that time, those source files - in the pass1/ directory will be built and incorporated into the - kernel address space. - The primary purpose of the pass1/ directory is to such - application-generated kernel symbol tables. For an example of the - use of this feature, look at apps/examples/module/drivers/Makefile. - Kernel symbol tables are needed to support kernel modules. Of - course, addition board-specific logic in, say, configs//src - would have to be included to make use of the application-installed - symbol tables. From Gregory Nutt (2018-08-07). - * configs/olimex-stm32_p407: Add logic to support initialization of - the kernel module symbol table installed in the pass1/ directory - during the application phase of the build. The kmodule configuration - appears to be fully functional. From Gregory Nutt (2018-08-07). - * configs/nucleo-l432kc/include/nucleo-l432kc.h: Fix TIMx clock - configuration. Also removes definitions related to timers not - available in the STM32L432KC. From Daniel Pereira Carvalho - (2018-08-07). - * arch/arm/src/stm32l4: Fix ADC and COMP breakage caused by - CONFIG_STM32L4_STM32L4X2 separation in 9223123c From Juha Niskanen - (2018-08-08). - * configs/nucleo-l452re: Fix TIMx clock configuration. This is cloned - from 391f3715 for nucleo-l432kc. Also fixes DAC build failure. From - Juha Niskanen (2018-08-08). - * arch/arm/src/stm32, stm32f7, stm32l4, and related defconfig files: - The STM32 RTC driver was being selected by the global CONFIG_RTC - option. That is in correct. For example, if you want to disabled - the STM32 RTC and use an external RTC you cannot because the external - RTC also depends on the global CONFIG_RTC. The solution is to add a - new CONFIG_STM32xx_RTC configuration option the permits to you select - or deselect the STM32 RTC but still be able to select the external - RTC. From Gregory Nutt (2018-08-08). - * configs/stm32f4discovery/scripts/ld.script: Missing - EXTERN(_vectors) From Gregory Nutt (2018-08-08). - * arch/arm/src/stm32l4: Avoid using redundant - CONFIG_STM32L4_STM32L4X2. This is almost always same as - CONFIG_STM32L4_STM32L4X3. Avoid duplication to reduce macro clutter. - This patch limits CONFIG_STM32L4_STM32L4X2 usage to dependency - tracking and pinmap. Also enable ADC for CONFIG_STM32L4_STM32L4X5 - (untested, but same RM). From Juha Niskanen (2018-08-09). - * arch/arm/src/stm32l4/chip: Merged stm32l4x2xx and stm32l4x3xx pinmap - files. Removed references to stm32l4x2xx_pinmap.h From Daniel P. - Carvalho (2018-08-09). - * arch/arm/src/kinetis: PIT add Lifetime and Chaining - arch/arm/src/kinetis: flexcan fix duplicate line and ordering - arch/arm/src/kinetis: kinetis_lowput.c LPUART data format with - parity fix. The 9-bit data mode is typically used with parity to - allow eight bits of data plus the parity - arch/arm/src/kinetis: lowputc LPUART_BAUD_INIT has to be defined. - Build fails with test case enable LPUART0 and make UART1 console. If - HAVE_LPUART_DEVICE is defined then LPUART_BAUD_INIT has to be defined - even if the lpuart is not the console From David Sidrane (2018-08-09). - * - arch/arm/src/kinetis: Add DMA support and use Circular DMA as an - option to augment the RX FIFOs in the Serial driver. From David - Sidrane (2018-08-10). - * fs/proc and sched/environ: Add support for a procfs entry that will - permit examining the environment of any task. From Gregory Nutt - (2018-08-10). - * tools/kconfig2html.c: Update tool to handle tristate types. Fix a - few errors detected in Kconfig files. From Gregory Nutt (2018-08-10). - * arch/arm/src/stm32l4: Add initial support to STM32L4+ chips From - Juha Niskanen (2018-08-13). - * configs/stm32l4r9ai-disco: Add stm32l4r9ai-disco support. From Juha - Niskanen (2018-08-13). - * arch/arm/src/stm32l4: stm32l4xrxx: allow board to override flash - wait states From Juha Niskanen (2018-08-14). - * configs/stm32l4r9ai-disco: Fix HSE clock config and clock board to - maximum 120 MHz From Juha Niskanen (2018-08-14). - * drivers/net/tun.c: Fixed custom tun devname formatting. From Dmitriy - Linikov (2018-08-14). - * net/: Remove all references to CONFIG_NET_USER_DEVFMT. That feature - is now unconditionally enabled. This was done because (1) the - feature does not require very much additional memory, and (2) it - causes confusion in the configuration due to the additional - complexity. Any network drivers that fail to zero the device - structure interface name field (d_ifname) because calling - netdev_register() will, however, get a nasty surprise. From Gregory - Nutt (2018-08-14). - * net/: Change order of logic: Select the user-defined interface name - format BEFORE determining the minor device number. Otherwise, the - default interface name will be used. From Gregory Nutt (2018-08-14). - * tools/Config.mk: Add function CATFILE definition. Currently only - used in apps/builtin/Makefile. From Gregory Nutt (2018-08-15). - * tools/Config.mk: Move the RWILDCARD function definition from - apps/builtin/Makefile to nuttx/tools/Config.mk. It may have a - broader usage than it does now. From Gregory Nutt (2018-08-15). - * arch/arm/src/stm32/stm32_adc.c: Allow multiple channels without DMA - on STM32L15XX From Juha Niskanen (2018-08-16). - * arch/arm/src/stm32, stm32f7, stm32l4: Make STM32F4XX RTC depend on - CONFIG_STM32_RTC. From Juha Niskanen (2018-08-16). - * arch/arm/src/stm32l4: Some updates to analog peripherals ADC, COMP - and DFSDM for STM32L4XR From Juha Niskanen (2018-08-16). - * drivers/usbdev/cdcecm.c: Adds USB Device Support for CDC/ECM From - Michael Jung (2018-08-16). - * include/stdio.h: Add prototypes for popen() and pclose(). Actual - implementation is in apps/system/popen() From Gregory Nutt - (2018-08-17). - * include/stdio.h: popen()/pclose() are not available in KERNEL mode - because they depend on task_spawn() which is not available in KERNEL - mode. From Gregory Nutt (2018-08-17). - * fs/procfs/: Add support for /self, a convenient way for getting - information about the currently running task. From Gregory Nutt - (2018-08-18). - * fs/procfs: Add a configuration option to disable environment - variable info. From Gregory Nutt (2018-08-19). - * include/endian.h and libs/libc/endian: Add support for endian.h. - From Gregory Nutt (2018-08-19). - * include/sys/param.h: Add a dummy sys/param.h header file. This is - not a standard file but is used by other systems and having the dummy - file may minimize some porting efforts. From Gregory Nutt - (2018-08-19). - * Remove CONFIG_ARCH_CALIBRATION. It is awkward to use and no longer - necessary now that we have apps/examples/calib_udelay. From Gregory - Nutt (2018-08-19). - * arch/arm/src/stm32f7/stm32_serial.c: Previous logic would invalidate - the data cache as each byte was read from the DMA buffer. This - change adds logic to invalidate the data cache less frequently by - monitoring the state of the Rx DMA buffer cache coherency and - invalidating only regions as necessary. From Evgeniy Bobkov - (2018-08-21). - * net/procfs/netdev_statistics.c: Was not handling the output correct - for the case of an IEEE 802.11 device. From Gregory Nutt (2018-08-21). - * fs/hostfs: Add support for open() append mode From anchao - (2018-08-22). - * fs/hostfs: Add ftruncate support. From Xiang Xiao (2018-08-22). - * sched/symtab: Reference default symtab name to binfmt From anchao - (2018-08-22). - * binfmt/elf: Set priority level to default if parent has no - priority. From anchao (2018-08-22). - * configs: Several applications in apps/ were calling elf_initialize() - nxflat_initialize(), or builtin_initialize() in violation of the - portable POSIX interface. Those calls were removed from the - applications and added to the appropriate board initialization with - this commit. From Gregory Nutt (2018-08-22). - * drivers/wireless/ieee80211/bcmf_netdev.c: Add missing logic to poll - for more Tx data after the last transfer completes. From Gregory - Nutt (2018-08-22). - * configs/: Change CONFIG_BOARD_RESET_ON_CRASH to - CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to board_reset() - if in all implementations of up_assert() when - CONFIG_BOARD_RESET_ON_ASSERT=y. From Xiang Xiao (2018-08-22). - * apps/system/system/system.c: Add 'const' to make function prototype - compatible with OpenGroup.org requirement From Xiang Xiao - (2018-08-23). - * arch/arm: (1) Add semihost support for syslog, (2) Add semihost - support for HostFS From Gregory Nutt (2018-08-23). - * binfmt: Add binfmt_initialize(). All binary formats are now - registered centrally vs. in board-specific logic. This simplifies - the usage of the binfmt subsystem. From Xiang Xiao (2018-08-23). - * mm/: add mm_heapmember function and reimplement kmm_heapmember base - on mm_heapmember since this function is very useful if multiple heaps - exist. From Xiang Xiao (2018-08-23). - * pthreads: Add support static pthread stack. Add standard - pthread_attr_setstack() and pthread_attr_getstack(). In all cases - where the stack is released, add check to see which allocator must be - used to free the stack: The user or the kernel allocator. From - xuanlin (2018-08-23). - * arch/arm/src/armv7-m: Implement SYSTICK timer driver From Xiang - Xiao (2018-08-23). - * configs/sim/loadable: Add loadable demo for arch sim - sched/init: Restore previously reverted option to mount block device - for INIT_FILEPATH case - configs/stm3240g-eval/knxwm: Fix build breakage. - configs: With recent changes to apps/ all configurations that build - applications as modules must now also select CONFIG_APPS_LOADABLE. - configs/sim/loadable: Add loadable demo for arch sim - Kconfig and tools/Makefile.unix and : add dynamic application - loadable support From anchao (2018-08-23). - * tools/nxstyle.c: Add capability to detect multiple blank lines. - Single spacing required by the coding standard. Also coding standard - fixes to server .c files for problems found during testing nxstyle. - From Gregory Nutt (2018-08-24). - * Replace non critical PANIC with DEBUGPANIC to save the code space - From Xiang Xiao (2018-08-24). - * Replace all ASSERT with DEBUGASSERT to save the code space From - Xiang Xiao (2018-08-24). - * arm syscalls: svcall/sycall logic needs to get the ucontext argument - from R4 instead of stack since all syscall parameters pass from - registers in syscall.h From Xiang Xiao (2018-08-24). - * arch/arm/armv7-m: MPU: mpu_log2regionceil needs take into account - the offset too From Xiang Xiao (2018-08-24). - * arch/ and task/sched: vfork operation needs to allocate and copy the - task argument too. Also correction of the address correction cannot - depend on the stack pointer since it is not available in all - architectures. Rather calculate the offset from the stack - allocation pointer From Xiang Xiao (2018-08-24). - * include/nuttx/arch.h: Add prototype for an architecture-specific - up_trigger_irq function From dongjianli (2018-08-24). - * include/nuttx/arch.h: Add prototype for an architecture-specific - up_trigger_irq function - arch/, include/nuttx, sched/sched: Add the garbage collection hook - so each architecture can do custom memory cleanup if necessary. - arch/Kconfig: Add configuration CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS to - suppress use of weak functions. Some gnu derived toolchains do not - support weak symbols From Xiang Xiao (2018-08-24). - * include/nuttx/arch.h: Add architecture-specific prototypes for - conversions between physical and virtual address. From ligd (2018-08-24). - * net/arp: arp_find() now checks if the target IP belongs to one of the - local network devices. From Xiang Xiao (2018-08-24). - * net/netdev: add devif_loopback() to check the loopback case where - a packet is being sent to itself. Modify the net driver to call this - function in this case. This function will simply re-inject the - packet back into the network and the network driver will not put - anything on the wire. From Xiang Xiao (2018-08-24). - * include/nuttx/clock.h, sched/sched: Support the CPU load measurement - using timer_lowerhalf_s interface From Xiang Xiao (2018-08-24). - * drivers/timers: Add maxtimeout method to the struct timer_ops_s - interface From Xiang Xiao (2018-08-24). - * drivers/timers: Add a new method to the struct oneshot_operations_s - interface to get the current time from a oneshot timer driver (if it - is available from the lower half) From Xiang Xiao (2018-08-24). - * drivers/net: drivers/net: Add support for Microchip LAN91C111 - driver From Xiang Xiao (2018-08-24). - * arch/sim/src/up_netdriver.c: (1) Remove up_comparemac() check for - matching MAC address. Let's trust that the tap device just return the - packet which belong to us like other real network device hardware. - (2) Add network device statistics support. From Xiang Xiao - (2018-08-24). - * up_internal.h: Define out the prototype for up_netinitialize() if - CONFIG_NETDEV_LATEINIT is also defined From dongjianli (2018-08-24). - * sched/irq/irq_dispatch.c: Ensure vector never points to NULL since - interrupt may happen before irq_initialize() From Xiang Xiao - (2018-08-24). - * sched/irq: Add support interrupt chains in NuttX. IRQ chain is very - useful in these cases: (1) Multiple hardware connect to the same - request line(e.g. PCI), (2) Need multiple driver to support one - hardware block (like Linux MFD) From zhuguangqing (2018-08-24). - * sched/irq/irq_procfs.c: Fix occasional computation error when - fracpart >= 1000 From Xiang Xiao (2018-08-24). - * arch/: Fix an error found in build testing. The prototype 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. From Gregory Nutt (2018-08-24). - * net/arp: Make the function arp_find() thread-safe. It now returns a - copy of the MAC address from the ARP table entry, rather than a - potentially unstable reference to the ARP table entry. From Gregory - Nutt (2018-08-24). - * arch/arm/src/kinetis: I2C ensure timeout on bus error. The code had - a dead wait on I2C_S_BUSY. Noise on the bus would cause the driver to - hang. Add timeout on invalid states of I2C_S_BUSY to allow the upper - layers do deal with restart or abort. From David Sidrane (2018-08-25). - * sched/irq: Monitor the irq execution time. This is very useful for - measuring the interrupt latency. From Xiang Xiao (2018-08-25). - * drivers/sensors and configs/nucleo-l476g: Add support for LSM303AGR - and LSM6DSL sensors From DisruptiveNL (2018-08-25). - * arch/arm/src/armv7-m/up_trigger_irq.c: Add logic to trigger ARMv7-M - interrupts and exceptions. From Gregory Nutt (2018-08-25). - * arch/arm/src/armv-7m/nvic.h: Add definitions needed by - up_trigger_irq(). From Gregory Nutt (2018-08-25). - * drivers/wireless/ieee80211/bcmf_sdio.c: Bring in some fixes from the - 'Haywire' branch. From Gregory Nutt (2018-08-25). - * sched/wqueue: Modify high priority work queue to support multiple - threads. - sched/wqueue and libs/libc/wqueue: workqueues don't need set global - data to zero since .bss is cleared automatically. Removing this - unnecessary initialization also avoids the loss the work items queued - before initialization. From ligd (2018-08-25). - * sched/wqueue, libs/libc/wqueue, configs: Remove work queue polling - delay to simplify the code logic and save the power. From xuanlin - (2018-08-25). - * drivers/syslog: Channel configuration. Decouple - SYSLOG_SERIAL_CONSOLE and ARCH_LOWPUTC. Since some hardware can - output log to the special debug channel not serial. - drivers/syslog/vsyslog.c: Support pre-pending a prefix string to log - output if enabled. This very useful to identify which cpu send out - the log in AMP SoC. - drivers/syslog/vsyslog.c: Make timestamp output same as linux - kernel. It's very useful if NuttX syslog retarget to Linux syslog. - From Xiang Xiao (2018-08-26). - * libs/libc/syslog/lib_syslog.c: Fix syslog crash on 64bit simulation. - From anchao (2018-08-26). - * Write to a pipe when there are no readers from the pipe should return - -EPIPE. From ligd (2018-08-26). - * drivers/serial/pty.c: Add support so that a PTY can poll for both - IN/OUT event simultaneously. From ligd (2018-08-26). - * drivers/serial: Add Ctrl-C/Ctrl-X support. This is an initial - working implementation that still requires that several details be - resolved. - sched/task/task_start.c: Add default signal action to SIGKILL. From - ligd (2018-08-26). - * Send poll() notification when the Tx buffer is flushed From ligd - (2018-08-26). - * drivers/serial/serial.c: Support UART direct write for non console - device From xuanlin (2018-08-26). - * drivers/serial/serial.c: Don't overwrite nwritten unconditionally on - UART write failure. From Xiang Xiao (2018-08-26). - * drivers/serial: Move head/tail pointer reset to uart_recvchars_dma - since dma may be still transferring in the background. From Xiang - Xiao (2018-08-26). - * drivers/serial/serial.c: In DMA mode, the use of uart_disablexinit() - is insufficient to protect a critical section. - enter/leave_critical_section() must be used in those cases if - CONFIG_SERIAL_DMA=y From Xiang Xiao (2018-08-26). - * drivers/serial/uart_16550.c: Add a configuration, analogous to the - STM32 configuration option, to suppress the NuttX standard - re-ordering for /dev/ttySN for special case of the 16550 UART. - config/serial: UART 16550: Add CONFIG_SERIAL_UART_ARCH_MMIO option so - the a memory mapped device doesn't need to provide uart_getreg() and - uart_putreg() implementations. - u16550_txempty() should check UART_LSR_TEMT to avoid some data left - in the transmit FIFO From Xiang Xiao (2018-08-26). - * drivers/serial/uart_16550.c: Add stub implementations of DMA-related - methods in the 16550 UART v-table. From ligd (2018-08-26). - * drivers/serial/uart_16550.c: Add serial termios handling From - anchao (2018-08-26). - * drivers/serial/uart_16550.c: Support 16550 auto hardware flow control - drivers/serial/uart_16550.c: Add configuration option - CONFIG_16550_SUPRESS_INITIAL_CONFIG. This is identical to the - standard configuration in arch/Kconfig CONFIG_SUPPRESS_UART_CONFIG, - but with scope of only the 16550 driver. From Xiang Xiao (2018-08-26). - * fs/hostfs/Kconfig: Remove ARCH_SIM dependence since other - architectures (e.g., arm semihosting) could support hostfs too From - Xiang Xiao (2018-08-26). - * fs/hostfs/hostfs.c: Support remote directory names without a trailing - '/' From ligd (2018-08-26). - * fs/hostfs/hostfs.c: Ensure f_type is equal to HOSTFS_MAGIC. From - Xiang Xiao (2018-08-26). - * fs/hostfs/hostfs.c: Add re-try when hostfs mount() fails From ligd - (2018-08-26). - * fs/romfs/fs_romfsutil.c: Make romfs_devread32 more portable From - anchao (2018-08-26). - * fs/nfs: Update nfs mount to VER3 From zhangyuan7 (2018-08-26). - * fs/vfs/fs_select.c: Make select be more consistent with Linux man - page: 'The timeout ... Some code calls select() with all three sets - empty, nfds zero, and a non-NULL timeout as a fairly portable way to - sleep with subsecond precision.' From anchao (2018-08-26). - * fs/vfs/fs_fstat.c: Add file_fstat() function for internal OS use. - From ligd (2018-08-26). - * fs/vfs/fs_fcntl.c, net/socket/net_dupsd.c, and - net/socket/net_vfcntl.c: Add file_fcntl, psock_fcntl, and - psock_dupsd for use within the kernel. From Xiang Xiao (2018-08-26). - * fs/vfs/fs_poll.c: Add poll use in kernel space. From dongjianli - (2018-08-26). - * include/nuttx/compiler.h, include/poll.h: Add logic to determine if - the compiler supports anonymous structures and unions. From Gregory - Nutt (2018-08-26). - * Move psock check from [get|set]sockopt to psock_[get|set]sockopt - From Xiang Xiao (2018-08-26). - * net/Kconfig: Uncomment the prompt of NET_SLIP_PKTSIZE From Xiang - Xiao (2018-08-26). - * net/tcp/tcp_monitor.c: Fix net unlock issue when tcp close. This - bug could leave the net locked. From zhangyuan7 (2018-08-26). - * netdev_findby_ipv[4|6]addr return netdev_default() as last resort but - don't return loopback device if another network device is in the UP - state. From Xiang Xiao (2018-08-26). - * net/socket/getsockname.c: Add psock_getsockname function From Xiang - Xiao (2018-08-26). - * net/netdev/netdev_ioctl.c: Add si_ioctl callback and - net_ioctl_arglen so usrsock could forward the ioctl to the remote - end From dongjianli (2018-08-26). - * include/nuttx/net/ethernet.h: Remove CONFIG_NET_ETHERNET guard From - Xiang Xiao (2018-08-26). - * net/usrsock/: Correct of semaphore usage issues. From Gregory Nutt - (2018-08-26). - * net/usrsock: Combine some the duplicated logic. From Xiang Xiao - (2018-08-26). - * net/usrsock/usrsock.h: Fix re-definitions of struct iovec. From - ligd (2018-08-26). - * net/usrsock: Optimize option dependence From Xiang Xiao (2018-08-26). - * net/usrsock: Add the listen/accept/getpeername/ioctl support From - dongjianli (2018-08-26). - * net/icmp/icmp_conn.c and net/icmpv6/icmpv6_conn.c: Change the type - of id in icmpv[6]_findconn to uint16_t From Xiang Xiao (2018-08-26). - * net/icmp and icmpv6: Fix failure to poll ICMP socket issue. From - dongjianli (2018-08-26). - * include/nuttx/fs/fs.h: ... conflicting types for file_fstat(). From - Gregory Nutt (2018-08-26). - * include/crc64.h: fix warning: integer constant is too large for its - type From Xiang Xiao (2018-08-27). - * include/nuttx/fs/binfs.h: Fix warning: Type defaults to 'int' in - declaration of 'mountpt_operations' From Xiang Xiao (2018-08-27). - * include/nuttx/compiler.h: fix warning: __cplusplus is not defined. - Some gcc derived compiler do not define __cplusplus From Xiang Xiao - (2018-08-27). - * include/nuttx/kmalloc.h: Add {kumm/kmm}_calloc API. Add calloc API - for manage user memory and kernel memory in Flat Build/Kernel Build - without kernel heap. From zhuyanlin (2018-08-27). - * include/queue.h: Add dq_tail marco From zhuguangqing (2018-08-27). - * include/spawn.h: Fix posix_spawnattr_destroy warning: 'the address - of attr will always evaluate as true' From Xiang Xiao (2018-08-27). - * include/nuttx/i2c/i2c_master.h: Add the standard speed macros. From - dongjiuzhu (2018-08-27). - * Move clock_timespec_[add|subtract] to include/nuttx/clock.h From - Xiang Xiao (2018-08-27). - * include/nuttx/semaphore.h: don't include nuttx/fs/fs.h. (1) Avoid - nested loops if CONFIG_SIG_EVTHREAD enabled, (2) semaphore.h doesn't - depends on fs.h. From Gregory Nutt (2018-08-27). - * include/nuttx/semaphore: apply the semaphore wait function - nxsem_wait_uninterruptible(). The function - nxsem_wait_uninterruptible() is a wrapped version of nxsem_wait(), - which is uninterruptible and convenient for use. From liuhaiyang - (2018-08-27). - * include/nuttx/mutex.h: Add inline wrapper functions to more clearly - support semaphores when used as mutexs. From QianWenfa (2018-08-27). - * include/sys/types: Move wint_t and wctype_t from wchar.h to - types.h. This change is compatible as before since wchar.h include - types.h indirectly. This fixes a compilation error with newlib's - math.h: 'unknown type name wint_t' From Xiang Xiao (2018-08-27). - * include/nuttx/nuttx.h: Added nuttx.h header file which is analogous - to the linux.h header file. Currently, it contains on the definition - of the container_of() macro. From zhuyanlin (2018-08-27). - * Kconfig: Move 'option modules' from NSH_FILE_APPS to BUILD_LOADABLE - From anchao (2018-08-27). - * drivers/crypto: Move dev_urandom.c into new crypto folder. From - Xiang Xiao (2018-08-27). - * drivers/pwm: Move pwm.c into pwm folder From Xiang Xiao (2018-08-27). - * drivers/audio: Move the I2S character driver to a dedicated folder. - From Xiang Xiao (2018-08-27). - * arch/arm/src/stm32/stm32f30xxx_i2c.c: Fix compile error with I2C - reset From Juha Niskanen (2018-08-27). - * include/nuttx/audio/audio.h: Change member samp of apb to pointer so - driver can customize sample buffer allocation From ZhongAn - (2018-08-27). - * libs/libc/audio/lib_buffer.c: Call nxsem_destroy in apb_free From - Xiang Xiao (2018-08-27). - * include/nuttx/audio/audio.h: Add ioctl cmd 'AUDIOIOC_SETBUFFERINFO' - so user space could config the buffer From ZhongAn (2018-08-27). - * nuttx/audio: Add hardware format support From anchao (2018-08-27). - * include/nuttx/audio/i2s.h: Add i2s_rxchannels and i2s_txchannels - methods to the I2S lower half interface. From ZhongAn (2018-08-27). - * drivers/audio/audio_i2s.c: Add audio_i2s device driver. From - ZhongAn (2018-08-27). - * audio/audio_comp.c: Add the composite audio driver From Xiang Xiao - (2018-08-27). - * driver/ioexpander: Add gpio_pin_unregister function to GPIO driver - driver/ioexpander: Add pinset struct to GPIO driver for interrupt - pins larger than 64 - driver/ioexpander: Initialize pintype/inttype when registering - ioexpander device - driver/ioexpander: Add SETPINTYPE ioctl command to the GPIO driver - From zhuyanlin (2018-08-27). - * drivers/serial/Kconfig: It is no longer necessary to restrict Ctrl-C - handling to the FLAT build - sched/signal: Add a new configuration option to select signal - default actions, separate handling of signal default actions from - both task startup logic and from the serial TTY Ctrl-C logic. Add a - signal set in the group structure to keep track of what signals have - been set to the default action. In dispatching signals in PROTECTED - or KERNEL mode, use this signal set to determine if the default - signal handler is attached and dispatch the signal in kernel mode for - the default actions. From Gregory Nutt (2018-08-27). - * drivers/timers/arch_timer.c: implement timer arch API on top of timer - driver interface - drivers/timers/arch_alarm.c: Implement alarm arch API on top of - oneshot driver interface - drivers/timers/arch_rtc.c: Implement RTC arch API on top of RTC - driver interface - include/nuttx/timers/rtc.h: Extend struct rtc_time by adding - tm_nsec if RTC supports hiresolution time. From Xiang Xiao - (2018-08-27). - * sched/signals: Update the signal default action logic to support - sigaction(). signaction() must be able to handle and input action - of SIG_DFL to setup the default signal action; it mast also return - SIG_DFL it is replacing the default action. From Gregory Nutt - (2018-08-27). - * drivers/power: PM: Add pm_stay and pm_relax function so special - apps(e.g. mediaplayer) could disable suspend during playback much like - linux kernel counterpart From Xiang Xiao (2018-08-27). - * drivers/power: PM: Add pm_querystate function From zhuguangqing - (2018-08-27). - * drivers/power/: PM: Don't update the power state in work thread: - (1) Simplify the code logic and remove the work queue dependence, - (2) Power calculation is too simple to delay into the work queue - From Xiang Xiao (2018-08-27). - * drivers/pm: PM: Decrease the power state in the reverse order. - Since the child driver need power off before parent driver. From - zhuguangqing (2018-08-27). - * drivers/power: PM: Make power manager service available as soon as - possible: (1) Initialize g_pmglobals at the definition, (2) skip - hold the lock if OS isn't ready From Xiang Xiao (2018-08-27). - * drivers/pm: PM: Add PM_RESTORE to notify driver that device exit - WFI so the driver could restore state. For example, WDT may stop - counting before enter low power state and restore the counting again - in PM_RESTORE notification From zhuguangqing (2018-08-27). - * drivers/power: PM: Add timer to decrease PM level automatically - From ligd (2018-08-27). - * sched/signal: Default Signal Actions. Change some types to - superficially simplify. Add configuration options to enabled - default signal behaviors on a per-signal basis. I don't think users - are prepared for SIGALRM to terminate the task (which is the correct - default behavior if you don't change it). Extend the implementation - of default signals so that it is totally table driven and extensible - by simply mondifying the content of const tables. From Gregory Nutt - (2018-08-27). - * drivers/power/pm_register.c: Fix an error found in build testing. - From Gregory Nutt (2018-08-27). - * drivers/mtd: Add gd25 driver From wangyanjiong (2018-08-28). - * include/limits.h and include/sys/types.h: Fix warning about - 'SIZE_MAX' redefined. include/nuttx/usb/audio.h: Fix warnings due - to '-' used whete '_' intended. From Xiang Xiao (2018-08-28). - * drivers/mtd/mtd_partition.c: Copy the partition name to internal - buffer so that the caller can free the name argument From Xiang - Xiao (2018-08-28). - * drivers/mtd/ftl.c: Support initialization of an FTL block device - with a custom name From Xiang Xiao (2018-08-28). - * fs/partition/fs_partition.c: Add PTABLE parser - fs/partion: Add a partition parser framework - fs/driver/fs_blockpartition.c: Add register_blockpartition for - block partition From Xiang Xiao (2018-08-28). - * drivers/mtd/ftl.c: Reduce size of stack buffer from 64 to a maximum - size as determined from NAME_MAX From Gregory Nutt (2018-08-28). - * drivers/serial: Integrate new Ctrl-C logic with the ISIG flag in - the termios c_lflag. Fix several compiler errors resulting from - recently flurry of renaming. From Gregory Nutt (2018-08-28). - * sched/signal: Add support for SIGINT in addition to SIGKILL. - drivers/serial: Use SIGINT instead of SIGKILL when control-C is - pressed. From Gregory Nutt (2018-08-28). - * sched/signal: Add logic and an interface to determine if a signal - can be caught or ignored. sigaction now correctly returns EINVAL on - any attempt to catch or ignore such signals (only SIGKILL for now - and only if CONFIG_SIG_DEFAULT=y). From Gregory Nutt (2018-08-28). - * configs/boardctl.c: Add support for board_app_finalinitialize() - From ligd (2018-08-28). - * configs/metro-m4/nsh/defconfig: Correct RAM size From Gregory Nutt - (2018-08-28). - * arm/armv7-r: Add general interrupt controller. This is based on - armv7-a gic controller code. - arm/armv7-r: Add invalidate dcache in arm_head.S. - arm/armv7-r: Fix some wrong configuration of program status - register. PSR_E_BIT bit should be set for big endian system. - PSR_A_BIT bis is set automatically as arm cortex-r4 reference manual - 3.7.4. So we don't need to set this bit. - arm/armv7-r: Fix some wrong MPU register definition. Change - MPU_RBAR_ADDR_MASK and MPU_RACR_TEX_SHIFT mask as arm cortex-r4 - reference manual. Region Base Address Register 0-4 bits are - reserved. MPU Region Access control register type 3-5 bits. - driver/mtd: fix compilation error. From EunBong Song (2018-08-29). - * drivers/audio/audio_i2s.c: Fix bad NULL pointer check From Juha - Niskanen (2018-08-29). - * sched/group/group_killchildren.c: In some circumstances, - group_killchildren() could have called pthread_cancel() to kill a - task. Also, the behavior would not be as expected if a pthread had - cancellation disabled. sched/signal/sig_default.c: Correct signal - handling in the multiple threaded case. The SIGKILL signal may - actually be processed on a pthread, not the main thread of the - task. From Gregory Nutt (2018-08-29). - * drivers/serial/serial_dma.c: Fix typo error in uart_recvchars_dma() - From Xiang Xiao (2018-08-29). - * net/arp/arp_out.c: Fix some backward logic in an if condition. - From Gregory Nutt (2018-08-29). - * sched/signal/sig_default.c: Lock the scheduler while while killing - the children so that we do not lose priority and let the task group - continue to run in an indeterminate state. From Gregory Nutt - (2018-08-29). - * sched/signal: This adds support for default signal actions for - SIGSTOP, SIGSTP, and SIGCONT" - Add procfs support to show stopped tasks. Add nxsig_action() to - solve a chicken and egg problem: We needed to use sigaction to set - default actions, but sigaction() would refuse to set actions if the - default actions could not be caught or ignored. - Add configuration option to selectively enabled/disable default - signal actions for SIGSTOP/SIGSTP/SIGCONT and SIGKILL/SIGINT. Fix - some compilation issues. - sched/sched: If a task/thread was already blocked when - SIGSTOP/SIGSTP was received, it will restart in the running state. - It will appear that to the task/thread that the blocked condition was - interrupt by a signal and returns the EINTR error. From Gregory - Nutt (2018-08-30). - * arch/arm/src/lpc43xx: Make WWDT usable again. LPC43xx WWDT driver - was not updated when irq_dispatch grew an argument parameter. Also - fixes two typos and a naming inconsistency (WWDT vs. WWDG). From - Jakob Haufe (2018-08-30). - * arch/arm/src/samd5e5: Updates to clock configuration from initial - testing. With these changes the boot up gets through clock - configuration but hangs in the low-level USART configuration before - completing the boot. From Gregory Nutt (2018-08-31). - * arch/arm/src/stm32f7: Add up_stackcheck.c From Daniel Agar - (2018-08-31). - * stm32h7/stm32_serial.c: don't include stm32_dma.h From raiden00pl - (2018-09-01). - * drivers/sensors/dhtxx.c: Driver for DHTxx sensor. - configs/olimex-stm32-p407: Add board support for the DHTxx sensor. - From Ouss4 (2018-09-01). - * arch/arm/src/samd5e5/sam_lowputc.c: Only the console USART was - begin enabled. From Gregory Nutt (2018-09-01). - * arch/arm/src/samd5e5: Correct some bad addresses in the memory - map. From Gregory Nutt (2018-09-01). - * configs/metro-m4: Fix RxD PAD selection. Add a configuration - option to use OSCULP32K instead of XOSC32K. From Gregory Nutt - (2018-09-01). - * configs/metro-m4: Fix RxD interrupt pin selection. The number - SERCOM interrupts do not refer to PAD numbers, but to bit positions - in the INFLAG register (very tiny footnote in the data sheet). With - with final fix, the basic NSH configuration appears fully - functional. From Gregory Nutt (2018-09-01). - * configs/metro-m4: Verify the CMCC and enable it by default in the - NSH configuration. From Gregory Nutt (2018-09-01). - * configs/metro-m4: Fix problem with SysTick timer running too fast. - This turned out to be a dumb typo in board.h that was providing the - wrong CPU frequency to the SysTick setup logic. From Gregory Nutt - (2018-09-02). - * arch/arm/src/stm32h7: Remove old references to RXDMA. Add - configuration option to select the Rx FIFO threshold level. From - Gregory Nutt (2018-09-02). - * sched/: Update signal default STOP action. If waitpid was called - with the WUNTRACED then wake up waitpid(). From Gregory Nutt - (2018-09-02). - * drivers/serial: Add support for Ctrl-Z. This works just like the - recently added Ctrl-C support except that SIGSTP is sent when the - Ctrl-Z characters is encountered vs. SIGINT. From Gregory Nutt - (2018-09-02). - * configs/b-l475e-iot01a/src: Fix copy paste errors in names: - stm32_bringup->stm32l4_bringup. Noted by Freemans Goden. From - Gregory Nutt (2018-09-04). - * configs/b-l475e-iot01a/src: Add timer driver support. From Goden - Freemans (2018-09-04). - * arch/arm/src/stm32f7: Port the low-level PM functions to STM32F7. - From Juha Niskanen (2018-09-04). - * tools/Makefile.unix: Was not cleaning up export directory if it was - left from a failed export. configs/sama5d4-ek/README.txt: Update. - From Gregory Nutt (2018-09-04). - * tools/mkexport.sh: Save the name of the STRIP tool too. From - Gregory Nutt (2018-09-04). - * arch/arm/src/stm32l4: Add getstatus and getperiod() method to the - timer driver (includes coding standard changes made prior to - commit) From Goden Freemans (2018-09-05). - * configs/: apps/netutils/ping has been removed. Ping support is now - provided by apps/system/ping. Remove references to - -CONFIG_NETUTILS_PING or change them to CONFIG_SYSTEM_PING with - CONFIG_NET_ICMP_SOCKET=y From Gregory Nutt (2018-09-05). - -7.27 2018-11-14 Gregory Nutt - - * mm/iob: Add an IOB notifier that will send a signal to any registered - threads that want to be notified when an IOB has been freed. This is an - untested work-in-progress and is intended to be a part of a larger solution - to correctly handling network poll operations. From Gregory Nutt - (2018-09-08). - * sched/signal: Add a generic signal notification facility. Modify the - custom IOB available notifier so that it is now just a wrapper around this - generic signal notification. This generic signal notification facility - will, eventually, be used to support network polling. From Gregory Nutt - (2018-09-09). - * net/tcp and udp: Add logic to signal events when TCP or UDP read-ahead - data is buffered. From Gregory Nutt (2018-09-09). - * net/netdev: Add signal notification for the case where the network goes - down. From Gregory Nutt (2018-09-09). - * sched/signal: In signal notification facility, use sigqueue() to notify - vs. kill(). With sigqueue(), we can pass more info (but still not enough). - From Gregory Nutt (2018-09-09). - * Signals were not a good choice of IPC to implement the poll function for - several reasons: In order to handle the asynchronous poll-related event, a - substantial amount of state information is needed. Signals are only capable - of passing minimal amounts of data. There are also complexities with - performing kernel space signal handlers in kernel space code that is better - to avoid. So, instead of signals, the equivalent logic was converted to run - via a callback that executes on the high-priority work queue. From Gregory - Nutt (2018-09-09). - * net/TCP: Extend the TCP notification logic logic so that it will also - report loss of connection events. From Gregory Nutt (2018-09-09). - * arch/arm/src/lpc43xx: Fix Ethernet TX_EN pin definitions. TX_EN on - LPC43xx can be routed via P0.1 and PC.4 in both MII and RMII mode. Before, - P0.1 was hard-coded for MII and PC.4 was hard-coded for RMII. Also, the - definitions used inconsistent naming (TXEN vs. TX_EN). From Jakob Haufe - (2018-09-10). - * sched/wqueue: Notifier design cleanup. The original concept used - pre-allocated notification data structures. However, the notification data - must persist for an indeterminate amount of time. So the design was - modified to use dynamically allocated data structures. This commit - simplifies the design by removed some residual 'machinery' that is no longer - needed. From Gregory Nutt (2018-09-10). - * sched/sched/sched_waitpid.c: Remove a bad error check. From Gregory Nutt - (2018-09-10). - * mm/iob and sched/semaphore: Work around some issues with the IOB throttle - semaphore. It has some odd behaviors that can cause assertions in - sem_post(). Also, it seems to get outside of its range occasionally. Need - to REVISIT this. From Gregory Nutt (2018-09-10). - * sched/wqueue: Add an option to work queue notifier so that the - notification can occur on different work queues. From Gregory Nutt - (2018-09-11). - * This patch prevent heap corruption as in below case. - - TASK A TASK B - malloc() - mm_takesemaphore() - heap holder is set to TASK B - <--- preempt - ... - task_exit() - Set to current task to - TASK B - Try to release tcb, and - stack memory - free() - mm_takesemaphore() - - Successfully obtain - semaphore because current - task and heap holder is - same. - Free memory.... - Heap corrupt. - - This change forces all de-allocations via sched_kfree() and sched_ufree() - to be delayed. Eliminating the immediate de-allocation prevents the - above problem with the the re-entrant semaphore because the deallocation - always occurs on the worker thread, never on TASK B. - - There could be consequences in the timing of memory availability. We - will see. From EunBong Song (2018-09-11). - * mm/iob: IOB free notifier should accept the work queue ID as a - parameter. The notification may need to run on either the high- or low- - priority work queue. sched/work: Change the default priority of the - low-priority work queue to 100. From Gregory Nutt (2018-09-11). - * net/tcp and net/udp: In the POLLOUT poll logic, request an immediate Tx - poll from the network device bound to the socket. This obviously cannot - work if there is not single device bound to the network device. From - Gregory Nutt (2018-09-11). - * kinetis: i2c On failed reset re-init i2c and clocking. If a reset fails, - we still must reinitializes the i2c block so that subsequent transfers will - not cause a hard-fault due to the clock being off. If that transfer fails - it can try to reset again. From David Sidrane (2018-09-11). - * net/tcp/tcp_netpoll.c: Add logic to receive notifications when IOBs are - freed (Needs CONFIG_NET_TCP_WRITE_BUFFERS and CONFIG_IOB_NOTIFIER). At - present, does nothing because the logic in in psock_tcp_cansend() does not - check for the availability of IOBs. That will change. From Gregory Nutt - (2018-09-11). - * mm/iob: iob_navail() was returning the number of free IOB chain queue - entries, not the number of free IOBs. Completely misnamed. From Gregory - Nutt (2018-09-12). - * net/tcp/tcp_netpoll.c: Add logic to receive notifications when IOBs are - freed (Needs CONFIG_NET_TCP_WRITE_BUFFERS and CONFIG_IOB_NOTIFIER). At - present, does nothing because the logic in in psock_tcp_cansend() does not - check for the availability of IOBs. That will change. - - mm/iob: iob_navail() was returning the number of free IOB chain queue - entries, not the number of free IOBs. Completely misnamed. - - net/tcp/tcp_send_buffered.c: Extend psock_tcp_cansend() so that it also - requires that at least on IOB is also available. - - net/tcp/tcp_netpoll.c: tcp_iob_work() needs to free the allocated - argument when it is finished. - - sched/wqueue/kwork_notifier.c: Redesign some data structures. struct - works_s must appear at the beginning of the notifier entry structure. - That is because it contains the work queue indexes. This solves a - hard-fault issue. From Gregory Nutt (2018-09-12). - * net/udp/udp_netpoll.c: Port TCP poll changes to UDP. From Gregory Nutt - (2018-09-12). - * tools/Config.mk: Fix an error in RWILDCARD implementation From Anthony - Merlino (2018-09-12). - * mm/iob: Add a divider that can be used to reduce the rate of IOB - notifications. From Gregory Nutt (2018-09-13). - * tools/Directories.mk: Correct the path to the installed libcxx - directory. From Gregory Nutt (2018-09-13). - * fs/smartfs/smartfs_smart.c: Current sector should have a space for next - entry size. If not, we should move to next sector. From EunBong Song - (2018-09-14). - * task/task_restart.c: Restarted with sigprocmask set. Should have been - cleared. Noted by Jeongchan Kim From Gregory Nutt (2018-09-14). - * net/usrsock: Revert commit 'net/usrsock: Optimize option dependence'. - Re-allow combination of usrsock and NuttX TCP/IP stack. For example, in - case device has Ethernet and mobile connectivity and NuttX TCP/IP stack is - used when configured to use Ethernet connection and usrsock when - configured to use modem (modem TCP/IP stack through usrsock). From Jussi - Kivilinna (2018-09-14). - * libs/libc/wqueue/work_usrthread.c: Eliminate a race condition noted by - Xiang Xiao. Use sigprocmask() so that we do not lose a signal. From - Gregory Nutt (2018-09-14). - * fs/vfs/fs_open.c: Add nx_open() which is the same as open() except that - it does not create a cancellation point nor does it modify the errno - variable. - - many locations: Change occurrences of open() followed by file_detach() to - file_open(). Change most non-controversial calls to open() to nx_open(). - - fs/inode/fs_fileopen.c: Add file_open() implementation with some interim, - placeholder logic. From Gregory Nutt (2018-09-15). - * include/nuttx/fs/fs.h: Fix some backward parameters in a new macro - definition. From Gregory Nutt (2018-09-15). - * Replace calls to ioctl() in the OS to file_ioctl() From Gregory Nutt - (2018-09-15). - * configs/stm32l4r9ai-disco/src/stm32_adc.c: Replace calls to ioctl() in - the OS to file_ioctl() From Gregory Nutt (2018-09-15). - * Rename file_close_detached() to just file_close() for better consistency - in naming. From Gregory Nutt (2018-09-15). - * fs/inode/fs_fileclose.c: Move file_close() a separate file. It no - longer makes sense for it to cohabitate with file_detach(). From Gregory - Nutt (2018-09-15). - * configs/b-l475e-iot01a/include/b-l475e-iot01a_clock.h: Correct timer - source clock frequencies. From Freemans Goden (2018-09-16). - * tools/tesbuild.sh: No longer installs and builds the NxWidgets - libraries. They are now a port of apps/. From Gregory Nutt (2018-09-16). - * I2C support for STM32H7 - - - stm32h7/chip.h: Update peripherals - - stm32h7x3xx_rcc.h: Update definitions - - stm32h7x3xx_rcc.c: Remove some unused code and configure I2C clocks - - stm32h7: add lower half I2C driver (based on F7 I2C driver) - - configs/nucleo-h743zi: Add LSM303AGR and LSM6DSL configuration - - sensors/lsm303agr.c, sensors/lsm6dsl.c: add missing include, remove - whitespace From raiden00pl (2018-09-16). - * libs/libc/math: Add variable convergence in log() and logf() to avoid - hangs caused by failure to converge for very specific input values. - - libs/libc/math: Small change to log() and logf() that improves accuracy - and convergence time From Rajan Gill (2018-09-16). - * drivers/timers: RTC_PERIODIC is no longer EXPERIMENTAL, remove - unimplemented EXPERIMENTAL RTC configuration variables. From Juha - Niskanen (2018-09-17). - * C library: Add some new functions defined in POSIX.1-2017: stpncpy(), - strsignal(), psignal(), psiginfo(). From Gregory Nutt (2018-09-17). - * libs/libc/string/lib_stpncpy.c: Correct the return pointer value for the - case where the NUL terminator is transferred. From Gregory Nutt - (2018-09-18). - * drivers/usbdev: Fix buffer overrun check in rndis.c. The RNDIS driver has - been working since 13 Nov 2017. However, I finally found that it depends - on network and buffer configurations. If a receiving TCP packet is - divided into smaller ones based on USB max packet size, this condition - check works correctly. From Masayuki Ishikawa (2018-09-20). - * - mtd/progmem: change up_progmem_npages to up_progmem_neraseblocks - - page is a unit for read/write operation. - eraseblock is a unit for erase operation. - up_progmem_npages is a little bit confusing because it returns number of - erase blocks in flash memory. This patch changes up_progmem_npages to - up_progmem_neraseblocks. There is no logical change. - - - mtd/progmem: up_progmem_erasesize. - - Change argument name to be more readable. - - - mtd/progmem: up_progmem_eraseblock - - Change up_progmem_erasepage to up_progmem_eraseblock. - eraseblock is more readable name than erasepage. - - - mtd/progmem: change up_progmem_eraseblock's return value. - - up_progmem_eraseblock erase a block. so it's better to return the erase block - size than page size. - - - arm/cortex-r : fix wrong cp15_flash_dcache. - - change mcrne to mcr for unconditional dcache. From EunBong Song (2018-09-21). - * arch/arm/src/armv7-a: Replicate the same fix was previously committed for - the armv7-r. From Gregory Nutt (2018-09-20). - * arch/arm/src/lc823450: Fix up_allocate_heap() in - lc823450_allocateheap2.c. For lc823450, heap area in flat build mode must - start just after _eronly. Because bss/data area is allocated in lower - address than text area in SRAM. See ld.scripts for details. Also, this - change removes unused up_allocateheap.c From Masayuki Ishikawa - (2018-09-21). - * arch/arm/src/stm32f7: Remove adhoc PM interfaces and add CONFIG_PM serial - suspend. From Gregory Nutt (2018-09-21). - * arch/arm/src/kinetis: Remove all attempts to reprioritize interrupts. - From Gregory Nutt (2018-09-21). - * arch/arm/src: Correct all ARMv7-M architectures. Interrupts were not be - disabled correctly on power up. Writing zero to the NVIC SET-ENABLE - registers has no effect. In order to disable interrupts, it is necessary - to write all ones to the NVIC CLEAR-ENABLE register. Noted by David - Sidrane. From Gregory Nutt (2018-09-21). - * net/tcp/tcp_recvwindow.c: In order to receive data we must not only have - IOBs available, but we must also have at least one IOB chain qentry - available. Otherwise, we will advertise that we an buffer a lot of data - when, in fact, we cannot. This is an experimental fix to a performance - problem noted by Masayuki Ishikawa. From Gregory Nutt (2018-09-22). - * fs/driver: Add support for named MTD drivers in the pseudo file system. - This will, eventually, allow us to mount file systems that need MTD - drivers without having to fake an intervening block driver. - fs/driver and fs/mount: Add mount() support for file systems that require - MTD drivers (vs. block drivers). From Gregory Nutt (2018-09-22). - * include/sys/socket.h: Renumber the socket types. They must begin at 1, - not zero. Socket type zero has a special meaning for some interfaces. For - example, getaddrinfo() uses a socket type of zero to many any type of - socket. The is no standard name for the any-type-socket, but macOS uses - SOCK_UNSPEC. NuttX will do the same. Issue noted by Anthony Merlino. - From Gregory Nutt (2018-09-24). - * Brings in an initial port of version 0.3.7 of Peter Anderson's SPIFFS - flash file system into NuttX. From Gregory Nutt (2018-09-24). - * arch/arm/src/imxrt/imxrt_enet.c: The board would not come up if I ran - Nuttx from cold. I dumped the PHY registers to see what the differences - were and the PHY was coming up in NANDTree mode. This is a mode for - testing connectivity between the PHY and the MAC. Switching this mode off - in the PHY registers has fixed the problem. From Dave Marples (2018-09-25). - * net/tcp/tcp_wrbuffer.c: Fix buffer release handling on failed buffer - alloc. Attempt to release write buffer on failed TCP write I/O buffer - alloc and tryalloc failed to wrb->wb_iob assertion. From Harri Luhtala - (2018-09-25). - * drivers/net/enc28j60.c: Adjust debug trace levels. Correct typos in some - comments. From Harri Luhtala (2018-09-25). - * A few improvements to getaddrinfo: (1) Use the protocol and socktype - hints in returned address, (2) Ignore AI_PASSIVE argument if hostname is - not NULL From Anthony Merlino (2018-09-25). - * Fixes issue with libcxx build. This was changed multiple times, but - should be fixed now. From Anthony Merlino (2018-09-25). - * include/nuttx: Fix definitions used to access OS functions within the - libraries. In the FLAT build, we must always set the errno and/or create - cancellation points because the same library functions are used within the - OS as are used by applications. This could cause issues for the OS but - corrects some problems at the user interface. Noted by Federico - Braghiroli in Bitbucket issue 121. From Gregory Nutt (2018-09-26). - * arch/arm/src/imxrt: Add LPI2C driver. From Ivan Ucherdzhiev (2018-09-26). - * arch/arm/src/imxrt/imxrt_lpsrtc.c: SVNC LPCR register bits 0 & 1 are NOT - reserved and are, in fact, needed to enabled the SRTC. Now the SRTC is - working. From Ivan Ucherdzhiev (2018-09-26). - * arch/arm/src/imxrt/imxrt_enet.c: Fix a race condition in setting up the - Ethernet Tx transfer. From Dave Marples (2018-09-26). - * arch/arm/src/lc823450: MPU support for FLAT build From Masayuki Ishikawa - (2018-09-27). - * Corrections for the i.MXRT Ethernet: - - (1) Now the Ethernet is completely re-initialized when an error occurs by - means of taking the interface down and back up but the PHY is _not_ - renegotiated for that case because that is very time consuming and an - error in the Ethernet is no reflection on the state of the PHY anyway. - (2) Explicitly sets the expected PHY address to zero (this could be moved - into the config) rather than searching for it which takes ages, and - it's zero anyway for this board (that's the broadcast address, and - anything that cannot respond on that has multiple PHYs, so that would - be a new board). - (3) Allows for the renegotiation of the PHY to be optional when a reset is - needed. If a non-renegotiated reset doesn't result in good comms to - the PHY then it'll automatically be escalated to a renegotiated one. - (4) Only performs a reset for errors that need it (the CRITICAL_ERROR - define). The list of errors that need reset are somewhat arbitrarily - chosen based on my prejudices and might need to be revisited, but - certainly the jabber errors don't need reset, the partial packet is - thrown away by the layer above anyway. - (5) Re-loads the multicast table on reset. - (6) Adds a bit more logging into the imxrt Ethernet module. From Dave - Marples (2018-09-28). - * fs/spiffs: SPIFFS is basically functional although still immature. From - Gregory Nutt (2018-09-28). - * drivers/leds/max7219.c: Support all digits presented in the MAX7219 - datasheet. From Alan Carvalho de Assis (2018-09-29). - * fs/procfs/fs_procfsproc.c: Change output of the env file so that it looks - more like output from the 'env' command. Documentation/NuttShell.html: - Document the new NSH 'env' command. From Gregory Nutt (2018-09-30). - * sched/environ/env_unsetenv.c: Fix and error in unsetenv() when unsetting - the last of the environment variables. From Gregory Nutt (2018-09-30). - * Documentation/NuttShell.html: Update document to describe the 'export' - command, the CONFIG_NSH_VARS setting, and the effect of this setting on - the behavior of the 'set' and 'unset' commands. Add description of the - PATH environment variable. From Gregory Nutt (2018-10-01). - * EFM32, STM32 (FS/HS), STM32F7, and STM32L4 OTGFS/HS: Th epin_configure() - function used the same eptype as the TxFIFO number for all endpoints. - This should probably be the physical EP number, not the EP type. - Suggested by Key Two. From Gregory Nutt (2018-10-02). - * libs/libc/stdio/lib_sscanf.c: Fix conversion for format specifiers that - appear right after a floating point format specifier. When performing a - floating point conversion the parsing code could consume more than - required characters from the input buffer. This made impossible to convert - input of form "1.1K" using format "%f%c". Fix the issue by advancing the - input buffer with the actual characters converted as a float point - number. From Mihai Serban (2018-10-03). - * stm32h7/rcc: update rcc defs, add SPI clock configuration and some fixes - in rcc - stm32h7: initial defs for SPI - stm32h7: initial defs for MDMA, DMA, BDMA and DMAMUX - From raiden00pl (2018-10-04). - * stm32_tim.c: don't use hard-coded UIF interrupt in some functions From - raiden00pl (2018-10-04). - * configs: add support for nucleo-f302r8 board From raiden00pl (2018-10-05). - * libs/libc/stdio: Remove CONFIG_NOPRINTF_FIELDWIDTH. That option does, - indeed, make the printf family of functions much smaller. But it also - adds a lot of complexity and makes the functions non-standard. Removing - this might break some of the tinier platforms but it is the best thing to - do for long term maintenance for for OpenGroup.org compliance. - - libs/libc/stdio/lib_libvsprintf.c: Resolves the integer field width - problem if Issue 35 for the cases of integer, long and long long integer - types. The output now matches the output form glibc. From Gregory Nutt - (2018-10-05). - * configs/olimex-stm32-p407: Added a HID keyboard configuration. From - Gregory Nutt (2018-10-06). - * configs/olimex-lpc1766stk: Add support to initialize a USB HID keyboard. - Still don't have a working configuration. Seems to require a lot of - transfer descriptors. Also reorganized some logic. It has been a long - time since the Olimex LPC1766-STK has had any TLC. - - configs/olimex-lpc1766stk/hidkbd: Add a configuration for testing the HID - keyboard. From Gregory Nutt (2018-10-06). - * drivers/wireless/ieee802.11: Add capability for Broadcom chips to get - firmware and CLM data from a mounted file system vs. in-memory data - structures. From Ramtin Amin (2018-10-07). - * drivers/wireless/ieee802.11: Extend Add capability to get firmware from a - mounted file system to BCM43362. From Gregory Nutt (2018-10-07). - * arch/arm/src/stm32f7/stm32_serial.c: Force invalidation of data cache - after DMA re-enable when returning from low-power mode From Juha Niskanen - (2018-10-09). - * stm32f0, stm32f7, stm32h7, stm32l4 serial: Fix use of - CONFIG_SERIAL_IFLOWCONTROL where CONFIG_SERIAL_OFLOWCONTROL was intended. - From Juha Niskanen (2018-10-10). - * EFM32, Kinetis, BCM2708: Juha Niskanen's fix related to - CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in BCM2708, EFM32, - and Kinetis. From Gregory Nutt (2018-10-10). - * arch/mips/include/mips32/cp0.h: Fix some copy-paste errors that cause - malformed comments and syntax errors when certain CP0 CONFIG1 bits are - referenced. Note in Issue 123 by Anonymous. From Gregory Nutt - (2018-10-12). - * arch/arm/src/lpc43xx/lpc43_serial.c: Fix copy-paste error: - g_usart1port->g_uart1port. From Dave Marples (2018-10-12). - * arch/arm/src/imxrt/imxrt_lpi2c.c: Fixes 2 bugs in the for IMXRT1050: (1) - I2C time out and did not send STOP condition when sending single byte, (2) - I2C could not receive bytes after repeated start. From Ivan Ucherdzhiev - (2018-10-13). - * Improvements in STM32 PWM low level driver - - stm32_pwm: remove some impossible PWM configurations - stm32_pwm: support for complementary outputs - stm32_pwm: deadtime configuration - stm32_pwm: output polarity and IDLE state configuration - - nucleo-f302r8: pwm support - stm32f429i-disco: pwm support From Mateusz Szafoni (2018-10-14). - * stm32_pwm: break and lock configuration and some cosmetics From Mateusz - Szafoni (2018-10-15). - * arch/mips/src/pic32mz/pic32mz-serial.c: Fix a typo in assignment of TTYS0 - to UART6 From Ouss4 (2018-10-15). - * arch/mips/src/pic32mz/pic32mz-head.S: Initialize the global pointer in - all shadow sets. From Ouss4 (2018-10-16). - * arch/mips/src/mips32/Toolchain.defs: Add toolchain flags for the pinguino - toolchain under Linux. From Ouss4 (2018-10-16). - * configs/pcblogic-pic32mx: Remove support for the PCB Logic PIC32MX - board. I do not find any references to PCB Logic on the web and I do not - believe that this breakout board is available any longer. From Gregory - Nutt (2018-10-17). - * drivers/mtd: Add support to Macronix MX25LF25635F serial NOR flash From - David Sidrane (2018-10-17). - * drivers/mtd/s25fl1.c: During a MTDIOC_GEOMETRY ioctl call, the driver was - incorrectly reporting the blocksize to be the same as the erasesize. The - blocksize should be 256 (the page size). This patch fixes that, and now - the SmartFS configuration is working. From Ken Pettit (2018-10-18). - * configs/bambino-200e/include/board.h: Correct calculation of SDMMC clock - configuration. The LPC43 has no SDMMC source clock divider. Error noted - by Dave Marples. From Gregory Nutt (2018-10-18). - * stm32 enable separate DMA per SPI configuration From Daniel Agar - (2018-10-18). - * drivers/sensors/ina226.c: Add INA226 device driver. From Daniel P. - Carvalho (2018-10-19). - * configs/lpcxpresso-lpc54628/include/board.h: Update logic used to - calculate SDMMC input clock divider. From Gregory Nutt (2018-10-21). - * Fix the LPC4330 family SDMMC card access. Some of these fixes (e.g. DELAY - register) may also be applicable elsewhere. These are _NOT_ extensively - tested, but they are certainly better than the current state of the - driver. The fixes, specifically, are; - - - Clocks were wrongly configured - way too fast because there is no - primary divider on LPC4330 - - This is fixed by means of changing the definitions in the board.h file. - I've edited the one for the lpc4330-xplorer board because I'm actually - working with Versiboard and don't want to contribute that config just - yet while I've still got the drains up on it. - - - The LPC43_SDMMC_DELAY register was not being set - - I suspect, in the 'real world', it's possible to get away without - setting this, but I've added a register definition, default value and - register access macros into arch/arm/src/lpc43xx/chip/lpc43_scu.h and - then used them in arch/arm/src/lpc43xx/lpc43_sdmmc.c. - - - The LPC43_SDMMC_BLKSIZ and LPC43_SDMMC_BYTECNT registers had the wrong - values. - - The management have already implemented a rather nice block level - interface for the stm32 so I've just re-used that to write to these - registers as required. I'm slightly nervous that accessing the - configuration registers (SCR being the prime example) which has a much - smaller block size may not be being done in the right way but it does - seem to work correctly, so let's assume it's all OK until someone tells - me otherwise. - - These fixes have been tested with DMA-based read/write on a LPC4330. Speed - via nsh is pretty low but I'm assuming that's just a - buffering/implementation issue for now. From Dave Marples (2018-10-21). - * arch/arm/src/lpc54/lpc54_sdmmc: Port Dave Marple's LPC43 USB DCD fix to - the LPC54 with appropriate naming changes. From Gregory Nutt (2018-10-21). - * arch/arm/src/stm32f7/stm32_flash.c: Allow programming OTP blocks through - progmem interface From Jussi Kivilinna (2018-10-22). - * arch/arm/src/lpc54xx/lpc54_sdmmc.c: Tested Dave Marple's LPC43 fix with - the LPC54. The driver still does not work on the LPC54. This commit adds - support for and SDMMC errata and setting of the delay register which was - missing in the previous commit. It appears that now I can read the SD - card successfully, but I get CRC errors when writing to the card. From - Gregory Nutt (2018-10-22). - * arch/arm/src/lpc43xx/lpc43_sdmmc.c: This commit corrects a problem in - lpc43_dmasendsetup(). There was no linked DMA descriptor code on the send - side. The end result was stalls while sending multiple sectors. This - commit adds that in and the send code is working much better. From Dave - Marples (2018-10-23). - * arch/arm/src/lpc54xx/lpc54_sdmmc.c: This commit ports Dave Marple's DMA - fix for the LPC43 SD/MMC to the LPC54. From Gregory Nutt (2018-10-23). - * - imxrt: Fix typos bit# and names - - imxrt: wdog Registers are 16 Bits - - imxrt: wdog Update has to be within 255 clocks of unlock - - imxrt: clockconfig Fix comments - - imxrt1050-evk: board.h Fix comments - - imxrt: imxrt_ccm.h Define Mux Selects for board.h use - - imxrt: clockconfig Allow better control from board.h - - 1) Allows a board config clock setting to be defined - in terms of the /n values shown in Figure 18-2. - Clock Tree of the i.MX RT1050 Processor Reference - Manual, Rev. 1, 03/2018 - 2) Allows the clock multiplex selection to be made in - The board config. - - - imxrt1050-evk: Define board clocking based on divisor and muxes - From David Sidrane (2018-10-23). - * nuttx/drivers/usbdev/rndis.c: Account for CONFIG_NET_GUARDSIZE in - allocation of packet buffer - nuttx/drivers/usbdev/rndis.c: Make USB device parameters configurable - From Sakari Kapanen (2018-10-24). - * nuttx/net/tcp/tcp_input.c: Fix recovery when ackseq > unackseq. The - comment near this line says "reset the number of outstanding, - unacknowledged bytes". However, the code actually resets the whole TCP - connection. It was changed to the current form in commit f034d84ea1f with - no explanation of the intent. Recover the line to what it was before that - commit. From Sakari Kapanen (2018-10-24). - * libs/libc: Correct some errors in psignal() and stpncpy(). From Lokesh B - V (2018-10-24). - * configs/nucleo-l432kc/include/board.h: Fix SPI pin definitions. From - Daniel P. Carvalho (2018-10-24). - * With these changes the SDMMC card for LPC4330 is now working properly BUT - it needs more testing, especially with different cards etc. This code - should be applicable to all members of the lpc43xx family. - - In addition to the problems that were previously identified there were a - few other bits and pieces outstanding; - - - Timing was dependent on CPU speed rather than absolute time - - End of transfer handling was a bit mixed up - - It's possible for data to still be in the FIFO (i.e. not have reached - the card) when a next write is requested, so we need to wait for that to - complete - - Interrupt Status could be carried over from one transfer episode to the - next, corrupting progress - - Multi-descriptor DMA writing simply wasn't implemented, but there were no - indications ... it just failed silently From Dave Marples (2018-10-24). - * arch/arm/src/lpc54xx/lpc54_sdmmc.c: Ported the last of Dave Marples fixes - to the LPC54. Not yet verified. From Gregory Nutt (2018-10-24). - * drivers/wireless/ieee80211/bcmf_core.c: There were two functions that - have a address issue. In bcmf_read_sbreg and bcmf_write_sbreg, - SBSDIO_SB_OFT_ADDR_MASK should be used before map address space. Noted by - Shao Li in Bitbucket issue #126. From Gregory Nutt (2018-10-25). - * configs/nucleo-l432kc: Added support for AT45DB Serial Flash From Daniel - P. Carvalho (2018-10-25). - * drivers/wireless/ieee80211/bcmf_sdpcm.c: Remove incorrect OR condition. - Always true, would always cause allocation failure. Noted by Shao Li in - Issue 127. From Gregory Nutt (2018-10-26). - * arch/x86/src/qemu/qemu_head.S: Correct .bss, IDLE stack, heap - organization. From Gregory Nutt (2018-10-26). - * net/sixlowpan: Fixes bug in uncompress_addr handling of odd postfix. This - affected multicast compress/uncompress since it's the only logic that used - an odd postfix. The odd byte needs to be handled first, not last. From - Anthony Merlino (2018-10-27). - * Fixes logic in ipv6_input to handle more than ff02::/16 multicast - addresses. Don't forward mcast packets if scope is not appropriate From - Anthony Merlino (2018-10-27). - * Adds extern "C" guard in include/net/if.h From Anthony Merlino - (2018-10-27). - * Adds definitions for IPPROTO_IPV6 socket options to netinet/in.h Adds - missing fields to sockaddr_in6. Adds struct ipv6-mreq. These changes all - follow the opengroup standard for netinet/in.h From Anthony Merlino - (2018-10-27). - * include/sys/socket.h: With increased size of struct sockaddr_in6 of - commit 55f31f03f9cca55b8b94ebf31cef3f501d8d76cf, the size of struct - sockaddr_storage in include/sys/socket.h must also be increase so that it - can contain the new, larger sockaddr_in6. From Gregory Nutt (2018-10-27). - * libs/libc/misc/lib_crc8ccitt.c: Adds implementation of CRC8-CCITT. From - Alan Carvalho de Assis (2018-10-27). - * Add basic SPI support for H7 - - - stm32h7: basic SPI support (nodma, noirq) - - nucleo-h743zi: nrf24l01 support - - nrf24l01.c: fix compilation errors - - stm32h7x3xx_rcc.c: enable SYSCFG clock From Mateusz Szafoni (2018-10-28). - * arch/arm/stm32: add support for STM32F303xD/E; configs: add basic support - for nucleo-f303ze From Mateusz Szafoni (2018-10-28). - * include/netinet/in.h: Per OpenGroup.org, type of sin_port in struct - sockaddr_in must be in_port_t vs uint16_t. NOTE: in_port_t is typdef'ed - as uint16_t anyway. Plus additional cosmetic changes for things like long - lines. From Gregory Nutt (2018-10-28). - * include/netinet/in.h: Add IPv4 SOL_IP socket options for symmetry with - IPv6 definitions added in a previous commit. None of the socket options - have been implemented! From Gregory Nutt (2018-10-28). - * include/netinet/in.h: Add other definitions required by OpenGroup.org. - From Gregory Nutt (2018-10-28). - * drivers/sensors/mlx90614.c: Add support for the Infrared Thermometer - MLX90614 From Alan Carvalho de Assis (2018-10-28). - * configs/stm32f4discovery/src/stm32_mlx90614.c: Add MLX90614 support for - the STM32F4Discovery board From Alan Carvalho de Assis (2018-10-28). - * include/sys/sockio.h, net/netdev/netdev_ioctl.c: Fix a recently compile - error introduced with commit that added the semi-standard ip_msfilter - structure to netinet/in.h. However, there was a non-standard version of - that structure in sys/sockio.h. This commit removes the non-standard - version of struct ip_msfilter and adapts the IOCTL and device lookup logic - in net/netdev to work with the new, semi-standard version in - netinet/in.h. From Gregory Nutt (2018-10-29). - * This commit brings in support for the GAP8 architecture. The GAP8 is a - 1+8-core DSP-like RISC-V MCU. Also included is support for the Gapuino - GAP8 evaluation board. From hhuysqt (2018-10-30). - * Fixes Kconfig options to include all STM32F20XX processors, not just - STM32F207 - - - arch/arm/src/stm32: Fixes Kconfig options to include all STM32F20XX - processors, not just STM32F207 - - arch/arm/src/stm32: Removes redundant STM32_STM32F429 depends from - Kconfig. STM32F4XXX already does this - - From Anthony Merlino (2018-10-31). - * include/nuttx/net/mld.h: Add MLD header file based on RFC2710 and - RFC3810. From Gregory Nutt (2018-10-31). - * arch/arm/src/imxrt: Add full support for the LPSPI in poll mode; includes - a minor fix for LPI2C. From Gregory Nutt (2018-10-31). - * net/mld: Add basic build structure for Multicast Listener Discovery - (MLD). No yet functional. From Gregory Nutt (2018-10-31). - * Add new configuration CONFIG_NET_MCASTGROUP. This option is selected - automatically if either CONFIG_NET_IGMP or CONFIG_NET_MLD are selected. - Most conditional logic based on CONFIG_NET_IGMP replaced with conditioning - on CONFIG_NET_MCASTGROUP. From Gregory Nutt (2018-10-31). - * net/inet: Add framework to support IPv4 and IPv6 protocol socket options - (i.e., SOL_IP and SOL_IP6). Handling of these socket options is a - necessary step on the way to future ICMPv6 MLD support. From Gregory Nutt - (2018-10-31). - * net/inet/ipv4_setsockopt.c: Add implementation for all IPv4 socket - options that have implemented IOCTL command counterparts. From Gregory - Nutt (2018-10-31). - * configs/imxrt1050-evk/src: Previous committed implemented atypical - SPI-based MMC/SD card support conditioned on CONFIG_MMCSD. This is, of - course, incorrect and interferes with the implementation of correct MMC/SD - card support using the correct SDIO-based peripheral. This commit renames - that atypical support to *mmcsd_spi* and conditions using that atypical - support on CONFIG_MMCSD_SPI with should then not interfere with the - correct MMC/SD support that can be conditioned on CONFIG_MMCSD_SDIO. From - Gregory Nutt (2018-10-31). - * arch/arm/src/imxrt/imxrt_usdhc.c: Initial commit of the i.MXRT SDHC - driver. This driver is partially functional, working in PIO mode. DMA - support and additional testing are needed. From Dave Marples (2018-10-31). - * This change is needed specifically for the case where a boot loader sets - the SPE bit before starting NuttX. In that case, the test in the SPI - driver is bogus. This change fixes that by assuring that NuttX has booted - and initialized at least once (whether or not SPE is set) before the - driver starts refusing to initialize. - - arch/arm/stm32*: Don't rely on SPI_CR1_SPE to determine if peripheral has - been initialized yet. From Anthony Merlino (2018-11-01). - * Xbee getset txpwr - - - drivers/wireless/ieee802154/xbee: Minor improvements to debug facilities. - - drivers/wireless/ieee802154/xbee: Add support for setting/getting tx - power. - - From Anthony Merlino (2018-11-01). - * net/mld: Initialize implementation of MLD. From Gregory Nutt (2018-11-01). - * include/nuttx/net/ipv6ext.h: Create header file with all of the - definitions of IPv6 extension headers that I could find. - net/mld/mld_send.c: Correct the size and format of the Hop-to-hop, Router - alert extension header. From Gregory Nutt (2018-11-01). - * drivers/sensors/mlx90614.c: Fix MLX90614 to re-flash new device address - From Alan Carvalho de Assis (2018-11-02). - * net/inet/ipv6_setsockopt.c: Implement the IPV6_JOIN_GROUP and - IPV6_LEAVE_GROUP socket options. - - net/devif/ipv6_input.c and net/icmpv6/icmpv6_input.c: Add logic to skip - over the variable number of IPv6 extension headers that may be present - between the IPv6 header and the transport layer header. The extension - headers are simply ignored. This is necessary because with MLD, certain - incoming messages may have, at a minimum, a Router Alert Hop-by-hop - extension header. - - net/devif, net/tcp, and net/udp: Extend so that all support Transport - protocols supported by IPv6 can handle the presence of IPv6 header - extension options. From Gregory Nutt (2018-11-02). - * net/mld: Updates from comparison with roughly leveraged code and the MDL - RFCs 2710 and 3810. - - net/mld: Defer all timeout-related operations to the work queue vs. - handling within the timer interrupt. Need to notify the device driver for - an immediate poll when there are MLD packets waiting to be sent. From - Gregory Nutt (2018-11-03). - * net/igmp: Backport some MLD design improvements/fixes. From Gregory Nutt - (2018-11-04). - * net/mld: Implement MLDv1 compatibility mode. This completes coding of - MLD. MLD is, however, still completely untested. From Gregory Nutt - (2018-11-04). - * net/mld: Fix some compile errors fill debug info is enabled. Fix some - errors in formatting the Listener report. Still has a checksum error. - From Gregory Nutt (2018-11-04). - * tools/configure.c: Add missing '\n' in printf statement - - tools/configure.c: Add missed -g option to getopt() string - - tools/configure.c and tools/configure.sh: Fix Windows native pre-build - kconfig-conf incompatibility. Looks like pre-built Windows native - kconfig-conf interprets "..\apps" as "..apps" (possibly '\a' as - escape-sequence) so expand winnative path to double-backslashed variant - "..\\apps". - - tools/mkdeps.c: Fix '\0' missing in MinGW. Implicit bug. There are 2 - cases. - - 1. Under Linux. The code works as planned: '\n' is always replaced with - '\0' due to sprintf fills n-1 bytes and reaches buffer length limit. - - 2. Under Windows/MinGW. There is memory corruption. Seems like it`s a bug - inside MinGW/snprintf. Snprintf fills consecutively "oldbase",' - ',"str",'\n', but does not inserts trailing '\0' instead of '\n'. And - when next append() occurs, strlen() returns garbage-appended "oldbase". - - So the fix just removes '\n' and reserves space for '\0'. - - tools/link.bat: Fix .fakelink creation - - configs/Makefile and tools/Config.mk: Move single file copy to the new - function COPYFILE. This fixes the Windows native build case when there is - no cp or cp does not recognize Windows paths. From Anatol Ivanov - (2018-11-05). - * configs/nucleo-l432kc: Add support for the INA226. From Daniel P. - Carvalho (2018-11-05). - * tools/Config.mk and tools/Makefile.win: Force use 'cmd' for shell with - windows native build From Anatol Ivanov (2018-11-06). - * tools/Makefile.win/unix: Staging directory (and its libraries) should be - removed on 'make clean' (issue noted by Dave Marples). From Gregory Nutt - (2018-11-06). - * net/procfs: Add support to provide MLD stats at /proc/net/mld. net/mld: - Fix a couple more bugs found in further MLD testing. From Gregory Nutt - (2018-11-06). - * Adding imxrt 106x - - - imxrt: Fix comment in imxrt105x_memorymap - - imxrt: Add imxrt1060 memory map - - imxrt: Add imcrt106x to imxrt_memorymap - - imxrt: Add i.MX RT 106x to Kconfig - - imxrt: Moved IMXRT_GPIO_NPORTS to chip.h & fixed comments - - imxrt: 105x IRQ fix comment - - imxrt: gpioirq GPIO4,5 using wrong boundary - - imxrt: Add RT106x irq headers & Kconfig - - imxrt: Add rt106x GPIO chip headers - - imxrt: Extend Number of GPIO ports - - imxrt: Add 106x DMAMUX header - - imxrt: iomuxc add 106x - - imxrt: 106x iomuxc extend Indexes - - imxrt: pinmux Add 106x - - imxrt: clockconfig use imxrt_memorymap.h - - imxrt: allocateheap use OCRAM2 as BASE when available - - From David Sidrane (2018-11-06). - * net/mld: Implement 'Other Querier Present Timer'. This timer is used to - revert to Querier mode if there is no other querier on the network. Also, - fix some naming: The Done message is not just Version 1 but is used with - Version 2 as well. From Gregory Nutt (2018-11-07). - * Reported by Anonymous in Bitbucket Issue #129: When MIPS port is built - for microMIPS and then loaded as an application, the __start entry point - is entered in microMIPS mode, but the CPU core initialization code there - misses to set the config3ISAOnExc bit to 1. Subsequently, exceptions are - entered in MIPS32 mode, but the code base was built for microMIPS. From - Gregory Nutt (2018-11-07). - * sched/group/group_foreachchild.c: group_foreachchild iterate by reverse - order since the callback(e.g. group_killchildren) may remove the tcb from - list - - sched Kconfig and sched/task/exit.c: Add SCHED_EXIT_KILL_CHILDREN option - to kill all child threads when the main thread of a task exits. From - zhangyuan7 (2018-11-08). - * binfmt/ and libs/libc: Make exepath_*() more common: - - 1. Move exepath_*() related code to libc/misc - 2. Rename exepath_ to envpath_ - 3. Rename BINFMT_EXEPATH to LIB_ENVPATH - - libs/libc/modlib: Add pre module library symbol table support. - From nchao (2018-11-08). - * tools/csvparser.h: Extend MAX_PARMSIZE to 256. Fixes this issue: 70: - Parameter too long: ... From Xiang Xiao (2018-11-08). - * sched/signal/sig_suspend.c: sigsuspend() shouldn't eat the pending signal - but dispatch all instead From Xiang Xiao (2018-11-08). - * sched/signal and syscall/: Add support for pselect() and ppoll() - functions From dongjianli (2018-11-08). - * fs/aio, libs/libc/aio, sched/mqueue, sched/timer, and sched/signal: - Remove the code duplication for SIGEV_THREAD. From Xiang Xiao (2018-11-08). - * drivers/ioexpander: Support multiple registrations of GPIO signal - events. From Xiang Xiao (2018-11-08). - * libs/libc/netdb/lib_dnsbind.c: Make DNS receive timeout configurable. - From ligd (2018-11-08). - * libs/libc/string/lib_memrchr.c: Add memrchr() function From Xiang Xiao - (2018-11-08). - * libs/libc/stdio/lib_libvsprintf.c: Eliminate recursive in conversion - functions of lib_vsprintf(). From Xiang Xiao (2018-11-08). - * fs/partition: Try MTDIOC_GEOMETRY IOCTL before bops's geometry - fs/driver/fs_blockpartition.c: Support MTD IOCTL From Xiang Xiao - (2018-11-08). - * drivers/mtd and other MTD drivers: Remove mtd_procfsoperations since we - can now get the same information from inode From Xiang Xiao (2018-11-08). - * fs/mount/fs_mount.c mount: Add support for mounting a file system with - either a block or an MTD driver. From Xiang Xiao (2018-11-08). - * fd/dirent, fs/driver/, and fs/vfs: Make MTD device accessible via a - character driver proxy like block devices From Xiang Xiao (2018-11-08). - * fs/driver: Add register_mtdpartition() for MTD partition From Xiang Xiao - (2018-11-08). - * fs/procfs: Add /proc/version support to get version info From iuhaitao - (2018-11-08). - * drivers/serial/uart_16550.c: Fox UART flow control issue. UART_MCR_RTS - need be high even UART_MCR_AFCE is enabled From zhangyuan7 (2018-11-08). - * drivers/serial/uart_16550.c: Remove disabling of interrupts in - up_earlyserialinit. up_irqinitialize() already disable all interrupts - From ligd (2018-11-08). - * drivers/timers/arch_alarm.c: Fix alarm ISR error when no - CONFIG_SCHED_TICKLESS - drivers/timers/arch_alarm.c: Use uint64_t to avoid alarm 32-bit overflow - From ligd (2018-11-08). - * drivers/timers: Simplify the error handling in arch rtc/alarm/timer - wrapper From Xiang Xiao (2018-11-08). - * imxrt:Clock config fixes and board.h sets sources and divisors - - - imxrt:clockconfig bug fix & Board config set clocks - - Fixed logic that was not clearing bits as ~ was - missing in &= mask operations. - - Use values from the board.h file so set the Mux that - selects the clock sources. - - Use board defined PODF values to select clock. - - Only configure USDHC2 clocks when board defines clocks. - - - imxrt1050-evk: Board setting used to set LSPI and USDHC Clocks - From David Sidrane (2018-11-09). - * NuttX: Add DFU Runtime driver for activating boot-loader through USB - command. From Petteri Aimonen (2018-10-31). - * NuttX: USB Composite and DFU drivers: Add support for Microsoft OS - descriptors. - - These Microsoft-only descriptors help in loading the correct driver on - Windows. They are especially helpful to give libusb access to a custom - device without having to manually configure/install WinUSB driver. - - With this change DFU interface works automatically on Windows 10 with - dfu-util 0.9 and libusb 1.0.22. On Windows 7 it still appears to need - driver installation. From Petteri Aimonen (2018-11-02). - * NuttX: STM32F407VG has only one DAC. NDAC=2 causes compilation error when - trying to use e.g. STM32_DAC1_CR macro. From Petteri Aimonen (2018-11-09). - * RNDIS composite support - - - NuttX usb/composite.h: Forward-declare composite_devdesc_s. - - This avoids "error: conflicting types for 'composite_initialize'" - on some versions of GCC. Because of the cross-inclusion between - usbdev.h and composite.h, the full declaration is not always - available. - - - NuttX: USB Composite driver: Fix strid comparison - - The last string ID used by composite driver is 4, and - the number of IDs used is 5 (0..4). The comparison - strid <= COMPOSITE_NSTRIDS caused composite driver to - reply with -EINVAL for id 5, even though it should be - available for sub-devices to use. - - - NuttX: RNDIS USB driver: Add support for composite configuration. - From Petteri Aimonen (2018-11-09). - * FAT improvements - - - NuttX: Add CONFIG_FAT_LFN_ALIAS_HASH to speed up creating long filenames. - - Long filenames on FAT file systems have associated 8.3 character alias - short filenames. The traditional form of these is FILENA~1.EXT with - a running count of the number of similar names. However creating this - unique count can take several seconds if there are many similarly named - files in the directory. Enabling FAT_LFN_ALIAS_HASH uses an alternative - format of FI0123~1.TXT where the four digits are a hash of the original - filename. This method is similar to what is used by Windows 2000 and - later. - - - NuttX: Add CONFIG_FAT_LFN_ALIAS_TRAILCHARS alternative format for 8.3 - filenames. - - Traditional format for long filename 8.3 aliases takes first 6 - characters of long filename. If this option is set to N > 0, - NuttX will instead take first 6-N and last N characters to form - the short name. This is useful for filenames like "datafile12.txt" - where the first characters would always remain the same. - - - NuttX: FAT32: Fix file date corruption in fat_truncate(). - - - NuttX: if SD card wait seems to be a long one, give time for other - threads to run. From Petteri Aimonen (2018-11-09). - * max11802: Fix compilation errors and allow setting PULL and SAMPLE - registers. From Petteri Aimonen (2018-11-09). - * imxrt Add imxrt1060-evk - - - imxrt1050-evk: Fix typo - - imxrt1050-evk: Use naming for flash types that match documentation - - imxrt1050-evk: Fix typo - - imxrt:Add imxrt1060-evk board support - - From David Sidrane (2018-11-09). - * drivers/rwbuffer.c: Fix a lock issue From Xiang Xiao (2018-11-09). - * rivers/rwbuffer.c: Don't queue work to flush write buffer if - CONFIG_DRVR_WRDELAY == 0 From Xiang Xiao (2018-11-09). - * drivers/rwbuffer.c: Improve the rwb_read/write overlap performance From - zhuyanlin (2018-11-09). - * drivers/mtd/ftl.c: Support BIOC_FLUSH ioctl From Xiang Xiao (2018-11-09). - * drivers/mtd/ftl.c: Make READAHEAD and WRITEBUFFER work independently of - each other. There have cases we use writebuffer but not readbuffer, so - the write buffer must be flushed before read. Let rwb driver do it. From - zhuyanlin (2018-11-09). - * drivers/mtd/ftl.c: Allocate eblock only when it's really needed From - Xiang Xiao (2018-11-09). - * drivers/mtd/ftl.c: Add support support unlink operation to avoid the - memory leak From Xiang Xiao (2018-11-09). - * drivers/mtd/mtd_partition.c: Remove the hard code partition name length - From Xiang Xiao (2018-11-09). - * drivers/syslog/vsyslog.c: nx_syslog's return value should include the - timestamp length From Xiang Xiao (2018-11-09). - * drivers/syslog/syslog_flush.c: Uncomment the g_syslog_channel->sc_flush - call From Xiang Xiao (2018-11-09). - * drivers/syslog/syslog_putc.c: Call sc_force in idle task even interrupt - buffer enabled. The following cases may hang randomly in the bring up - phase: (1) boot up process and (2) suspend/resume process. Either case - runs in the idle task context, so it's difficult to debug the hang issue - if these output go through the interrupt buffer. From Xiang Xiao - (2018-11-09). - * drivers/syslog: Ensure interrupt log doesn't interlace in normal log. - Don't call syslog_putc in syslog_default_write because syslog_putc will - try to empty the interrupt buffer every time. From Xiang Xiao (2018-11-09). - * drivers/syslog: syslog_initialize initialize dev/syslog too and call - syslog to add the prefix and timestamp From Xiang Xiao (2018-11-09). - * include/netdb.h Add NO_ADDRESS definition From zhangyuan7 (2018-11-09). - * Fix typographical error in endian.h and resource.h From anchao - (2018-11-09). - * Fixes warnings from header files: - - - include/nuttx/clock.h: Fix uptime wrong if DEBUG_FEATURES and - SCHED_TICKLESS enabled - - include/nuttx/arch.h: fix CONFIG_ARCH_INTERRUPTSTACK not defined warning - - include/nuttx/audio/audio_i2s.h: Fix warning: struct i2s_dev_s declared - inside parameter list - - From Xiang Xiao (2018-11-09). - * arch/sim/src/up_hostfs.c: Support S_IFSOCK, DT_LNK, O_DIRECT and O_SYNC - From Xiang Xiao (2018-11-09). - * sched/wdog: improve accuracy of wd_gettime() in tickless mode From ligd - (2018-11-09). - * sched/wdog: Improve accuracy of wd_gettime() in tickless mode From ligd - (2018-11-09). - * include/nuttx/fs/fs.h: Register_mtddriver should depend on CONFIG_MTD not - CONFIG_MTD_PARTITION From Xiang Xiao (2018-11-09). - * drivers/net/lan91c111.c: Reuse lan91c111_reply for ARP case From Xiang - Xiao (2018-11-09). - * drivers/net/slip.c: Add IPv6 support and fix minor issue From Xiang Xiao - (2018-11-09). - * drivers/net/tun.c: Call ipv[4|6]_input dynamically by checking packet - header and remove the code duplication From Xiang Xiao (2018-11-09). - * arch/arm/src/stm32l4: Add initial support for STM32L412 and STM32L422 - chips From Juha Niskanen (2018-11-09). - * Remove deletion of Eclipse project files from make distclean target per - request of David Sidrane. From Gregory Nutt (2018-11-09). - * net/udp/udp_finddev.c: Fallback to netdev_default device if the device is - not found, rather than arbitrary using the device at the head of the list - of devices. From Xiang Xiao (2018-11-09). - * Fix compiler error and warning when CONFIG_NET_SENDFILE=y From Xiang Xiao - (2018-11-09). - * net/tcp/tcp_backlog.c: Add SOMAXCONN definition and implementation per - OpenGroup.org. From zhangyuan7 (2018-11-09). - * net/arp and net/icmpv6: don't call d_txavail directly since it may point - to NULL From Xiang Xiao (2018-11-09). - * net/: Add NET_ICMP[v6]_NO_STACK for usrsock case From Xiang Xiao - (2018-11-09). - * net/usrsock/usrsock_accept.c: Mark newconn ready before issue accept - request to avoid the event get discarded due to the socket in the invalid - state From Xiang Xiao (2018-11-09). - * libs/libc/net: Add basic implementation for recvmsg() and sendmsg() per - OpenGroup.org specification. From ligd (2018-11-09). - * include/netinet/in.h: Add Linux IP_PKTINFO and IPV6_PKTINFO definitions, - but not yet realized. From Gregory Nutt (2018-11-09). - * include/net and include/sys: Align the constant values with values in the - Linux kernel which makes targeting the usrsock server to Linux kernel - easier. From Xiang Xiao (2018-11-09). - * include/arpa/inet.h: Remove the dup INET[6]_ADDRSTRLEN from arpa.inet.h - already define in netinet/in.h From Xiang Xiao (2018-11-09). - * net/arp: Redesign ARP table aging to simplify the net initialization From - Xiang Xiao (2018-11-09). - * net/arp/arp_send.c: Check ifname match before sending packet. From Xiang - Xiao (2018-11-09). - * Remove duplicate definition in nuttx/net/arp.h and - include/nuttx/net/ioctl.h From Xiang Xiao (2018-11-09). - * net/: Remove the unnecessary arp.h inclusion From Xiang Xiao (2018-11-09). - * net/neighbor: Simplify the neighbor table aging process From Xiang Xiao - (2018-11-09). - * net/neighbor/neighbor_dumpentry.c: Simplify neighbor_dumpentry() - implementation From Xiang Xiao (2018-11-09). - * net/neighbor: neighbor_lookup() checks if the target IP belongs to one of - the local network devices. From Xiang Xiao (2018-11-09). - * net/neighbor: Support neighbor_out() for multiple link layer at the same - time From Xiang Xiao (2018-11-09). - * net/: Fix some compile errors introduce with recent networking patches. - Found in build testing. From Gregory Nutt (2018-11-09). - * net/icmpv6/icmpv6_neighbor.c: icmpv6_neighbor() shouldn't use the out of - scope variable(dripaddr) From Xiang Xiao (2018-11-09). - * net/icmpv6/icmpv6_conn.c: icmpv6_free() remove reference count operation - since it's already done in icmpv6_close(). From Xiang Xiao (2018-11-09). - * net/icmpv6/icmpv6_linkipaddr.c: Encapsulate the link scope address - generation into icmpv6_linkipaddr() From Xiang Xiao (2018-11-09). - * net/icmpv6: Remove the coupling between ICMPv6 and Ethernet by moving all - Ethernet stuff to neighbor_ethernet_out.c and make the mac address as - first field. From Xiang Xiao (2018-11-09). - * net/arp and icmpv6: Double the delay time on each iteration for ARP/ICMP - to fight work jitter better. From Xiang Xiao (2018-11-09). - * net/icmpv6, neighbor, and netdev: Rename netdev_dev_lladdrsize() to - netdev_lladdrsize() and move the prototype to include/nuttx/nex/netdev.h, - giving is global scope within the OS. Reviewer: This degrades the - integrity of the modular architecture by introducing a new coupling via C - function call. Not a good thing at all. From Xiang Xiao (2018-11-09). - * net/devif/ipv6_input.c: Fix a logic error when the received IPv6 srcaddr - is a multicast address. Exiting logic only supported UDP multicast. But - MLD and certain other ICMPv6 packets also require acceptance of multicast - packets. From Gregory Nutt (2018-11-09). - * drivers/timers/arch_rtc.c: up_rtc_set_lowerhalf call clock_synchronize() - for external RTC. From Xiang Xiao (2018-11-09). - * net/icmpv6/icmpv6_autoconfig.c and icmpv6_rnotify.c: Don't take the - network device down when reconfiguring only the IP address from within - ICMPv6 logic. Recommended by Xiang Xiao in order to avoid the long - delays of bringing some networks back up. - - Normally it is required that the network be in the "down" state when - re-configuring the network interface. This is thought not to be a - necessary here because. - - 1. The ICMPv6 logic here runs with the network locked so there can be no - outgoing packets with bad source IP addresses from any asynchronous - network activity using the device being reconfigured. - 2. Incoming packets depend only upon the MAC filtering. Network drivers - do not use the IP address; they filter incoming packets using only the - MAC address which is not being changed here. - - From Gregory Nutt (2018-11-10). - * drivers/power/pm_initialize.c: Fix pm_domain_s.stime uninitialize caused - time error. Bug detail: - - 1. open CONFIG_DEBUG_FEATURES CONFIG_SYSTEM_TIME64 CONFIG_CLOCK_MONOTONIC - ==> INITIAL_SYSTEM_TIMER_TICKS very big data, not zero - 2. close CONFIG_SCHED_TICKLESS - ==> use g_system_timer as system clock - 3. pm_domain_s.stime init to zero - 4. clock_systimer() - pm_domain_s.stime get big data, error - - From ligd (2018-11-10). - * drivers/power/pm: Use the start time of state btime to calculate thrcnt; - remove the loop whose count may be very big after the long idle From - ligd (2018-11-10). - * net/udp/Kconfig: Auto-select CONFIG_WQUEUE_NOTIFIER when - CONFIG_UDP_READAHEAD_NOTIFIER is selected. From Gregory Nutt (2018-11-10). - * /net/devif/ipv6_input.c: Correct handling of IPv6 extension headers. - The main confusion was that the payload length in the IPv6 header does - not include its extension headers. - net/icmpv6/icmpv6_input.c: Correct calculation of the ICMPv6 header - address - net/mld/mld_query.c: Correct back test for group found. - net/mld/mld_report.c: Fix host vs. network order problem. - net/mld/mld_send.c: Correct the address used in sending the General - Query. It should be the unspecified address in that case. - net/MLD: The MAS query should be sent on the group multicast address. - net/mld: There is an issue with the general query timer design. There - should be a single instance, not a per-group instance of the timer (ditto - for the v1 compatibility timer). Fall back for now and use the per-group - MAX query. - From Gregory Nutt (2018-11-10). - * arch/sim/src/up_netdriver.c: Fix error 'invalid operands to binary &' - From Xiang Xiao (2018-11-10). - * arch/arm/src/common/up_exit.c: Fix typo. Caused compiler error when - system debug enabled. From Xiang Xiao (2018-11-10). - * arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace - reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'. From Gregory - Nutt (2018-11-10). - * net/mld: Resolve and issue with sending reports from multiple groups in - the same polling cycle. From Gregory Nutt (2018-11-11). - * The MLD implementation did not follow the RFC correctly when it is the - Querier. The Querier should use a general query and get query messages - from all members of all groups. This would be driven by a single timer - per sub-net since all groups are queried at once. Instead, the design - used a Multicast Address Specific Query with one timer per group and - ignores groups that we are not members of. - - Similarly, the MLDv1 compatibility timer should be a single, separate - timer, not a per-group timer. - - net/mld: Group may be NULL when sending a general query - - From Gregory Nutt (2018-11-11). - * net/mld: Fix logic error when testing for the case where all members - have left the group. From Gregory Nutt (2018-11-11). - * arch/arm/src: Remove general register dump from fault handler since the - same info already dump in PANIC From Xiang Xiao (2018-11-11). - * arch/ assertions files: up_registerdump capture the general register if - not yet saved and up_saveusercontext is implemented, the register dump is - very useful to find the cause of failure. From Xiang Xiao (2018-11-11). - * arch/ all assertion functions: up_stackdump() dump the full stack if - stack overflow the stack info is very useful to find the backtrace From - Xiang Xiao (2018-11-11). - * arch/ all assertion functions: up_assert() move the register dump to - first make the more important info first From Xiang Xiao (2018-11-11). - * net/procfs/netdev_statistics.c: Eliminate warning: array subscript is - above array bounds. From Gregory Nutt (2018-11-11). - * Move NETDEV_LATEINIT from drivers/net/Kconfig to net/Kconfig so that we - can select NETDEV_LATEINIT without enabling NETDEVICES since the net - driver in arch folder may need to initialize later too. From Xiang Xiao - (2018-11-12). - * sched/clock/clock_getres.c: Support CLOCK_MONOTONIC From Xiang Xiao - (2018-11-12). - * sched/clock/: Remove g_monotonic_basetime and g_clock_monotonic_time - since we don't need ensure monotonic time start from zero as state here: - http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html - From Xiang Xiao (2018-11-12). - * sched/clock/: Don't call up_timer_gettime in clock_gettime() and - clock_systimer() to ensure the return value from them consistent with - clock_systimespec From Xiang Xiao (2018-11-12). - * sched/clock/clock_initialize.c: clock_inittime() needs to be done with - CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() - for external RTC case since the RTC isn't ready yet. From Xiang Xiao - (2018-11-12). - * sched/clock/ timekeeping: Use clock_basetime() to initialize - g_clock_wall_time to get the best initial RTC value and initialize - g_clock_last_counter too since the hardware may not start counting from - zero. From Xiang Xiao (2018-11-12). - * libc libnx updates - - - NuttX: make strerror() return 'Success' for 0 - - - NuttX: fix strrchr() so that it considers null terminator as part of - string - - From strrchr(3) man page: "The terminating null byte is considered - part of the string, so that if c is specified as '\0', these functions - return a pointer to the terminator." - - - NuttX: mm_free(): Add DEBUGASSERT()'s to catch memory corruption early. - - It's easier to find the source when asserts fail already when freeing - an overflowed buffer, than if the corruption is only detected on next - malloc(). - - - MM_FILL_ALLOCATIONS: Add debug option to fill all mallocs() - - This is helpful for detecting uninitialized variables, - especially in C++ code. I seem to be forgetting to initialize - member variables and then they just get random values.. - - - NuttX: nxtk_bitmapwindow: Fix warning message when bitmap is fully - off-screen. - - - nxfonts_getfont: Avoid unnecessary warnings for other whitespace chars - also. - - - NuttX: Fix kerning of 'I' in Sans17x22 font - - The I character was running together with some other - characters, e.g. in sequence "IMI". - - - NXMU: Re-validate window pointer for mouse events. - - NXMU caches the previous window pointer so that further mouse - events can be sent to the same window. However, if the window - is destroyed while mouse button is held down, the pointer may - become invalid and cause a crash. This patch revalidates the - pointer before using it. - - From Petteri Aimonen (2018-11-12). - * stm32/stm32_adc: major refactor - - - stm32/stm32_adc: use STM32 ADC IP core version and ADC available - functions instead of chip family names in conditional compilation - - - stm32/chip: replace family specific ADC headers with STM32 ADC IP core - version headers - - - stm32/stm32_adc: configurable sample time supported for all chips, not - only L1 - - - stm32/stm32_adc: enable/disable interrupts supported for all chips, not - only L1 - - - stm32/stm32_adc: resolution configuration - - - stm32/stm32f33xxx_adc: remove wrong assertion - - - configs/nucleo-f303ze: support for ADC and ADC example - - - configs/stm32f429i-disco: support for ADC and ADC example - - From Mateusz Szafoni (2018-11-12). - * arch/arm/src/imxrt: This commit completes the interrupt driven USDHC1 - functionality for the IMXRT EVKB. There is more work to be done to - complete DMA mode and further changes will follow. From Dave Marples - (2018-11-12). - * arch/arm/src/imxrt/imxrt_usdhc.c: Improve SD card handling in the DMA - case. For now I think we can consider this complete for both Interrupt - 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-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/imxrt: 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 - Issue 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 - high priority DMA interrupts - - 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 (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 - parameters 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 some 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 is 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 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 negotiation 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 prototype 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 - command 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). - * arch/arm/include/kinetis/kinetis_sim.h: Remove extra characters following - #undef. From Daniel Agar (2018-01-19). - -7.29 2019-03-25 Gregory Nutt - - * arch/arm/src/stm32/chip: Don't try including stm32l_gpio.h from within - chip/*.h header files. Not only is bad style for a layered inclusion - system, but it doesn't always work. From Gregory Nutt (2019-01-19). - * Initial support for sx127x radio From Mateusz Szafoni (2019-01-20). - * arch/arm/src/samd2l2: Add RS485 support to SAMD2L2 serial From Alan - Carvalho de Assis (2019-01-20). - * include/nuttx/lcd/edid.h: Add extended EDID block IDs From Gregory - Nutt (2019-01-20). - * Completes the CC13x2 AUX SYSIF header file. From Gregory Nutt - (2019-01-20). - * arch/arm/src/stm32f7/stm32_lse.c: Add configuration of LSE oscillator - drive capability From Jussi Kivilinna (2019-01-22). - * tools/convert-comments.c: Fix an error in handling of a blank C++ - comment before a comment block. For example, this testfile: - - 1 - 2 // - 3 // Multi-line comment - 4 // The second line - 5 - - Was generating this output: - - 1 - 2 - 3 * Multi-line comment - 4 * The second line - 5 */ - 6 - - Now correctly generates: - - 1 - 2 /* Multi-line comment - 3 * The second line - 4 */ - 5 From Gregory Nutt (2019-01-22). - * arch/arm/src/tiva/cc13xx: The trim files from the TI DriverLib now - compile successfully. This merge also brings in the ROM files from the - TI DriverLib which do NOT year compile correctly. This is still a work - in progress. There merge also adds unverified support for the - LaunchXL-CC1310. From Gregory Nutt (2019-01-22). - * arch/arm/src/samd2l2/sam_serial.c: Add missing RS-485 DIR pin write to - sam_serial.c From Alan Carvalho de Assis (2019-01-22). - * crypto/aes.c: When we upgraded our code to NuttX 7.28 crypto/aes.c - would no longer compile. Attached is a patch which fixes the - compilation errors. From Gregory Nutt (2019-01-23). - * arch/arm/src/tiva/cc13xx: Fixes to get a clean build of the - configs/launchxl-cc1312r1 configuration. Still untested. From Gregory - Nutt (2019-01-23). - * arch/arm/src/tiva/hardware: Add CC13xx SMPH and AUX SMPH header - files. Still need DDI0 OSC header file for CC13x0 compilation. From - Gregory Nutt (2019-01-23). - * Improvements for STM32 PWM - - arch/arm/src/stm32/stm32_pwm: fix polarity and IDLE state configuration - for advanced timer PWM - - include/dsp.h: raise error if math.h not present - From Mateusz Szafoni - (2019-01-23). - * arch/arm/src/tiva/hardware: Add CC13x0 DDI0 OSC header file. - arch/arm/src/tiva/cc13xx: Fix miscellaneous compilation issues. From - Gregory Nutt (2019-01-23). - * tools/.gitignore: Ignore new tool binaries. From David Sidrane - (2019-01-24). - * arch/arm/src/stm32l4/stm32l4_lse.c: Ports Jussi Kivilinna's recent - STM32F7 LSE change to STM32L4. From Juha Niskanen (Haltian) - (2019-01-24). - * fs/vfs/fs_open.c: Fix not returning failure for block_proxy() call. - From David Sidrane (2019-01-25). - * up_initialize(): As noted by Roland Takacs in Bitbucket issue 141, - there is a compilation error for STM32 if CONFIG_NET and - CONFIG_NETDEV_LATEINIT are selected. That was due in part to commit - 19e16cb which extended up_netinitialize() with a - !defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to - concrete implementations. I say "in part" because I don't think that - the original intent of commit 19e16cb was to enable an alternative - initialization of MCU internal Ethernet support but rather to enable - support of external Ethernet devices that may have dependencies on, for - example, SPI. However, this is still a proper fix to avoid the - compilation error that can occur with this combination of configuration - options. From Gregory Nutt (2019-01-25). - * arch/arm/src/lpc17xx/lpc17_can.c: The name can_txready clashes with - Nuttx CAN core global function. LPC178x has only single - LPC17_SYSCON_PCLKSEL with only single divisor. From Pavel Pisa - (2019-01-25). - * arch/arm/src/tiva/cc13xx/cc13x2_v1_trim.c and cc13x2_cc26x2_v1_rom.c: - Review and modified for coding style. Now pass tools/nxstyle without - complaint. From Gregory Nutt (2019-01-25). - * arch/xxx/include/: Remove watchdog.h and arm-elf.h because they are - empty. The arm-elf header file was never used; the empty watchdog.h - header file was used in only one place. From Xiang Xiao (2019-01-26). - * arch/arm/include/armv-7m/irq.h and armv6-m/irq.h: Remove redundant - conditioning on CONFIG_BUILD_PROTECTED From Xiang Xiao (2019-01-26). - * mm/mm_heap/mm_sbrk.c: Fix backward conditional test. Should call - mm_initialize() when brkaddr equal zero From Xiang Xiao (2019-01-26). - * arch/Kconfig and arm/src/armv7-m/Kconfig: ARCH_HIPRI_INTERRUPT - shouldn't select ARMV7M_USEBASEPRI. First because that is a violation - of the layered nature of the Kconfig architecture, but also because - then Kconfig will generated errors when high priority interrupts are - used with other architectures. From Xiang Xiao (2019-01-26). - * mm/umm_heap/umm_sbrk.c: Pass ARCH_HEAP_VEND as maxbreak argument From - Xiang Xiao (2019-01-26). - * arch/xxx/src/common/up_initialize.c: Move up_pminitialize() after - timer_initialize() From ligd (2019-01-26). - * arch/arm/src/include/xxx/syscall.h: Align semi-hosting call style with - other syscalls From Xiang Xiao (2019-01-26). - * arch/arm/include/syscall.h: Add missing inclusion of - arch/armv7-r/syscall.h for CortexR. From Xiang Xiao (2019-01-26). - * mm/kmm_heap/kmm_kernel.c: Remove unused, duplicated kmm_heapmember(). - From Xiang Xiao (2019-01-26). - * mm/iob/iob_alloc.c: iob_allocwait should decrease semcount manually. - From Xiang Xiao (2019-01-26). - * drivers/sensors/ina3221.c: Fix errors in register field address. - Signed value was losing its signed-ness due to use of unsigned type for - register. From Ken Pettit (2019-01-26). - * mm/iob/iob_notifier.c: Don't check iob_navail in iob_notifier_setup to - avoid a potential race condition. From Xiang Xiao (2019-01-26). - * mm/iob/iob_dump.c: Format the whole line before log to avoid the - multiple timestamp prefix in each line From Xiang Xiao (2019-01-26). - * drivers/sensors/ina3221.h: Fix errors in register addresses and - bitfield values. From Ken Pettit (2019-01-26). - * mm/shm: Convert bytes to pages by MM_NPAGES instead of MM_PGALIGNUP - From Xiang Xiao (2019-01-26). - * mm/shm/shmget.c: Should call shm_extend to allocate the physical - memory From Xiang Xiao (2019-01-26). - * mm/mm_gran/mm_pgalloc.c: mm/pgalloc: shouldn't just allocate one page - always. From Xiang Xiao (2019-01-26). - * mm/mm_gran/mm_graninfo.c: Fix the wrong data in g_1bit_info and make - the internal function static From Xiang Xiao (2019-01-26). - * mm/umm_heap: Ensure all user allocation try sbrk before fail From - Xiang Xiao (2019-01-26). - * mm/iob/iob_copyin.c: iob_copyin() should wait for each buffer and - adjust the return value of iob_copyin_internal return to simplify the - code From Xiang Xiao (2019-01-26). - * arch/xxx/src/xxx/up_assert.c: Dump CPU0 IDLE stack only when PID - equals 0. IDLE threads of other CPUs do not need this special check - From Xiang Xiao (2019-01-26). - * binfmt/, binfmt/libelf/, include/nuttx, libs/libc/machine, - libs/libc/modlib, and others: Move elf related arch function to - include/nuttx/elf.h because the implementation is located in - libs/libc/machine and in order to avoid the conflict with the 3rd party - libraries and clean up the file inclusion: (1) Remove redundant - elf32.h, (2) Remove nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove - nuttx/binfmt/elf.h in modlib, and (4) Remove nuttx/module.h in modlib. - From Xiang Xiao (2019-01-26). - * Kconfig files, binfmt/libelf, libs/libc/machin, libs/libxx: Correct - libcxx exception handling by introducing the generic - config(CXX_EXCEPTION and CXX_LIBSUPCXX) From Xiang Xiao (2019-01-26). - * binfmt/: If there is an address environment (CONFIG_ARCH_ADDRENV), - binfmt/elf doesn't need to free ctor/dtor alloc since freeing the - address environment releases the heap automatically. From Xiang Xiao - (2019-01-26). - * binfmt/libelf, libs/libc/modlib: Optimize elf load speed: (1) Don't - zero out memory, (2) Reduce the initial buffer size to 32 bytes. From - Xiang Xiao (2019-01-26). - * binfmt/, binfmt/libelf: binfmt/elf: Call umm_initialize as soon as - possible otherwise elf_loadctors/elf_loaddtors will fail to allocate - memory. From Xiang Xiao (2019-01-26). - * libs/libc/dllfcn: Implement dlerror using strerror. From Xiang Xiao - (2019-01-26). - * libs/libc/dllfcn, sched/init: Add LD_LIBRARY_PATH environment variable - support. From anchao (2019-01-26). - * libs/libc/machine/arm/armv7-m/arch_elf.c: Add support for the - R_ARM_THM_JUMP11 relocation type. This relocation type may be - generated when LTO optimization is enabled. From anchao (2019-01-26). - * libs/libc/machine/arm: Fix the minor issue in libc arm machine folder; - MOVW/MOVT should use zero(not sign) extension. From Xiang Xiao - (2019-01-26). - * libs/libc/symtab/symtab_findorderedbyvalue.c: Remove unused - symtab_findorderedbyvalue. From Xiang Xiao (2019-01-26). - * arch/arm/src/samd2l2 serial: Fix SAMD2L2 serial driver it needs - sam_usart_enable() to work From Alan Carvalho de Assis (2019-01-26). - * Remove empty seria.h and all references From Xiang Xiao (2019-01-26). - * libs/libc/stdio/lib_libvsprintf.c: Correct justification for alternate - forms of %p and %P From ligd (2019-01-27). - * libs/libc/misc/lib_utsname.c: Add build date and time to uname output - (like Linux). From Gregory Nutt (2019-01-27). - * libs/unistd and other affected files: Hostname support no longer - depends on CONFIG_NET since the host name is also useful in the - non-network environment. CONFIG_NET_HOSTNAME changed to - CONFIG_LIB_HOSTNAME. From Xiang Xiao (2019-01-27). - * Remove the unused libs/libc/endian/Kconfig From Xiang Xiao (2019-01-27). - * libs/libxx/Kconfig: Automatically select CONFIG_LIBC_WCHAR and - CONFIG_TIME_EXTENDED when CONFIG_LIBCXX is selected since libcxx - compile fails if without these two option From Gregory Nutt - (2019-01-27). - * - drivers/timers/oneshot.c: Support signal notification through - SIGEV_THREAD - - drivers/timers/rtc.c: Support signal notification through - SIGEV_THREAD - - drivers/input/ajoystick.c: Support signal notification through - SIGEV_THREAD - - drivers/input/djoystick.c: Support signal notification through - SIGEV_THREAD - - drivers/input/button_upper.c: Support signal notification through - SIGEV_THREAD - - drivers/sensors/zerocross.c: Support signal notification through - SIGEV_THREAD - - drivers/wireless/ieee802154: Support signal notification through - SIGEV_THREAD - - drivers/lcd/ft80x.c: Support signal notification through SIGEV_THREAD - From Xiang Xiao (2019-01-27). - * drivers/net/phy_notify.c and all network drivers that support PHY - notifications: Support the signal notification through SIGEV_THREAD - From Xiang Xiao (2019-01-27). - * aio_cancel need signal caller after the succeed and fix minor issue in - the error handler From Xiang Xiao (2019-01-27). - * drivers/timers/watchdog.c: Support auto-monitor service From Gregory - Nutt (2019-01-27). - * drivers/timers/rtc.c: Protect the RTC state with a semaphore. From - Xiang Xiao (2019-01-27). - * drivers/timers/rtc.c: Protect the timer state with a semaphore. From - Xiang Xiao (2019-01-27). - * Critical Section Monitor (sched/ and fs/procfs: Remove - SCHED_IRQMONITOR_GETTIME to simplify the clock source selection: (1) - Use up_critmon_gettime if SCHED_IRQMONITOR, (2) Call clock_systimespec - if SCHED_TICKLESS, (3) Don't collect timing info for all other cases - and move up_critmon_* to arch.h avoid the duplicated declaration. From - Xiang Xiao (2019-01-27). - * drivers/timers/arch_alarm.c and arch_timer.c: Implement - up_critmon_gettime and up_critmon_convert and remove the critical - section from current_usec to infinite recursion. From Xiang Xiao - (2019-01-27). - * Improvements in STM32 ADC, PWM and TIM - - arch/arm/src/stm32/chip/stm32_adc_v2.h: missing T1TRGO2 for JEXTSEL - - arch/arm/src/stm32/stm32_adc: configure injected channels external - trigger when ADC enabled - - arch/arm/src/stm32/stm32_adc: update injected conversion queue of - context after configuration - - arch/arm/src/stm32/stm32_adc: fix sample time configuration for - channels. The array index for channels was missing - - arch/arm/src/stm32/stm32_adc: support for offset configuration - - arch/arm/src/stm32/stm32_pwm: fix TRGO/TRGO2 configuration - - arch/arm/src/stm32/stm32_pwm: support for advanced timers channel 5 - and 6 - From Mateusz Szafoni (2019-01-27). - * drivers/serial/serial.c: Initialize OPOST and ONLCR in uart_register - From Xiang Xiao (2019-01-27). - * drivers/serial/serial.c: Call pm_activity() when characters are - received on a console device. From Gregory Nutt (2019-01-27). - * drivers/serial/uart_16550.c: Fix error: 'g_uart0port' undeclared. - From Xiang Xiao (2019-01-27). - * drivers/serial/serial.c: Don't reset the circular buffer on close - since DMA may still be transferring data in the background if the user - closes the handle too quickly and the handle is opened with - O_NONBLOCK. From Xiang Xiao (2019-01-27). - * drivers/serial/uart_16550.c: Fix typo for UART1 flow field - initialization From Gregory Nutt (2019-01-27). - * sched/wqueue/kwork_notifier.c and several Kconfig files: Notifier - should work with either lpwork or hpwork and other minor typo fix. - From Xiang Xiao (2019-01-27). - * sched/Kconfig: Change SCHED_NOTE_GET type from int to bool - From Gregory Nutt (2019-01-27). - * sched/sched/sched_timerexpiration.c: Fix macro SEC2TICK() 32-bits - overflow by using uint64_t in calculation. From ligd (2019-01-27). - * drivers/power/pm_activity.c: Add pm_staycount API for get stay - numbers. This function is currently not used and a waste of FLASH - space. From ligd (2019-01-27). - * include/nuttx/irq.h: Fix enter_critical_section/spin_lock_irqsave - macro typo error and remove the duplicated inclusion of arch/irq.h - From Xiang Xiao (2019-01-27). - * include/stdbool.h: Define bool only when __cplusplus isn't defined. - From Xiang Xiao (2019-01-27). - * include/nuttx/fs/fs.h: Move the union inode_ops_u i_mtd field into the - mount section of inode_ops_u and remove the guard to simplify fs which - support both block and mtd. From Xiang Xiao (2019-01-27). - * include/nuttx/list.h: Added a Linux-compatible list implementation. - From zhuyanlin (2019-01-27). - * fs/mount and fs/romfs: Add support to mount a ROMFS volume using an - MTD driver interface using the standard mount() operation. From Xiang - Xiao (2019-01-27). - * fs/hostfs/hostfs.c: Remove the unnecessary use of host_stat() in - hostfs_bind() From ligd (2019-01-27). - * drivers/syslog/ramlog.c: Fix error: Conflicting types for - 'ramlog_addchar' From Xiang Xiao (2019-01-27). - * fs/littlefs: Fix a minor issue found in code review: (1) Replace - printf to finfo/fwarn/ferr, (2) Replace malloc/free to - kmm_malloc/kmm_free, (3) define LFS_NAME_MAX to NAME_MAX, (4) Check the - big endian using CONFIG_ENDIAN_BIG. From Xiang Xiao (2019-01-27). - * fs/littlefs: VFS wrapper improvement: (1) Support block device - interface, (2) support ioctl, stat and sync file operation, (3) support - forceformat and autoformat option, (4) update file->f_pos and - dir->fd_position, (5) remove the internal struct from dir, and (6) - remove mtd byte read/write requirement. From Xiang Xiao (2019-01-27). - * arch/arm/src/am335x/am335x_serial.c: Eliminate an error 'TIOCSBRK - undeclared. From Gregory Nutt (2019-01-27). - * Every file that uses serial IOCTLs (TIOC*) must explicitly include - nuttx/fs/ioctl.h. This was included previously via sneak path in the - now deleted arch/serial.h. From Gregory Nutt (2019-01-27). - * arch/arm/src/lpc17xx/lpc176x_clockconfig.c: The code preserves - undocumented reserved bits only if board does not set them to keep - previous behavior for boards where developers (hopefully) know what - values should be set into these bits. From Pavel Pisa (2019-01-27). - * arch/arm/src/lpc17xx/: The enable of EMC clocks has to be preserved - when already enabled by loader. EMC and related pins configuration has - to be skipped if the system is run from SDRAM. A region of SDRAM which - is used by system must not be used for heap. From Pavel Pisa - (2019-01-27). - * configs/nucleo-l432kc/src/stm32_appinit.c: Add support for I2C driver - initialization. From Nikolay Semenov (2019-01-28). - * drivers/timers/timer.c: Support the signal notification through - SIGEV_THREAD From Gregory Nutt (2019-01-28). - * configs/nucleo-144/f767-netnsh/defconfig: Correct one location where - CONFIG_NET_HOSTNAME was not changed to CONFIG_LIB_HOSTNAME. From - Gregory Nutt (2019-01-29). - * arch/arm/src/imxrt: Add XBAR Support From David Sidrane (2019-01-29). - * arch/arm/src/imxrt/chip/imxrt_tmr.h: Fix addressing and restructure - using common offset From David Sidrane (2019-01-29). - * sched/sched/sched_processtimer.c: Add a configurable call out to a - user-provided function, 'timer hook', on each timer interrupt. From - Gregory Nutt (2019-01-30). - * - /arch/arm/src/samv7/sam_spi.c: DMA Tx/Rx timeout issue. - - /arch/arm/src/samv7/sam_qspi.c: Compile error when set - CONFIG_SAMV7_QSPI_DLYBCT - - Fix compiling error when set - CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID - From Kevin Liu (2019-01-30). - * arch/arm/src/imxrt/chip/imxrt_gpt.h: Correct register offsets. From - David Sidrane (2019-01-30). - * arch/arm/src/samv7/sam_emac.c: The logic for determining the number of - queues for SAMV71 must be extended. All SAMv7 parts increase the - number of queues from 3 to 6 at revision B, not just the SAMV71. From - Gregory Nutt (2019-02-01). - * arch/arm/src/samv7/sam_emac.c: Fix a compile problem introduced with - commit cf1e0f79762284da2df372fe80eb3eca09488e24. From Gregory Nutt - (2019-02-01). - * arch/arm/src/samv7/sam_emac.c: Fixes rxdesc index logic to handle - Buffer Not Available (BNA) condition. - - If a SOF is found, but no EOF, don't move past the frame. Instead, - keep the index at the SOF buffer until the rest of the data is written. - - This fixes a receiver lockup condition where the peripheral and this - driver get out of sync with there head pointers. In this case the - driver has moved past buffers it owns, without clearing ownership, - which results in the peripheral and driver in a deadlock with each - other. - - From Anthony Merlino (2019-02-02). - * arch/arm/src/sam34 and sama5: Port Anthony Merlino's fix to similar - Ethernet drivers for parts in other SAM families. From Gregory Nutt - (2019-02-02). - * arch/mips/src/pic32mz: Add support for the PIC32MZ timers (driver, - lowerhalf, freerun and oneshot) From Abdelatif Guettouche (2019-02-02). - * sched/signal/sig_deliver.c: Restructure nxsig_deliver() so that the - signal handler is not called with the pre-emption disabled (or, at - least no with pre-emption disabled by nxsig_deliver() itself). From - Gregory Nutt (2019-02-03). - * sched/sched: Rename all internal, static functions from sched_* to - nxsched_* to indicate that they are NuttX internal functions. This is - only a start. Eventually, need to rename all sched_ functions - prototyped in sched/sched/sched.h and in include/nuttx with nxsched_. - From Gregory Nutt (2019-02-03). - * arch/ Signals: The saved return register state is available on the user - stack. Thic commit reorders some logic so that certain, critical - registers are preserved in the TCB. This does not make the logic 100% - secure, but does prevent some obvious things. - sched/signal/sig_delivery: Add a flag to the TCB to indicate that we - are in a signal handler. Use this flag to assure that a there a never - attempts to nest signal handling operations on a thread. This was - guaranteed before but when locking of pre-emption during signal - delivering was eliminated in a previous commit, there was a remote - possibility of an attempt to do nested signal handling. This flag - assures that there is only one signal handled at a time. From Gregory - Nutt (2019-02-03). - * This commit renames all internal OS functions defined under sched/task - so that they begin with the prefix. For example, nxtask_exit() vs. - task_exit(). From Gregory Nutt (2019-02-04). - * - sched/init/nx_bringup.c: Fix a naming collision. - - sched/init: Rename os_start() to nx_start() - - sched/init: Rename os_smp* to nx_smp* - - sched/init: Rename os_bringup to nx_bringup - - sched/init: rename all internal static functions to begin with nx_ - vs os_ - From Gregory Nutt (2019-02-04). - * graphics/nxmu/nxmu_start.c: Fix a naming collision introduced with the - last commit. Ye olde nx_start that started the NX graphics is now - nxmu_start(). - include/nuttx/nxmu.h: Due the name change, the nxmu_start() belongs - more appropriately in nxmu.h than nx.h. From Gregory Nutt (2019-02-04). - * include/nuttx/nx/nxmu.h: This header file could be lethal; it declared - an #error if CONFIG_DISABLE_MQUEUE=y. From Gregory Nutt (2019-02-04). - * libs/libc/unistd/lib_getopt.c: Add logic to reinitialize the stale - context for the FLAT/PROTECTED builds. In these builds getopt() global - varriables may be shared by many tasks. If any task exits the getopt() - loop before all command line arguments have been parsed, then getopt() - global variables will be left in a bad state. The next time getopt() - is called, this logic should detect the bad state and force the state - of getopt() to be re-initialized so that it can be reused. This logic - is not full proof (it would fail, for example, if you tried to parse - the same command line twice) but should catch the typical misuse - cases. From Xiang Xiao (2019-02-05). - * drivers/ioexpander/tca64xx.c: Fix some errors in the TCA64XX driver. - From Bruno Schwander (2019-02-06). - * configs/stm32f769i-disco/src/stm32_appinitialize.c: Florian R. - Hölzlwimmer reports that stm32_appinitialize.c often has missing OK and - NULL definitions. This should be fixed by including sys/types.h where - they are defined. From GregoryN (2019-02-06). - * libs/libc/stdio: Add newlib-nano fprintf as an option. This fprintf - code was originally adapted from AVR libc and provides improved - floating point output support, including 'g' mode and making 'f' mode - include digits past the decimal by default. However, this version does - not have any long long support. On a demonstration cortex M4 build, - this version saves about 5kB of ROM. The newlib version can be found - here: https://salsa.debian.org/electronics-team/toolchains/newlib-nano - . That project is GPL overall, but the newlib-nano printf portions are - BSD licensed as described in the COPYING.NEWLIB file. From Keith - Packard (2019-02-06). - * - arch/misoc/src/minerva: Add support for the Minerva architecture - - configs/Kconfig and misoc/nsh/defconfig: Add support for the - Verilator board. - From Ramtin Amin (2019-02-07). - * tools/lowhex.c: Fix an initialization problem that was causing some - odd behavior at the beginning of lines. From Gregory Nutt (2019-02-07). - * tools/rmcr.c: Add a tools to remove carriage returns and dangline - whitespace at the end of lines. From Gregory Nutt (2019-02-07). - * tools/nxstyle.c: Can now detect if the C comment closing is not on a - separate line. From Gregory Nutt (2019-02-08). - * tools/nxstyle.c: Make sure that all files begin with a comment on line - 1 (which should be the file header). From Gregory Nutt (2019-02-08). - * include/: Correct naming of standard header file. Should be dlfcn.h, - not dllfcn.h. From Gregory Nutt (2019-02-09). - * configs/launchxl-cc1312r1: Add support for on-board LEDs and buttons. - From Gregory Nutt (2019-02-10). - * configs/launchxl-cc1310: Clone LED and button support from the - launchxl-cc1312r1. The number of LEDs and buttons as well as DIO usage - is identical. From Gregory Nutt (2019-02-10). - * drivers/usbhost/usbhost_cdcacm.c: Fixes to the IOCTL method in - recovery of UART pointer and in names of Termios-related field. From - xhbm (2019-02-11). - * CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to disable the file - system. NuttX with no file system does not make sense and is no longer - supported. From Gregory Nutt (2019-02-11). - * configs/sama5d2-xult: Move console from FLEXCOM4 to UART1. FLEXCOM4 - does not work for the Arduino serial. UART1 is used with the VCOM - provided by the EDBG. From Gregory Nutt (2019-02-11). - * Fix conditional logic: The setup seems to support a network without - sockets (CONFIG_NSOCKET_DESCRIPTORS == 0). That is not the case; if - the network is enabled, sockets must be provided. From Gregory Nutt - (2019-02-11). - * configs/launchxl-cc1312r1: Correct DIOs used to provide the UART0 - serial console. Board boots to NSH prompt now. But I am not getting - serial input. Things are probably not very stable in general. From - Gregory Nutt (2019-02-12). - * sched/: Remove the option CONFIG_BOARD_INITTHREAD. Now, if - CONFIG_BOARD_INITIALIZE is selected, then the board_initialize() logic - will ALWAYS run on an internal kernel thread. This will prevent the - problems people have had doing inappropriate board_initialization on - the IDLE thread. From Gregory Nutt (2019-02-12). - * arch/arm/src/tiva: The LauchXL-CC1312R1 NSH configuration is now fully - functional. On to bigger and better things. From Gregory Nutt - (2019-02-13). - * - Move vscanf logic to lib_sscanf.c Switched to stream interface - (tricky, because the old implementation used massive read ahead, which - isn't suitable for streams, chars already read are gone). - - Added scanf and fscanf - - Added hh, h, and ll modifiers - - Fixes for standard compliance in scanf - - Fixes for standard compliance in strto... function family (don't - consume single '-' or '+', allow sign in strotul(l)) - From Johannes (2019-02-14). - * net/tcp/tcp_send_buffered.c: Fix assertion crash when window size is - zero. From Gregory Nutt (2019-02-14). - * net/: The value ERROR should never be returned from internal OS - functions. That is reserved for returning values to appliations with - the errno value set. Within the OS, errors are returned with a negated - errno value ALWAYS. From Gregory Nutt (2019-02-14). - * libs/libc/stdio/lib_libsscanf.c: Initialized the lastc pointer to avoid - the checks for NULL. Removed a bug in the floating point parsing which - allowed several signs after each other. From Johannes (2019-02-14). - * tools/nxstyle.c: Add check for multiple definitions of local variables - on a line. From Gregory Nutt (2019-02-14). - * libs/libc/stdio/lib_libvsprintf.c: No precision specifier resulted in - precision 0 but should be precision 6. From Johannes (2019-02-15). - * libs/libc/stdio: Add support for %g format which, for these purpose, - is equivalent to %f except that trailing zeroes are suppressed. From - Gregory Nutt (2019-02-15). - * libs/libc/stdio: In the recent changes we lost the implementation of - vsscanf(). This commit restores vsscanf(). sscanf() is not just a - front end for vsscanf(). From Gregory Nutt (2019-02-15). - * libs/libc/stdio: Remove unused, non-standard functions lib_sscanf() - and lib_sprintf(). From Gregory Nutt (2019-02-15). - * libs/libc/stdio/nano_libvsprintf.c: Add long long support. - CONFIG_LIBC_LONG_LONG needs at least CONFIG_NANO_PRINTLEVEL 2. Code - size for compile without CONFIG_LIBC_LONG_LONG shouldn't be affected. - From Johannes (2019-02-15). - * nuttx/sched/mqueue: Change 'int prio' to 'unsigned int prio'. - According to open group specification, priority field in mq_* functions - should have unsigned type: - http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html - From Michał Łyszczek (2019-02-15). - * arch/arm/src/tiva/hardware: Add CC13x0 and CC13x2 I2C header files. - From Gregory Nutt (2019-02-16). - * syscall/syscall.csv: Change to mqueue function protothypes must be - reflected in the KERNEL mode proxies as well. From Gregory Nutt - (2019-02-16). - * libs/libc/stdio/Make.defs: lib_dtoa.c is only used in the - LIBC_CONFIG_NANO_PRINTF=n case. From Johannes (2019-02-16). - * Restore lib_sprintf(). It was removed because I thought was not used. - But I was wrong; there is logic in drivers/syslog that depends on - lib_sprintf(). From Gregory Nutt (2019-02-16). - * arch/arm/src/tiva/hardware/tiva_wdt.h: Add WDT register definition - header file for all LM, Tiva, and CC13xx parts. From Gregory Nutt - (2019-02-16). - * - arch/arm/src/stm32f0l0: SPI support for F0 - - arch/arm/src/stm32f0l0/Kconfig: L0 parts should select - STM32F0L0_STM32L0 - - arch/arm/src/stm32f0l0/hardware: unify names for ADC/DAC/DMA/CAN - - drivers/wireless/lpwan/sx127x/sx127x.c: return immediately when ISR0 - is called but sx127x is not initialized - - configs/nucleo-f091rc: support for sx127x - - configs/b-l072z-lrwan1/include/board.h: use HSI as default clock - source and fix typo in SPI1 pins. - From Mateusz Szafoni (2019-02-16). - * libs/libc/stdio/lib_dtoa.c: Lots of risky turmoil to get this file - closer to the NuttX coding style. Seems to check out, but still - risky. libs/libc/stdio/lib_libdtoa.c: A fix for the %g format. The - algorithm will sometimes generate number greater than the precision of - type double. This adds a check if the precision has been exceeded and - logic to remove the least significant garbage. From Gregory Nutt - (2019-02-16). - * libs/libc/stdio/nano_libvsprintf.c: Added hh type modifier (without - extending the flag variable). From Johannes (2019-02-17). - * tools/nxstyle.c: Beef up logic that detects multiple variable - definitions per line. From Gregory Nutt (2019-02-17). - * libs/libc/stdio: This commits makes the nano-printf the default logic - for the printf family. The legacy printf is still available via - CONFIG_LIBC_PRINT_LEGACY. This commit also modifies the nano-prinf - configure: The PRINT_LEVEL is not long selectable. Instead, a not - CONFIG_LIBC_PRINT_MINIMAL boolean setting was added and the PRINT_LEVEL - is derived from a combination of CONFIG_LIBC_PRINT_MINIMAL, - CONFIG_LIBC_FLOATINGPOINT, and CONFIG_LIBC_LONG_LONG. From Gregory - Nutt (2019-02-17). - * libs/libc/stdio: Rename lib_dtoa.c to legacy_dtoa.c; rename - lib_libvsprint.c to legacy_libvsprintf.c From Gregory Nutt (2019-02-17). - * libs/libc/stdio: Rename all nano_*.c and nano_*.h files to lib_*.c and - lib_*.h to emphasize that these are now the defaults, not an optional - implementation. From Gregory Nutt (2019-02-17). - * arch/xtensa/src/esp32/esp32_timerisr.c: Fix backward comparison. From - Gregory Nutt (2019-02-17). - * libs/libc/stdio/lib_libvsprintf.c: Adds configurable support for - numbered arguments. From Johannes (2019-02-18). - * libs/libc/stdio/Kconfig: Need to guard LIBC_NUMBERED_ARGS against - LIBC_LEGACY_PRINTF From Johannes (2019-02-18). - * - sched/init/nx_start.c: Add support for - CONFIG_BOARD_DRIVER_INITIALIZE. If this option is selected then - nx_start() will call a board-provided function board_early_initialize() - immediately after calling up_initialize(). - - Rename CONFIG_BOARD_INITIALIZE to CONFIG_BOARD_LATE_INITIALIZE. - - Rename board_initialize() to board_late_initialize() - From Gregory Nutt (2019-02-18). - * include/nuttx/compiler.h: Important fix for C++ users. compiler.h was - using the value of __STDC_VERSION__ to determine if inline functions - are supported or not. If not then the keyword inline was defined out. - Good for C but bad for C++ because C++ does not defined - __STDC_VERSION__ at all. C++ applications may draw in compiler.h - indirectly via other head files and this can result in C++ compiler - problems since 'inline' is defined out. This fix is to ignore the - (undefined) __STDC_VERSION__ if __cplusplus is defined. From Gregory - Nutt (2019-02-19). - * include/nuttx/elf.h: Adds missing extern "C" __cplusplus guard. From - Anthony Merlino (2019-02-19). - * libs/libc/stdio/lib_libvsprintf.c: Cleaned naming and allow for leading - zeros in argument number (which doesn't make sense but should be). - From Johannes (2019-02-19). - * arch/arm/src/stm32f7/stm32_i2c.c: Fix another memory access issue on a - bus error. From David Sidrane (2019-02-19). - * arch/arm/src/stm32h7 and stm32l4: Apply David Sidrane's fix for the - STM32F7 to the STM32L4 and STM32H7. The same change might be - appropriate to STMF0/LO and STM32, but the patch does not apply - cleanly. It would have to be manually checked. From Gregory Nutt - (2019-02-19). - * libs/libc/stdio/Kconfig: CONFIG_LIBC_NUMBERED_ARGS now depends on - EXPERIMENTAL. Per Johannes: I tested numbered arguments on i.mx rt - 1050, and it isn't working. Only on Linux/MSYS 64bit all relevant data - types are size 8 bytes, and therefore my loop through the arg list is - working. On 32bit systems, all is 4 bytes except floating point - variables which is implicit 8 byte double. From Gregory Nutt - (2019-02-20). - * libs/libc/stdio/lib_libvsprintf.c: Fix typo: PRINTF_LEVEL, not - PRINT_LEVEL. From Gregory Nutt (2019-02-20). - * - libs/libc/stdio/lib_vsprintf.c and Kconfig: Numbered arguments now - work by using two pass parsing and an argument list. The maximum - number of numbered args is determined by CONFIG_LIBC_NL_ARGMAX which - is then copied into NL_ARGMAX. Size of pointer argument ('p') is - determined before output. - - include/limits.h: Define NL_ARGMAX (as well as some of the other - 'invariant values' per - http://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html) - From Johannes (2019-02-21). - * libs/libc/lib_libvsprintf.c and Kconfig: Remove - CONFIG_LIBC_PRINT_MINIMAL. The output in that configuration is - unsatisfactory and inappropriate for use with NuttX. For example, the - output from many NSH commands become corrupted and useless. Doesn't - belong in this context. From Gregory Nutt (2019-02-21). - * libs/libc/stdio/Kconfig: Add 'range 9 999999' to - CONFIG_LIBC_NL_ARGMAX. Per OpenGroup.org, the minimum value for - NL_ARGMAX is 9. From Gregory Nutt (2019-02-21). - * include/poll.h: Remove un-named union from 'struct pollfd'. It is not - required by OpenGroup.org and violates the NuttX C coding standard - because it is not C89 compatible. From Gregory Nutt (2019-02-21). - * imxrt_adc: Error in offset From David Sidrane (2019-02-22). - * drivers/net/tun.c: Re-order all TUN/TAP driver state data. Not only - was was with wasting memory due to alignment requirements, it was also - causing network packet buffers to be improperly aligned causing - problems because the network requires 16-bit packet buffer alignment - for uint16_t accesses. This alignment problem was discovered by Alan - Carvalho de Assis. From Gregory Nutt (2019-02-24). - * drivers/net/tun.c: Packet buffer size should include the configured - GUARD_SIZE. And, given how the buffers are allocated, the allocation - size must be an even number of 16-bit values to preserve alignment. - From Gregory Nutt (2019-02-24). - * drivers/net/tun.c: Cosmetic changes from review for coding style - compliance. From Gregory Nutt (2019-02-24). - * SX127X improvements - - drivers/wireless/lpwan/sx127x/sx127x: Add TX power configuration - - drivers/wireless/lpwan/sx127x/sx127x: Discard RX packets with - unsupported length - - drivers/wireless/lpwan/sx127x/sx127x: Refactor some logic - - drivers/wireless/lpwan/Kconfig: Move some hardcoded sx127x - configuration to Kconfig - - drivers/wireless/lpwan/Kconfig: Remove EXPERIMENTAL flag - - configs/b-l072z-lrwan1/sx127x: Board-specific sx127x configuration - - configs/nucleo-f091rc/sx127x: Board-specific sx127x configuration - - configs/nucleo-l073rz/sx127x: Board-specific sx127x configuration - LORA and FSK look fine but there is something missing for OOK and - communication is not working yet. - From Mateusz Szafoni (2019-02-24). - * support for pthread_mutex_timedlock From Leif Jakob (2019-02-24). - * sched/pthread/pthread_mutexlock.c: Fix an error in last PR. The - abs_timeout value as not being passed from pthread_mutex_timedlock() to - pthread_mutex_take(). From Gregory Nutt (2019-02-24). - * Missing definitions and better organistaion for STM32H7 DMA - - arch/arm/src/stm32f0l0/hardware/stm32_dma_v1.h: rename DMA channel - definitions - - arch/arm/src/stm32h7/chip/stm32_dma: separated files for MDMA, DMA, - BDMA and DMAMUX - - arch/arm/src/stm32h7/chip/stm32_dma: missing definitions for MDMA, - BDMA and DMAMUX - From Mateusz Szafoni (2019-02-25). - * Add some sx127x demo configurations - - configs/b-l072z-lrwan1/sx127x/defconfig: add configuration for sx127x - demo app - - configs/nucleo-f091rc/sx127x/defconfig: add configuration for sx127x - demo app - - configs/nucleo-l073rz/sx127x/defconfig: add configuration for sx127x - demo app - From Mateusz Szafoni (2019-02-25). - * arch/arm/src/imxrt/chip/imxrt_usb_analog.h: Add USB analog header - file. From David Sidrane (2019-02-25). - * libs/libc/pthread, syscall/, and include/sys/syscall.h: Support for - pthread_mutex_timedlock() was added recently, however no new system - call was added for the API make is usable only in the FLAT build. With - a pthread_mutex_timedlock() system call, there is no reason for a - pthread_mutex_lock() system call since it is now nothing more than an - wrapper around pthread_mutex_timedlock(), passing NULL for the time - value. The pthread_mutex_lock() syscall was removed and the - pthread_mutex_lock() implemented was moved from /sched/pthread to where - it now belows in libs/libc/pthread. From Gregory Nutt (2019-02-25). - * configs/nucleo-l073rz/src/stm32_buttons.c: By default button support - is enabled. This causes errors because button support was not - implemented for this configuration. Solution: Port button logic from - nucleo-f072 which appears to be the same. From Gregory Nutt - (2019-02-26). - * arch/arm/src/imxrt: Added OCOTP Support. From David Sidrane - (2019-02-27). - * tools/.gitignore: Ignore rmcr binary From David Sidrane (2019-02-27). - * include/pthread.h and libs/libc/pthread/pthread_spinlock.c: Add a very - preliminary implementation of the new POSIX pthread_spinlock_* - interfaces. This feature is marked EXPERIMENTAL. There are usage - model issues to be examined and there are also architectural issues - that currently limit the implemantion to the FLAT build (that is, - however, fixable when the APIs are needed. From Gregory Nutt - (2019-02-28). - * - arch/xtensa/src/esp32/esp32_serial.c: Fix some backward arguments. - Correct 2-stop bit setting. - - sched/sched/sched_waitid.c: Could exit without leaving critical - section on some error conditions. - From Gregory Nutt (2019-02-28). - * imxrt: ocotp Fixed call to undefined function. From David Sidrane - (2019-02-28). - * armv7-m: stackcheck allow faulting stack calculation to make it to the - up_assert reg dump From David Sidrane (2019-02-28). - * tools/nxstyle.c: Fix logic that detects if an operator is correctly - delimited with spaces. sched/: Various changes because sched/ C files - were used as Guinea Pigs to test nstyle.c. From Gregory Nutt - (2019-03-01). - * Improvements for H7 towards the DMA support - - arch/arm/include/stm32h7/stm32h7x3xx_irq.h: fix typos and rename - DMA1/2 irq names to match those from other STM32 - - arch/arm/src/stm32h7/chip/stm32_bdma.h: add auxiliary definitions - - arch/arm/src/stm32h7/chip/stm32_dmamux.h: add auxliary definitions - and fix some typos - - arch/arm/src/stm32h7/chip/stm32_mdma.h: add auxliary definitions and - fix some typos - - arch/arm/src/stm32h7/chip/stm32h7x3xx_dmamux.h: add DMAMAP - definitions for MDMA, DMA1, DMA2 and BDMA - - arch/arm/src/stm32h7/chip/stm32h7x3xx_memorymap.h: fix AHB1 base - addresses and add some address blocks - - arch/arm/src/stm32h7/chip/stm32h7x3xx_rcc.h: fix some definitions to - match other STM32 ports - - arch/arm/src/stm32h7/stm32_allocateheap.c: use SRAM from D2 domain - (SRAM123) for now - - arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: enable clock for MDMA and BDMA - From Mateusz Szafoni (2019-03-01). - * drivers/wireless/nrf24l01.c: Fix uninitialized irq_work which was - causing a hard_fault on interrupt handler whenever something was sent - from nrf24l01_term From Petri Ahonen (2019-03-02). - * arch/arm/src/stm32h7/stm32_timerisr.c: H7 appears to ignore the - SysTick CLKSOURCE bit and use the CPU clock in all cases. From Mateusz - Szafoni (2019-03-02). - * Initial DMA support for STM32H7 - - arch/arm/src/stm32h7: SPI DMA mode - - arch/arm/src/stm32h7/chip/stm32h7x3xx_memorymap.h: add base addresses - for D1, D2 and D3 domain; use 2 bytes to specify memory region - - arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: add D1 domain core prescaler - configuration - From Mateusz Szafoni (2019-03-03). - * tools/Makefile.unix, .win, and all defconfig files: Modify - tools/Makefiles to add warning on defconfig files From Alan Carvalho - de Assis (2019-03-03). - * arch/arm/src/imxrt and configs/imxrt1050-evk: Adds framebuffer support - for thje i.MXRT 1050. Includdd DCD initialization for SDRAM to provide - space for the framebuffer. External code I used/ported is from NXP and - is BSD 3-clause license. From Johannes (2019-03-04). - * - libs/libc/pthread/pthread_spinlock.c: Resolve several TODO issues by - accessing up_testset() via the boardctl() interface rather than - attempting to call it directly. - - configs/boardctl.c, include/sys/boardctl.h: Add access to - architecture-specific up_testset() via boardctl(). - - arch/Kconfig's, sched/Kconfig, and include/nuttx/spinlock.h: - Spinlocks are not available unless the architecture supports the - up_testset() operation. - From Gregory Nutt (2019-03-04). - * tools/nxstyle.c: Add capability to detect CamelCase identifiers. From - Gregory Nutt (2019-03-05). - * configs/boardctl.c and include/sys/boardctl.h: Add support for - BOARDIOC_NXTERM which can be used to create an NxTerm terminal. From - Gregory Nutt (2019-03-06). - * graphics/nxterm: Remove the nxterm_unregister interface. The correct - way to unregister a device is to unlink it. From Gregory Nutt - (2019-03-06). - * configs/open1788/knxterm: Add a configuration to test NxTerms in the - PROTECTED mode. This configuration does not yet link correctly because - a few NxTerms interfaces are improperly exported from the OS: - nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt (2019-03-06). - * configs/boardctl.c: Add boardctl() commands to replace direct calls to - nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt (2019-03-06). - * configs/open1788/knxterm/defconfig: Add missing MPU configuration - option. From Gregory Nutt (2019-03-06). - * configs/open1788: Re-arrange PROTECTED mode link map to make more - space for large kernels with debug enabled. From Gregory Nutt - (2019-03-06). - * graphics/nxterm and configs/open1788: Various fixes to get the NxTerm - example working in PROTECTED mode with the Open1788 knxterm - configuration. Basically works until the screen becomes full and it - starts scrolling. Then characters are missing from the display. Needs - more debug and test. From Gregory Nutt (2019-03-07). - * drivers/sensors/mpu60x0.c: Initial support for TDK InvenSense MPU6000 - and MPU6050 6-axis gyroscope and accelerometers. This commit supports - SPI media only. From Bill Gatliff (2019-03-07). - * configs/stm32f429i-disco/nxhello/defconfig: Add an - apps/examples/examples/nxhello configuration. From Gregory Nutt - (2019-03-07). - * configs/omnibusf4: Initial support for the OmnibusF4 family of flight - management units. "OmnibusF4" is not a product name per se, but rather - a design spec that many product vendors adhere to. The spec defines the - major components, and how those components are wired into the - microcontroller. Airbot is one such vendor, and they publish a - schematic here: http://bit.ly/obf4pro. Other software that supports - the OmnibusF4 family include Betaflight, iNAV, and many others. PX4 - recently added support as well, using their own, non-upstreamed, - bespoke port of NuttX. No code from those resources is included in this - port. From Bill Gatliff (2019-03-08). - * libs/libnx/nxfonts: Fix a memory leak in the font cache. With a busy - NxTerm display, this could drain off all the memory pretty quickly! - From Gregory Nutt (2019-03-08). - * configs/stm32f429i-disco/src/stm32_lcd.c: Handle multiple calls to - up_fbinitialize() From Gregory Nutt (2019-03-08). - * arch/arm/src/stm32/stm32_otgfsdev.c/stm32_otghsdev, - stm32f7/stm32_otgdev.c, and stm32l4/stm32l4_otgfsdev.c: Fix a warnings - due to a function prototype mismatch. From Gregory Nutt (2019-03-08). - * tools/nxstyle.c: Was confusing hex constants with strings staring with - 'x'. Added logic to complain about hex constants containing upper case - characters. From Gregory Nutt (2019-03-09). - * - graphics/nxterm: Needs to clear display initially. Otherwise, - garbage from previous display may still be present from preceding - NxWM window. - - graphics/nxterm: Back out most of the preceding NxTerm changes - related to window size. apps/examples/nxterm passed the complete - NxTK window size. Those changes were needed to make - aps/examples/nxterm work. But NxWM passes the the size of the NxTK - main sub-window. So I needed to back out the changes and then change - the applications so that they passed the same value (the size of the - NxTK sub-window). - From Gregory Nutt (2019-03-09). - * Initial OTG support for STM32H7 and some minor improvements - - arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: add support for HSI48 clock - - configs/nucleo-f207zg: add support for USB and initialize CDCACM if - configured - - configs/nucleo-h743zi: add support for USB and initialize CDCACM if - configured - - drivers/usbdev/Kconfig: fix type for USBDEV_TRACE_INITIALIDSET - - configs/teensy-3.x/usbnsh/defconfig: update config according to - change in USBDEV_TRACE_INITIALIDSET - From Mateusz Szafoni (2019-03-10). - * arch/arm/src/imxrt/imxrt_clockconfig.c: If SDRAM is activated it was - only running at 40MHz. This was because imxrt_clockconfig.c changed the - SEMC clock divider after the DCD was configured. This commit corrects - that. From Johannes (2019-03-10). - * configs/omnibusf4/README.txt: Add README file for OmnibusFS target. - From Bill Gatliff (2019-03-10). - * tools/nxstyle.c: Add logic to detect a blank line following a left - brace or a blank line preceding a right brace. From Gregory Nutt - (2019-03-10). - * graphics/nxmu/nxmu_start.c: Extend nxmu_start so that receives a - display number as an argument. This makes it possible to have multiple - instances of the NX server running on boards that support multiple - displays. Also includes updates to boardctl() to accept display number - parameters. From Gregory Nutt (2019-03-10). - * Add three patches about STM32 intherupts and network loopback files - - Add the missing macro STM32_IRQ_NIRQS used by - ./arch/arm/src/stm32f7/stm32_irq.c - - The struct in_addr doesn't have the member sin_addr. - - The function lib_lo_ipv6match() is for IPv6. Correct the function it - calls from lib_lo_ipv4matchto() to lib_lo_ipv6match(). Also add - CONFIG_NET_IPv6 for configuration. - From Kejun ZHOU (2019-03-11). - * arch/arm/src/stm32h7: initial support for protected build mode. Not - functional yet. It compiles without errors and passes initialization - but after entering the user app strange things happen. From Mateusz - Szafoni (2019-03-11). - * tools/nxstyle.c: Fix logic error that prevent detecion of '/' and '/=' - as operators. net/: Minor updates resulting from testing - tools/nxstyle. From Gregory Nutt (2019-03-11). - * arch/arm/include/nrf52/ and arch/arm/src/nrf52: 1. Added 52840 family - support 2. Use common irq and memory layout header file for 52832 & - 52840. From Levin Li (2019-03-12). - * binfmt/nxflat.c: Correct a double free debug assertion. This occurs - when groups are enabled: (1) once via binfmt_exit and unload_module, - and (2) once via sched_releasetcb(). this was corrected by adding - logic to free/unload the memory once and nullify the pointer so that - cannot be freed a second time. This commit resolves Bitbucket issue - #145. From Valmantas Palikša (2019-03-12). - * binfmt/nxflat.c: Update to last NxFLAT change: The logic must respect - the reference count before freeing the dspace memory region. From - Gregory Nutt (2019-03-12). - * tools/nxstyle.c: Don't complain about certain lowercase characters in - otherwise uppercase pre-processor identifiers: IPv6, IPv4, ICMPv6, - IGMPv2, p as a decimal point, d signifying a divisor. It was a bad - idea to let the door open a crack for there. While they improve - readability, the inconsistently also causes other problems. From - Gregory Nutt (2019-03-12). - * arch/arm/src/nrf52: 1. added RNG device driver 2. added errdata to - correct temp which will be used by RNG module 3. use general - task_trigger / event_clear inline api for all driver. From Levin Li - (2019-03-13). - * include/nuttx/nx/nxmu.h: Remove prototype of non-existent function. - From Gregory Nutt (2019-03-13). - * This commit removes naming associated with and naming for the now - non-existent NXFE graphics layer. - - graphics/: Rename nxfe_reportposition to nxmu_reportposition. The - is no longer an nxfe layer. - - graphics/: Rename nxfe_redrawreq to nxmu_redrawreq. The is no - longer an nxfe layer. - - graphics/nxmu/nxmu.h: Rename nxfe.h to nxmu.h. There is no long an - nxfe layer. - - graphics/: Rename nxfe_state_s to nxmu_state_s. There is no longer - an nxfe layer. - - graphics/: Rename nxfe_conn_s to nxmu_conn_s. There is no longer an - nxfe layer. - From Gregory Nutt (2019-03-13). - * - graphics/: nx_openwindow() and nxtk_openwindow() now accept an - additional 'flag' parameter. This argument is not used at present but - will, eventually enable a RAM backed, per-window framebuffer. - - graphics/Kconfig: Add configuration to support a rambacked - framebuffer. Current marked as EXPERIMENTAL because this is a work in - progress. - From Gregory Nutt (2019-03-13). - * A little more progress toward the implementation of per-window - framebuffers. - - graphics/: Add logic to allocate the per-window framebuffer. - - graphics/: A few fragmentary thoughts on how a per-window - framebuffer could be represented and allocated. - Still missing: - - Logic that generates the low lever framebuffer renderers for the - per-window framebuffers, - - The logic that picks off the per-window framebuffer updates from - normal graphics device updates. This logic must update both the - per-window framebuffer and the graphics device (from the framebuffer). - From Gregory Nutt (2019-03-14). - * graphics/nxflig/pwfb: Clone logic for new bit blitters for per-window - framebuffers. From Gregory Nutt (2019-03-14). - * configs/teensy-3.x/usbnsh/defconfig: Fix a mismatch in types. From - Gregory Nutt (2019-03-14). - * graphics: Extend NXBE data structures to include the per-window - framebuffer (pwfb) vtable. Add logic to initialize the pwfb vtable. - From Gregory Nutt (2019-03-14). - * fs/procfs/fs_procfsuptime.c: Fix procfs typo. From Sebastien Lorquet - (2019-03-14). - * arch/arm/src/armv7-a/mmu.h: pdating the cp15_wrttb and cp15_wrdacr - functions to use inline assembly in the correct way. The incorrect - method was generating errors as ARMv7-a expects the MCR/MRC - instructions to provide registers as an argument(MRC p15, 0, , c2, - c0, 0) and the code was providing a constant value(and hence the build - error). From Bilal Wasim (2019-03-14). - * This commit brings the per-framebuffer logic to code-complete. Still - untested. - - graphics/nxbe: The moverectangle renderer now supports updates to - the per-window framebuffer (unclipped) as well as the graphics device - memory (clipped). - - graphics/nxbe: The filltrapezond renderer now supports updates to - the per-window framebuffer (unclipped) as well as the graphics device - memory (clipped). - - graphics/nxbe: The getrectangle method now returns data from the - per-window framebuffer if available. - - graphics/nxbe: The fillrectangle renderer now supports updates to - the per-window framebuffer (unclipped) as well as the graphics device - memory (clipped). - - graphics/nxmu: If a window supports a per-window framebuffer, then - redraw callbacks are suppressed and the device content is updated - from the shadow, per-window framebuffer. graphics/nxbe: The - copyrectangle renderer now supports updates to the per-window - framebuffer (unclipped) as well as the graphics device memory - (clipped). - - graphics/nxbe/nxbe_setsize.c: Reallocate the per-window framebuffer - when the window size changes. - From Gregory Nutt (2019-03-15). - * configs/nucleo-f446re: Add support for the Nucleo F446RE. From - Sebastien Lorquet (2019-03-15). - * Fix defconfigs. A few people have been lazy or are perhaps ignorant of - the procedures. But the have been committing .config files as though - they were defconfig files. Wrong, wrong, wrong. defconfig files are - specially formatted files that you create through 'make defconfig'. - From Gregory Nutt (2019-03-15). - * configs/open1788/nxlines/defconfig: Enable anti-aliasing. From - Gregory Nutt (2019-03-15). - * configs/open1788/pwfb: Add an example for testing per-window frame - buffers. arch/arm/src/lpc17xx: Add a configuration option to skip - over the framebuffer when adding DRAM to the heap. graphics: Early - fixes from testing per-window framebuffer. Still lots of problems. - From Gregory Nutt (2019-03-16). - * include/fixedmath.h: Add macros for conversion between types b16_t and - type double From Gregory Nutt (2019-03-16). - * app/graphics/nxbe/nxbe_setsize.c: Fix backward source/destination in - memcpy() in new per-window framebuffer logic. From Gregory Nutt - (2019-03-16). - * - graphics/nxbe/nxbe_bitmap.c: Fix another coordinate system problem. - - graphics/: Review use of device coordinate system with window - frambebuffer and make fixes accordingly. - - graphics/nxbe/nxbe_fill.c: Fix a coordinate system bug. Was trying - to update the window fraembuffer using the device coordinate system. - Need to use the relative coordinate system. - - graphics/: Use DEBUGASSERT instead of return an error since the is - no user to handle the errors within the NX server. Use - CONFIG_DEBUG_GRAPHICS instead of CONFIG_DEBUG_FEATURES in most cases. - - graphics/: Nothing under graphics/ should set the errno. - From Gregory Nutt (2019-03-17). - * libs/libnx/nxtk/nxtk_setsize.c: Add logic to redraw NXTK borders for - the case of per-window framebuffers. There are no redraw callbacks in - this case, so we cannot rely on the callbacks to redraw the borders. - From Gregory Nutt (2019-03-17). - * configs/lc823450-xgevk: Remove -nostdinc to avoid build error From - Masayuki Ishikawa (2019-03-18). - * libs/libc/libc.csv: Should be locale.h not local.h. From Joao Matos - (2019-03-18). - * libs/libnx/nxtk: Add logic to re-draw the frame when the toolbar is - added or removed. From Gregory Nutt (2019-03-18). - * libs/libc/libc.csv: Needed logic for correct compilation if not using - CONFIG_LIBC_WCHAR From Joao Matos (2019-03-18). - * libs/libnx/nxtk: Fix more cases where we were using the wrong - coordinate system. From Gregory Nutt (2019-03-18). - * binfmt/libnxflat/libnxflat_init.c: File descriptor leaks when nxflat - loading fails From Valmantas Palikša (2019-03-19). - * configs/lpcxpresso-lpc54628/pwfb: Add per-window framebuffer - configuration. From Gregory Nutt (2019-03-19). - * fs/littlefs/lfs_vfs.c: Lookahead should use bit unit not byte unit. - From Xiang Xiao (2019-03-19). - * libs/libc/string/lib_strsep.c: Add strsep BSD/Linux function. From - Xiang Xiao (2019-03-19). - * fs/mount and fs/unionfs: Support mount unionfs from nsh command. From - Xiang Xiao (2019-03-19). - * binfmt/libelf and libs/libc/modlib: Add relocation buffer table to - reduce filesystem access. From anchao (2019-03-19). - * binfmt/libelf/ and libs/libc/modlib: Add symbol buffer table to reduce - filesystem access. From anchao (2019-03-19). - * net/usrsock: Add mutual exclusion so that only user can perform a - socket request From zhangyuan7 (2019-03-19). - * net/icmp and icmpv6: Bind icmp callback from device to connection. - Resolves the issue that bind() could not be called before send() From - anchao (2019-03-19). - * net/udp/udp_callback.c: Initialize address structure to avoid random - values in padding. From anchao (2019-03-19). - * net/local/local_connect.c: Initialize lc_result before giving - lc_waitsem From zhangyuan7 (2019-03-19). - * net/local: Fixed deadlock issue by replacing nxsem_wait() with - net_lockedwait() so that we do not wait with the network locked. From - zhangyuan7 (2019-03-19). - * libs/libc/netdb: Support the nameserver change notification then we - can pass dns info from server to client in usrsock case. From Xiang - Xiao (2019-03-19). - * include/nuttx/compiler.h: Assume inline support if __STDC_VERSION__ - not defined. From Xiang Xiao (2019-03-19). - * libs/libxx/Makefile: Always add libxx_cxa_guard.cxx for uclibcxx. - From zhangyuan7 (2019-03-19). - * ibs/libc/Makefile, libs/libnx/Makefile, and mm/Makefile: Remove - obj-path MKDEPS option since make dependency target (MT) is not - supported by some toolchains. From anchao (2019-03-19). - * include/nuttx/userspace.h: Add add a new field (us_heapend) to struct - userspace_s that labels the end of the heap. From Xiang Xiao - (2019-03-19). - * arch/Kconfig: Move FPU options to a common place and unify the usage - by removing ARCH_CORTEXRxF. From Xiang Xiao (2019-03-19). - * arch/: Unify the cache interface for all architectures From Xiang - Xiao (2019-03-19). - * arch/armv7-m: Make the default NVIC_VECTAB_TBLOFF_MASK safer. The - base address of the new vector table must be aligned to the size of - the vector table extended to the next larger power of 2. From Xiang - Xiao (2019-03-19). - * arch/arm/armv7-a: Support thumb mode and fix interworking issue. - From zhangyuan7 (2019-03-19). - * arch/arm/src/armv7-a: Remove inclusion pg_macros.h for armv7-a since - this header file does not exist. From zhangyuan7 (2019-03-19). - * arch/arm/src/armv7-a: Guard some assembly files if configuration not - selected. From zhangyuan7 (2019-03-19). - * arch/arm/src/armv7-a/arm_head.S: Add weak attribute to - arm_data_initialize so platform could provide the new implementation as - needed. From zhangyuan7 (2019-03-19). - * arch/arm/src/armv7-a: Fix assemble error when including gic.h From - Xiang Xiao (2019-03-19). - * arch/arm/src/armv7-a/arm_gicv2.c: Don't use GIC_ICDDCR_ENABLEGRP1 for - NONSECURE since this bit doesn't exist in this mode. From liuzhuang - (2019-03-19). - * arch/arm/src/armv7-a/sctlr.h: Add SCR bit definitions. From Xiang - Xiao (2019-03-19). - * arm/armv7-a: Add mmu_l1_map_regions() to remove the code - duplication. From Xiang Xiao (2019-03-19). - * arch/arm: Add the initial cortex-a7 architecture support From - zhangyuan7 (2019-03-19). - * arch/arm: The last big change that unified the cache interfaces had a - bad side-effect: It also removed the memory barrier definitions that - were also in the removed architecture-specific cache.h header files. - Fixed by adding a new barriers.h header file that provides these - definitions. From Gregory Nutt (2019-03-19). - * ARMv7-A/R: Add barriers.h header file for consistency with ARMv7-M. - From Gregory Nutt (2019-03-19). - * arch/arm: Fix more errors resulting from universal cache interfaces. - The old cache-specific head file also provided a sneak way to include - other necessary header files. With the old cache.h removed, those - files all fail to build. From Gregory Nutt (2019-03-19). - * arch/arm/src/armv7-a/arm_scu.c: Another place where universal cached - control change borked a compile due to missing ARM_DSB() definition. - From Gregory Nutt (2019-03-19). - * arch/arm/src/stm32f7/stm32_tim.c: Add OUTTOGGLE mode for STM32f7 - timer From Valmantas Paliksa (2019-03-20). - * arch/arm/src/stm32f7/stm32_tim_lowerhalf.c: Add timer lowerhalf - driver for stm32f7. From Valmantas Paliksa (2019-03-20). - * drivers/can/mcp2515.c: Use kmm_zalloc to allocate device state - structure. From Valmantas Paliksa (2019-03-20). - * arch/arm/src/stm32f7/stm32_can.c: Add CAN driver with support for - three bxCAN interfaces. From Valmantas Paliksa (2019-03-20). - * arch/arm/src/stm32f7: Add ITM syslog support. From Valmantas Paliksa - (2019-03-20). - * arch/arm/src/stm32f7/stm32_can.c: Fix bittiming calculation. From - Valmantas Paliksa (2019-03-20). - * drivers/eeprom/spi_xx25xx.c: Add configurable SPI eeprom frequency. - From Valmantas Paliksa (2019-03-20). - * arch/arm/src/stm32f7/stm32_qspi.c: Added stm32f7 Quad SPI support. - From Valmantas Paliksa (2019-03-20). - * drivers/can/mcp2515.c: Fix MCP2515 compile errors. From Valmantas - Paliksa (2019-03-20). - * drivers/can/Kconfig: Add MCP2515 clock input config to KConfig. From - Valmantas Paliksa (2019-03-20). - * sched/sched and include/nuttx/arch.h: Rename sched_process_cpuload - to nxsched_process_cpuload. All internal sched_ functions should be - prefixed with nx. From Valmantas Paliksa (2019-03-20). - * arch/arm/src/armv7-a/Toolchain.defs: Correct conditional logic. Was - mixing C preprocessor and Makefile semantics. From Gregory Nutt - (2019-03-20). - * arch/arm/src/stm32/stm32_allocateheap.c: Change 'if - CONFIG_STM32_HAVE_CCM' to 'ifdef CONFIG_STM32_HAVE_CCM' to avoid a - warning when CONFIG_STM32_HAVE_CCM is not defined. From Gregory Nutt - (2019-03-20). - * binfmt/libelf/libelf_bind.c: Make naming of internal type compliant - with coding standard. Yes, the ELF32 types do not follow the standard - for historical reasons (and will be fixed someday), but let's not - perpetuate the naming violation. From Gregory Nutt (2019-03-20). - * arch/arm/src/stm32f7/stm32_qspi.c: Update for new universal cache - conrols. From Gregory Nutt (2019-03-20). - * arch/arm/src/armv7-m/up_ramvec_initialize.c: Correct bad - NVIC_VECTAB_TBLOFF_MASK definitions in previous commit. Were missing - bits in the mask. Raised DEBUGASSERT in - armv7-m/up_ramvec_initialize.c line: 144. From Mateusz Szafoni - (2019-03-20). - * libs/libnx/nxmu/nx_filltrapezoid.c: Fix a coordinate system error. - When no clipping rectangle is falls, it falls back to use the entire - window as for the clip. However, that window must then then be in - window relative coordinates, not in absolute device coordinates. From - Gregory Nutt (2019-03-20). - * configs/lpcxpresso-lpc54628: Add a configuration for - apps/examples/pwlines. From Gregory Nutt (2019-03-20). - * configs/stm32f769i-disco/netnsh/defconfig: Remove - CONFIG_STM32F7_QUADSPI=y from the configuration. This was apparently - set before the implementation was added. Now that the implementation - was added, the configuration will not build because it requires that - QSPI GPIO pin definitions be provided in the board.h header file. - From Gregory Nutt (2019-03-20). - * arch/arm/src/stm32f7/stm32_qspi.c: Fix a warning about QSPI_DMA_PRIO - being redefined. From Gregory Nutt (2019-03-20). - * arch/arm/src/stm32f7/stm32_qspi.c: Fix a warning about ARM_DSB() - being implicitly defined. From Gregory Nutt (2019-03-20). - * arch/ and configs/: Fix more errors related to cache interface - changes. From Gregory Nutt (2019-03-20). - * arch/arm/src/armv7-a/arm_addrenv_utils.c: Fix a new cache interface - related warning. From Gregory Nutt (2019-03-20). - * Backs out part of a commit. When CONFIG_SCHED_CPULOAD_EXTCLK is - defined, the prototype must still be available in nuttx/arch.h From - Gregory Nutt (2019-03-20). - * Rename sched_process_timer to nxsched_process_timer. That is the - appropriate name for an internal sched/ function (still many named - incorrectly). From Gregory Nutt (2019-03-20). - * Rename sched_timer_expiration to nxsched_timer_expiration. That is - the appropriate name for an internal sched/ function (still many named - incorrectly). From Gregory Nutt (2019-03-20). - * Rename sched_alarm_expiration to nxsched_alarm_expiration. That is - the appropriate name for an internal sched/ function (still many named - incorrectly). From Gregory Nutt (2019-03-20). - * arch/arm/src/stm32f7/stm32_qspi.c: Fix QuadSPI priority constants. - From Valmantas Paliksa (2019-03-21). - * drivers/ioexpander/gpio.c: Support reading and writing gpio pins - using cat and echo. From Valmantas Paliksa (2019-03-21). - * arch/arm/src/stm32/stm32_dfumode.c: Add logic to reboot the STM32 in - DFU mode. Current implementation only works for STM32F2 and F4. From - Bill Gatliff (2019-03-21). - * drivers/ioexpander/gpio.c: Return EINVAL if written value is not 0 - nor 1. From Valmantas Paliksa (2019-03-22). - * arch/arm/src/stm32/stm32_oneshot.c: Corrects error introduced by - and earlier commit: Also affects stm32_oneshot.c (I noticed that ps - on my STM32F4 did not show any CPU load in nuttx-7.27 onward). From - Maximilian Kriegleder (2019-03-22). - * arch/arm/src/stm32/stm32_tickless.c and - arch/arm/src/stm32/stm32_freerun.c: Apply Max's stm32_oneshot.c fix - to the tickless implementation and to the freerunning time. From - Mateusz Szafoni (2019-03-22). - * drivers/video/max7456.c: Support for the Maxim MAX7456 - on-screen-display chip. From Bill Gatliff (2019-03-24). - * configs/omnibusf4: Add MAX7546 support. From Bill Gatliff (2019-03-24). - * arch/arm/src/stm32/stm32_pwm.c: Set CCPxP and CCPxNP bits if polarity - is negative. From Mateusz Szafoni (2019-03-24). - * arch/arm/src/stm32/stm32_pwm.c: Missing commas in initializers can - break compilation in certain configurations. From Mateusz Szafoni - (2019-03-24). - -7.30 2019-05-19 Gregory Nutt - - * arch/ and config/ files: All board interfaces (those starting with - board_) must be defined in board-specific logic. Otherwise, they cannot - be customized for specialized usage by different boards. The - board_reset() interface was defined in architecture-specific logic that - only called up_systemreset(). That is useless! This change removes the - board_reset() implementation from the architecture-specific code and - re-implements it in the src/ directory of each board that has - CONFIG_BOARDCTL_RESET enabled. That is the correct functional - partitioning. From Gregory Nutt (2019-03-25). - * configs/omnibusf4/src/stm32_reset: Add boardctl() reset logic. From - Bill Gatliff (2019-03-25). - * arch/arm/src/stm32f7/stm32_qspi.c: Fix QuadSPI interrupts. This commit - essentially replaces wrongly named configuration variables - STM32F7_QSPI_INTERRUPTS into CONFIG_STM32F7_QSPI_INTERRUPTS. Also fixes - some getreg/putreg where register addresses were used instead of - register offsets From Pierre-Olivier Vauboin (2019-03-25). - * graphics/nxmu, include/nuttx/nx/nxmu.h, libs/libnx: Add new - server->client callback to notify the window client of server events. - Remove the old 'blocked' callback and just make it one case of an 'event' - callback. From Gregory Nutt (2019-03-25). - * graphics/ and libs/libnx: Implement new interfaces nx_synch() and - nxtk_synch(). This are used to synchronize the NX server with the window - client. Currently most of the logic is equivalent to nx_block() and - nxtk_block(), but with slightly different semantics. They are separate - now because they are likely to diverge in the future. From Gregory Nutt - (2019-03-25). - * configs/stm32f103-minimum/src/: USB reset was not working appropriately - since the pin connected to D+ was incorrectly defined and the pullup/down - logic was reversed. From Matias N (2019-03-25). - * configs/omnibusf4: Add board_ioctl() which is needed only if - CONFIG_BOARDCTL_IOCTL=y is selected; Update NSH configuration to enable - board IOCTLs and DFU mode reset. From Bill Gatliff (2019-03-26). - * include/limits.h: Remove the duplicate TMP_MAX definitions. The - standard requires that TMP_MAX defines be in stdio.h. From Xiang Xiao - (2019-03-26). - * include/sys/select.h: Fix compiler error when CONFIG_NSOCKET_DESCRIPTORS - is undefined. From Xiang Xiao (2019-03-26). - * arch/arm/src/armv7-a/Toolchain.defs: Fix 'cc1: warning: switch - -mcpu=cortex-a7 conflicts with -march=armv7-a switch' From Xiang Xiao - (2019-03-26). - * drivers/usbdev/cdcacm.c: This fixes a problem where the host sent a "get - descriptor" message of type "standard" with a recipient of type - "interface". Since the composite driver would only pass messages to the - child interfaces when a message was not "standard", this message was not - handled. I changed the condition so that the composite driver checks not - only if this is a "standard" message but if it is also directed to the - device. Otherwise, the handling is delegated to the children of the - composite device. From Matias N (2019-03-26). - * drivers/video/max7456.c: Adds a read-only (for now) /dev/osd0/CM - interface for obtaining the chip's onboard NVM character map data. Use - seek() to position the cursor over a desired subset of bytes, or request - a large read to obtain the entire EEPROM memory contents. Values are - returned in binary form. Use hexdump, etc. to format them for viewing. - From Bill Gatliff (2019-03-26). - * configs/nucleo-l476rg/src/stm32_gpio.c, - configs/stm32f103-minimum/src/stm32_gpio.c, and - drivers/sensors/zerocross.c: Fix some errors when debug assertions are - enabled. From Matous Pokorny (2019-03-29). - * configs/boardctl.c, include/sys/boardctl.h: Add a command to start the - VNC server. From Gregory Nutt (2019-04-02). - * drivers/syslog/syslog_stream.c: In syslog buffered mode, avoid IOB alloc - lock-up with heavy network activity. This change alters the buffered - syslog logic to use 'iob_tryalloc' instead of blocking 'iob_alloc' to - avoid syslog printing from getting stuck when all IOBs are depleted by - network activity. An issue was seen when large incoming TCP transfer - uses free IOB buffers and processing threads try to use syslog which then - block at iob_alloc. From Jussi Kivilinna (2019-04-03). - * arch/stm32f7: Support bypassing the input clock divider on the SDMMC - interface. This enables using the full clock speed provided to the SDMMC - interface with no dividing. From Anthony Merlino (2019-04-03). - * arch/arc/stm32f7: Add support for using the HSE in bypass mode, - configured by board.h From Anthony Merlino (2019-04-03). - * arch/arm/stm32f7: Fixes some macros related to OTGFS/OTGHS preventing - OTGHS from working. From Anthony Merlino (2019-04-03). - * arch/arm/src/nrf52/nrf52832_errdata.c: Fix compiler error when following - C89. From Erik Englund (2019-04-03). - * PIC32MZ: The commit corrects the gpioirq when mismatch mode is selected - and add support for edge detect mode. Slew Rate was also added for - completeness. From Abdelatif Guettouche (2019-04-03). - * libs/libc/stdio/lib_libvsprintf.c: Restore support for printing NULL - string as "(null)". Legacy printf supported printing "(null)" in place - for NULL string: printf("null: %s\n", NULL); => null: (null). This - commit restores this functionality for new printf library. From Jussi - Kivilinna (2019-04-04). - * fs/littlefs/lfs.c: Fix lfs_format bug. In superblock disk root-block - assignment, the second must be root[1]. From YanLin Zhu (2019-04-04). - * sched/pthread: Added non-standard pthread_get_stackaddr_np() and - pthread_get_stacksize_np(). From Joao Matos (2019-04-04). - * include/pthread.h and libs/libcpthread: Fixed - pthread_attr_get/setstacksize param type to size_t. From Joao Matos - (2019-04-04). - * Fixed R_OK/X_OK definitions to match POSIX. From Joao Matos (2019-04-04). - * libs/libc/locale/lib_setlocale.c: Improved error handling in - setlocale(). From Joao Matos (2019-04-04). - * libs/libc/misc/lib_utsname.c: Fixed return code in uname(). From Joao - Matos (2019-04-04). - * include/sys/syscall.h and syscall/: Added support for munmap() syscall. - From Joao Matos (2019-04-04). - * include/alloca.h: Add alloca.h. Included limited implementation of - alloc() that is only available for GCC versions 3 and above. From Joao - Matos (2019-04-04). - * configs/nucleo-144/include/board.h: Added STM32_RCC_DCKCFGR2_DSISRC - definition. From Joao Matos (2019-04-04). - * include/signal.h: Add commented out definition of the si_addr field. - From oao Matos (2019-04-04). - * arch/arm/src/stm32f7/stm32_fmc.h: Updated stm32_fmc.h with more FMC - definitions. From oao Matos (2019-04-04). - * Added support for KSZ8081RNA PHY to LPC17xx Ethernet driver. From - jjlange (2019-04-04). - * Refresh configurations. Remove CONFIG_NXWM_UNITTEST=y, no longer in - Kconfigs. From Gregory Nutt (2019-04-04). - * syscall/syscall.csv: Fix a warning due to inconsistencies in return - type. From Gregory Nutt (2019-04-04). - * syscall/syscall.csv: Correct an error in creating the munmap() proxy if - CONFIG_FS_RAMMAP is not defined. From Gregory Nutt (2019-04-04). - * graphics/, lib/libnx, include/nutt/nx: Add support for modal windows. - From Gregory Nutt (2019-04-05). - * drivers/contactless/mfrc522.c: Fixes for MFRC522. In mfrc522_read - uid.sak must be different from 0x04 not as before from 0x00. SAK == 0x00 - is a valid PICC type. Add interface to read MIFARE Ultralight data From - Mateusz Szafoni (2019-04-05). - * configs/nucleo-l073rz: add mfrc522 support From Mateusz Szafoni - (2019-04-05). - * graphics/nxbe: Implement hooks that will eventually support software - 'sprites', i.e., things like OSD functionality, a software cursor, - selection rectangles, window resize preview, etc. From Gregory Nutt - (2019-04-05). - * Added support for Ethernet PHY ioctl() on LPC17xx. From jjlange - (2019-04-05). - * include/nuttx/nx/nxcursor.h: Add a header file describing the - implementation of an NX cursor interface. From Gregory Nutt (2019-04-06). - * libs/libnx/nxmu: Add front-end, client, message handling needed for - cursor support. Still actual cursor logic yet, just message handling. - graphics/nxmu and graphics/nxbe: Add back-end message handling needed - for cursor support. No actual cursor logic yet, just message handling. - From Gregory Nutt (2019-04-06). - * graphics: Extend the definition of the cursor image structure. From - Gregory Nutt (2019-04-07). - * arch/arm/src/stm32f7: USB High speed for STM32F7 series From Ramtin - Amin (2019-04-07). - * I2C1 config on stm32f746g-disco. Typo in stm32f7/stm32_i2c.c From - Matthew Koch (2019-04-08). - * Kconfig warnings: defaults for choice values not supported From Matthew - Koch (2019-04-08). - * arch/arm/src/stm32f7: Ported the PWM from F4 to F7. From Eduard Niesner - (2019-04-08). - * graphics/nxbe: Correct some experimental cursor drawing algorithms. - From Gregory Nutt (2019-04-08). - * graphics/nxglib/nxglib.h: Move internal function prototypes from - include/nuttx/nx/nxglib.h to graphics/nxglib/nxglib.h. From Gregory Nutt - (2019-04-08). - * Support for STM32L071X and a few improvements for STM32F0L0: - arch/arm/src/stm32f0l0: add peripherals configuration for STM32L0 - arch/arm/src/stm32f0l0: a few fixes for USART - arch/arm/include/stm32f0l0/stm32f0_irq.h: use names as in other STM32 - arch/arm/include/stm32f0l0/chip.h: use names as in other STM32 - From Mateusz Szafoni (2019-04-09). - * Adds support for software cursors with differing pixel depths on multiple - displays. This bring the software cursor to code complete. Still - untested. From Gregory Nutt (2019-04-09). - * graphics/nxbe: Add some missing checks: Don't permit the software - cursor to be enabled until it has been assigned an image; don't perform - any cursor operations while the cursor is disabled. From Gregory Nutt - (2019-04-10). - * include/nuttx/usb/hid.h: The usbhid_descriptor_s struct defined in hid.h - included some optional fields that should not be hard-defined as part of - that structure. An arbitrary number of optional entries could be - included in the descriptor, but that is not properly represented. No - code on NuttX currently depends on the structure definition with an - optional descriptor so it is safe to remove. From Matias N (2019-03-30). - * arch/arm/src/stm32f7/stm32_otgdev.c: Correct hard-coded FIFO size that is - wrong for OTG FS. From Ramtin Amin (2019-04-11). - * /graphics/nxglib/cursor: Correct two locations where y was used but - where x was intended. From Gregory Nutt (2019-04-11). - * Documentation/NXGraphicsSubsystem.html: Update documentation to describe - blocking, synchronization, and cursor interfaces. From Gregory Nutt - (2019-04-11). - * arch/arm/src/stm32f: Added support for TICKLESS mode. From Valmantas - Paliksa (2019-04-12). - * arch/arm/src/stm32f7/stm32_spi.c: Add SPI DMA threshold configuration. - From Valmantas Paliksa (2019-04-12). - * arch/arm/src/stm32f7/stm32_ethernet.c: Auto-generate Ethernet MAC - address from device unique ID. From Valmantas Paliksa (2019-04-12). - * arch/arm/src/stm32f7/stm32_flash.c: Add flash block mapping support for - progmem. From Valmantas Paliksa (2019-04-12). - * arch/arm/src/stm32f7/stm32_uid.c: Add UID access. From Valmantas - Paliksa (2019-04-12). - * drivers/can/can.c: Support multiple readers of the same port From - Valmantas Paliksa (2019-04-12). - * drivers/can/mcp2515.c: mcp2515 driver optimizations. From Valmantas - Paliksa (2019-04-12). - * arch/arm/src/stm32f7/stm32_can.c: CAN fixes. From Valmantas Paliksa - (2019-04-12). - * graphics/nxbe: More work cursor coordinates. Still at least one big bug - in the logic. From Gregory Nutt (2019-04-13). - * arch/arm/src/stm32: As noted by Matias N, the FLASH base address used - was incorrect. It was using the address of the FLASH data, not the - address of the FLASH registers. From Gregory Nutt (2019-04-13). - * arch/arm/src/stm32/stm32f10xxf30xx_flash.c: RCC register access should - not be offset by FLASH register base. From Matias N (2019-04-13). - * graphics/nxbe: This seems to fix the last of software cursor bugs. On - the LPC54, it looks pretty clean. Not flickery as I feared. Probably - not so good on low end displays. Possible transient artifacts? Not - sure, maybe. Or maybe my eyes are playing tricks from staring at this - too long. From Gregory Nutt (2019-04-13). - * configs/stm32f103-minimum/src: Add PROCFS automount support From Alan - Carvalho de Assis (2019-04-14). - * net/utils: net_lock() and net_restorelock() now return a value. That - values is the standard zero on success; negated errno value on failure. - This return value is only needed for -ECANCELED. That cancellation - indication needs to ripple all the way back to the highest levels where - the cancellation can be acted on. This commit only adds the return - value; it does not add checking for the return values of net_lock() and - net_restorelock() at higher levels. That is required too. From Gregory - Nutt (2019-04-14). - * configs/stm32ldiscovery/src: Add support for board_late_initialize(), - Move common initialization logic out of board_app_initialize() into new - file stm32_bringup.c From Gregory Nutt (2019-04-15). - * drivers/leds/userled: Fix ledset validity check in ULEDIOC_SETALL - ioctl. From Jussi Kivilinna (2019-04-15). - * arch/arm/src/stm32/Kconfig: It seems one option in the timer - configuration was lost at some point. From Matias N (2019-04-15). - * stm32f7: I2C Interrupt storm fix From David Sidrane (2019-04-16). - * arch/arm/src/stm32l4/stm32l4_pwm.c Fix register addr, en_bit and resetbit - for pwm timers From Fabian Justi (2019-04-17). - * configs/nucleo-l476rg/src/nucleo-l476rg.h Fixed naming stm32l4_pwm_setup - configs/nucleo-l476rg/src/stm32_appinit.c Fixed naming stm32l4_pwm_setup - From Fabian Justi (2019-04-17). - * stm32f7: I2C track bad state. The previous commit was true draconian. - Now we track bad state and so the SW reset only when it occurs. From - David Sidrane (2019-04-17). - * arch/arm/src/stm32f7: stm32f76xx77xx_pinmap.h: Adds additional pin - alternate function for SPI2 From Anthony Merlino (2019-04-17). - * include/cxx/cstdlib: Add std::random() From Gregory Nutt (2019-04-21). - * arch/arm/src/cxd56xx and arch/arm/include/cxd56xx: Add initial CXD56xx - chip sources. From Nobuto Kobayashi (2019-04-22). - * configs/spresense: Add Spresense board support. From Nobuto Kobayashi - (2019-04-22). - * drivers/usbhost/usbhost_storage.c: Correct typo "const const" to "const". - arch/arm/src/stm32/stm32_i2s.c: In debug assertions, it on a sample rate - of 0, but based on other code comments this value implies disabling the - i2s master clock. - arch/arm/src/stm32/stm32_usbhost.h and arch/arm/src/stm32/Kconfig: Allow - vbus monitoring for the OTG_HS host driver. - From Jason Harris (2019-04-23). - * drivers/serial: The upper half serial driver configuration - CONFIG_SERIAL_DMA used to enable DMA on both RX and TX streams. This was - replaced with CONFIG_SERIAL_RXDMA and CONFIG_SERIAKL_TXDMA which will - permit supporting DMA on only one or both streams. From Gregory Nutt - (2019-04-24). - * configs/stm32f103-minimum/src/stm32_mcp2515.c: Patch up more breakage - found in build testing. Looks like fields were added and removed by - commit eb7373cedfa, but the implementation that uses the structure were - not updated. From Gregory Nutt (2019-04-24). - * arch/arm/src/stm32h7/stm32_start.c: Inclusion of nvic.h should not be - conditioned on CONFIG_ARCH_FPU. From Mateusz Szafoni (2019-04-25). - * arch/arm/src: Remove dependency on CONFIG_ARCH_FPU for inclusion of - nvic.h in all other *_start.c files. From Gregory Nutt (2019-04-25). - * nucleo-144: Regenerate f767-netnsh/defconfig. It appear that - CONFIG_NET_SOCKOPTS, is no more explicitly needed. From Phil Coval - (2019-04-25). - * configs/nucleo-h743zi/nsh/defconfig: Enable the FPU. From Jason Harris - (2019-04-25). - * Revert "sched/clock/clock_initialize.c: clock_inittime() needs to be - done with CONFIG_SCHED_TICKLESS and clock_initialize should skip - clock_inittime() for external RTC case since the RTC isn't ready yet." - This reverts commit 2bc709d4b99447f8decdc7580fdabab6dd8939b1. Commit - 2bc709d4b99447f8decdc7580fdabab6dd8939b1 was intended to handle the case - where up_timer_gettime may not start from zero case. However, this - change has the side-effect of breaking every implementation of tickless - mode: After this change the tickless timer structures are used before - they are initialized in clock_inittime(). Initialization happens later - when up_initialize is called() when arm_timer_initialize(). - - Since the tickless mode timer is very special, one solution might be to: - (1) Rename xxx_timer_initialize to up_timer_initialize, (2) Move - up_timer_initialize to include/nuttx/arch.h, and (3) Call it from clock - subsystem instead up_initialize. Basically, this change make timer - initialization almost same as rtc initialization(up_rtc_initialize). For - now, however, we just need to revert the change. From Gregory Nutt - (2019-04-26). - * nucleo-144: Mount sysfs for ifconfig for f767-netnsh/defconfig. Even if - ifconfig is working to set IP, it will not work to display NICs (without - args) From Phil Coval (2019-04-26). - * nucleo-144: Update mbed URL and fix mistakes From Phil Coval (2019-04-26). - * stm32f7: Add basic PWM support to nucleo-144 board. More PWMs and multi - channels support may be investigated and added later. Tested on - nucleo-f767zi. From Phil Coval (2019-04-27). - * configs/nucleo-h743zi: Add support for I2C devices: ssd1306, pca9635, - i2ctools From Mateusz Szafoni (2019-04-28). - * Documentation/NuttxPortingGuide.html & drivers/syslog/README.txt: vsyslog - returns nothing. From Mateusz Szafoni (2019-04-28). - * configs/same70-xplained/twm4nx: Add a configuration for test Twm4Nx - using VNC. From Gregory Nutt (2019-04-28). - * configs/nucleo-l476rg/src: Make naming of functions consistent: - stm32l4_ no stm32_. Inconsistency noted by Phil Coval in Bitbucket PR - 864. This commit takes a different approach to resolving the naming - inconsistency, however. From Gregory Nutt (2019-04-29). - * arch/arm/src/stm32l4: Add USB FS device support. From Juha Niskanen - (2019-04-29). - * configs: Update all configurations to account for the configuration - changes resulting from the separation of network initialization logic - from NSH. From Gregory Nutt (2019-04-29). - * configs/same70-xplained/twm4nx/defconfig: Updated to correctly - initialize network. I am getting a VNC display. It is incomplete and - crashes thereafter. But that is a start. From Gregory Nutt (2019-04-29). - * In many files: Remove references to CONFIG_DISABLE_SIGNALS. Signals can - no longer be disabled. From Gregory Nutt (2019-04-29). - * net/socket/getsockname.c: Fix addrlen check in socket debug features. - Getsockname checked erroneously a pointer against 0, where the intention - was to dereference the pointer and to check the length. This causes also - a compilation failure if the code is compiled with CONFIG_DEBUG_FEATURES - and with -Werror flag set. From Jukka Laitinen (2019-04-30). - * drivers/net/phy_notify.c: Change sprintf to strncpy in phy_notify. On - some platforms, the sprintf doesn't accept a const char* as a format - argument. From Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7: Add STM32H7 SDMMC driver. This is the initial - SDMMC driver for STM32H7. It is mostly copied from STM32F7, with - modified register addresses and bits, and IDMA added. This is still WIP; - it only works with IDMA. From Jukka Laitinen (2019-04-30). - * configs/nucleo-h743zi/include/board.h: Add default clock configuration - for SDMMC for nucleo-h743zi. From Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7/chip/stm32h7x3xx_rcc.h: Fixes for STM32H7 RCC - definitions: (1) Fix compilation for UART7, UART8 and I2C4, (2) Add - backup domain control registers. From Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: Set the STM32H7 default HSI - pre-divider to 4. The I2C driver currently assumes HSI clock to be - 16MHz. From Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7/chip/stm32h7x3xx_memorymap.h: Add the STM32H7 - SYSTEM_UID and DEBUGMCU_BASE register definitions. From Jukka Laitinen - (2019-04-30). - * arch/arm/src/stm32h7/chip/stm32h7x3xx_pinmap.h: Add the - GPIO_ETH_RMII_RXD1 pinmap definition for STM32H7. From Jukka Laitinen - (2019-04-30). - * arch/arm/src/stm32h7/stm32_i2c.c: Fix I2C4 compilation for STM32H7. From - Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7/: Add stm32h7 Ethernet driver. This is the initial - push for the Ethernet driver. The driver has been tested to be working - on a nucleo board. This is still WIP, it doesn't for example do MAC - filtering on HW level, but just receives all ethernet packets. From - Jukka Laitinen (2019-04-30). - * arch/arm/src/stm32h7/: Add timer devices driver for STM32H7. This is - mostly a forklift from stm32f7 with some h7 specific modifications. From - Jukka Laitinen (2019-04-30). - * - Mostly arch/arm/src/imxrt and include/imxrt: This commit gets imx1020 - family support started. It is pretty similar, but subtly different, to - 1050/60 (less PLLs, less GPIO banks, differently numbered ports etc. - etc.). I think it's time to at least look at what needs to be done - before we can get these into the mainline kernel even though they're not - properly mature yet. Core memory functions, PLLs, serial and networking - are all working, but there's no stress-testing or similar been done...I'm - not aware of anything broken, but there again I haven't looked too hard. - - I want to go through and start moving each of the imxrt family-specific - files into its own subdirectory to tidy things up a bit, and remove the - vast majority of ifdefs from the mainline code...but I think it's - appropriate to separate the cleanup steps from the new-chip-support - steps to keep things a bit more compartmentalized. Next week is a travel - week so it's possible I'll get time on the cleanup side of the house. - - I can't be 100% certain I didn't inflict casualties on the imxrt1050/60 - code in the process of doing this, but nsh for 1050 and netnsh and nsh - for the 1060 both compile correctly, so if I did break anything it's - going to be properly evil and difficult to find. - - - Directory re-arrangement and splitting of each imxrt family variant - - Prevent intermittent SDCard timeouts by increasing timer in line with - spec. - - Support data dump on Hardfault - - Fix missing ccm definitions and wrong iomux offset - - Prevent hardfault when can't read from ENET PHY - - More consistent Ethernet pinmux. - From Dave Marples (2019-04-30). - * include/nuttx/usb/hid.h: The usbhid_descriptor_s struct defined in - hid.h included some optional fields that should not be hard-defined as - part of that structure. An arbitrary number of optional entries could be - included in the descriptor, but that is not properly represented. No - code on NuttX currently depends on the structure definition with an - optional descriptor so it is safe to remove. - * Documentation/NuttShell.html: Command date is misspelled as data in - chapter 2.12 Show or set the date and time (date). From Michał Łyszczek - (2019-05-01). - * configs/same70-xplained/twm4nx/defconfig: Increase packet MTU to 1500. - From Gregory Nutt (2019-05-03). - * Fix build for battery gauge From Tom Kopriva (2019-05-03). - * configs/same70-xplained/twm4nx/defconfig: Switch to 8BPP. That is the - negotiated size requested by the VNC client anyway. From Gregory Nutt - (2019-05-03). - * graphics/vnc/server/vnc_color.c: Fix an error in color conversion. From - Gregory Nutt (2019-05-03). - * configs/lpcxpresso-lpc54628: Add a Twm4Nx configuration. From Gregory - Nutt (2019-05-04). - * arch/arm/src/common/up_initialize.c: up_initialize.c needs to know about - ramlog_consoleinit() From Jason Harris (2019-05-04). - * NX graphics: This commit adds support for hiding windows. This features - is needed by Twm4Nx: When a window is iconified, the icon should appear - on the background and the window should disappear (i.e., be hidden). The - windows needs to remain healthy and to be updated in all ways, but it - cannot affect the display content. - - Conversely, when the icon is clicked, the icon needs to be hidden on - the background and the window needs to be restored in its current state - (which may be different than the state of the window at the time it - was iconified. - From Gregory Nutt (2019-05-05). - * arch/arm/src/stm32h7: Add missing parts for timer driver: Add the - missing header files, add the driver Kconfig, and add it to make - system. From Jukka Laitinen (2019-05-05). - * configs/nucleo-h743zi/include/board.h: Add the input clock frequency - definitions for all the drivers. Assumes internal clock source for all - the timers. From Jukka Laitinen (2019-05-05). - * arch/arm/src/stm32h7/stm32_tim.c: don't use hardcoded UIF interrupt - From Mateusz Szafoni (2019-05-06). - * Add missing files of BMP180 example for nucleo-l476rg From Fabian Justi - (2019-05-06). - * drivers/sensors/apds9960.c: Initial state of allocated structure was not - being set. Noted by Leif Jacob. From Gregory Nutt (2019-05-06). - * graphics/nxbe/nxbe_setvisibility.c: Fix a missed redraw command in last - NX visibility changes. From Gregory Nutt (2019-05-06). - * graphics/: Windows can now be created in the hidden state. This can be - used to clean up initial window presentation which may involve several - steps. This makes those steps all invisible until nx[tk]_setvisibility() - is called to make the windows visible. From Gregory Nutt (2019-05-07). - * libs/libnx/nxtk/nxtk_events: Fix an error in handling mouse events for - framed windows. When drawing, NX may report mouse positions outside of - the Window. The is only for NX windows, but the outside-the-side - positions were being discarded by nxtk_events(). From Gregory Nutt - (2019-05-07). - * net/sixlowpan/sixlowpan_hc06.c: Correct an endian-ness problem in HC06 - decompression. From Ivan Ucherdzhiev (2019-05-08). - * arm/src/lpc54xx/: Bring in the USB FS OHCI driver from LPC17. This is a - quick'n'dirty port that I will finish sometime later (I hope). - Currently, it is missing hardware clocking setup and is not even hooked - into the build system yet. Needless to say it does not yet even - compile. From Gregory Nutt (2019-05-08). - * Documentation/NXGraphicsSubsystem.html: Add documentation for new - nx[tk]_modal() and nx[tk]_setvisibility() interfaces. From Gregory Nutt - (2019-05-08). - * arch/arm/src/stm32f0l0: Initial ADC support and some improvements for - the STM32 M0 From Mateusz Szafoni (2019-05-09). - * configs/b-l072z-lrwan1: add ADC example From Mateusz Szafoni (2019-05-09). - * graphics/: Add new NX interfaces to query if a window is hidden or not. - From Gregory Nutt (2019-05-09). - * libs/libnx/nxtk/nxtk_opentoolbar.c: Refuse to open a toolbar of height - zero or less. From Gregory Nutt (2019-05-10). - * graphics/nxbe/nxbe_getrectangle.c: Fix an error in coordinate system - usage. Expected rectangle in device coordinate frame, but was passing - the rectangle in window-relative coordinate frame. From Gregory Nutt - (2019-05-10). - * nrf24l01: don't block in read if file descriptor is O_NONBLOCK. Add - support for "multicast" TX mode - no waiting for ACK (needs to be enabled - with fcntl SETTXPAYLOADNOACK) From Leif Jakob (2019-05-11). - * libs/libnx/nxmu/: Add a few bad input parameter checks. - configs/lpcxpresso-lpc54628/twm4nx/defconfig: Need to enable the NX - library. From Gregory Nutt (2019-05-12). - * libs/libnx/nxglib/nxglib_intersecting.c: Correct bogus logic in - nxgl_interesting. Good to know I was stupid then too and that is it not - just a recent thing. From Gregory Nutt (2019-05-13). - * arch/arm/src/stm32l4/stm32l4_usbdev.c: Add missing PWR USBV enable, - correct two USB register bits From Juha Niskanen (2019-05-14). - * arch/arm/src/stm32l4: Port HSI48 and CRS from STM32F0L0 From Juha - Niskanen (2019-05-14). - * arch/arm/src/stm32 and arch/arm/src/stm32f0l0: Port STM32F7 I2C to - STM32F3 and STM32F0L0 From Mateusz Szafoni (2019-05-15). - * configs/b-l072z-lrwan1: Add nxlines_oled example (ssd1306). Add support - for the I2C tool From Mateusz Szafoni (2019-05-15). - * configs/nucleo-f303ze: nxlines_oled example (ssd1306) From Mateusz - Szafoni (2019-05-15). - * graphics/: Fix an oversight in the implementation of per-window - framebuffers. It is true that redraw callbacks can be suppressed for all - cases ... EXCEPT ONE: When the window is resized to a larger size, then - the newly exposed territory must be drawn for the first time. From - Gregory Nutt (2019-05-16). - * graphics/nxterm and configs/boardctl.c: Replace specific interfaces - between boardctl and nxterm with a generalized IOCTL interface. From - Gregory Nutt (2019-05-16). - * graphics/nxterm: Add a new IOCTL that can be used to inform NxTerm that - the size of a window has changed. From Gregory Nutt (2019-05-16). - * configs/stm32f4discovery: Keep c++ global constructor symbols From - Masayuki Ishikawa (2019-05-17). - * arch/arm/src/stm32/Kconfig: simplify ARCH_HAVE_FPU selection and remove - redundant options for F207 From Mateusz Szafoni (2019-05-17). - * drivers/usbmisc: Add FUSB303 driver From Juha Niskanen (2019-05-17). - * sched/signal/sig_default.c: The abnormal termination handler was just - calling exit() conditionally when, for example, Ctrl-C is sent to a - task. The abnormal termination handler must obey the rules of - cancellation points: If cancellation is disabled, then the abnormal - termination logic must wait for cancellation to be re-enabled; If - cancellation is deffered then the abnormal termination logic may have to - wait for the victim task to enter or exit a cancellation point. From - Gregory Nutt (2019-05-17). - * arch/arm/src/stm32f0l0: Add support for AES, RND, and HS148 for L0. - Move HSI48 enable from stm32_usbdev.c to stm32xx_rcc.c From Mateusz - Szafoni (2019-05-17). - -7.31 2019-07-21 Gregory Nutt - - * drivers/net/telnet.c: Handle ctrl events (SIGINT, SIGSTP). From - Valmantas Paliksa (2019-05-21). - * arch/arm/src/stm32/Kconfig: Correct some typos in conditional logic. - From Maximilian Kriegleder (2019-05-21). - * configs/stm32l476vg-disco and configs/stm32l4r9ai-disco: Fix an error in - defconfig files because a line in the rcS file was longer than the - configured NSH command line. From Juha Niskanen (2019-05-21). - * arch/arm/src/stm32l4: Make STM32L4 CRS synchronization source board - configurable. - configs/nucleo-l432kc: Add new configuration settings to board.h - configs/nucleo-l452re: ditto - configs/nucleo-l496zg: ditto - configs/stm32l476vg-disco: ditto From Juha Niskanen (2019-05-21). - * configs/lpcxpresso-lpc54628: Add another Twm4Nx configuration for - working out the new CONTEMPORARY theme. From Gregory Nutt (2019-05-21). - * Removed all references to CONFIG_DISABLE_POLL. The standard POSIX poll() - can no longer be disabled. From Gregory Nutt (2019-05-21). - * Documentation/: Applies a stylesheet to static HTML files. I've also - tried to put the TOC of each document to the side, where it made sense - (in some documents the TOC was actually inside a section so it wasn't - possible). In some cases the TOC is built with a table, in others with a -
    element, so I had to accommodate for this. I also didn't go into - collapsing, although this could really help for some long TOCs. From - Matias N (2019-05-21). - * configs: Change CONFIG_NSH_MACADDR to CONFIG_NETINIT_MACADDR From - Masayuki Ishikawa (2019-05-22). - * drivers/net/telnet.c: I/O thread now offloads reading from socket from - client thread to the I/O thread. From Valmantas Palikša (2019-05-22). - * arch/mips/src/mips32/up_vfork.c: Fix a copy-paste error. On vfork, the - GP register was being set to the new SP value vs. the context GP value. - NOTED in Bitbucket issue 155. From Gregory Nutt (2019-05-22). - * graphics/nxbe/nxbe_raise.c: Fix a critical list handling bug in the - graphics system. When a lower-level window was raised while a model - window was in place, then list corruption could occur. From Gregory Nutt - (2019-05-23). - * Rename all arch//src//chip to - arch//src//hardware. This eliminates a name collision that - is usually harmless but does cause problems at the time. The problem is - because the include path includes '.' and 'chip/.', therefore an - inclusion like '#include /src//chip - and at arch//src/chip/chip From Gregory Nutt (2019-05-24). - * arch/mips/src: Previous commit used CP0 register definitions that were - not defined in the cp0.h header file. Probably these were from the - Microchip hacked up GCC toolchain but are not generally available. Fix: - Add definitions to NuttX cp0.h header file. From Gregory Nutt - (2019-05-25). - * mm/iob: Eliminate some warnings about testing the value of an undefined - pre-processor variable. From Gregory Nutt (2019-05-25). - * STM32F7 DTCM add procfs register From Daniel Agar (2019-05-25). - * fs/procfs/fs_procfs.c: procfs_initialize() is used only within - fs/procfs/fs_procfs.c and, hence, should be marked 'static'. From - Gregory Nutt (2019-05-25). - * configs/lpcxpresso-lpc54628: Modify the TWM configurations to properly - inject keyboard data. This way, in the case of multiple NxTERMs, only - the NxTerm at the top of the hierarchy gets the keyboard input. - Otherwise, it is not possible to use multiple NxTerms with each the - keyboard input going to a different NxTerm window. From Gregory Nutt - (2019-05-26). - * arch/arm/src/stm32f0: Initial support for STM32G0. From raiden00pl - (2019-05-27). - configs/: initial support for nucleo-g071rb. From raiden00pl (2019-05-27). - * Here's a patch to split the STM32 FMC/FSMC functionality (FSMC = flexible - static memory controller, FMC = flexible memory controller = FSMC + sdram - support). This commit makes FMC it's own thing rather than piggy backing - on the FSMC code. The peripherals have a few utility functions and this - commits lets you have a common function in the arch/arm/src/stm32 rather - than having duplicate functions in the board code. From Jason Harris - (2019-05-27). - * Rename STM32F0L0 to STM32F0L0G0 since it now also supports the STM32G0 - thanks to Mateusz Szafoni's contribution From Gregory Nutt (2019-05-27). - * arch/arm/src/stm32/stm32_fsmc.h: Fix the include file guarding name in - stm32/stm32_fsmc.h. From Jason Harris (2019-05-27). - * Improvements for STM32 PWM - arch/arm/src/stm32/stm32_pwm: add support for all PWM modes - arch/arm/src/stm32/stm32_pwm: add interface to change PWM mode - arch/arm/src/stm32/stm32_pwm: refactor pwm_mode_configure() - arch/arm/src/stm32/stm32_pwm: STM32_PWM_CHANx corresponds to the timer - channel and STM32_PWM_OUTx corresponds to the timer channel output - arch/arm/src/stm32/stm32_pwm: add CHAN5 and CHAN6 to PWM_TIMx_NCHANNELS - arch/arm/src/stm32/stm32_pwm: calculate the PWM_TIMx_NCHANNELS if - CONFIG_STM32_PWM_MULTICHAN is selected From raiden00pl (2019-05-28). - * arch/arm/src/stm32l4/stm32l4xrxx_rcc.c: Use Range 1 Boost mode if SYSCLK - is higher than 80 MHz From Juha Niskanen (2019-05-28). - * arch/arm/src/stm32l4/stm32l4_i2c.c: Add support for 16 and 120 MHz - timings, board can use HSI16 clock for I2C From Juha Niskanen - (2019-05-28). - * configs/stm32l4r9ai-disco: Add ksh config, some updates for I2C, SPI and - DFSDM support. From Juha Niskanen (2019-05-28). - * This commit implements RS485 RX/TX switching and RTS/CTS flow control for - the IMXRT family. It has been tested on 1020 but I don't see any reason - for issues on any other family member. From Dave Marples (2019-05-30). - * Make sure sections are aligned to 32-bits in all LD linker scripts. This - fixes and issues noted specifically for the SAMD21 by Bernd Walter, but - should be applicable to all other LD scripts as well. - configs/: Add . = ALIGN(4); before every .data section - configs/: Add . = ALIGN(4); before every ARM.extab section - configs/: Add . = ALIGN(4); before every definition of __exidx_start - configs/: Add . = ALIGN(4); before every .init_section. - configs/: Convert TABs to spaces in all ld linker scripts. This just - makes things easier to modify with scripts because the files are more - consistent. From Gregory Nutt (2019-05-30). - * arch/arm/src/stm32l4/stm32l4_hsi48.c: Enable CRS_CR_CEN with - CRS_CR_AUTOTRIMEN From Jussi Kivilinna (2019-05-29). - * arch/arm/src/stm32l4/stm32l4_pwr.c: Enable PWR peripheral for setting - USV From Jussi Kivilinna (2019-05-29). - * arch/arm/src/stm32l4/: Fix USB device PMA accesses. USB PMA accesses are - done as 16-bit words on STM32L4 instead of 32-bit words on STM32L1. From - Jussi Kivilinna (2019-05-29). - * net/tcp/tcp_send_buffered.c: Fix deadlock in iob_copyin when iob buffers - are exhausted and network lock is taken. From Valmantas Paliksa - (2019-05-29). - * arch/arm/src/stm32/Kconfig: Add MEDIUM_DENSITY selection. From Dave - Marples (2019-05-31). - * arch/arm/src/stm32/stm32_adc.c: The attached patch fixes a compilation - error when verbose analog debugging is enabled for the stm32 adc: not all - stm32s have an SQR4 register. From rajan gill (2019-05-31). - * configs/lpcxpresso-lpc54628: Enable DATE command in twm4nx1 and twm4nx2 - configurations. From Gregory Nutt (2019-06-01). - * Integrate support for the newest eZ80 ZDSII 5.3.0 toolchain. From - Gregory Nutt (2019-06-02). - * include/nuttx/net/bluetooth.h: Ignore content if CONFIG_NET_BLUETOOTH is - not set. This is necessary because bt_hci.h content was previously - commented out because it uses several compiler specific things include - zero-dimensioned arrays and uint64_t. Neither are supported by the C89 - ZiLOG ZDS-II compiler. From Gregory Nutt (2019-06-02). - * configs/axoloti: Adds initial support for the Axoloti sound/music - synthesizer board. Board is based on STM32F427 SoC. See - http://www.axoloti.com/. From Jason Harris (2019-06-02). - * arch/z80/src: Fix eZ80 compile problems due to New ZDS-II toolchain and - ongoing bit rot due to non-C89 code creeping into the core OS. From - Gregory Nutt (2019-06-02). - * configs: Fix included path used in all arch/z80 XDS-II builds (eZ80 and - z8). From Gregory Nutt (2019-06-02). - * arch/z16/src: Replicate build changes make for eZ80 and z8 for zneo. - From Gregory Nutt (2019-06-02). - * arch/z16/src/z16f/Kconfig and configs/z16f2800100zcog/scripts/Make.defs: - Add support for the latest 5.2.1 version of the ZDS-II toolchain. From - Gregory Nutt (2019-06-02). - * net/usrsock: Fix debug logs and remove DEBUGASSERT from - usrsockdev_do_request(). In a client mode, socket() will be the first - request for usrsockdev_do_request(). However, in a server mode, the - first request to accepted sockets will be recv() or others which depend - on applications. So I think we should remove this DEBUGASSERT from - usrsockdev_do_request(). From Masayuki Ishikawa (2019-06-03). - * arch/arm/src/STM32H7: Port PWM from STM32 From raiden00pl (2019-06-03). - * arch/arm/src/common/up_lwl_console.c: Add support for a 'Lightweight - Link' protocol between a target and debugger for use when you need a - console but the target doesn't have a spare serial port or other - available resource. From Dave Marples (2019-06-03). - * include/nuttx/signal.h: Fix a C89 compliance problem that cause the eZ80 - build to fail. Empty structure and unions are not accepted by the - compiler. From Gregory Nutt (2019-06-03). - * drivers/net/telnet.c: Fix a C89 non-compliance that was breaking the - eZ80 build. From Gregory Nutt (2019-06-03). - * libs/libc/stdio: Fix long long usage in all of the newer printf-related - logic: The selection CONFIG_LIBC_LONG_LONG must be ignored if the - architecture does not support long long types. From Gregory Nutt - (2019-06-03). - * mm/mm_heap/mm_sem.c: Fix error that occurs when CONFIG_CPP_HAVE_VARARGS - is not defined. In that case, the arguments to the debug macro will all - be evaluated even though they are not used any variables that are - references must at least be defined. From Gregory Nutt (2019-06-03). - * udp\udp_callback.c: Fix another C89 compatibility problem. Empty - initializers are not permitted. Caused eZ80 build failure. From Gregory - Nutt (2019-06-03). - * configs/: Update configurations for changes to apps/netutils/netinit - configuration. MAC address configuration was represented by type long - long. That is a problem for architectures that do not support type long - long. Replaces by two long configuration items. From Gregory Nutt - (2019-06-03). - * Fix several ZNeo compile issues. There are more. Pthreads: Fix a could - of places where FAR was added when it is not appropriate. This matters to - ZNeo which depends on definitions of NEAR and FAR points. From Gregory - Nutt (2019-06-03). - * include/nuttx/wqueue.h: Allow definitions even if work queues are not - enabled. This solves build failures when work queues are not enabled. - From Gregory Nutt (2019-06-03). - * More ZNeo compile fixes: include/stdio.h: Another place where misuse of - FAR makes a difference. include/nuttx/sched.h: Be consistent in use of - WDOG_ID type. ZDS-II doesn't like auto-conversions of struct wdog_s * to - WDOG_ID (which is type struct wdog_s *). From Gregory Nutt (2019-06-03). - * Various fixes to get a clean compile with the SDCC compiler. Compile is - 'almost' clean. From Gregory Nutt (2019-06-03). - * Add initial support for the MakerLisp eZ80 board. Ref: - https://makerlisp.com/ From Gregory Nutt (2019-06-04). - * arch/arm/src/cxd54xx: Adds (1) the HW pin configuration, (2) GPIO - support for cxd56xx, (3) GPIO interrupts, (4) clock support, (5) PMIC - (Power management integrated circuit) support (6) add a simple FIFO - scheduler that minimizes overhead, (6) Inter Core Communication. From - Alin Jerpelea (2019-06-05). - * arch/arm/src/cxd54xx: Add Package Configuration. The CXD56xx can come in - FCBGA 185 pin or WLCSP 100 pin package. For each package we have to pick - the right pin setup. The default configuration is set to FCBGA 185 pin - package From Alin Jerpelea (2019-06-05). - * drivers/sensor, include/nuttx/sensors: Add support for AS726X spectral - sensor From Fabian Justi (2019-06-05). - * configs/nucleo-l476rg/src/stm32_appinit.c: (1) Add I2C tool to board - init, (2) Add support for AS726X spectral sensor From Fabian Justi - (2019-06-05). - * arch/arm/src/cxd54xx: (1) Add basic support for USB connectivity, (2) add - SDHCI driver for the cxd56xx From Alin Jerpelea (2019-06-05). - * configs/makerlisp/src/ez80_spi.c: Add hooks needed by SPI driver. Move - SPI MMC/SD chip selected configuration from ez80_lowinit.c to here as is - done in other NuttX architectures. This enables support for multiple - devices on the SPI bus. From Gregory Nutt (2019-06-05). - * configs/: Rename ZDS-II start files from xxx_lowinit.c to xxx_boot.c; - rename board initialization logic from xxx_lowinit() to - xxx_board_initialize(). These changes make the ZDS-II configurations - more similar to board initialization conventions to used for other - architectures. From Gregory Nutt (2019-06-05). - * Documentation/NuttXCCodingStandard.html: Add a brief section summarizing - the major differences between the NuttX C and C++ coding standards. This - is a stop-gap measure in lieu of having a real C++ coding standard. From - Gregory Nutt (2019-06-05). - * drivers/sensors/as726x.c Fix little change from tools/indent.sh From - Fabian Justi (2019-06-06). - * arch/z80/src/eZ80/Make.defs: Fix some backward conditional logic From - Gregory Nutt (2019-06-07). - * arch/z80/src/eZ80: Integrate and verify the RTC driver From Gregory - Nutt (2019-06-08). - * nuttx/arch/z80/src: To properly follow the coding standard, the z80 - architecture common should up_mmuinit should be called - z80_mmu_initialize; the z80 architecture common should up_loweserialinit - should be called z80_lowserial_initialize; the z80 architecture common - should up_serialinit should be called z80_serial_initialize; the z80 - architecture common should up_doirq should be called z80_doirq. From - Gregory Nutt (2019-06-08). - configs/z80sim/src/z80_serial.c: Remove unused function - up_earlyserialinit(). From Gregory Nutt (2019-06-08). - arch/z80/src/common: up_addregion() must be prototyped in - nuttx/mm/mm.h, not up_internal.h. From Gregory Nutt (2019-06-08). - * arch/z80/src: Rename up_doirq.c and up_internal.h to z80_doirq.c and - z80_internal.h for better consistency with the naming conventions From - Gregory Nutt (2019-06-09). - * arch/arm/src/stm32/hardware/stm32f1xxx_pinmap.h: fix names for - complementary PWM outputs From raiden00pl (2019-06-10). - * libs/libc/time/lib_gmtimer.c: Spurious reorganization of a loop to work - around and ZDD-II internal compiler error. Might be a little bigger now, - but is also probably a more structured use of C. From Gregory Nutt - (2019-06-10). - * arch/arm/src/cxd56xx: add Power Management support From Alin Jerpelea - (2019-06-10). - * configs: Fix mac address settings for RNDIS. Recently - CONFIG_NETINIT_MACADDR_2 and CONFIG_NETINIT_MACADDR_1 were newly - introduced instead of CONFIG_NETINIT_MACADDR. This PR conforms to this - change. From Masayuki Ishikawa (2019-06-11). - * arch/arms/src/cxd56xx: (1) Add syscontrol, (2) Add the function to change - the clock speed, (3) Add pinctrl and clock ctrl functionality. From Alin - Jerpelea (2019-06-11). - * stm32/stm32_pwm.c, STM32H7/stm32_pwm.c: fix pulsecount for the number of - counts greater than 128 From raiden00pl (2019-06-12). - * configs/spresense: (1) We are using the framework to initialize the CPU, - (2) Enable PowerManager on spresense board, (3) Initialize the UART - interfaces, (4) Enable clock management using the cxd56 framework, (5) - Use timerisr on the spresense board, (6) Enable USBDEV on Spresense - board, (7) Enable SD Card support on spresense board, (8) Enable Mass - Storage on Spresense board From Alin Jerpelea (2019-06-12). - * configs/makerlisp: Add Smart Flash Programmer project. From Gregory - Nutt (2019-06-12). - * ina3221: Adds INA3221_I2C_ADDRx macro helpers. From Anthony Merlino - (2019-06-13). - * drivers/mmcsd: Fixes bug where thread gets deadlocked due to recursive - call and addresses comment regarding events. When initializing the - MMCSD, if we are being told there is a card, but we fail to initialize - it, we should not re-register for an insertion event as this will - immediately cause us to call in again. Instead, we should register for a - removal event and wait for the card to be removed and re-inserted. From - Anthony Merlino (2019-06-13). - * arch/arm/src/cxd56xx: Fix ep0 out packet handling in cxd56_usbdev.c. This - change fixes to handle ep0 out packet which exceeds EP0_MAXSIZE. For - example, 76 bytes of out packet is sent from RNDIS host during RNDIS - negotiation and finally the packet is split into two out packets (64 - bytes out packet + 12 bytes out packet). To handle these packets, actual - ep0reqlen is stored during ep0 out setup stage, and if all out packets - are received, it dispatches to cxd56_ep0setup(), otherwise, it sets up - the internal USB DMA to receive remaining out packets. From Masayuki - Ishikawa (2019-06-13). - configs/spresense: Add support for RNDIS configuration. From Masayuki - Ishikawa (2019-06-13). - * arch/arm/src/cxd56xx: Add SPI, DMA, and RTC support - configs/spresense: Enable RTC functionality on spresense board From - Alin Jerpelea (2019-06-13). - * arch/arm/src/stm32l4: if SRAM3 is used as heap, do not power it off in - stop 2 mode. From Juha Niskanen (2019-06-13). - * configs/nucleo-l432kc: Shorten some long lines, fix i2c pinout in - l432kc, add support for testing the ina219 current sensor. From - Sebastien Lorquet (2019-06-13). - * configs/spresense: Enable SPI Flash - arch/arm/src/cdx56xx: (1) Group all CXD56xx Options in one menu, (2) Add - Storage Options menu and Peripheral Support comment, (3) Add SPI Flash - support From Alin Jerpelea (2019-06-13). - * configs/stm32f4discovery/src/stm32_romfs_initialize.c: Missing colon in - declaration of local variable. From Phil Coval (2019-06-13). - * configs/nucleo-144: Add ROMFS support. Image was generated using - genromfs tool. Tested on Nucleo-f767zi. From Phil Coval (2019-06-13). - * STM32H7 Serial: Fix error when SINGLEWIRE or - CONFIG_STM32H7_SERIALBRK_BSDCOMPAT defined. From David Sidrane - (2019-06-13). - * STM32H7 Timer: Fixed compile errors with TIM13, TIM14, TIM7. From David - Sidrane (2019-06-13). - * STM32H7 ADC: Added ADC Driver, ADC clocking. From David Sidrane - (2019-06-13). - * STM32H7x3: Added ADC pins to pin map. From David Sidrane (2019-06-13). - * configs/nucleo-h743zi: Add ADC support. From David Sidrane (2019-06-13). - * drivers/serial/serial.c: Limit the number of times that the poll - semaphore is incremented. From Dave Marples (2019-06-13). - * arch/arm/src/cxd56xx: Change cxd56_gpioint_config to handle argument. - From Masayuki Ishikawa (2019-06-14). - * configs/spresense: Apply API change of cxd56_gpioint_config(). From - Masayuki Ishikawa (2019-06-14). - * arch/arm/src/cxd56xx: Add support for PWM. Add Power Management PROCFS - support. Add Timer driver. Add watchdog timer support.. From Alin Jerpelea (2019-06-14). - * configs/spresense: Add SPI configuration for spresense board. Enable PWM - support on spresense board; The powermanager procfs is disabled by - default and need to be enabled by the CONFIG_CXD56_PM_PROCFS option. - Timers can be used on the spresense board. Watchdog timer support also - added. From Alin Jerpelea (2019-06-14). - * configs/omnibusf4/src/stm32_bringup.c: Correct naming of a configuration - variable for ROMFS. From Phil Coval (2019-06-15). - * configs/stm32f4discovery/src/stm32_bringup.c: Correct naming of a - configuration variable for ROMFS. From Phil Coval (2019-06-15). - * stm32f4discovery/scripts/Make.defs: Fix .ARM.exidx section overlap - Source: https://stackoverflow.com/questions/30778614/arm-none-eabi-ld-section-arm-exidx-overlaps-section-data - From Alan Carvalho de Assis (2019-06-15). - * configs/Board.mk: Cannot call $(AR) directly. That works only with - GCC. It must, instead use the ARCHIVE command from Config.mk as do other - Makefiles. From Gregory Nutt (2019-06-15). - * configs/makerlisp: Use .ztgt files from MakerLisp. From Gregory Nutt - (2019-06-15). - * tools/ocdconsole.py: Fix small typo on ocdconsole.py script From Alan - Carvalho de Assis (2019-06-15). - * arch/arm/src/stm32f0l0g0: Fix STM32G0 error when SINGLEWIRE or - SERIALBRK_BSDCOMPAT defined (it reflects previous changes in STM32H7) - From raiden00pl (2019-06-16). - * arch/z80/src/eZ80/ez80_vectors.asm: Fix a logic error in vector - initialization From Gregory Nutt (2019-06-16). - * configs/makerlisp/nsh/defconfig: Enable Procfs, RTC, SPI-based SD - support, task name, NSH data command. Various fixes under - arch/z80/src/eZ80 for a clean compile. From Gregory Nutt (2019-06-16). - * arch/arm/src/cxd56xx: Fix cxd56_wdt.c in debug build From Masayuki - Ishikawa (2019-06-17). - * include/nuttx/wireless: Fix NRF24L01_NCMDS in ioctl.h. The last one in - nrf24l01.h is _WLCIOC(NRF24L01_FIRST + 15) From Masayuki Ishikawa - (2019-06-17). - * arch/z80/src/eZ80/ez80_spi.c: Fix to SPI baud rate calculation. Driver - now has timeouts so that at least it does not hang the system on - startup. From Gregory Nutt (2019-06-17). - * configs/makerlisp/nsh/defconfig: Enable STACKDUMP on assertion. From - Gregory Nutt (2019-06-17). - * configs/makerlisp/src/ez80_bringup.c: Fix an error that was causing - MMC/SD to fail to initialize. From Gregory Nutt (2019-06-17). - * arch/z80/src/eZ80: Add an RTC lower half driver. From Gregory Nutt - (2019-06-17). - * configs/pnev5180b: Minimal support for NXP Semiconductors' PN5180 NFC - Frontend Development Kit. This board is based on the NXP LPC1769 MCU. - At the moment there is just support for a minimal nsh configuration via - UART0. From Michael Jung (2019-06-17). - * arch/arm/src/cxd56xx: Add support to be able to read the HW UID. From - Alin Jerpelea (2019-06-17). - * configs/spresense: Add USERLED for spresense board. From Alin Jerpelea - (2019-06-17). - * drivers/wireless: Add support for Telit GS2200M Wi-Fi module From - Masayuki Ishikawa (2019-06-18). - * arch/arm/src/cxd56xx: Add Sensor Control Unit (SCU); Add I2C support; - Add ADC interface support; Use DMAC for reading sensing data from SCU on - cxd56xx chip, - configs/spresense: Enable I2CDEV for spresense board. Add useful - diagnostic LEDs on the speresense board. From Alin Jerpelea (2019-06-18). - * tools/ocdconsole.py: OCD TCL interface changed after version 0.10 of - OpenOCD. This change allows the script to work with both the older and - newer TCL interface. From Dave Marples (2019-06-18). - * arch/z80/src/eZ80: Correct setting of RTC time. From Gregory Nutt - (2019-06-18). - * arch/z80/src/eZ80/ez80_spi.c: Fix a poorly constructed loop that would - lead to hangs. From Gregory Nutt (2019-06-18). - * configs/spresense: Add support for Tilt GS2200M Wi-Fi module From - Masayuki Ishikawa (2019-06-18). - * configs/spresense: Remove SPI MMC/SD support and enable ADC support for - spresense board, From Alin Jerpelea (2019-06-19). - * drivers/usbhost: Remove duplicate const in usbhost files. From Adam - Porter (2019-06-20). - * STM32,F7,H7,L4 OTG FS/HS: Fix constant using in comparison to determine - endpoint is interrupt type. From Adam Porter (2019-06-20). - * drivers/sensors: Add driver support for the Bosch BMI160 Inertial - Measurement sensor. This driver can be used with the BMI160 sensor - connected over SPI or I2C bus - configs/spresense: enable BMI160_I2C sensor over I2C on spresense board. - From Alin Jerpelea (2019-06-20). - * drivers/usbhost/usbhost_composite.c: I'm working on a CDC/ECM driver - and in my driver's usbhost_cfgdesc() function I need access to the - class-specific descriptors. Currently these are not available if the - interface is part of a composite device, since only interface and - endpoint descriptors are copied by usbhost_copyinterface(). This commit - will also copy any class-specific interface descriptors for use in - downstream class drivers. NOTE: There's one change that might be - incorrect, where I skip interfaces with zero endpoints. I did this - because my device has two consecutive interface descriptors with the same - interface number, one for altsetting 0 with no endpoints, and another for - altsetting 1 with 1 endpoint. The loop was aborting due to finding two - interface descriptors back-to-back. From Adam Porter (2019-06-21). - * STM32F7 GPIO: Add GPIO driver. Code is inspired from stm32f3discovery - and nucleo-l476rg platforms. Tested on Nucleo-F767ZI. From Phil Coval - (2019-06-21). - * drivers/usbhost/usbhost_composite.c: The cfgdesc pointer was initialized - after the buffer had been advanced, so it was not pointing where it - should. The totallen operations at the end of the function ended up - overwriting memory belonging to the first copied interface descriptor. - From Adam Porter (2019-06-22). - * configs/pnev5180b: Add usbnsh configuration. This is basically the same - as the 'nsh' defconfig, but uses CDC/ACM as the NuttShell console - device. From Michael Jung (2019-06-22). - * STM32 USB OTG FS/HS Host: In stm32_ctrlout() in the HS and FS host - drivers, the data buffer isn't sent. This patch passes the buffer and - buflen to the stm32_ctrl_senddata() function. With this change, I am - able to send MBIM control messages to my USB modem, and read the - response. From Adam Porter (2019-06-23). - * configs/makerlisp/src/sd_main.c: Add a tiny FLASH-resident loader that - will load and start applications in Intel HEX format from an SD card. - From Gregory Nutt (2019-06-23). - * configs/spresense: Add I2CTOOL support and extend GPIO for future use; - add delay support for cxd56xx chip; for development is useful to - register I2C buses when the I2CTOOL is built; Enable GPIO interface on - spresense board. From Alin Jerpelea (2019-06-24). - * arch/arm/src/efm32/efm32_usbhost: Apply Adam Porter's STM32 fix to EFM32 - which has the same IP. From Gregory Nutt (2019-06-24). - * arch/arm/src/cxd56xx: Add I2C character driver support. For testing - purposes, we use the CXD56_I2C_DRIVER to register the /dev/i2c[] - character devices. Add battery gauge and battery charger drivers. Add - SPI-based SP card support. From Alin Jerpelea (2019-06-25). - configs/spresense: Add use o the CXD56_I2C_DRIVER to register the - /dev/i2c character devices. Enable battery gauge and battery charger - support. From Alin Jerpelea (2019-06-25). - * configs/makerlisp/src/sd_main.c: Correct some backward conditional - compilation. From Gregory Nutt (2019-06-25). - * configs/lc823450-xgevk: Remove CPU assignment for lpwork. This change - will reduce audio underrun when running dvfs auto mode. From Masayuki - Ishikawa (2019-06-26). - * configs/spresense: Enable UID functionality. To enable the UID - functionality for spresense board set BOARDCTL_UNIQUEID in menuconfig. - From Alin Jerpelea (2019-06-26). - * configs/spresense: Add USBDEV_SETNOTIFYSIG signal ID. Set signal ID for - notify USB device connection status and supply current value. From Alin - Jerpelea (2019-06-26). - * configs/makerlisp: Bring in a new configuration to support execution - entirely out of external SRAM. From Gregory Nutt (2019-06-26). - * arch/arm/src/samd2l2/hardware/samd_tc.h: Correct register bit field - definitions used with TC_CTRLBCLR and TC_CTRLSET registers. From Bernd - Walter (2019-06-26). - * libs/libc/misc/Make.defs: For platforms whose CPP tool does not support - a variable number arguments to pre-processor macros, we may still need to - build the debug functions even when CONFIG_DEBUG_FEATURES is not - selected. For example, __alert() may be needed if CONFIG_ARCH_STACKDUMP - is set. From Gregory Nutt (2019-06-26). - * configs/makerlisp: Add an sdboot configuration that will load .hex files - from the SD card. From Gregory Nutt (2019-06-26). - * configs/spresense/wifi: App config for gs2200m has been changed From - Masayuki Ishikawa (2019-06-27). - * arch/arm/src/cxd56xx: Add EMMC support for cxd56xx chip From Alin - Jerpelea (2019-06-27). - * arch/arm/src/STM32H7: Ported the QEncoder from F7 to H7. From Eduard - Niesner (2019-06-27). - * configs/makerlisp/scripts: Add a linker script to support copying the - NuttX image from FLASH into external SRAM. From Gregory Nutt (2019-06-27). - * configs/pnev5180b/nsh-cdcecm: Adds NSH configuration with UART0 and eth0 - via CDC/ECM on USB device. From Michael Jung (2019-06-28). - * arch/arm/src/STM32H7/hardware/stm32_ethernet.h: Correct ETH_MACMDIOAR. - Correct the physical layer address bits in ETH_MACMDIOAR register. From - Jukka Laitinen (2019-06-28). - * arch/mips/src/pic32mz/pic32mz-gpio.c: Use LAT instead of PORT when - writing. From Ouss4 (2019-06-28). - * arch/mips/src/pic32mz: Add DMA support. From Abdelatif Guettouche - (2019-06-28). - * configs/olimex-stm32-e407/src: Change initialization to match the way it - is done with other boards. From Gregory Nutt (2019-06-28). - * sched/semaphore/sem_holder.c: Fix a bad assertion. The comments state - correctly that we cannot make any assumptions about the number of holders - of the semaphore, yet the code asserts if there are any holders. This - makes the code behave closer to what the comments say. From Gregory Nutt - (2019-06-28). - * configs/pnev5180b/nsh-cdcecm/defconfig: CDC/ECM requires SCHED_LPWORK - From Gregory Nutt (2019-06-29). - * Various Kconfig files: Kconfig files should not select SCHED_WORKQUEUE - since that is really only is only the logical OR if SCHED_LPWORK and - SCHED_HPWORK. Selecting it has no effect other than to produce an - erroneous configuration. From Gregory Nutt (2019-06-29). - * nrf24l01: Fix PIPENO/PKTLEN bitmask in rx fifo header. In RX fifo - header, the first byte should use 5 lsb to store PKTLEN and 3 msb to - store PIPENO. However, FIFO_PIPENO_SHIFT was set to 4 which causes the - lsb of pipe number to interfere with the received packet size stored in - the fifo. This fix rx corruption when using pipe number > 0. From - Federico Braghiroli (2019-06-29). - * configs/pnev5180b/usbnsh-cdcecm: This new configuration includes a USB - Composite Device with both CDC/ACM and CDC/ECM. NuttShell provides a - terminal via CDC/ACM. A network interface (eth0) is provided via - CDC/ECM. From Michael Jung (2019-06-29). - * tools/nxstyle.c: Tool depends on the file under test containing "Private - Functions" or "Public Functions" block comments. Emit an error is - neither are present in a C source. From Gregory Nutt (2019-06-29). - * tools/nxstyle.c: Bandaid-up logic that detects left brackets on the same - line in global structure/enumeration types and initializers. From - Gregory Nutt (2019-06-29). - * arch/arm/src/imxrt/imxrt_ehci.c: Add i.MXRT ECHI driver. From Dave - Marples (2019-06-29). - * include/nuttx/net/netconfig.h: Fix warning '__MAX_UDP_MSS macro - redefined' From Adam Porter (2019-06-30). - * configs/stm32f4discovery/kernel/Makefile: Fix a problem with undefined - symbol 'abort' from GCC library. Fix by moving libgcc into recursive - archive group between --start-group and --end-group. Other - kernel/Makefiles suffer from this same issue From Gregory Nutt - (2019-06-30). - * tools/nxstyle.c: Fix error in conditional logic that was preventing - detection bad brace alignment. Add logic to handle alignment of braces - in data initializators which following slightly different indentation - rules. From Gregory Nutt (2019-06-30). - * tools/nxstyle.c: No warning for declarations that begin in column 1 - within 'extern "C"'. This is because the 'extern "C"' is conditioned on - __cplusplus so the declarations are not normally indented. From Gregory - Nutt (2019-06-30). - * libs/libc/netdb: Implemented the netdb functions getnameinfo(), - getservbyport(), and getservbyport_r(). From Michael Jung (2019-06-30). - * configs/pnev5180b/src/lpc17_romfs: pnev5180b/src/lpc17_romfs: Automount - baked-in ROMFS image. Includes support for linking a binary ROMFS image - into the nuttx executable and for mounting it during board bringup. From - Michael Jung (2019-06-30). - * drivers/usbdev/usbmsc: Fix usbmsc_exportluns declaration. Fixes the - following error "...undefined reference to `usbmsc_exportluns'". From - Alin Jerpelea (2019-07-01). - * configs/spresense: Register the procfs in the NSH configuration. This - is a configuration change in sync with the other ones. Enable - READLINE_CMD_HISTORY, enable by default SPI 4 and 5, and enable SPI to - keep all configurations in sync. From Alin Jerpelea (2019-07-01). - * net/inet: Fix tcp active close in inet_close.c. In previous - implementation, FIN packet was not sent when a socket is actively closed - (e.g. telnetd or webserver) without SO_LINGER. This issue happens - because the socket closing sequence waits for the status.cl_sem only if - lingering timeout is set. However, in many server use-cases, SO_LINGER is - not usually set and even in these cases, FIN packet must be sent - correctly. This changes the logic in inet_close.c so that it can wait - for status.cl_sem regardless of SO_LINGER. Instead, if SO_LINGERis set, - it waits for the semaphore with timeout option. From Masayuki Ishikawa - (2019-07-01). - * net/inet/inet_close.c: Last change removed SO_LINGER socket option - functionality. SO_LINGER was always enabled is CONFIG_NET_SOLINGER was - selected. This change implements a proper version of SO_LINGER. It is - based on new logic to drain the buffered TX data, integrated with network - event notification system. Supports notification when UDP or TCP write - buffer becomes empty. From Gregory Nutt (2019-07-01). - * configs/spresense: Add support for MSC and USB Composite device. Adds - usbmsc configuration. Spresense board does not have buttons and but a - template for gpio buttons that can be connected on the external header - From Alin Jerpelea (2019-07-02). - * drivers/wireless: Fix a passive close when sending a packet in gs2200m.c - From Masayuki Ishikawa (2019-07-03). - * arch/arm/src/tiva: Add a workaround for tiva with qemu. With qemu, - tiva_ifup() hangs because ethernet link status can not be set correctly. - This PR is a workaround to avoid this issue. From Masayuki Ishikawa - (2019-07-03). - * arch/arm/src/cxd56xx: Add driver for hardware image processor device to - enable the hardware image processor set CXD56_GE2D=true. From Alin - Jerpelea (2019-07-03). - * drivers/lcd: Add ILI9340 LCD Single Chip Driver. Required LCD driver - settings: LCD_MAXCONTRAST should be 255, but any value >0 and <=255 will - be accepted. LCD_MAXPOWER should be 1: 0=off, 1=on. From Alin Jerpelea - (2019-07-03). - * drivers/lcd: Add JDI LPM013M091A LCD Driver. From Alin Jerpelea - (2019-07-03). - * configs/spresense: Add support for lpm013m091a LCD, add support for - ili9340 LCD, add a new configuration to support an LCD. From Alin - Jerpelea (2019-07-03). - * arch/arm/src/stm32f7/stm32_serial.c: This adds the ability to invert and - swap RX/TX on STM32F7 UARTs. I added the TIOCGINVERT as well to reserve - the IOCTL number, but did not implement it. This is the same as for - TIOCGSINGLEWIRE. From Beat Küng (2019-07-03). - * arch/arm/src/imxrt/imxrt_usdhc.c: Implements SDIO and Multi-card support - for i.MX RT. From Dave Marples (2019-07-03). - * STM32H7 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls. Ensure - TIOCSSINGLEWIRE is atomic and UE disabled. From Beat Küng (2019-07-03). - * STM32L4 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls - * i.MX RT: Add TIOCSINVERT ioctls. From Beat Küng (2019-07-03). - * arch/arm/src/am335x: Add clock module registers definition. Switch to - DMTIMER1 for systick. From Petro Karashchenko (2019-07-03). - * arch/arm/src/cxd56xx: Fix DMA initialization in cxd56_dmac.c. - up_dma_initialize() must be used instead of up_dmainitialize(). From - Masayuki Ishikawa (2019-07-04). - * drivers/wireless: Introduce CONFIG_WL_GS2200M_SPI_FREQUENCY. Also, - changed usleep(100) to up_udelay(100) to avoid invalid response. From - Masayuki Ishikawa (2019-07-04). - * configs/spresense/wifi: Improve performance for webserver: (1) Enable - SPI DMA for both TX and RX, (2) Increase SPI clock speed from 4MHz to - 10MHz, (3) Increase buffer size for sendfile() from 512B to 1KBm abd (4) - Enable sendfile() for webserver. From Masayuki Ishikawa (2019-07-04). - * tools/mkexport.sh: The mcu sub-directory chip/ was renamed to hardware/ - in late May of 2019. The mkexport.sh script that copies these files was - not updated, however, until now. Noted by Alin Jerpelea. From Gregory - Nutt (2019-07-04). - * drivers/video: Add basic Video Stream and Capture implementation based - on the spresense SDK code release From Alin Jerpelea (2019-07-04). - * drivers/video: Add support for ISX012 Image sensor. - arch/arm/src/cxd56xx: Add cisif support to be able to use cameras. From - Alin Jerpelea (2019-07-04). - * arch/arm/src/imxrt: Fix serial TIOCSINVERT From David Sidrane - (2019-07-04). - * arch/arm/src/imxrt: USDHC Stopgap Fix for build breakage From David - Sidrane (2019-07-04). - * configs/spresense: add mpy defconfig From Alin Jerpelea (2019-07-05). - * arch/arm/src/STM32H7/stm32_spi.c: Correct a typo in condition - compilation. From Jonathan Richner (2019-07-05). - * arch/arm/src/kinetis: Add uart signal inversion support From Beat Küng - (2019-07-05). - * Documentation/NuttXCCodingStandard.html: Update requirements for - indenting C pre-processor statements. From Gregory Nutt (2019-07-05). - * arch/arm/src/am335x/hardware: Add register description files for DCAN - and LCD. From Petro Karashchenko (2019-07-06). - * net/icmpv6/icmpv6_autoconfig.c: Use ntohs() to convert IPv6 address from - network to host order int network debug output. From Bernd Walter - (2019-07-06). - * configs/spresense: Update defconfigs RNDIS and wifi. Enable RTC and - webserver with directory listing support. Also, changed start - year/month/day for NuttX 2019. From Masayuki Ishikawa (2019-07-06). - * arch/arm/src/am335x/hardware: Add register description files for I2C - (plus various improvements to the WDOG register definitions) From Petro - Karashchenko (2019-07-06). - * arch/arm/src/am335x/hardware: Add register description files for MCSPI. - From Petro Karashchenko (2019-07-06). - * Documentation/NuttXCCodingStandard.html: Another small change - discouraging the practice of enclosing the value argument of 'return' - statements in parentheses. From Gregory Nutt (2019-07-06). - * configus/nucleo-144: Add reset feature. Code is derives from - configs/stm32f4discovery/src/stm32_reset.c. It can be enabled using - CONFIG_BOARDCTL_RESET From Phil Coval (2019-07-07). - * video/edid/: Add some initial EDID logic ported from FreeBSD. From - Gregory Nutt (2019-07-07). - video/: Add basic configure and build support for a video subsystem. - From Gregory Nutt (2019-07-07). - * arch/arm/src/am335x/hardware/am335x_cm.h: Fix a typo in a macro name. - From Gregory Nutt (2019-07-07). - * arch/arm/src/imxrt: Implements USDHC1 & 2 selection on the imxrt. If - only one port is active (either 1 or 2) it will always be numbered as 0, - if both are active then USDHC1 will be number 0, USDHC2 will be 1. From - Dave Marples (2019-07-07). - * video/edid/edid_sort.c: Add logic to sort video modes by how close they - are to the preferred mode. This is part of the logic to pick the best - possible video mode. From Gregory Nutt (2019-07-07). - * tools/: Add spk binary format. The .spk binary format is used on - spresense and other boards based on the cxd56 arch. to enable this - binary format please set in your config CONFIG_CXD56_BINARY=y. From Alin - Jerpelea (2019-07-08). - * config/spresense: Build nuttx.spk images. Enable nuttx.spk binary image - that can be flashed on spresense board. From Alin Jerpelea (2019-07-08). - * configs/spresense: Add entry point for mpy. The entry point is needed - for the downstream projects based on spresense. From Alin Jerpelea - (2019-07-08). - * configs/nucleo-h743zi/src/stm32_spi.c: Correct typos in function - naming. From Jonathan Richner (2019-07-08). - * arch/arm/src/am335x/hardware/am335x_lcd.h: Fix a few typos. Add things - needed by the LCDC driver. From Gregory Nutt (2019-07-08). - * This change brings in an initial LCD driver sof the AM335x architecture. - This is a work in progress and so depends on EXPERIMENTAL. The code is - nearly compete, missing some clock configuration settings. It does yet - even compile properly. From Gregory Nutt (2019-07-08). - * arch/arm/src/am335x: Add logic to map the framebuffer to a non-cached, - non-buffered memory region. From Gregory Nutt (2019-07-08). - arch/arm/src/am335x: Remove struct am335x_fbinfo_s. Replaced with - configuration settings that provide the same information. From Gregory - Nutt (2019-07-08). - * arch/arm/src/am335x/am335x_sysclk.c: Add a function to return a - frequency of the system clock. From Gregory Nutt (2019-07-08). - * arch/arm/src/am335x/am335x_lcdc.c: Add logic to get/set the module - reference clock. Still one more clocking interface to do. From Gregory - Nutt (2019-07-08). - * configs/beaglebone-black/lcd/defconfig: Add a configuration for bringing - up the LCDC driver. From Gregory Nutt (2019-07-08). - * tools/: Add flash_writer for cxd56 boards. This flash writter is using - the xmodem for firmware transfer for flashing please use: - 'tools/flash_writer.py -s -c /dev/ttyUSB0 -d -b 115200 -n nuttx.spk' - From Alin Jerpelea (2019-07-09). - * Update COPYING file. Tools in the tools/ directory are not intended for - binary redistribution and may not all conform to BSD licensing. From - Gregory Nutt (2019-07-09). - * On the LPC1769 there are two 16 KiB AHB SRAM blocks, which are mapped - back to back at physical address 0x2007C000 and 0x20080000 (i.e. right - below and right above a 512 KiB boundary). Memory from those two blocks - is considered continuous when assigned to a heap. In the protected build - mode, when the memory protection unit is used, though, it must be split - into two MPU regions. This is because MPU regions must be naturally - aligned, and the 32KiB continuous address space of the two 16KiB AHB SRAM - blocks does not start at an address divisible by 32KiB. The only other - configurations that use protected build mode on lpc17xx are currently - open1788/knsh and open1788/knxterm. The LPC1788 has the AHB SRAM blocks - mapped more sanely (from an MPU region point of view), which is probably - why no problems emerged here. Both still compile with my change and - other than wasting an MPU region (which would otherwise remain unused) - should work fine. That said, I have no hardware to confirm. From - Michael Jung (2019-07-09). - * configs/pnev5180b/knsh: Add PROTECTED mode configuration with - NuttShell. From Michael Jung (2019-07-09). - * configs/beaglebone-black/src/am335x_lcd.c: Framework (only) for TDA19988 - and LCD support for Beaglebone Black. Can't use TDA19988 yet because - there is no I2C driver. In the mean time, support LCD initialization - using a fixed, configurable video mode. From Gregory Nutt (2019-07-09). - * arch/arm/src/am335x/hardware/am335x_prcm.h: Rename am335x_cm.h to - am335x_cm.h. From Petro Karashchenko (2019-07-09). - * arch/arm/src/am335x: Changes related to Control Module From Petro - Karashchenko (2019-07-09). - * arch/arm/src/am335x/Kconfig: Remove unused configuration settings left - over from original copy-paste. From Gregory Nutt (2019-07-09). - * drivers/wireless: Add channel parameter for AP mode in gs2200m.c From - Masayuki Ishikawa (2019-07-10). - * drivers/sensors: Add Bosch BMP280 Barometic pressure sensor connected - over I2C bus - drivers/sensors: Add Asahi AK09911/AK09912 compass sensor over I2C bus - From Alin Jerpelea (2019-07-10). - * syscall/: Adapt the conditional compile logic on when to include the - vfork() syscall proxy and stub to the logic used for vfork() itself. - From Michael Jung (2019-07-10). - * configs/olimex-stm32-e407/src/stm32_spi.c: Add SPI initialization - logic. From uan Flores (2019-07-10). - * drivers/sensors/vl53l1x.c: Added support for VL53L1X TOF sensor. From - Juan Flores (2019-07-10). - * drivers/lcd/tda19988.c: Now uses the new common videomode structure of - include/nuttx/video/videomode.h as do other video components. From - Gregory Nutt (2019-07-10). - * video/, include/nuttx/video/videomode.h: Separate EDID and from - videomode management. They really are separate things. From Gregory - Nutt (2019-07-10). - * video/edid: Add debug functions to dump the EDID and videomode content. - From Gregory Nutt (2019-07-10). - * viedo/videomode: Rename video/edid to video/videomode. There is more - there than just EDID but it is all basically videomode stuff. From - Gregory Nutt (2019-07-10). - * video/videomode/vesagtf.c: Bring VESA Generalized Timing Formula (GTF) - from FreeBSD. From Gregory Nutt (2019-07-10). - * video/videomode/videomode_lookup.c: At some additional lookups from - FreeBSD. Not currently used in NuttX so ifdef'ed out for now. From - Gregory Nutt (2019-07-10). - * configs/spresense: Enable internal flash storage for spresense boards. - The smartfs flash is mounted under /mnt/spif folder. From Alin Jerpelea - (2019-07-11). - * configs/spresense: For compatibility with SDK we need to change the - USER_ENTRYPOINT in all configurations to spresense_main(). From Alin - Jerpelea (2019-07-11). - * include/cxx/cstddef: Add C11++ std::nullptr_t From junmin-kim - (2019-07-11). - * configs/olimex-stm32-e407: Added BMP180 initialization and a - configuration to test the BMP180. From Juan Flores (2019-07-11). - * include/nuttx/spi/spi.h: Added standard definitions for ADC SPI device - ID. From Daniel P. Carvalho (2019-07-11). - * arch/arm/src/lpc17xx_40xx and configs/: Add support for LPC40xx family - chips. Renamed LPC17XX to LPC17XX_40XX in directory, configuration, file - names, etc., as appropriate. Corrected a few peripheral definitions and - pin functions for the LPC17xx family. Added configuration options, chip - definitions, and additional pin functions for the LPC40xx family. - configs/lpc4088-devkit/: Added board configuration for Embedded Artists - LPC4088 Developer's kit. From jjlange (2019-07-11). - configs/lpc4088-devkit/: Added board configurations for Embedded Artists - LPC4088 Quickstart board. From jjlange (2019-07-11). - * include/fixedmath.h: Regarding the single precision float to/from fixed - point conversions in fixedmath.h, I believe the floating point literals - should be appended with the letter 'f' to avoid (expensive) conversions - from single to double precision, and thereby also avoid (expensive if - done in SW) double point arithmetic (which is what is happening upon - inspection of my disassembly). From rajan gill (2019-07-11). - * arch/arm/src/lpc11xx, arch/arm/include/lpc11xx, - configs/lpcxpresso-lpc1115: Support for the LPCXpresso-LPC1115 and for - the LPC1115 architecture in general was removed after NuttX-7.30. The - LPC11 port was never really used (to my knowledge) and was no longer - supported. A snapshot of the port is still available in the Obsoleted - repository. It can be brought back into the main repository at any time - if anyone is willing to provide support for the architecture. From - Gregory Nutt (2019-07-11). - * configs/spresense: Fix and refactor cxd56_leds.c From Masayuki Ishikawa - (2019-07-12). - * arch/arm/src/cxd56xx: Add GNSS device, add Geofence Support, add UART0 - interface. UART0 is an interface with hardware flow control in the - application subsystem. From Alin Jerpelea (2019-07-12). - * configs/spresense: path correction. From Alin Jerpelea (2019-07-12). - * configs/olimex-stm32-e407: Add DAC support, add IN219 support, add timer - driver support. From Juan Flores (2019-07-12). - * arch/arm/src/stm32/Kconfig: Add the missing STM32 LCD Clock Source - Selections. From Alan Carvalho de Assis (2019-07-13). - * include/sys/syscall.h: Fixed SYS_mount syscall define when - CONFIG_FS_READABLE is undefined. From Joao Matos (2019-07-13). - * configs/stm32f769i-disco/src/stm32_pwm.c: Enable PWM support for - stm32f769i-disco board. From Gregory Nutt (2019-07-13). - * arch/arm/src/imxrt: Fix compiler error for CONFIG_IMXRT_USDHC1 && - !CONFIG_IMXRT_USDHC2 From David Sidrane (2019-07-13). - * arch/arm/src/STM32H7/stm32_ethernet.c: Fix typo in define. From - Pierre-Olivier Vauboin (2019-07-16). - * tools/flash_writer: license change. license update for project - compliance From Alin Jerpelea (2019-07-17). - * configs/stm32ldiscovery/: Add button support for stm32Ldiscovery. Add - chronometer board config. From Alan Carvalho de Assis (2019-07-17). - * configs/olimex-stm32-e407: Add support for MRF24J40 radio. From Gregory - Nutt (2019-07-18). - * configs/makerlisp/src/ez80_boot.c: The VGA display controller and - keyboard controller come up by default emulating a terminal with 'newline - mode' on. That is newlines expance to carriage-return, newline. This - patch turns that mode off. From Gregory Nutt (2019-07-20). - * configs/tm4c1294-launchpad/tools/oocd.sh: Fix syntax error. From Nathan - Hartman (2019-07-20). - * sched/sched/sched_waitpid.c: In waitpid, remember to grab the exited - child ptr. After being unblocked in waitpid, the child pointer might be - NULL. Modify to use group_exitchild to get the pointer of recent exited - child. From Yang ChungFan (2019-07-20). - -8.1 2019-09-14 Gregory Nutt - - * arch/arm/src/sam34/Kconfig: Add missing DMA configuration setting. - From Bernd Walter (2019-07-21). - * arch/mips/src/pic32mz/pic32mz-spi.c: Fix SPI Mode selection. CKE is - the inversion of the CPHA. From Ouss4 (2019-07-21). - * drivers/mtd/sst26.c: Accept the 16MBit Flash when reading the JEDEC-ID - at init. From Ouss4 (2019-07-21). - * arch/mips/src/pic32mz/pic32mz-config.h: Make the PLL input clock - configurable. From Ouss4 (2019-07-21). - * STM32F7: Fixes bad preprocessor logic preventing USB OTG HS to work - when used without external ULPI. From Anthony Merlino (2019-07-22). - * arch/arm/src/imxrt/imxrt_lpi2c.c: Slave addresses are now correctly - shifted when sending start. TX/RX FIFOs now discarded on error to - prevent FIFO underflow errors. Fixes error checking to use priv - structure and removes checking of BBF flag as it is not an error. From - Nicholas Chin (2019-07-23). - * configs/nucleo-l432kc/src/stm32_gpio.c: Added GPIO drivers for use - with /apps/examples/gpio. From Daniel P. Carvalho (2019-07-23). - * configs/nucleo-l432kc: Added Zero Cross sensor to nucleo-l432kc. From - Daniel P. Carvalho (2019-07-23). - * drivers/usbdev/rndis: Fixes issue with DEBUGASSERT when using composite - device and endpoint numbers not being the default. From Anthony - Merlino (2019-07-23). - * libs/libc/stdio/lib_libvsprintf.c: Add support for the size_t integer - qualifier 'z'. This is kind of tricky due the variety of - sizeof(size_t) on different platforms. From David Sidrane (2019-07-24). - * gs2200m with udp - - include/nuttx/wireless: Add udp support to gs2200m.h - - drivers/wireless: Add WL_GS2200M_DISABLE_DHCPC to Kconfig - - drivers/wireless: Add udp support to gs2200m.c - - configs/spresense/wifi: Enable smartfs and udp support - From Masayuki Ishikawa (2019-07-25). - * arch/arm/src/lpc17xx_40xx/lpc17_40_i2c.c: Abort I2C transfers if a - timeout has occurred. If a timeout has occurred in the middle of a I2C - transfer, the next I2C interrupt should abort any transfers and send a - stop condition to the corresponding I2C bus. Failure to do so will result - in memory corruption / undefined behavior as priv->msgs points to a - region of memory it doesn't owns anymore after lpc17_40_i2c_start - returns. From Augusto Fraga Giachero (2019-07-25). - * configs/tm4c1294-launchpad/src/tm4c_bringup.c: Enables /dev/userleds - for tm4c1294-launchpad by calling userled_lower_initialize() in - tm4c_bringup(). From Nathan Hartman (2019-07-25). - * arch/arm/src/lpc17xx_40xx/lpc17_40_i2c.c: Calculate the appropriate - timeout for I2C transfers. Depending on the bus frequency and transfer - size, I2C transactions can take quite a bit, so a fixed timeout is not a - good solution. Calculating the timeout at run time poses some overhead - but still better than aborting long transactions. From Augusto Fraga - Giachero (2019-07-25). - * net/udp: Remove net stack dependency from CONFIG_NET_BROADCAST. This - change allows us to use CONFIG_NET_BROADCAST without network stack. (i.e. - usrsock application can use broadcast) From Masayuki Ishikawa - (2019-07-26). - * STM32F7: If there is only one SDMMC it is slot 0 From David Sidrane - (2019-07-26). - * drivers/mtd/mx25rxx.c: add support for 512B sectors - - Fix for mx25rxx driver as it does not work properly - - Add mx25rxx memory chip and smartfs support in b-l475e-iot01a/nsh - config - - Update smartfs smart_scan() function From Simon Piriou (2019-07-26). - * configs/nucleo-l432kc: ADC: Change analog pins definitions and - correct DMA related issue. From Daniel P. Carvalho (2019-07-27). - * net/tcp and udp: Fix errors in the new implementation of SO_LINGER. - The tcp_drain() and udp_drain() functions were casting the working - argument to the wrong type, resulting in hangs and abnormal behavior. - There is a complexity in the tcp drain logic when the remote peer - closes the socket before all Tx data has been flushed. Sometimes we - are not notified of this case and wait the entire timeout - unnecessarily. There is a workaround in place in tcp_txdrain(), but - this really should be revisited. From Gregory Nutt (2019-07-27). - * arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c: Set speed back to - 10Mbps if 10Mmbps link negotiated. From Augusto Fraga Giachero - (2019-07-27). - * i.MXRT USDHC: This change completes SDIO support for IMXRT, and also - adds support for WiFi using the AP6212A module based on Simon Piriou's - rather excellent work. The patch should also address DavidS's concern - about width setting for USDHC1 and 2. Testing of the WiFi is minimal - so far but functionality is proven. I'm specifically not happy that - the driver doesn't recover elegantly from a DMA data checksum failure, - but that is an issue that can be dealt with in due course ... I'm - trying to get the rest of the interfaces fleshed out and the hardware - proven so it can go for pre-production build. I _think_ there's only - Bluetooth and USB-device left to implement now. From Dave Marples - (2019-07-28). - * arch/arm/src/imxrt/imxrt_clockconfig.c: Enable TRACE clocks if the - divider has been defined in the board's board.h file. From Dave - Marples (2019-07-28). - * net/udp/udp_txdrain.c: Add missing header file. From David S. Alessio - (2019-07-29). - * sched/semaphore/sem_holder.c: Fix a race in telnet with - PRIORITY_INHERITANCE and SCHED_HPWORK. Sometimes causes an assertion - to fire incorrectly. From David S. Alessio (2019-07-29). - * include/netinet/in.h: Rename __pad member to sin_zero in struct - sockaddr_in. Libwebsockets initializes the 'sin_zero' member of - sockaddr_in objects to zeros. Apparently, judging from mailing list - entries, there are platforms on which not doing this causes undefined - behavior. On NuttX compiling respective code is broken, as the - corresponding member variable is called '__pad'. Neither in the - 'nuttx' nor in the 'apps' repository did I find any reference to this - identifier. Thus, I believe its a safe bet to just rename it. UNIX - Network Programming states in this regard: "The POSIX specification - requires only three members in the structure: sin_family, sin_addr, and - sin_port. It is acceptable for a POSIX-compliant implementation to - define additional structure members, and this is normal for an Internet - socket address structure. Almost all implementations add the sin_zero - member so that all socket address structures are at least 16 bytes in - size." From Michael Jung (2019-07-29). - * arch/arm/src/tiva: Rename TM4C123GH6PMI identifiers to TM4C123GH6PM. - Rationale: In terms of firmware programming, there is no functional - difference between these parts: TM4C123GH6PMI7, TM4C123GH6PMI7R, - TM4C123GH6PMT7, and TM4C123GH6PMT7R. From a programming standpoint, - all of the above parts are TM4C123GH6PM, which means it doesn't make - sense to differentiate between PM and PMI. (The PM means 64-LQFP. The I - means temperature range -40C to +85C. It could be T meaning -40C to - +105C. The R means it ships in Tape and Reel packaging as opposed to - Tray.) From Nathan Hartman (2019-07-29). - * Only use PCLKSEL0 for ADC on LPC176x family. From jjlange (2019-07-29). - * arch/arm/src/tiva: Rename TM4C1294NC identifiers to TM4C1294NCPDT. - Rationale: TM4C1294NC is ambiguous: TM4C1294NCPDT is a 128-TQFP, - TM4C1294NCZAD is a 212-NFBGA. The TM4C1294NC part currently supported - by NuttX is the TM4C1294NCPDT used on the TI EK-TM4C1294XL "Connected - LaunchPad" (see configs/tm4c1294-launchpad). To ensure the correct - part is fully specified, this commit updates all TM4C1294NC identifiers - to TM4C1294NCPDT. From Nathan Hartman (2019-07-29). - * libs/libc/machine/arm/armv7-m: Add Cortex M4F mach optimized fabsf and - sqrtf. From David S. Alessio (2019-07-29). - * gs2200m with dhcp: - - include/nuttx/wireless: Add GS2200M_IOC_IFREQ to gs2200m.h - - drivers/wireless: Add GS2200M_IOC_IFREQ to gs2200m.c - - configs/spresense/wifi: Enable NuttX's DHCP client instead of GS2200M's - - configs/spresense: Add descriptions on wifi in README.txt - From Masayuki Ishikawa (2019-07-30). - * libs/libc/machine/arm/armv7-m: Fix build error for elf From Masayuki - Ishikawa (2019-07-30). - * Documentation/, configs/: Fix typos and one HTML syntax error. Fix - HTML syntax error in Documentation/NfsHowto.html: -> - html tag. From Nathan Hartman (2019-07-30). - * fs/dirent/fs_opendir.c: Fix typo and style. opendir() did set errno - to a negative value in one error case. Fixed some coding style issues - found by nxstyle. From Michael Jung (2019-07-31). - * libs/libc/dirent/: Added alphasort() implementation, scandir() - implementation and DT_* definitions to include/dirent.h. Apparently - those definitions are not required by POSIX, but are part of 4.3BSD and - available in glibc as well. From Michael Jung (2019-07-31). - * libs/libc/dirent/lib_scandir.c: Do not build in PROTECTED or KERNEL - mode builds. Add FAR to some pointers. Minor comment updates. From - Gregory Nutt (2019-07-31). - * STM32F7: Serial add HW HS on UART 4 & 5 From David Sidrane - (2019-08-01). - * sched/task/task_exithook.c: nxtask_signalparent() in task_exithook.c - may invalidate the group's parent task ID (tg_ppid) too soon. The - tg_ppid field is use only to remember the parent tasks ID so that it - can send the SIGCHLD signal to it. So it must stay valid until SIGCHLD - has been sent. In nxtask_signalparent(), it calls nxtask_sigchild() to - send SIGCHLD to the parent, then invalidates tg_ppid. That would be - okay, except that the SIGCHLD is only sent when the last member of the - group terminates. That is incorrect; tg_ppid can be invalidated too - soon and, as a consequence, SIGCHLD would never be sent. Noted by - Jeongchan Kim in the Google group: - https://groups.google.com/forum/#!topic/nuttx/SXd8fVwVKBk From Gregory - Nutt (2019-08-01). - * confgs/z80sim/src/z80_serial.c: Fix uart_dev_t initializer: pollfds - is a array of pointers and, hence, the NULL initializer must be - included in braces. Noted by Paul Osmialowski in Issue #160. From - Gregory Nutt (2019-08-01). - * z80sim/src/z80_irq.c: Missed a name change - up_irqinitialize->z80_irq_initialize. From Gregory Nutt (2019-08-01). - * - STM32{L4|F4|H7}: Serial add HW HS on UART 4 & 5 - - STM32: Serial add HW HS on UART 4 & 5 - - STM32F7: Serial update copyright date - - STM32H7: Serial add HW HS on UART 4 & 5 - - STM32L4: Serial add HW HS on UART 4 & 5 - From David Sidrane (2019-08-01). - * STM32H7 RCC: Fix RCC register definitions and typos in ADC/UART - STM32H7 ADC: Fix internal channel numbers - STM32H7 UART: Fix typo in UART8 configuration From Markus Bernet - (2019-08-02). - * sched/: Correct some naming. The NuttX task groups have been using - the acronym 'gid' and also the type 'gid_t' for the the task group ID. - That is incorrect. Than naming is reserved for use with group - permissions. So these were all named to grpid and grpid_t so that it - is clearer that these refer to NuttX task group IDs, and not to group - permissions. From Gregory Nutt (2019-08-02). - * arch/arm/src/tiva, include/nuttx/sensors: Reinstate TM4C qencoder - driver and expand its ioctls. - arch/arm/src/tiva/Kconfig: - - Add TIVA_HAVE_QEI0, TIVA_HAVE_QEI1 as applicable to each - ARCH_CHIP_TM4C12*. - - Add config TIVA_QEI, TIVA_HAVE_QEI0, TIVA_HAVE_QEI1. - - Add config TIVA_QEI0, config TIVA_QEI1. - arch/arm/src/tiva/common/tiva_qencoder.c: - - Rewrite tiva_qe_setup(). - - Replace tiva_qe_ppr() with tiva_qe_resetatppr(). - - Add tiva_qe_resetatmaxpos(), tiva_qe_resetatindex(). - arch/arm/src/tiva/hardware/tiva_qencoder.h: - - Add missing definitions: SIGMODE_QUADRATURE, SIGMODE_CLK_AND_DIR, - SWAP_NO_SWAP, SWAP_PHA_PHB. - arch/arm/src/tiva/tiva_qencoder.h: - - Rename TIVA QEI ioctl QEIOC_PPR to QEIOC_RESETATPPR. - - Add TIVA QEI ioctl identifiers QEIOC_RESETATMAXPOS, QEIOC_RESETATINDEX. - include/nuttx/sensors/qencoder.h: - - Increase QE_TIVA_NCMDS from 3 to 5. From Nathan Hartman (2019-08-02). - * libs/libc/grp: Added stubbed implementations of getgrgid, getgrgid_r, - getgrnam, getgrnam_r, and initgroups. These functions are essentially - stubs pretending that NuttX supported groups and that the only - configured group in the system was 'root' with gid 0. The intend is - not to provide meaningful new features, but to ease porting of foreign - source code to NuttX. From Michael Jung (2019-08-03). - * libs/libc/grp/lib_grp.c: Fix a warning when compiling on a 64-bit - simulation. Cannot cast a pointer to unsigned in that case because - unsigned (int) is only 32-bits, but the pointer is 64-bits. From - Gregory Nutt (2019-08-03). - * configs/sim/include/etc.tar.gz, nsh_romfsimg.h: Improve the format of - the /etc/passwd format. It is now a little more similar to other - systems. Add an /etc/group file to support future testing. From - Gregory Nutt (2019-08-03). - * libc/pwd: Added stubbed implementations. Added stubbed implementations - of getpwuid, getpwuid_r, getpwnam, and getpwnam_r. These functions are - essentially stubs pretending that NuttX supported users and that the - only configured user in the system was 'root' with uid 0. The intend - is not to provide meaningful new features, but to ease porting of - foreign source code to NuttX. From Michael Jung (2019-08-04). - * Rename the arch/risc-v/src/gap8/gap.h to arch/risc-v/src/gap8/gap8.h - From Kejun ZHOU (2019-08-04). - * libs/libc/pwd and libs/libc/grp: Modify to get user/group data from - /etc/passwd and /etc/group if so configured. - libs/libc/pwd/lib_find_pwdfile.c: Add logic to look up user - information in /etc/passwd file, if available. - libs/libc/grp/lib_find_grpfile.c: Add logic to look up group - information in /etc/group file, if available. - From Gregory Nutt (2019-08-04). - * arch/arm/src/tiva: LM3S, LM4F, TM4C: Fix GPIO IRQ error, ports R, S, - T. Preprocessor logic for CONFIG_TIVA_GPIOx_IRQS was setting/clearing - port Q defines when it should act on ports R, S, T. gpioport2irq() was - missing handling for port T. From Nathan Hartman (2019-08-04). - * Move board-related files to new boards/ folder. This effectively - renames the configs/ directory to boards/. This is the first step in a - much larger effort. This is the proposed layout after all of the change: - - boards/: - folder containing board folders - : - name of each board - drivers/: - extra drivers specific for platform - include/: - header files for the boars - scripts/: - extra scripts specific for platform - src/: - board specific code - tools/: - extra tools specific for platform - configs/: - board specific configuration(s) - - Replaced configs/ with boards/ in: Kconfig, Makefile, tools/Makefile.*, - all Make.defs, tools/*.sh, tools/*.bat, tools/*.mk, .c and .h files - under boards/ From Alin Jerpelea (2019-08-05). - * Change naming configs/ to boards/ in comments, Documentation, etc. - From Gregory Nutt (2019-08-05). - * net/udp/udp_psock_sendto_buffered.c: Fixes a copy-paste error in the - new SO_LINGER code: CONFIG_TCP_NOTIFIER to CONFIG_UDP_NOTIFIER. From - Juha Niskanen (2019-08-05). - * Move board/ configuration directories to configs/ folder. This effects - all board directories under boards/. From Alin Jerpelea (2019-08-05). - * tools/configure.sh and configure.c. Update to preserve backward - compatibility in usage after the move of board configuration - directories under board/configs/. From Gregory Nutt (2019-08-05). - * tools/testbuild.sh: Fixes needed for changes to boards/ directory - structure. From Gregory Nutt (2019-08-05). - * Change references to boards// to - boards//configs/ in comments, Documentation, URLs. From - Gregory Nutt (2019-08-05). - * tools/refresh.sh: Fix the configuration refresh script for changes to - configuration paths. From Gregory Nutt (2019-08-05). - * boards/: Fix more comments related to the reorganization of the board - configuration directories. From Gregory Nutt (2019-08-05). - * kinetis: i2c transfer ensure correct result returned. - kinetis_i2c_transfer released the mutex then fetched the state, this - resulted in returning the correct results. From David Sidrane - (2019-08-05). - * tools/configure.sh and .c: When dumping available configurations, omit - the 'config/' in the path. From Gregory Nutt (2019-08-05). - * tools/: Change preferred argument of configurations tools to use ':' - as the delimiter between and . This is to - emphasize that this is not a path; it is configuration specification. - The legacy '/' delimiter is still supported but not recommend and not - advertised. Updated configurations instructions in README.txt files to - show ':' delimiter vs '/' delimiter. Update all configuration-related - tools to accept ':' separator between board and configuration name. - From Gregory Nutt (2019-08-05). - * sched/mqueue/mq_desclose.c: Add a test to verify that message queue is - closed by the same task group that opened it. If not, then list - corruption would result. This test is only performed if - CONFIG_DEBUG_FEATURES is enabled since it should not normally be an - issue: It would be a strange programming practice to open a message - queue in open task group, then close it in another. From 김정찬 - (2019-08-05). - * libs/libc/unistd: Stubs for setuid and setgid. Added stubbed - implementations of setuid and setgid. These functions are essentially - stubs pretending that NuttX supported users and groups and that the - only configured user and group in the system were both 'root' with a - uid and a gid of 0, respectively. The intent is not to provide - meaningful new features, but to ease porting of foreign source code to - NuttX. From Michael Jung (2019-08-06). - * drivers/pipes: Use inode reference counter instead of device reference - counter to handle dup(). I found that if I dup() a pipe, the reference - counter d_refs is not increased. If I close any of the fd, backed by - the same pipe, the pipe will be freed. This causes any further usage - on the fd referencing a non existent pipe. This change uses the inode - reference counter, which is properly maintained during dup(). From - Yang ChungFan (2019-08-06). - * arch/arm/src/stm32h7: Fix UART7/8 typos. Fix bug in ETH_MACQTXFCR - configuration. From Markus Bernet (2019-08-06). - * tools/configure.sh: Restore support for custom, out-of-tree - configurations that was broken in a previous commit. From Gregory Nutt - (2019-08-06). - * Group boards by architecture. All boards that share the same - architecture are moved to the same arch folder following the SoC - layout. For example, all ARM board configurations moved from - boards/board to boards/arm/board. From Alin Jerpelea (2019-08-06). - * tools/: Update configuration-related tools for last change to boards/ - directory organization. From Gregory Nutt (2019-08-06). - * tools/configure.sh: Needs to be able to run from the tools - sub-directory. From Gregory Nutt (2019-08-06). - * defconfigs: paths assigned to CONFIG_PASS1_BUILDIR must now include - the architecture. From Gregory Nutt (2019-08-06). - * boards/arm: Update paths to linker scripts in kernel/Makefile files. - From Gregory Nutt (2019-08-06). - * libs/libc/unistd.h: Add getuid() and getgid() to match Michael Jung's - setuid() and setgid(). From Gregory Nutt (2019-08-06). - * sched/group and syscall/: Implement 'real' setuid, getuid, setgid, and - getgid interfaces. These will be inheritance by all child task - groups. From Gregory Nutt (2019-08-06). - * arch/arm/src/armv7-m: Add ARMv7-M setjmp/longjump functions. From - David S. Alessio (2019-08-06). - * arch/arm/src/tiva/common/tiva_timerlib.c: Fix minor errors in - tiva_timerlib - Fix incorrect preprocessor conditionals related to Kconfig defines: - - CONFIG_TIVA_TIMER32_EDGECOUNT -> CONFIG_TIVA_TIMER16_EDGECOUNT - - CONFIG_TIVA_TIMER32_TIMECAP -> CONFIG_TIVA_TIMER16_TIMECAP - - CONFIG_TIVA_TIMER32_PWM -> CONFIG_TIVA_TIMER16_PWM - From Nathan Hartman (2019-08-06). - * Tiva: Fix errors in low-level timer support - arch/arm/src/tiva/common/tiva_timerlib.c: - - tiva_gptm_configure() and tiva_gptm_release(): Fix error: Was calling - tiva_emac_periphrdy() instead of tiva_gptm_periphrdy(). - arch/arm/src/tiva/tiva_timer.h: - - Fix error in "abcde" description of bit flag defines. - From Nathan Hartman (2019-08-07). - * arch/arm/src/lpc17xx_40xx/Kconfig: Add missing - LPC17_40_PHY_CEMENT_DISABLE config to the lpc17xx Kconfig file. For - some reason this config wasn't referenced anywhere else except in - arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c. From Augusto Fraga - Giachero (2019-08-07). - * arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c: Follow the procedure - listed in the LPC176x/5x User Manual when reading from and writing to - the PHY's registers (section 10.11.14). I couldn't see any behavioral - change after this commit, but nonetheless is a good practice to follow - the manufacturer's recommended procedure. From Augusto Fraga Giachero - (2019-08-07). - * arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c: Fix the initialization - for DP83848x PHYs. The DP83848x requires the RMII mode to be manually - enabled through the MII_DP83848C_RBR register. Before querying the - speed and mode it should wait for the link to be established. From - Augusto Fraga Giachero (2019-08-07). - * Group boards based on chip. All boards based on the same chip are - moved to the same folder. For example, all STM32 configurations moved - from boards/arm/board to boards/arm/stm32/board. From Alin Jerpelea - (2019-08-07). - * Add defconfig files must include CONFIG_ARCH_CHIP= to break and - chicken-and-egg problem. From Gregory Nutt (2019-08-07). - * arch/sim: Even though the simulation has no "chips", it needs to have - CONFIG_ARCH_CHIP and chip sub-directories. Otherwise, we would have to - treat it as a special case in the build system. From Gregory Nutt - (2019-08-07). - * tools/: Update and verify all configuration related tools with new, - boards directory layout. From Gregory Nutt (2019-08-07). - * defconfigs: All paths assigned to CONFIG_PASS1_BUILDIR must include - the chip name. From Gregory Nutt (2019-08-07). - * arch/arm/src/tiva/common/tiva_timerlib.c: Fix one code error and some - comment errors. tiva_timer16_setinterval(): Was DEBUGASSERTing on mode - != TIMER16_MODE. Fixed to DEBUGASSERT on mode == TIMER16_MODE. From - Nathan Hartman (2019-08-07). - * boards/Board.mk: Correct a simulator inclusion path problem introduced - by reorganization of arch/sim/src. From Gregory Nutt (2019-08-08). - * drivers/sensors/sht3x.c: Add Sensirion SHT3x driver. From Markus - Bernet (2019-08-08). - * Beginning to update comments to reflect new organization of the boards/ - sub-directory. From Gregory Nutt (2019-08-08). - * After restructuring the boards/ directory, it is time for code style - cleanup: hc, mips. From Alin Jerpelea (2019-08-08). - * Update more comments and README.txt files to reflect new organization - of the boards/ sub-directory. From Gregory Nutt (2019-08-08). - * Documentation: Update some documents affected by the change in the - organization of the boards/ sub-directory. From Gregory Nutt - (2019-08-08). - * boards/arm/lpc17xx_40xx/u-blox-c027/configs/nsh/defconfig: Remove - stray character in defconfig file. From Gregory Nutt (2019-08-08). - * STM32F7: Ethernet add timeout on MAC reset From David Sidrane - (2019-08-08). - * tools/testbuild.sh: Remove some recently introduced echo's that - clutter the build test output From Gregory Nutt (2019-08-08). - * Documentation/README.html: Update for new boards/ sub-directory - layout. From Gregory Nutt (2019-08-08). - * README.txt: Update for new boards/ sub-directory layout. From Gregory - Nutt (2019-08-08). - * arch/arm/include/armv7-m/nvicpri.h: In the 'normal' case, the priority - of the SVCALL interrupt was the same as the priority of the high - priority interrupt. This means that SVCALL interrupt processing can - defer the high priority interrupt and result in the jitter in that - interrupt response. Fix is to raise the priority of the high priority - interrupt above the priority of the SVCALL interrupt. Suggested by - Nathan Hartman. From Gregory Nutt (2019-08-09). - * After restructuring the boards/ directory, it is time for code style - cleanup: misoc, or1k, renesas, risc-v, sim, x86, xtensa, z16, z80 From - Alin Jerpelea (2019-08-09). - * Documentation/NuttX.html: Adjust URLs to board README.txt files to - account for changes in boards/ sub-directory reorganization. From - Gregory Nutt (2019-08-09). - * This commit removes CONFIG_ARCH_INT_DISABLEALL. In the normal course - of things, interrupts must occasionally be disabled using the - up_irq_save() inline function to prevent contention in use of resources - that may be shared between interrupt level and non-interrupt level - logic. Now the question arises, if we are using BASEPRI to disable - interrupts and have high priority interrupts enabled - (CONFIG_ARCH_HIPRI_INTERRUPT=y), do we disable all interrupts except - SVCall (we cannot disable SVCall interrupts). Or do we only disable - the "normal" interrupts? If we are using the BASEPRI register to - disable interrupts, then the answer is that we must disable ONLY the - "normal interrupts". That is because we cannot disable SVCALL - interrupts and we cannot permit SVCAll interrupts running at a higher - priority than the high priority interrupts (otherwise, they will - introduce jitter in the high priority interrupt response time.) Hence, - if you need to disable the high priority interrupt, you will have to - disable the interrupt either at the peripheral that generates the - interrupt or at the NVIC. Disabling global interrupts via the BASEPRI - register cannot effect high priority interrupts. From Gregory Nutt - (2019-08-09). - * Tiva GPTM timers: Implement 16-bit PWM mode - arch/arm/src/tiva/Kconfig: - - Remove EXPERIMENTAL dependency on TIVA_TIMER16_PWM. - arch/arm/src/tiva/common/tiva_timerlib.c: - - Fix wrong 32/16-bit ifdef checks. - - Add tiva_pwm16_sel_event() to choose GPTMCTL.TnEVENT value. - - Implement tiva_pwm_mode16(). - - tiva_timer16_setinterval(): Fix wrong check for TIMER16_MODE_ONESHOT - and TIMER16_MODE_PERIODIC. Was comparing to config->cmn.mode which - can never have those values. This prevented interrupts being enabled. - Compare to timer->mode instead. - - Add tiva_timer16pwm_setperiodduty() to set initial period, duty - cycle, and enable interrupts if requested in GPTM peripheral. - Interrupts are not enabled in NVIC until tiva_timer16_start() is called. - - Add tiva_timer16pwm_setduty() to update duty cycle at any time. - arch/arm/src/tiva/hardware/lm/lm3s_timer.h, - arch/arm/src/tiva/hardware/lm/lm4f_timer.h, - arch/arm/src/tiva/hardware/tm4c/tm4c123_timer.h, - arch/arm/src/tiva/hardware/tm4c/tm4c129_timer.h: - - Add missing defines; make surrounding defines consistent. - arch/arm/src/tiva/tiva_timer.h: - - Add new TIMER_FLAG_* configuration flags to enable configuring - the16-bit PWM feature. Extend type of "flags" in tiva_timer32config_s - and tiva_timer16config_s from 8- to 32-bits to allow more flags. - From Nathan Hartman (2019-08-09). - * boards/arm/efm32/olimex-efm32g880f128-stk/src/.gitignore: Restore - .gitignore file that was lost in the boards/ directory reorganization. - From Nathan Hartman (2019-08-09). - * STM32F7: USART1_RXDMA is dependent on STM32F7_DMA2 not STM32F7_DMA1 - From Anthony Merlino (2019-08-09). - * arch/arm/include/cxd56xx/chip.h: The NVIC priority correction of - commit c300f271303e04d5a7a1e42973a02115ed062cb0 must be applied to the - CXD56xx too. From Gregory Nutt (2019-08-10). - * - arch/arm/src/{stm32/stm32f7/stm32h7/stm32l4}/stm32_pwm.c: Configure - multi-channel duty only if channel specified. This allows you to - update duty cycle for a single channel - - nucleo-f303re/configs: add basic NSH configuration - - nucleo-f303re/configs/pwm: enable console on UART2 and set entry - point to nsh_main - From raiden00pl (2019-08-10). - * Change all occurrences of /bin/(ba)sh to /usr/bin/env bash which - appears more portable From Manuel Stühn (2019-08-10). - * sched/group/group_setuid.c and group_setguid.c: Verify that the - UID/GID is within range. From Gregory Nutt (2019-08-10). - * wireless/ieee802154/mac802154_netdev: Allow 64-bit prefix to be - configurable when auto-configuring the IPv6 address during bring-up. - Previously, the link-local prefix fe80::/64 was used. Also, put the - network in the DOWN state at the end of initialization. From Anthony - Merlino (2019-08-10). - * wireless/ieee8021254: Adds support for energy detect. Adds support - for energy detect by introducing a new radio call/callback, as the PHY - layer is required to perform the energy detect. From Anthony Merlino - (2019-08-10). - * MAC attributes - - wirelesss/ieee802154/mac802154: Makes comment more clear that it's - related to an outbound frame, not an incoming frame. - - wireless/ieee802154: Adds support for getting/setting - macMaxFrameRetries via IOCTL - - wireless/.ieee802154/mac802154: Add get support for rxonidle - attribute - From Anthony Merlino (2019-08-10). - * wirelesss/ieee802154/mac802154: Moves iobuffer into macnet struct so - that more than one macnet dev can exist. From Anthony Merlino - (2019-08-10). - * drivers/usbdev/rndis: Expose option to change number of write requests - that can be in flight. From Anthony Merlino (2019-08-10). - * net/ipforward: Check if interface is up early on when forwarding to - avoid extra work. As noticed in a previous wireless commit, when - forwarding is enabled and a packet comes in, the packet is attempted to - be sent on each other netdev without regard for whether it is in the UP - state. Of course this is eventually caught, but it can be caught - earlier to avoid unnecessary work, especially in the 6LoWPAN case where - a useless packet conversion will occur. From Anthony Merlino - (2019-08-10). - * clock.h: Copies in missing function documentation from C file. From - Anthony Merlino (2019-08-10). - * ieee802154: Support dynamic FCS length. Adds - IEEE802154_ATTR_PHY_FCSLEN. This change introduces - IEEE802154_ATTR_PHY_FCSLEN which the radio layer can support to set/get - the FCS length that's added to the end of the frame. One use case, in - promiscuous mode, is to add back in the FCS of the received frame by - increasing the iob->io_len by the FCS length. From Anthony Merlino - (2019-08-10). - * wireless network devices: Attach radio to d_buf before registering - device to handle forwarding case. When CONFIG_NET_IPFORWARD is - enabled, and CONFIG_NET_6LOWPAN is being used, a packet that attempts - to get forwarded on the 6LoWPAN interface will require that the radio's - buffer be attached to d_buf. Otherwise the below exception will be - hit. ~line 542 of sixlowpan_framelist.c: - - ... - /* Recover the reassembly buffer from the driver d_buf. */ - - reass = (FAR struct sixlowpan_reassbuf_s *)radio->r_dev.d_buf; - DEBUGASSERT(reass != NULL); - ... - - The underlying "radio" in this case is the mac802154_netdev. This - behavior has probably not been observed because the buffer is normally - attached in the periodic txpoll worker. However, in my case, the - 6LoWPAN interface was not UP yet, and therefore the worker hadn't run - yet. From Anthony Merlino (2019-08-10). - * mac802154: Fixes issues with extended address. 1) Extended address - should be read-only. 2) Extended address should be placed in frame in - "reverse-canonical" order. The extended address is a read-only - attribute and thus an attempt to write the extended address should be - denied. Instead, the extended address should really be either set by - the PHY/radio itself, or provided at board bring-up time to the radio - layer. The MAC layer now pulls in the extended address from the radio - any time the MAC is reset. The extended address is also supposed to be - sent in the frame in reverse-canonical order. This is very confusing in - the standard and it wasn't until I realized it was backwards in - Wireshark that I researched this further. Searching online I find - documents from the committee for suggestions/feedback on the future - standard. It isn't in the 2015 standard but a newer version of the - standard will presumably clarify this. It says that the extended - address should be written in reverse-canonical form, meaning the OUI - comes last, not first inside the frame. From Anthony Merlino - (2019-08-10). - * mac802154: Fixes issue where the txdesc's ackreq flag was not being - set, despite the frame containing a Frame Control field with ACKREQ bit - set. From Anthony Merlino (2019-08-10). - * arch/arm/src/stm32f7: Exposes stm32_flash_xxx functions. From Anthony - Merlino (2019-08-10). - * libs/libc/grp and pwd: Revisit file locks. Use uintptr_t vs void * to - encode mixed pointers and integer values. From Gregory Nutt - (2019-08-11). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part I From Alin Jerpelea (2019-08-12). - * This commit brings the initial files for a port to the NXP S32K1xx - family. This is very much a work in progress and is little more that a - partial configuration/build environment and some S32K1xx register - definition header files - - Basic configuration logic for the S32K1 family. - - arch/arm/src/s32k1xx: Add initial Make.defs files. - - arch/arm/src/s32k1xx/hardware/s32k1xx_scg.h: Add SCG register - definition file. - - arch/arm/src/s32k1xx/hardware/s32k1xx_pcc.h: Add PCC register - definition file. - - arch/arm/src/s32k1xx/hardware/s32k1xx_cmu.h: Add CMU register - definition file. - - arch/arm/src/s32k1xx/hardware/s32k1xx_memorymap.h: Add memory map - definition file. - - arch/arm/src/s32k1xx/hardware/s32k1xx_mcm.h: Add MCM register - definition file. - From Gregory Nutt (2019-08-12). - * boards/arm/timva/tm4c123g-launchpad: Update paths for boards/ - restructuring. Update paths to board directories in documentation and - scripts. From Nathan Hartman (2019-08-12). - * arch/arm/src/s32k1xx/hardware/s32k1xx_sim.h: Add SIM register - definition file. From Gregory Nutt (2019-08-12). - * arch/arm/src/s32k1xx/hardware/s32k1xx_port.h: Add PORT register - definition file. From Gregory Nutt (2019-08-13). - * libs/libc/math.csv: Correct format of some function entries. From - Pavel Pisa (2019-08-13). - * libs/libc/libc.csv: Correct dependency of setlocale on - CONFIG_LIBC_LOCALE. From Pavel Pisa (2019-08-13). - * symtab/, tools/: NuttX provides lists of available syscalls and - library functions and tools to process them. The lists can be used to - build symbol table which allows runtime program loading which can reuse - functions already compiled into NuttX system image. List processing, - compilation and linking to the final system image has been possible - only under manual control until now. Provided changes add option - (CONFIG_EXECFUNCS_GENERATE_SYSTEM_SYMTAB) to build complete list of - available functions and syscalls automatically. The symbolic table is - generated in form libsymtab.a which can be reused by application or - directly pull in when "g_symtab" and "g_nsymbols" variables are - requested by EXECFUNCS configuration. I have tried to follow - mechanisms for library compilation in different kernel protection modes - but tested only flat no-MMU build. The basic assumption is that this - library and libraries providing syscall stubs and C-library functions - are available in user-space context and initial application (usually - NSH) registers the symbol table through IOCTL. The table can be reused - then by another applications in their address space as kernel allows. - Simple for flat or protected mode, I am not sure if really support in - MMU mode. It is highly probable that I have made some mistake, - overlooked something, but functionality is optional (should not cause - troubles in any mode if disabled) and main purpose is to lower memory - overhead when more applications are loaded on memory constrained system - which usually use direct kernel calling without protection or address - space separation. If the table should be provided by kernel to - applications then makefiles has to be adjusted. From Pavel Pisa - (2019-08-13). - * symtab/Makefile: The OS symbol table should not be generated in the - PROTECTED and KERNEL build modes. In those modes, the applications - should link with libproxy which will provide symbol-compatible access - to OS functions via a call gate. From Gregory Nutt (2019-08-13). - * arch/arm/src/s32k1xx/hardware/s32k1xx_gpio.h: Add GPIO register - definition file. From Gregory Nutt (2019-08-13). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part II From Alin Jerpelea (2019-08-13). - * arch/arm/src/s32k1xx/hardware/s32k1xx_dmamux.h: Add DMAMUX register - definition file. From Gregory Nutt (2019-08-13). - * arch/arm/src/s32k1xx/hardware/s32k1xx_wdog.h and s32k1xx_ewm.h: Add - WDOG and EWM register definition file. From Gregory Nutt (2019-08-13). - * arch/arm/src/s32k1xx/hardware/s32k1xx_crc.h: Add CRC register - definition file. From Gregory Nutt (2019-08-13). - * arch/arm/src/s32k1xx/hardware/s32k1xx_rcm.h: Add RCM register - definition file. From Gregory Nutt (2019-08-13). - * arch/arm/src/imxrt: Fix some errors in the LPUART register definition - files. Correct naming of a function: up_earlyserialinit() should be - imxrt_earlyserialinit(). Remove prototypes for non-existent serial - initialization functions. From Gregory Nutt (2019-08-13). - * arch/arm/src/s32k1xx: Bring in the LPUART from i.MXRT. It is the same - IP. From Gregory Nutt (2019-08-13). - * symtab/Makefile: Fix an error in the clean target. From Gregory Nutt - (2019-08-13). - * include/sys/syscall.h: Correct some typos. From Pavel Pisa (2019-08-13). - * arch/arm/src/lpc17xx_40xx/lpc17_40_can.c: If BOARD_CCLKSEL_DIVIDER is - not equal to 1 on LPC178x or LPC40xx then base clock rate is calculated - incorrectly because CCLK frequency does not correspond to PLL0 clock - which is used for PCLK. This is partially workaround solution. It - would be probably better to define BOARD_PCLK_FREQUENCY even for - LPC176x targets and use that to replace divisor by base_clock in - up_dev_s. From Pavel Pisa (2019-08-13). - * arch/arm/src/s32k1xx: Fix some sub-directory names. From Gregory Nutt - (2019-08-13). - * arch/arm/src/s32k1xx: Bring in Cortex-M0+ Systick and interrupt - handling from samd2l2; bring in Cortex-M4F Systick and interrupt - handling from LPC54xx. From Gregory Nutt (2019-08-13). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part III From Alin Jerpelea (2019-08-14). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part IV From Alin Jerpelea (2019-08-14). - * This commit adds initial board support for the NXP S32K118EVB. This - configuration is intended, initially, to support development of the - architecture support. This is VERY much a work in progress and you - should not use this configuration unless you are interested in - assisting with the bring-up. - - boards/arm/s32k1xx/s32k118evb: Add initial support for the NXP - S32K118EVB. - - boards/: Hook the S32K118EVB board into the configuration system. - - boards/arm/s32k1xx/s32k118evb/scripts: Add linker scripts and - Make.defs. - - boards/arm/s32k1xx/s32k118evb/configs/nsh: Add a basic NSH - configuration. From Gregory Nutt (2019-08-14). - * Flesh out a few more things needed to compile and build the S32K118EVB - board configuration. - - arch/arm/include: Add interrupt IRQ numbers. - - tools/: Add support for the S32K1XX family. - From Gregory Nutt (2019-08-14). - * symtab/Makefile: When system wide locale is set (i.e. en_US.UTF-8) - then 'read' is ordered after 'readdir' even if separator is set to - quotation mark and key set to 2. When C locale is used result is - correct. From Pavel Pisa (2019-08-14). - * arch/arm/src/lpc17xx_40xx/Make.defs: Cortex-M system reset is - applicable to LPC17_40 too. From Pavel Pisa (2019-08-14). - * arch/arm/src/s32k1xx: A few fixes. The build progresses further but - still fails. From Gregory Nutt (2019-08-14). - * boards/arm/s32k1xx/s32k118evb: More build fixes. From Gregory Nutt - (2019-08-14). - * - stm327f: Kconfig add depends on BBSRAM - - STM32H7: memorymap fix BBSRAM name - - STM32H7: Add BBSRAM support - From David Sidrane (2019-08-15). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part V From Alin Jerpelea (2019-08-15). - * arch/arm/src/s32k1xx/s32k1xx_clockconfig.h: Add data structures that - will eventually be used to configure clocking. From Gregory Nutt - (2019-08-15). - * arch/arm/src/tiva, arch/arm/include: Add support for Tiva - TM4C123AH6PM. From Nathan Hartman (2019-08-15). - * libs/libc/libc.csv: Add some missing C library functions. From Pavel - Pisa (2019-08-15). - * binfmt/: Change debug macro from berr() to binfo() when dumping module - data. The report of problems is important during development but when - it enables complete informative output about load binaries then the - important information can be easily overlooked. The huge output sent - to serial terminal slows loading significantly as well. From Pavel - Pisa (2019-08-15). - * Serial single-wire: add possibility to specify pull-up instead of open - drain From Beat Küng (2019-08-15). - * boards/arm/s32k1xx/s32k118evb/src/s32k118_clockconfig.c: Add clock - configuration data for the S32K118EVB. From Gregory Nutt (2019-08-15). - * arch/arm/src/tiva/common/tiva_irq.c: Add handling for IRQs 128 through - 159. Handling was missing for these IRQs, resulting in compiler - warning(s) for 'Missing logic' and/or 'Missing output.' From Nathan - Hartman (2019-08-15). - * arch/arm/src/s32k1xx/Kconfig: Break out some feature configurations - instead of relying on MCU selections for conditional logic. From - Gregory Nutt (2019-08-15). - * arch/arm/src/s32k1xx/s32k1xx_clockconfig.c: First feeble fragments of - clock configuration logic. From Gregory Nutt (2019-08-15). - * arch/arm/src/tiva: Modify preprocessor logic to support configs with - no UART. Now similar to logic for other archs, such as - arch/arm/src/a1x/a1x_lowputc.c and - arch/arm/src/am335x/am335x_lowputc.c. This change eliminates compiler - errors and warnings that were breaking the build with "No - CONFIG_UARTn_SERIAL_CONSOLE Setting" when no UARTs / console were - configured. From Nathan Hartman (2019-08-15). - * ieee802154/sixlowpan: Removes unnecessary conversions that were - happening due to a misunderstanding of byte ordering with EUI-64. - Conflicts: drivers/wireless/ieee802154/xbee/xbee_netdev.c From - Anthony Merlino (2019-08-16). - * Mac802154 fixes - - wireless/ieee802154/mac802154: Frame Version should have been 1, but - was being set to 3 when payload exceeds version 0 capabilities. - - wireless/ieee802154/mac802154: Corrects function reference in warning - print-out - - wireless/ieee802154/mac802154/sixlowpan: Adds warning to build to - indicate what is noted in the menu for CONFIG_MAC802154_NTXDESC - From Anthony Merlino (2019-08-16). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part VI From Alin Jerpelea (2019-08-16). - * drivers/wireless/ieee802154/xbee: Fix logic to prevent deadlock - scenario when there are no available IOBs From Anthony Merlino - (2018-12-21). - * drivers/wireless/ieee802154/xbee: Change assumption about destination - address mode for incoming frames. If a short address has been assigned - to our radio, then assume we were addressed using that. Otherwise we - were addressed using our extended address. From Anthony Merlino - (2019-01-10). - * drivers/wireless/ieee802154/xbee: Initialize the short address to the - unspecified address and query for the extended address on init. From - Anthony Merlino (2019-01-10). - * drivers/wireless/iee802154/xbee: Support "WR" AT command for writing - parameters to non-volatile memory. From Anthony Merlino (2019-01-10). - * drivers/wireless/ieee802154/xbee: Adds CONFIG_XBEE_LOCKUP_WORKAROUND - option and corresponding logic to workaround an issue where the XBee - locks up and stops responding. This typically happens when there is a - lot of data being received over the link. When the XBee stops - responding, many times, querying the XBee kicks it out of this state. - However, occasionally the XBee is completely locked up and the XBee has - to be reset. This change handles these conditions by periodically (if - not naturally occurring) querying the XBee. If during any query, the - XBee does not respond within a certain number of attempts, the XBee is - reset. From Anthony Merlino (2019-01-10). - * drivers/wireless/ieee802154/xbee: Cancel query timeout upon receiving - the expected response. Add protection for race condition that can - cause association timeout to continue firing repeatedly From Anthony - Merlino (2019-01-11). - * drivers/wireless/ieee802154/xbee: Detect lockup and reset XBee in - xbee_req_data From Anthony Merlino (2019-01-16). - * - arch/arm/src/s32k1xx/s32k1xx_clockconfig.c: Finishes the - implementation of the core clock configuration logic. - - arch/arm/src/s32k1xx/hardware/s32k1xx_smc.h: Add SMC register - definition header file. - - arch/arm/src/s32k1xx: Bring in GPIO logic from Kinetis. Looks like - the same IP. - From Gregory Nutt (2019-08-16). - * IOB instrumentation - - mm/iob: Introduces producer/consumer id to every iob call. This is - so that the calls can be instrumented to monitor the IOB resources. - - IOB instrumentation - Merges producer/consumer enumeration for - simpler IOB user. - - fs/procfs: Starts adding support for /proc/iobinfo - - fs/procfs: Finishes first pass of simple IOB user statistics and - /proc/iobinfo entry - From Anthony Merlino (2019-08-16). - * arch/arm/src/s32k1xx/hardware/s32k1xx_pmc.h: Add PMC register - definition header file. From Gregory Nutt (2019-08-16). - * boards/README.txt: Update for changes to the organization of the - boards/ directory. From Gregory Nutt (2019-08-16). - * stm32h7 RTC and friends support - - STM32H7: Removed f7 in file path - - STM32F7: Fix overwritten IRQ enabled. System boot order calls - clock_initialize then up_initialize. clock_initialize was setting up - the alarm IRQ up_initialize is initializing the NVIC. This most likely - worked in the past due to a bug in the NVIC init code that failed to - clear the Interrupt enables. That was fixed in 510b0f7e - arch/arm/src: Correct all ARMv7-M architectures. Interrupts were - not be disabled correctly on power up. - - STM32H7:Ported over F7 RTC - - nucleo-h743zi:Add RTC - From David Sidrane (2019-08-17). - * Finishes peripheral clock initialization: - - arch/arm/src/s32k1xx/s32k1xx_clockconfig.c: Add SIM clock - configuration. - - arch/arm/src/s32k1xx/s32k1xx_periphclocks.c: Add logic to initialize - peripheral clocking. - - boards/arm/s32k1xx/s32k118evb/src/s32k118_periphclocks.c: Provides - initial clocking for for the S32K118EVB - - arch/arm/src/s32k1xx/s32k11x/s32k11x_clockmapping.c and - arch/arm/src/s32k1xx/s32k14x/s32k14x_clockmapping.c: Provide - MCU-specific mapping of clock names to PCC control registers. - From Gregory Nutt (2019-08-17). - * - arch/arm/src/s32k1xx: Add peripheral feature arrays. - - arch/arm/src/s32k1xx/: Add logic to look up the peripheral clock - frequency. Fix baud calculation logic in s32k1xx_lowputc.c: In no - longer tries to enable clocking. That must be done with board - logic. Now gets the peripheral functional clock frequency to - determine the baud rate. - From Gregory Nutt (2019-08-17). - * arch/arm/src/s32k1xx/s32k1xx_edma.c: Leverage eDMA logic from i.MXRT - to S32K1XX. Appears to be the same IP but with fewer channels and - features than the i.MXRT implementation. From Gregory Nutt (2019-08-17). - * - arch/arm/src/s32k1xx/s32k1xx_pin.c and .h: The device does not - support slew rate controls or open drain (on all the pins). Only - pins that are configured for a protocol that requires open-drain - (e.g;, LPI2C, LPUART single-wire) will work in open-drain mode. - - arch/arm/src/s32k1xx/s32k1xx_pin.c and .h: Add support for PIDR - register that disables a general purpose pin from acting as an input. - - arch/arm/src/s32k1xx/hardware: Add pin mux definitions for S32K116, - 118, 142, 144, 146, and 148. - - boards/arm/s32k1xx/s32k118evb/include/board.h: Add LPUART0 pin - disambiguation. - - boards/arm/s32k1xx/s32k118evb: Implement board support for LEDs and - buttons. This is taken from the Freedom-K66f with has the same LED - and button configuration as the S32K116EVB and uses the same GPIO - IP. From Gregory Nutt (2019-08-18). - * This commit brings the S32K118EVB board to code complete and ready for - testing. This commit adds some minor initialization fixes (like - disabling the WDOG, enabling the I-cache, and initializing the MPU. It - brings more files in from the Kinetis port for the IDLE loop and for - GPIO functionality. This also address register definition header file - for LMEM and MPU. From Gregory Nutt (2019-08-18). - * This commit adds support for the S32K146EVB - - arm/s32k1xx/s32k146evb: Initial support for the S32K146EVB. Starting - point is just the S32K118EVB with name changes. - - boards/arm/s32k1xx/s32k146evb/src/s32k146_periphclocks.c: Update - peripheral clocking for the S32K146. - - s32k146_clockconfig.c: Add S32K146 clock configuration. - - boards/: Hook the S32K146EVB into the configuration and build system. - - s32k1xx/s32k146evb/scripts/flash.ld: Update the linker script for - the S32K146. - From Gregory Nutt (2019-08-19). - * After restructuring the boards/ directory, it is time for code style - cleanup: ARM part VII From Alin Jerpelea (2019-08-19). - * mac802154: Defers handling of extracting association response to LPWORK - queue. From Anthony Merlino (2019-08-19). - * arch/arm/src/s32k1xx/s32k14x and boards/arm/s32k1xx/s32k146evb/src: - Numerous fixes to get a clean build of the S32K146EVB. From Gregory - Nutt (2019-08-19). - * arch/arm/src/imxrt/imxrt_usdhc.c: uSDHC typo fixes and command transfer - error handling modified. From Ivan Ucherdzhiev (2019-08-19). - * Kconfig, include/debug.h, and drivers/contactless: Add debug macros - for contactless. The various contactless device drivers currently - define device specific debug macros within their local header files. - This patch adds generic ctls[info|warn|err] macros for the overall - contactless subsystem to be used in future drivers. Ported the two - currently available contactless device drivers (mfrc522.c and pn532.c) - to these generic logging macros and fixed some logging bugs along the - way. From Michael Jung (2019-08-19). - * mm/iob/iob_statistics.c: Fix an error found in build testing. Must - include nuttx/mm/iob.h. From Gregory Nutt (2019-08-19). - * - Save CONFIG_ARCH_BOARD_CUSTOM when running 'make savedefconfig' - - Made grep search expression more specific. - From jjlange (2019-08-19). - * fs/procfs/fs_procfsiobinfo.c: Fix error found in build testing. - Needs to include nuttx/mm/iob.h. From Gregory Nutt (2019-08-19). - * arch/arm/src/s32k1xx/s32k1xx_clockconfig.c and related files: Fix - confusion about who decrements the register value. Some dividers may - have a function range of 1..8 but the register value is 0..7. There - were several places where values were getting decremented twice: Once - by higher up logic and once by the register access logic. A such - dividers were reviewed and, hopefully, all were fixed. From Gregory - Nutt (2019-08-19). - * boards/arm/stm32h7/nucleo-h743zi/src/nucleo-h743zi.h: Correct logic - that determines if the RTC driver is available. Find in build - testing. From Gregory Nutt (2019-08-19). - * - Added a missing '=' in the second grep statement - - Save CONFIG_ARCH_BOARD_CUSTOM when running 'make savedefconfig' - From jjlange (2019-08-19). - * STM32H7: Port DTCM from F7 From David Sidrane (2019-08-19). - * STM32H7: Ported UID from F7 From David Sidrane (2019-08-19). - * drivers/ieee802154/xbee: Add configuration option for setting the - default prefix to use when bringing up the network and setting the IP - address. Conflicts: drivers/wireless/ieee802154/xbee/xbee_netdev.c - From Anthony Merlino (2019-08-19). - * xbee: Fixes one instance of the use of IOBUSER_WIRELESS_MAC802154 - which isn't available without the software MAC layer. Instead we use - IOBUSER_WIRELESS_RAD802154 throughout the whole driver since it is - always available when IEEE 802.15.4 support is enable. From Anthony - Merlino (2019-08-19). - * - STM32H7: DMA Fix compiler warning - - STM32H7: DMA Fix coding style - - STM32H7: Serial fix undefined with TERMIOS - From David Sidrane (2019-08-20). - * - STM32H7: SPI allow more clock sources - - STM32H7 has ARCH_HAVE_I2CRESET - From David Sidrane (2019-08-20). - * With these changes the S32K146EVB minimal NSH is functional. Only - verified while running from SRAM. - - boards/arm/s32k1xx/s32k*evb/configs/nsh/defconfig: Create Motorola - SREC output format. - - arch/arm/src/s32k1xx/s32k1xx_wdog.h: Fix a typo in a register name. - - arch/arm/src/s32k1xx/s32k1xx_clockconfig.h: Remove crystal - frequency, it is not used. - - boards/arm/s32k1xx/s32k118evb: Add support for execution out of - SRAM. This is helpful for bringup when you want to avoid putting a - lethal image in FLASH. - - arch/arm/src/s32k1xx/s32k1xx_clockconfig.c: Clean up some bad - conditional logic. Precedence of operators problem. - - arch/arm/src/s32k1xx/s32k1xx_clockconfig.c: Fix another problem - related to whether a divider is pre-decremented or not. The answer - must be the divider values are never pre-decremented. They are - decremented just before being written to hardware. - - arch/arm/src/s32k1xx/s32k1xx_periphclocks.c and related files: Fix - yet another case of confusion between pre-decremented and - non-decremented divider values. Enforce the rule that dividers are - not decremented until the moment they are written into registers. - - arch/arm/src/s32k1xx/s32k1xx_lowputc.c: Fix a typo that prevented - LPUART1 from working. - From Gregory Nutt (2019-08-20). - * This commit adds support for the NXP S32K148EVB - - boards/arm/s32k1xx/s32k148evb: Initial S32K148EVB. Initial commit - is just clone of S32K146EVB with file name changes - - boards/arm/s32k1xx/s32k148evb: Change all occurrences of 146 to 148. - - boards/arm/s32k1xx/s32k148evb: Correct LED and button pin number - for the S32K148EVB. - - arm/s32k1xx/s32k148evb: Verify core and peripheral clocking. It is - the same as the S32K146EVB. Fixed one-too-many copy-paste error in - both. - - boards/arm/s32k1xx/s32k148evb: Correct linker scripts for the - S32K148, Update README files, Hook the S32K148EVB into the - configuration and build system. - From Gregory Nutt (2019-08-20). - * - boards/: Add stub drivers folder for later use. In this folder we - should place drivers that are platform specific and depend on HW - that is present only on a specific platform. NOTE: All shared - drivers should go to the regular driver folder - - tools: Shift BOARD_DIR one level up. In preparation for drivers - and common folders we are moving the BOARD_DIR path up one level. - - tools: Add drivers/platform symlink. Link the - boards///drivers dir to drivers/platform - - drivers: Add platform specific drivers extension. There are - platforms that use specific drivers and we should be able to include - those drivers in the build. - - board: cxd56xx: drivers: add AK09912 driver for SCU. This is a - platform specific driver connected on the SCU unit. From Alin - Jerpelea (2019-08-21). - * Register a character driver for UUID of AT24CSxx chips. Allows the - UUID to read as a file or displayed from an nsh prompt with: hexdump - /dev/eeprom.uuid From David Alessio (2019-08-21). - * drivers/mmcsd: Added support for MMC(eMMC) bigger than 2 GB (Tested - with IMXRT1050EVKB and samsung eMMC 16GB). - * arch/arm/src/imxrt: IMXRT uSDHC driver cmd line reset logic modified. - From Ivan Ucherdzhiev (2019-08-21). - * drivers/mmcsd/mmcsd_sdio.c: Copy/paste error fix for MMC. From Ivan - Ucherdzhiev (2019-08-21). - * arch/arm/src/s32k1xx: This commit brings in the LPSPI and LPI2C - peripheral drivers from the i.MXRT which used the identical IP. - - arch/arm/src/s32k1xx: Clone i.MXRT LPSPI and LPI2C support. i.MXRT - uses the same IP as S32K1XX. - - arch/arm/src/s32k1xx: Clean up LPSPI and LPI2C naming for S32K1XX. - Using S32K1XX clock functions to get peripheral input clock. - - arch/arm/src/s32k1xx: Update peripheral input clocking for the way - that things are done for the S32K1XX. Fix other misc. - compilation/configuration issues. - From Gregory Nutt (2019-08-21). - * drivers/mmcsd/mmcsd_sdio.c: Correct a misplaced #endif. From Gregory - Nutt (2019-08-21). - * - tools/Makefile.unix: Add support for common board folder. This - patch adds support for a common board folder and simplifies the code - and maintenance on boards that share the same code - - cxd56xx: Migration to a common folder. This is the first platform - to be migrated to the new common folder structure. - From Alin Jerpelea (2019-08-21). - * Add support for 4-byte addressing on >128Mb Macronix flash parts From - jjlange (2019-08-21). - * drivers/mtd/mx25lx.c: Minor changes to conform to coding standard - detected by tools/nxstyle. From Gregory Nutt (2019-08-21). - * arch/arm/src/s32k1xx: This is a rough port of the i.MXRT Ethernet - driver to the S32K1xx. The i.MXRT uses the same IP. Completely - untested at this point. From Gregory Nutt (2019-08-21). - * arch/arm/src/tiva/hardware/tm4c: Fix wrong description on define - TIVA_1WIRE_BASE: Was "EEPROM and Key Locker" (same as the item above). - Now "1-Wire Master Module." Make DMACTL symbols visible for TM4C123: - Remove "#ifdef CONFIG_ARCH_CHIP_TM4C129" guard around UART DMA Control - (DMACTL) symbols. These bits are valid on TM4C123 devices, as well as - on TM4C129. Also, improve the comment on UART_DMACTL_DMAERR. From - Nathan Hartman (2019-08-21). - * arch/arm/src/s32k1xx/Kconfig: Add Ethernet configuration options that - were supposed to have been included in a previous commit. From - Gregory Nutt (2019-08-21). - * Fixed CONFIG_ARCH_BOARD_CUSTOM based builds. Essentially reverts - Added a missing '=' in the second grep statement it was not missing it - was deliberately not in the second grep. Adding a '=' in the second - grep statement caused the "children" of CONFIG_ARCH_BOARD_CUSTOM, - namely: CONFIG_ARCH_BOARD_CUSTOM_DIR, - CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH, CONFIG_ARCH_BOARD_CUSTOM_NAME to - be lost on a savedefconfig. To see the issue run make oldconfig; make - savedefconfig; make oldconfig From David Sidrane (2019-08-22). - * boards/arm/cxd56xx: Add sensors connected to the SCU on Spresense board - - Add Avago APDS9930 Proximity and Ambient light Sensor - - Add Rohm BH1721FVC Ambient Light Sensor - - Add Rohm BH1745NUC Color Sensor - - Add Rohm BM1383GLV/BM1383AGLV Pressure Sensor - - Add Rohm BM1422GMV/BM1422AGMV Magnetic Sensor - - Add Bosch BMI160 Sensor support - - Add Bosch BMP280 Barometic Pressure Sensor - - Add Kionix KX022/KX122 Acceleration Sensor - - Add Murata LT1PA01 Proximity and Ambient light Sensor - - Add Rohm RPR0521RS Proximity and Ambient light Sensor - - BMI160: add optional I2C address - From Alin Jerpelea (2019-08-22). - * Add the sensor initialization for cxd56xx boards in the common board - folder (part 1/2) - - boards: cxd56xx: apds9930: typo fix - - boards: cxd56xx: add cxd56_ak09912 initialization. - - boards: cxd56xx: move cxd56_bmi160 initialization. - - boards: cxd56xx: add cxd56_apds9930 initialization - - boards: cxd56xx: add cxd56_apds9960 initialization - From Alin Jerpelea (2019-08-22). - * - All S32K1xx flash.ld configurations: Do not write into FLASH - configuration field. - - Extend s32k146 and s23k148 NSH configurations so that they support - more features. - From Gregory Nutt (2019-08-22). - * arch/arm/src/s32k1xx/Kconfig: Remove a duplicate configuration - setting. Noted by Fabio Balzano. From Gregory Nutt (2019-08-22). - * arch/arm/src/s32k1xx: Clocking logic was including the wrong 'clock - name' files for the S32K11x family. From Gregory Nutt (2019-08-22). - * boards/arm/s32k1xx/s32k118evb, s32k146evb, and s32148evb: Correct the - 'sense' of the LED discrete output. A high level illuminates the - LED. From Gregory Nutt (2019-08-22). - * Add the sensor initialization for cxd56xx boards in the common board - folder (part 2/2) - - Add cxd56_bh1721fvc initialization - - Add cxd56_bh1745nuc initialization - - Add cxd56_bm1383glv initialization - - Add cxd56_bm1422gmv initialization - - Add cxd56_bmi160 initialization - - Add cxd56_bmp280 initialization - - Add cxd56_kx022 initialization - - Add cxd56_lt1pa01 initialization - - Add cxd56_rpr0521rs initialization - - Add cxd56_sensors initialization - - Add Backup Log driver - - Add crashlog driver - - Move gs2200m initialization - - Move ili9340 initialization - - Move lpm013m091a initialization - From Alin Jerpelea (2019-08-23). - * arch/arm/src/s32k1xx/hardware/s32k1xx_flexcan.h: Add an incomplete - FlexCAN register definition header file. Still missing some bitfield - definitions. Also updates some README files. From Gregory Nutt - (2019-08-23). - * This commit moves shared builtin information out of binfmt/libbuiltin - and into libs/libc/builtin where it can be shared. This should permit - builtin application in the PROTECTED build where binfmt/libbuiltin is - not available in user space. - - Move binfmt/libbuiltin to libs/libc/builtin. There are calls made - directly from apps/nshlib into this logic and hence, must be part of - a library that can be shared between the OS and applications. - - Move include/nuttx/binfmt/builtin.h to - include/nuttx/lib/builtin.h. Move - apps/builtin/lib_builtin_forindex.c to - libs/libc/builtin/lib_builtin_forindex.c. - - Correct some additional compile-related issues. - From Gregory Nutt (2019-08-23). - * In order to support builtin in function in protected mode, a - task_spawn() system call must be supported. task_spawn() and - posix_spawn() are NuttX OS interfaces. In PROTECTED and KERNEL build - modes, then can be reached from applications only via a system call. - Unfortunately this is overly complex because there is a (soft) limit - of 6 parameters in a system call; task_spawn has seven parameters. - This is a soft limit but still difficult to extend because it involves - assembly language changes to numerous architectures. Better to get - more creative. Rather than extend the maximum number of parameters - across all architectures, I opted instead to marshal the seven - parameters into a structure and pass only a single parameter: A - pointer to the structure containing the seven marshaled parameters. - From Gregory Nutt (2019-08-23). - * STM32H7: Memory Map DBGMCU is @ 0x5c001000 From David Sidrane - (2019-08-23). - * tools/refresh.sh: Fix some remaining breakage from the boards/ - directory reorganization. From Gregory Nutt (2019-08-24). - * boards/arm/s32k1xx: Add CONFIG_NSH_ARCHINIT=y to all NSH - configurations. From Gregory Nutt (2019-08-24). - * boards/mips/pic32mx&z/drivers/Kconfig: The drivers folder was one - level above where it should be. From Ouss4 (2019-08-24). - * boards/: Move more drivers directories at were placed too high in the - hierarchy. From Gregory Nutt (2019-08-24). - * fs/procfs/fs_procfsiobinfo.c: Correct use of C11 features in common - code. From Gregory Nutt (2019-08-24). - * binfmt/: Fix FLAT build with BUILTIN support. Fixes problems - introduced in a recent commit. From Michael Jung (2019-08-25). - * arch/arm/src/stm32: PLLI2S support for F427/F437. Enable support of - the I2S Phase Locked Loop on STM32F427 and STM32F437 MCUs. From - Michael Jung (2019-08-25). - * arch/arm/src/stm32/stm32_spi.c: TI Synchronous Serial Frame Format. - The SPI macros on STM32 MCUs do support the Texas Instruments - Synchronous Serial Frame Format protocol (TI protocol). Defined a new - SPIDEV_MODETI and add support for it in stm32_spi.c. From Michael - Jung (2019-08-25). - * boards/boardctl.c and libs/libc/builtin: The BINFS file system uses - the same builtin library and builtin arrays as does NSH. The builtin - arrays are simple name-value pairs that map builtin function names - with the user-space entry point. In the FLAT build, the builtin - arrays are available everywhere via the backdoor left open by the FLAT - address space. In the PROTECTED build, however, the kernel must - maintain its own reference to the user-space builtin array. This - commits adds those kernel globals and a new - boardctl(BOARDIOC_BUILTINS) that can be used by applications to the - provide the builtin list reference to the kernel. From Gregory Nutt - (2019-08-25). - * libs/symtab: move symtab/ to libs/symtab. Let's no clutter up the - top level directory. Shorten CONFIG_EXECFUNCS_GENERATE_SYSTEM_SYSTAB - to just CONFIG_EXECFUNCS_SYSTEM_SYMTAB. Some items in - syscall/syscall.csv are only valid when CONFIG_LIB_SYSCALL is - defined. That is always defined when really building the system - calls, but causes errors in libs/symtab because they are not valid in - the normal, FLAT build context. From Gregory Nutt (2019-08-25). - * arch/arm/src/samd2l2/sam_i2c_master.c: Correct time calculation. - From Bernd Walter (2019-08-26). - * Migrate CXD56xx common code to the common/ directory - - Move boot to common - - Move flash to common - - Move I2C driver to common - - Move uid to common - - Add SPH. The SPH is used by the ASMP implementation from the SDK. - From Alin Jerpelea (2019-08-26). - * Report git info on /proc/gitrev - - Report git info on /proc/gitrev. git info reported: branch, - version, git hash, hostname, usr, build date - - Use existing .version and procfs for git info - - Reduce script's coupling - From David Alessio (2019-08-26). - * drivers/power/pm_update.c: Fix g_pmcount 16-bits overflow - when CONFIG_PM_XXENTER_COUNT set big value. From ligd (2019-08-26). - * drivers/timers/rtc: If the RTC time is successfully set, then update - the current system time to match. From ligd (2019-08-26). - * net/tcp/tcp_send.c: Fix RST packet with wrong ack number. From - biantao (2019-08-26). - * sched/Kconfig, sched/signal/sig_notification.c: Add configuration - option to select either the high-priority or low-priority work queue - for SIG_EVTHREAD notifications. From ligd (2019-08-26). - * net/tcp/Kconfig, include/nuttx/net/netconfig.h: Make RTO and - WAIT_TIME configurable. This fix is not really correct: TCP RTO - really should be calculated dynamically for each TCP connection: - http://sgros.blogspot.com/2012/02/calculating-tcp-rto.html. From - zhangyuan7 (2019-08-26). - * tools/Makefile.unix: Remove some unnecessary conditional logic. From - Gregory Nutt (2019-08-26). - * - STM32H7: bbsram issues causing no writes and hardfaults - - stm32_pwr: Ensure data is flushed on backup domain access changes - - STM32H7: bbsram convince compiler to perform 32 bit write - From David Sidrane (2019-08-26). - * tools/Makefile.unix: Simplify dependencies. From Gregory Nutt - (2019-08-26). - * Add missing LF to cpuload procfs output From David Alessio - (2019-08-26). - * arch/sim/src/Makefile: Fix dependency problem due to reorganization of - some directories. From Gregory Nutt (2019-08-26). - * All function pointer types should be prefaced by the qualifier CODE - (unless the callable function is known to reside in RAM, then it - should be FAR). From Gregory Nutt (2019-08-26). - * arch/arm/src/imxrt: Adds quadrature encoder driver for IMXRT. From - Nicholas Chin (2019-08-27). - * syscall/ and related: Fix an error found in build testing. - Inconsistent conditional compilation led to link errors in certain - configurations. From Gregory Nutt (2019-08-27). - * sched/clock/clock_timekeeping.c: Fix cases in time conversion that - must be >= NSEC_PER_SEC, not > NSEC_PER_SEC. Similar to fix of - f9e80c4a1e2da24d402fa51affc59fd43b694a12. From Gregory Nutt - (2019-08-27). - * arch/arm/src/stm32f7/stm32_sdmmc.c: Fix warning when DMA is not - enabled. From David Sidrane (2019-08-28). - * drivers/analog/dac7554.c: Add support to the DAC7554 - digital-to-analog converter. From Augusto Fraga Giachero (2019-08-28). - * libs/libc/libc.csv: Add ioctl() to fs_ioctl() wrapper for varidic - case. From Pavel Pisa (2019-08-28). - * tools/mkexport.sh: Export all variables to support architecture - independent build against NSH. From Pavel Pisa (2019-08-28). - * tools/mkexport.sh: The export of gnu-elf.ld at least is required to - build ELF loadable binaries. Option to link system into different - memory locations (boot, application after boot-loader, RAM) without - need to rebuild/reexport NuttX is useful as well. From Pavel Pisa - (2019-08-28). - * arch/arm/src/stm32h7/stm32_ethernet.c: Fix some errors in Ethernet - MAC configuration. From Markus Bernet (2019-08-28). - * arch/arm/src/imxrt/hardware/imxrt_enc.h: Fix some errors in register - bit definitions. Noted by Arie de Muijnck. From Gregory Nutt - (2019-08-28). - * arch/arm/src/stm32h7/stm32_ethernet.c: Correct stm32h7 mac address - filtering. Correct the MAC address 0 register definition and remove - the 'receive all' flag. Now the Ethernet driver only receives packets - addressed to correct MAC. From Jukka Laitinen (2019-08-28). - * arch/arm/src/stm32h7/stm32_ethernet.c: Correct memory corruption - error. The Ethernet driver initialization incorrectly wrote to - DMACRXCR instead of DMACSR when trying to clear the stopped flags. - This caused invalid buffer length in the DMACRXCR, causing DMA to - overflow the RX buffers when large packets are sent to the device. - From Jukka Laitinen (2019-08-28). - * drivers/sensors/adt7320.c: Add support for the ADT7320 temperature - sensor. From Augusto Fraga Giachero (2019-08-28). - * The non-standard, non-portable type cpu_set_t was created specifically - to support the NuttX internal, SMP implementation. Any resemblance to - any other cpu_set_t would be purely coincidental. However it appears - that that coincidence has occurred. cpu_set_t has an equivalent, - non-standard, non-portable type in the GNU C library. Compilation of - libgnat expects this non-standard type to be defined. Who am I to - stand in the way of progress? This commit removes the conditioning on - CONFIG_SMP so that cpu_set_t is typed (as a uint8_t) even if - CONFIG_SMP is not defined. Reference: Bitbucket issue 164. From - Gregory Nutt (2019-08-29). - * arch/arm/src/stm32/stm32_adc.c: Add ADC calibration procedure for - IP_ADC_V1. Tested on STM32F100, and it magically increased result - accuracy. STM32F103 has the same calibration procedure. I am not - sure about others. From Matous Pokorny (2019-08-29). - * net/inet and net/tcp: Fix tcp close flow; free the connection after - all tcp close process finished. From zhangyuan7 (2019-08-30). - * tools/Makefile.* and tools/mkexport.sh: This change allows to export - builtin applications registry into temporarily created directory where - export archive content is prepared. If the Makefile in apps directory - does not define export: target then error is print but export - continues without interruption. It would be more logical to print - warning but there is no way instruct apps make to not print error. - From Pavel Pisa (2019-08-30). - * boards/arm/lpc17xx_40xx/lx_cpu: Add support for the PIKRON LX_CPU - board. From Pavel Pisa (2019-08-30). - * board/Kconfig and board/README.txt: Add configuration support for the - LX_CPU board. From Gregory Nutt (2019-08-30). - * README.txt and Documentation/README.html: Update README file - references to include the LX_CPU board README file. From Gregory Nutt - (2019-08-30). - * boards/arm/lpc17xx_40xx/lx_cpu/src/lpc17_40_ulan.c: Provides for - separate, non-standard, PiKRON uLAN registration at build-/run-time. - From Pavel Pisa (2019-08-30). - * Tiva directories: Fix TM4C129XNCZAD part number in Kconfig and - identifiers. Rationale: Fully specify that this is the 212-pin BGA - package (ZAD ending) and for consistency with earlier changes to other - Tiva TM4C12x part numbers in Kconfig names and identifiers. From - Nathan Hartman (2019-08-30). - * tools/Makefile.win: Port changes of commit - 3ed844640d25b854457b6cc08f89d907072c0054 to Makefile.win. Untested - because I don't have a Windows native build platform setup. There - have been a lot of changes to the build system lately do to directory - re-organization so likely the native build is broken. Certainly - tools/configure.bat should be replaces with tools/configure.c. From - Gregory Nutt (2019-08-30). - * net/Kconfig: Ethernet packet buffer size cannot be permitted to go - below 1294 if IPv6 is selected. From Gregory Nutt (2019-08-31). - * net/: Now handles reception of IPv4 packets with larger IPv4 headers - containing options. From Gregory Nutt (2019-08-31). - * boards/arm/lpc17xx_40xx/lx_cpu/configs/nsh/defconfig: Correct shit - defconfig file. Recent patch dumped a prohibited .config file as the - defconfig file when a proper defconfig file created via 'make - savdefconfig' is required. Bad. From Gregory Nutt (2019-08-31). - * arch/arm/src/stm32/stm32_adc.c: Correct an error found in build - testing. Recent commit to add STM32F1 calibration was not properly - conditioned. Caused compilation errors on all STM32 F2 family - members. From Gregory Nutt (2019-08-31). - * arch/arm/src/stm32/stm32_adc.c: Another fix. adc_calibrate() was - called even when it was conditioned out, causing a link time failure. - From Gregory Nutt (2019-08-31). - * net/: Re-order the content of all address-family socket 'connection' - structures so that they begin with a common prologue. This permits - better use of logic for different address family types. From Gregory - Nutt (2019-09-01). - * net/local/local_conn.c: Removed unnecessary memset(). Connection - structure is allocated with kmm_zalloc() which will clear all memory. - From Gregory Nutt (2019-09-01). - * boards/Board.mk: Add support to pass dependency paths. - boards/arm/cxd56xx/common/Makefile: Add correct dependency paths for - board/ and src/ subdirectories. From Gregory Nutt (2019-09-01). - * net/arp/arp.h: Remove an unused structure definition. From Gregory - Nutt (2019-09-01). - * gs2200m supports SIOCGIFHWADDR From Masayuki Ishikawa (2019-09-02). - * drivers/timers/pwm.c: Move the pwm/pwm.c driver to timers/pwm.c, The - drivers/pwm contained only one .c file (pwm.c), so to avoid the - proliferation of sub-directories inside drivers/ is better to move the - pwm.c driver to drivers/timers. The pwm.h header was moved to - include/nuttx/timers to keep consistency, so all files referencing it - need to be updated. From Augusto Fraga Giachero (2019-09-02). - * libc/libc/unistd/: Add stubs for geteuid(), getegid(), seteuid(), and - setegid(). NuttX does not currently support effective user/group IDs, - but these stubs will support linkage of applications that expect these - POSIX standard interfaces. From Gregory Nutt (2019-09-03). - * libc/libc/unistd/: Add stubs for setreuid(), and setregid(). NuttX - does not currently support effective user/group IDs, but these stubs - will support linkage of applications that expect these POSIX standard - interfaces. From Gregory Nutt (2019-09-03). - * arch/arm/src/arm/up_fullcontextrestore.S: When performing stability - test, the application would cause kernel crash. When I trace the - stack, I find that register R1 has been changed, and its value is the - same as register CPSR. In up_fullcontextrestore.S, the restoration of - R0 and R1 is not atomic: 'msr cpsr r1 will enable interrupts and the - recovery of r0 and r1 may be interrupted and the value or R1 may be - changed. Fix is to use a single ldmia to restore R0, R1, and return - via R15. From Loyen Wang (2019-09-04). - * drivers/sensors/isl29023.c: Add basic driver of ISL29023 ambient - light sensor. The basic driver can set operational mode, range, and - resolution. It can also read lux value in continuous mode. Interrupt - and the alarm is not implemented. From Matous Pokorny (2019-09-04). - * Makefile updates From jjlange (2019-09-05). - * tools/Makefile.win: Change of - 8883623d07f642e205109389268e97b2a519a77a needs to be applied to - Makefile.win too. From Gregory Nutt (2019-09-04). - * Fix some typos. Also minor update to stm32f7/nucleo-144/README.txt and - stm32l4/nucleo-l496zg/README.txt board documentation. From Juha - Niskanen (2019-09-05). - * drivers/rf/dat-31r5-sp.c: Add support to the DAT-31R5-SP+ digital - attenuator. Creates a the new device driver directory drivers/rf/ to - support drivers related to RF peripherals. It also adds support for - the DAT-31R5-SP+ digital attenuator. From Augusto Fraga Giachero - (2019-09-05). - * include/nuttx/spi/spi_bitbang.c: Fix build error when the spi bitbang - variable width support is enabled. From Augusto Fraga Giachero - (2019-09-05). - * include/sys/boardctl.h: Fix numbering of board IOCTL commands. Error - in numbering noted by Nathan Hartman. From Gregory Nutt (2019-09-05). - * net/tcp/tcp_send.c: Commit a52ceac13ee598696cb907b62326bfd4c111ac6c - broke IPv4 sending. In cp_send.c:tcp_ipv4_sendcomplete(), ‘ipv4->vhl’ - now needs to be configured before call to tcp_ipv4_chksum(). Noted by - Jussi Kivilinna in commit comments. From Gregory Nutt (2019-09-06). - * boards/Kconfig: Fix help text for BOARDCTL_IOCTL. From Nathan - Hartman (2019-09-06). - * net/ipforward/ipv4_forward.c: Correct some errors introduced with - commit a52ceac13ee598696cb907b62326bfd4c111ac6c. Noted by Adam - Porter. From Gregory Nutt (2019-09-06). - * tools/Makefile.unix: Rethink creation of new .version file with GIT - information. Cannot use 'sed -i' in its current form because that - does not work on macOS, FreeBSD, or NetBSD. From Gregory Nutt - (2019-09-07). - * tools/version.h and Makefile.unix: Minor improvement to previous - commit: Permit custom version strings that do not derive from the - major and minor version number From Gregory Nutt (2019-09-07). - * arch/arm/src/stm32/stm32_otg[fs|hs]host.c: STM32 host only initiates - transfer if buflenl > 0. From Adam Porter (2019-09-08). - * STM32F7/H7/L4 OTG host: Adam Porter's fix for STM32 FS/HS probably - should be applied to STM32 F7, H7, and L4 OTG host which are very - similar. From Gregory Nutt (2019-09-08). - * EFM32 OTG host: Adam Porter's fix for STM32 FS/HS probably should be - applied to EFM32 host which which has very similar IP. From Gregory - Nutt (2019-09-08). - * arch/arm/src/armv7-a: Fix typo and missing quotation for armv7-a. - From Oki Minabe (2019-09-08). - * arch/arm/src/armv7-a/arm_addrenv_utils.c: Fix double increment in - armv7-a's arm_addrenv_destroy_region(). From Oki Minabe (2019-09-08). - * arch/arm/src/armv7-a/arm_pgalloc.c: Fix L2 page table mask for - armv7-a. From Oki Minabe (2019-09-08). - * drivers/ioexpander/gpio_lower_half.c: Remove limitation when pintype - > GPIO_INTERRUPT_PIN. From ligd (2019-09-09). - * STM32, STM32F7, STM32H7, STM32L4, and EFM32 USB Host: This change was - required to get my devices (CDC-MBIM) to enumerate. Initially the - system timed out retrieving the USB configuration descriptor. Ctrl IN - requests got nothing but NAKs. I found that the initial SETUP packet - and corresponding IN transfer were fine; it was the Status OUT phase - that was getting the NAK. After receiving a NAK on the Status OUT, - the code would loop back and issue another ctrl IN, which will always - fail because the data was already transferred before. Thus the entire - transfer would 'timeout'. The fix I implemented moves the DATANAK - timeout loop to only apply to the Status OUT. Of course this worked - for my devices, but maybe isn't the right solution in general. I - think that both the ctrl IN and the Status OUT need their own retry - loops? From Adam Porter (2019-09-09). - * tools/mkexport.sh: Export LDSCRIPT and STRIP definition and align - with Makefile.export. From Pavel Pisa (2019-09-10). - * boards/arm/lpc17xx_40xx/lx_cpu/configs/nsh/defconfig: Tested - ETHRENET, UARTs, heap in external SDRAM, use of symbol tables for - applications loading over TFTP and kernel modules insertion. USB and - SD card enabled but there are some issues (probably config or IO - ports) still. From Pavel Pisa (2019-09-10). - * sched/sched_rrgetinterval.c: sched_get_rr_interval() should return - {0,0} if round-robin scheduling is not selected for the task. From - Gregory Nutt (2019-09-10). - * include/sys/types.h: Remove non-standard HP-UX priority range - definitions. HP-UX is not a supported OS. From Gregory Nutt - (2019-09-10). - * Fix typos, 1 in a #define, others in comments. This changes one - definition: _MQ_TIMEDRECIEVE is changed to _MQ_TIMEDRECEIVE. It - appears this symbol is not used anywhere. From Nathan Hartman - (2019-09-11). - * boards/z80: Correct path to linker script in all boards using the - ZDS-II toolchain. Yet more fallout from the big boards/ directory - re-organization. From Gregory Nutt (2019-09-11). - * boards/: Several more fixes to Make.defs files and README.txt files. - More collateral damage from the big boargs/ directory - re-organization. From Gregory Nutt (2019-09-11). - * boards/arm/imx6/sabre-6quad/scripts/Make.defs: Yet another boards/ - re-organization fix-up. From Gregory Nutt (2019-09-11). - * libs/libc/builtin/: builtin_isavail() should not set the errno - variable because this functions may be used by internal OS logic for - which setting the errno variable would be inappropriate. From Gregory - Nutt (2019-09-11). - * boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/ld.script: Fix - .ARM.exidx section overlap with .data From Daniel Pereira Volpato - (2019-09-11). - * Modify all files from 2eb4fe5ffb7dee21b33 to use solution from Daniel - P. Volpato. From Alan Carvalho de Assis (2019-09-11). - * Modify all a few more linker scripts missed in 415e3d34482012ab308, - probably because they were created after 2eb4fe5ffb7dee21b33. From - Gregory Nutt (2019-09-11). - * Move EXIDX-related assignments inside of braces so that we can be - assure that the symbols have the correct alignment. Suggested by - Daniel P. Volpato From Gregory Nutt (2019-09-12). - * boards/arm/tiva/tm4c123g-launchpad/scripts/tm4c123g-launchpad.ld: Add - alignments for the TMC4123G-LaunchPad as well. From Nathan Hartman - (2019-09-12). - * boards/arm/stm32/axoloti, omnibusf4, and stm32f4discovery: If - CONFIG_SCHED_CRITMONITOR is selected, then make sure that ITM and DWT - resources are enabled before accessing ITM and DWT registers. By - default, these registers are disabled. Suggested by Juha Niskanen. - From Gregory Nutt (2019-09-13). - -8.2 2019-11-16 Gregory Nutt - - * drivers/mtd/gd25.c: Add support for a new FLASH vendor. From zhangbo_a - (2019-09-15). - * drivers/mtd/gd25.c: Add support for GD25 device with 256-Mbit - capacity. From YanLin Zhu (2019-09-15). - * drivers/mtd/gd5f.c: Add gigadevice SPI NAND FLASH driver. From - YanLin Zhu (2019-09-15). - * tools/Config.mk: Eliminate use of the built-in implicit rules. From - anchao (2019-09-15). - * tools/Config.mk and Makefile.unix: Support the incremental build for - configuration change. From Xiang Xiao (2019-09-15). - * All linker scripts: Preface all _ebss definitions with . = ALIGN(4). - Otherwise, the last bytes in the .bss section will not be initialized - properly. Also convert all linker scripts that use TABs to spaces. - From Gregory Nutt - (2019-09-15). - * All linker scripts: Preface all _edata definitions with . = ALIGN(4). - Otherwise, the last bytes in the .data section may not be initialized - properly. Also convert all linker scripts indent in units of 8-spaces - to units of 4-spaces. From Gregory Nutt (2019-09-15). - * tools/configure.*: Add -s option to skip .config/Make.defs existence - check. From Xiang Xiao (2019-09-16). - * tools/Makefile.unix: Fix build error when issue 'make -B'. mkdir: - cannot create directory 'staging': File exists: - tools/Makefile.unix:269: recipe for target 'staging' failed' From - Xiang Xiao (2019-09-16). - * drivers/syslog: syslog_force does not set errno so do not test - against it. Some changes to comments. From Juha Niskanen (2019-09-16). - * Large Ethernet packet can leads network halt From Bazooka Joe - (2019-09-16). - * boards/mips Linker Scripts: The PIC32M* start-up code initializes - .bss by writing 16 bytes at a time in a loop. The start (_sbss) - alignment is only required to be 4 bytes since the write is done with - 4 store instructions. In a previous change, the end address, _ebss, - was aligned to 16 byte to prevent initializing past the end off the - .bss region. However, that does not work unless the start address, - _sbss, is also aligned to 16 bytes. From Gregory Nutt - (2019-09-16). - * arch/arm/src/stm32h7/stm32_ethernet.c: Bazooka Joe's fix to the STM32 - F7 Ethernet driver (ec4a7be5c2540207042669e10cc4134e108dae02) should - be applied to the H7 as well. The other STM32 Ethernet driver already - has the change. From Gregory Nutt (2019-09-16). - * Kconfig and arch/Kconfig: Add some protection so that you cannot - select an architecture-specific header file if the architecture does - not provide the header file. From Gregory Nutt (2019-09-16). - * libs/libc/math/Kconfig: Should select the NuttX float.h file - automatically if the NuttX math library is selected. From Gregory - Nutt (2019-09-16). - * boards/arm/cxd56xx/spresense/include/board_pinconfig.h: Add board - specific pin configurations of CXD5602 pins to fit Spresense board. - From Takayoshi Koizumi (2019-09-16). - * boards/arm/cxd56xx/spresense/Kconfig: Add a configuration to select - if an extension board is attached to the SPresence. If there is no - extension board attached, the SPresense may run in a low-power mode by - default (as determined by the CONFIG_CXD56_CUSTOM_PINCONFIG option). - If an extension board is present, then the SPresense will need to run - at a higher power mode, selected by the new CONFIG_SPRESENSE_EXTENSION - option. From Gregory Nutt (2019-09-17). - * boards: spresense: Add isx012 camera initialization and config From - Alin Jerpelea (2019-09-17). - * Add support for STM32G070xx: - arch/arm/include/stm32f0l0g0: add support for STM32G070CB, STM32G070KB, - STM32G070RB - arch/arm/src/stm32f0l0g0: add support for STM32G070CB, STM32G070KB, STM32G070RB - From Daniel Pereira Volpato (2019-09-17). - * boards/arm/stm32f0l0g0/nucleo-g070rb: Initial support for board STM32 - NUCLEO-G070RB, including NSH config From Daniel Pereira Volpato - (2019-09-17). - * boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/ld.script: Fix - .ARM.exidx section overlap with .data From Daniel Pereira Volpato - (2019-09-17). - * arch/arm/src/stm32f0l0g0/stm32*_pwr.c and stm32g0_rcc.c: Scale - dynamic voltage and flash wait states properly on STM32G0 chips. - arch/arm/src/stm32f0l0g0/stm32g0_rcc.c: Set VOS and flash wait states - properly - arch/arm/src/stm32f0l0g0/stm32f0l0_pwr.c: Renamed from - arch/arm/src/stm32f0l0g0/stm32_pwr.c - arch/arm/src/stm32f0l0g0/stm32g0_pwr.c: Preliminary implementation of - PWR module for STM32G0 (stm32_pwr_setvos() only) - From Daniel Pereira Volpato (2019-09-17). - * boards/arm/stm32f0l0g0/nucleo-g070rb/include/board.h: Enable PWR - peripheral and increase sysclk to max. frequency. SYSCLK can be - increased now that VOS and flash wait states are properly configured. - From Daniel Pereira Volpato (2019-09-17). - * arch/arm/src/lpc17xx_40xx/lpc17_40_i2c.c: Respect the I2C_M_NOSTART - flag. Sending a restart condition when not requested will break other - drivers that depend on this behavior. From Augusto Fraga Giachero - (2019-09-17). - * boards: spresense: Add board initialization for isx012 From Alin - Jerpelea (2019-09-18). - * include/nuttx/sensors/ioctl.h: Commands for the VL53L1X did not follow - the sequence. Noted by Daniel Pereira de Carvalho. From Gregory Nutt - (2019-09-18). - * net/ipforward, tcp, and udp: Fix a chicken and egg problem by - eliminating the check of the arp/neighbor tables before packet - transmission - 1. For buffered tcp/udp case, if - CONFIG_NET_ARP_SEND/CONFIG_NET_ARP_IPIN / CONFIG_NET_ICMPv6_NEIGHBOR - isn't enabled and the table doesn't contain ip<->ethaddr mapping - yet, the logic will skip the realtransmission and then arp/neighbor - can't steal the final buffer to generate arp/icmpv6 packet. - 2. For all other cases, the tcp layer or user program should already - contain the retransmit logic, the check is redundancy and may - generate many duplicated packets if arp/icmpv6 response is too slow - because the cursor stop forward. If user still concern about the - very first packet lost, he could fix the issue by - enabling CONFIG_NET_ARP_SEND/CONFIG_NET_ICMPv6_NEIGHBOR at begin. - From Xiang Xiao (2019-09-18). - * stm32h7 SDMMC support IDMA, Interrupt driven, pullups and SDIO - - stm32h7: Supports ARMV7M Stack check - - stm32h7: sdmmc bug fix writing address 0 - - stm32h7: sdmmc Clean up timming - - stm32f7: Kconfig typos, formatting - - stm32f7: sdmmc use binary not - - stm32f7: nxstyle formatting - - stm32h7: SDMMC Kconfig add Block Setup, Preflight, Delayed Invalidate - - stm32h7: Correct value of ICR reset - - stm32h7: SDMMC support IDMA, Interrupt driven, pullups and SDIO - - stm32h7: Add AXI - - stm32h7: Workaround for Errata 2.2.9 Reading from AXI SRAM may lead - to data read corruption - From David Sidrane (2019-09-19). - * tools/configure.sh and configure.c: Do not remove CONFIG_SIM_M32 if - host is specified. From anchao (2019-09-19). - * libs/libc/unistd/lib_getcwd.c: remove stray sched_unlock(). Also - fixes several typos. From Juha Niskanen (2019-09-19). - * Dispatch ICMP_POLL to device's callback list too since icmpv6_neighbor - still append the callback into this list. From Gregory Nutt - (2019-09-20). - * Fix portability issue with date, hostname From David Alessio - (2019-09-20). - * net/: Decouple autoconfig and icmpv6 socket to avoid the invalid - kconfig combination. From Xiang Xiao (2019-09-20). - * net/icmpv6/icmpv6_autoconfig.c: cmpv6_autoconfig() error handling - must not overwrite overwrite the error code. From Xiang Xiao - (2019-09-20). - * Add support for the BCM43438A1 Bluetooth capability. It also adds a - serial 'shim' to allow any regular serial port that can support a - Bluetooth H4 interface (i.e. it has RTS/CTS) to be used to drive a - Bluetooth device (Get a handle to it via hci_uart_getdevice - ("/dev/xxx") and then pass it to the btuart_register function. From - Dave Marples (2019-09-21). - * boards/arm/stm32/stm32f4discovery/src: Add support for external - DS1307 module. From Alan Carvalho de Assis (2019-09-22). - * boards/arm/samd2l2/arduino-m0: Add initial board support for the - Arduino M0. From Alan Carvalho de Assis (2019-09-22). - * arch/arm/src/lpc54xx/lpc54_clockconfig.c: Fix PLL settings. For the - lpc54628 Rev. E board the PLL was not configured properly and the - board wouldn't boot correctly. I checked the startup files from the - official IDE and inspected the assembly instructions for the libraries - used. From Andrei Stefanescu (2019-09-22). - * boards/arm/samd2l2/arduino-m0/src/sam_usb.c: Add usbnsh board - configuration. From Alan Carvalho de Assis (2019-09-22). - * sched/signal/sig_initialize.c: Add some checks for allocation - failures. From Gregory Nutt (2019-09-23). - * arch/arm/src/stm32h7/hardware/stm32_adc.h: Fix typos in ADC register - definitions. From Markus Bernet (2019-09-24). - * stm32h7: RCC Add PLL3 Support and only enable PLLs if used From David - Sidrane (2019-09-24). - * Direct users to our kconfig-frontends snapshot instead of upstream. - It appears Yann Morin's kconfig-frontends project has gone offline and - the website at http://ymorin.is-a-geek.org/projects/kconfig-frontends - is not responding. Until we can identify a "proper" upstream project, - use the snapshot in NuttX tools repository. - Replace (almost) all links to Yann Morin's kconfig-frontends in the - docs to point to the NuttX tools snapshot instead. From Nathan - Hartman (2019-09-24). - * drivers/net and net/: Use ntoh() when printing IPv6 addresses so that - the addresses appear in friendlier host order vs. network order. From - Bernd Walter (2019-09-24). - * net/icmpv6/icmpv6_rnotify.c: Correct a bad index in debug output. - From Bernd Walter (2019-09-25). - * net/inet/inet_close.c: Fixes two problems, both noted by Bernd Walter: - 1) Prior to this change the 'pstate' variable was non-NULL only when - doing a lingering close. Comments to this effect as well as tests - of pstate should also have been updated. These are confusing and - inappropriate, but do not lead to incorrect behavior. - 2) Eliminate an incomplete test when a disconnection event. When a - disconnection event occurs, the close logic MUST always terminate - the wait. The conditional test was not incorrect, however, it - lacked 'else' logic and would simply ignore that disconnection - event in some cases. That is bad because there may not be another - disconnection event and that can lead to hangs (or - at least very, very long delays). From Gregory Nutt (2019-09-25). - * cxd56xx: various fixes - - arch: arm: cxd56xx: Support to set any i2c frequency. This change - supports to be able to set the i2c frequency other than just 100 or - 400 Hz. - - arch: arm: cxd56xx: Enable SD clock during access to SD card - - Improve GNSS low sensitivity with SD card inserted - - Reduce power consumption by stopping SD clock - - arch: arm: cxd56xx: Do PANIC() when cpu rx FIFO is overflow. If CPU - Rx FIFO is overflow, it's fatal error for system. In such a case, this - change changes to allow the user to notice by calling PANIC() for - debuggability enhancement. - - arch: arm: cxd56xx: Fix compile error in sdhci debug code - - arch: arm: cxd56xx: Remove assertion in cpu tx queue. When CPU Tx - queue is overflow, it returns -EAGAIN instead of assertion to be - able to retry. - - arch: arm: cxd56xx: Add configurations for cpu fifo elements - - arch: arm: cxd56xx: Fix LPADC configuration. LPADC options defined - in the same symbol name, so kconfig tool couldn't process - them correctly. - - arch: arm: cxd56xx: Update loader and gnssfw ver.17660 - - arch: arm: cxd56xx: Fix hang-up when error interrupt occurs. Fix a - problem that error interrupts are not cleared. - - arch: arm: cxd56xx: Fix sdhci semaphore. Fix initial value of - semaphore in sdhci drive.r - - boards: cxd56xx: Treat the initial value of LNA power as off. LNA - is always turned power on when GNSS is started. So it is desirable - that the initial value of the LNA power is off by default. - - boards: cxd56xx: Remove initial setting of PIN_AP_CLK. PIN_AP_CLK is - used as a port selector of SDIO expander on the extension board, - and is set output low in initializing. Therefore, this pin cannot be - used for other board. To avoid this restriction, remove this initial - operation because this pin is pulled down by default on the - extension board. From Alin Jerpelea (2019-09-26). - * arch\arm\src\stm32h7\Kconfig: Add the CRC option in KConfig. From - Eduard Niesner (2019-09-27). - * arch/arm/src/stm32l4/stm32l4_dumpgpio.c: Fix using wrong GPIO enable register. - From Juha Niskanen (2019-09-27). - * boards/arm/stm32/stm32f429i-disco/include/board.h: Remove forbidden STM32 - header file inclusions. Fix some coding standard issues. From Gregory Nutt - (2019-09-27). - * libs/libxx/Kconfig: Automatically select CONFIG_CLOCK_MONOTONIC when - CONFIG_LIBCXX is selected. - Remove hardcoded -DCLOCK_MONOTONIC from CFLAGS in Make.defs of several - configurations. That definition is now automatically adding this define when - CONFIG_LIBCXX=y. From Daniel Pereira Volpato (2019-09-27). - * arch/sim: Add stack color feature for ps command. From ligd (2019-09-28). - * tools/simbridge.sh: Add simbridge.sh to simplify the simulator bridge - creation. From Xiang Xiao (2019-09-28). - * libs/libc: move writev from math.csv to libc.csv From Xiang Xiao (2019-09-28). - * libs/symtab/Makefile and tools/mksymtab.c: Ensure that the generated symbol - table name same as the configuration option. From Xiang Xiao (2019-09-28). - * ibs/libc, libs/symtab, tools/ build system: Move symbol table generation into - libc since the address in symbol table should come from userspace binary for - protect build, not kernel binary. From Xiang Xiao (2019-09-28). - * libs/libc: Add CONFIG_MODLIB_SYSTEM_SYMTAB to generate the symbol table for - dlopen/insmod. From Xiang Xiao (2019-09-28). - * boards/arm/stm32f7: Remove inclusion of STM32 F7 header files from - all board.h header files. From Gregory Nutt (2019-09-29). - * boards/arm/stm32rl4: Remove inclusion of STM32 L4 header files from - all board.h header files. From Gregory Nutt (2019-09-29). - * tools/Makefile.unix: Make COMMON_DIR work with - CONFIG_ARCH_BOARD_CUSTOM. From Xiang Xiao (2019-09-30). - * Configuration: Auto-select CONFIG_BUILD_LOADABLE when either - CONFIG_BUILD_KERNEL or CONFIG_BINFMT_LOADABLE is selected. From Xiang - Xiao (2019-09-30). - * tools/ Make fragments: Fix the various minor issue for - NUTTXLIBS/USERLIBS - 1. Remove libcxx duplication in FlatLibs.mk and from kernel space - 2. Remove libpass1 from KernelLibs.mk since kernel build doesn't - support the two pass mode - 3. Remove FSDIR related comment since file system cannot be disabled - now - From Xiang Xiao (2019-09-30). - * tools/Directories.mk: Remove FSDIRS/NOFSDIRS related logic/comments - since the file system can no longer be disabled now. From Xiang Xiao - (2019-09-30). - * tools/Makefile.host: Add missing binaries from clean target From - Gregory Nutt (2019-09-30). - * tools/mksymtab.c: Clean up syntax of help text. From Gregory Nutt - (2019-09-30). - * tools/README.txt: Update to show new usage of mksymtab. From Gregory - Nutt (2019-09-30). - * Fix cxd56 ostest: - - boards: spresense: Fix config names in cxd56_ostest.c - - boards: spresense: Enable ostest in rndis/defconfig - - boards: spresense: Enable ostest in wifi/defconfig - From Masayuki Ishikawa (2019-10-01). - * boards: spresense: Add --gc-sections to LDFLAGS in scripts/Make.defs - Also, add -ffunction-sections -fdata-sections to ARCHCFLAGS From - Masayuki Ishikawa (2019-10-01). - * drivers/crypto/dev_urandom.c: Revert part of a previous change. That - change was ill informed and introduced warnings when - CONFIG_DEV_URANDOM_RANDOM_POOL is selected. As noted by Juha - Niskanen. From Gregory Nutt (2019-10-01). - * libs/libc/ Kconfig files: Disable EXECFUNCS_HAVE_SYMTAB for kernel - build. The symbol table don't have any meaning for kernel build since - all executable binary should be self contained. From Xiang Xiao - (2019-10-01). - * tools/mkexport.sh: Copy the essential build script files too and move - Make.defs/gnu-elf.ld into scripts like board folder layout. From - Xiang Xiao (2019-10-01). - * Makefiles: change ${shell pwd} to $(CURDIR) since pwd doesn't exist on - Windows From Xiang Xiao (2019-10-02). - * drivers/wireless/ieee802154/mrf24j40/mrf24j40.c: Correct erroneous - isolation of address mode field and subsequent bad comparison. From - Gregory Nutt (2019-10-02). - * arch/arm/src/stm32l4/stm32l4_firewall.c: Correct a test to determine - if an address lies in FLASH or not. Improper mask caused test to - always fail. From Gregory Nutt (2019-10-02). - * tools/testbuild.sh: Add an option to select the number of CPUs to use - with 'make' From Gregory Nutt (2019-10-02). - * tools/testbuild.sh: Use CPU option on 'make distclean' too, but not - 'make olddefconfig. From Gregory Nutt (2019-10-02). - * tools/Config.mk: Support the ability to change the CFLAGS for the - compilation of a single file. Set special compiler options as follows - the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS" - apps/examples/hello/Makefile: $(SRCDIR)/hello_main.c_CFLAGS = -DTEST - From Xiang Xiao (2019-10-03). - * Spresense smp - - arch: arm: Add ARCH_GLOBAL_IRQDISABLE to ARCH_CHIP_CXD56XX in Kconfig - - arch: arm: cxd56xx: Make fpuconfg() public in cxd56_start.c. NOTE: - fpuconfig() is called in both cxd56_start.c and cxd56_cpustart.c - - arch: arm: cxd56xx: Add support for SMP. NOTE: To run cxd56xx in - SMP mode, new boot loader which will be released later must be used. - - arch: arm: cxd56xx: Add irq routing for SMP in cxd56_irq.c. NOTE: In - cxd56xx, each external interrupt controller can be accessed from a - local APP_DSP (Cortex-M4F) only. This change supports IRQ routing - for SMP by calling up_send_irqreq() in both up_enable_irq() and - up_disable_irq(). - - boards: spresense: Add smp configuration - From Masayuki Ishikawa (2019-10-03). - * boards: cxd56xx: common: Add .gitignore not to show untracked files. - From Masayuki Ishikawa (2019-10-03). - * tools/mkexport.sh: Should export full content for flat build even - with CONFIG_BUILD_LOADABLE. From Xiang Xiao (2019-10-03). - * arch/arm/src/stm32/stm32_usbdev.c: Fix some new warnings reported by - gcc 8.3.1 in build tests. From Gregory Nutt (2019-10-03). - * sched/signal/sig_default.c: fix undefined reference to sched_suspend - if CONFIG_SIG_SIGSTOP_ACTIO not defined and eliminate compilation - warnings From raiden00pl (2019-10-04). - * arch: armv7-m: Fix a deadlock in up_sigdeliver() in SMP mode. In - previous implementation, up_disable_irq() was called before recovering - local context. However, I noticed a deadlock happens in the following - situation. For example, if up_sigdevliver() is in progress on CPU0 and - CPU1 has called up_cpu_paused to CPU0, hence g_cpu_irqlock has been - locked by CPU1, in this case, we would see a deadlock in later call of - enter_critical_section() to restore irqcount. - To avoid this situation, we need to call enter_critical_section() to - break the deadlock. From Masayuki Ishikawa (2019-10-04). - * armv7-a and xtensa: Apply Masayuki Ishakawa's change to these these - other SMP architectures as well. From Gregory Nutt (2019-10-04). - * sched/wdog/wd_start.c: Back out a kludge-workaround for an SDCC - compiler problem fix back in Feb 2017. That workaround now appears to - conflict with newer GCC versions using unsupported warning options. - From Gregory Nutt (2019-10-04). - * drivers/wireless/bluetooth/bt_uart_bcm4343x.c: BCM4343x HCIUART - support. From Dave Marples (2019-10-04). - * arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c: Use usleep() instead of - up_delay() for large wait times. From Augusto Fraga Giachero - (2019-10-04). - * boards/arm/tiva/tm4c123g-launchpad/: SPI CAN functionality on - TM4C123GXL - ek-tm4c123gxl_spi_can. From DisruptiveNL (2019-10-05). - * arch/sim/src/sim/up_hostfs.c: hostfs skip '.' and '..' in readdir' - From Xiang Xiao (2019-10-07). - * tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so - that they like in FLASH not RAM. From Bernd Walter (2019-10-07). - * arch/arm/src/stm32h7/hardware/stm32_tim.h: Fix ATIM_BDTR_BK2P define - arch/arm/src/stm32h7/hardware/stm32_tim.h: Fix ATIM_AF2 bitfields - wrongly allocated to ATIM_AF1 - arch/arm/src/stm32f7/hardware/stm32f76xx77xx_tim.h: Fix ATIM_AF2 - bitfields wrongly allocated to ATIM_AF1 - arch/arm/src/stm32h7/stm32_tim.c: Fix some copy'n'paste errors on - defines - From Daniel Pereira Volpato (2019-10-07). - * arch/arm/src/stm32f0l0g0: Support timers available on STM32G070 - arch/arm/src/stm32f0l0g0: Pinmap TIM1 GPIOs available for STM32G0 - arch/arm/src/stm32f0l0g0: Add TIM driver lowerhalf - arch/arm/src/stm32f0l0g0/stm32_tim_lowerhalf.c: Handle 32-bit - overflow on some calculations. - From Daniel Pereira Volpato (2019-10-07). - * boards/arm/stm32f0l0g0/nucleo-g070rb/include/board.h: Add TIMx clock - frequencies boards/arm/stm32f0l0g0/nucleo-g070rb: Enable basic timers - From Daniel Pereira Volpato (2019-10-07). - * drivers/wireless/bluetooth/bt_uart_bcm4343x.c: Fix small a small bug - found during testing. - drivers/wireless/bluetooth/bt_uart_shim.c: Change the task name for - the HCI receiver task to bring it into line with the transmitter - task. From Dave Marples (2019-10-08). - * drivers/usbdev/cdcacm.c: Fix memory leak of RX failsafe timer. From - Juha Niskanen (2019-10-08). - * boards: arm: cxd56xx: different updates - - boards: cxd56xx: spresense: initialize SCU at boot. The SCU has to - be initialized at bootup on spresense board because several - functions depend on it. - - boards: arm: cxd56xx: add audio control definitions. Add audio - control definitions for the audio implementation. - - boards: arm: cxd56xx: add audio defconfig. Add defconfig for the - audio implementation - From Alin Jerpelea (2019-10-08). - * Old style exceptions --> new style for Python 3 From Christian Clauss - (2019-10-08). - * boards: spresense: add audio implementation - - boards: arm: cxd56xx: add audio implementation. Add the board audio - control implementation - - boards: arm: cxd56xx: update audio defconfig. Small updates to - build the platforms specific audio driver - - boards: arm: cxd56xx: drivers: add audio implementation. Add the - audio implementation for CXD56XX chip - - boards: arm: cxd56xx: fix Load switch GPIO. During the initial - bringup the grong GPIO was set. - From Alin Jerpelea (2019-10-09). - * drivers/pipes/fifo.c: mkfifo should return -1 and set errno on - failure From raiden00pl (2019-10-11). - * We have ported NuttX on Renesas RX65N Micro-controller. This port - includes following interfaces: (1) Serial (UART) driver (13 ports) and - (2) Ethernet driver. This port is provided on two boards: (1) RSK - RX65N-2MB and (2) GR-Rose. The port is built on Cygwin environment. - As part of this port, we have created two documents: (1) Readme.txt - for each board, and (2) User manual to provide information about - development environment setup. Both these documents are placed under - (1) /boards/renesas/rx65n/rx65n-grrose and (2) - boards/renesas/rx65n/rx65n-rsk2mb. From Anjana (2019-10-11). - * boards: arm: cxd56xx: audio: add power_control and audio_tone_generator - - boards: arm: cxd56xx: audio: add power_control. Add a simple way to - control the audio power for userspace apps - - boards: arm: cxd56xx: audio: add audio_tone_generator. Add a simple - way to control the audio buzzer with defined frequency for userspace - apps. - From Alin Jerpelea (2019-10-11). - * libs/libxx/Kconfig: CONFIG_LIBC_LOCALE is needed to build libcxx. A - math library is also needed, however, here are various ways to provide - a math library so CONFIG_LIBM is not now set. - boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs: Add required - definitions if libcxx is enabled. - From Matias N (2019-10-12). - * Fix posix spawn - - boards: lc823450-xgevk: Fix build error for posix_spawn - - boards: stm32f4discovery: Fix build error for posix_spawn - From Masayuki Ishikawa (2019-10-13). - * Gs2200m with reset - - include: wireless: Add reset handler to struct gs2200m_lower_s - - drivers: wireless: Add reset and unreset sequence in gs2200m.c - - boards: cxd56xx: Add reset handler to cxd56_gs2200m.c - From Masayuki Ishikawa (2019-10-15). - * Fix cpustart for Cortex-M SMP - - arch: lc823450: Fix lc823450_cpustart.c. In Cortex-M, offset 0 in - vector table stores initial stack pointer and offset 4 stores reset - vector. - - arch: sam34: Fix sam4cm_cpustart.c. In Cortex-M, offset 0 in vector - table stores initial stack pointer and offset 4 stores reset vector. - From Masayuki Ishikawa (2019-10-16). - * drivers: serial: Fix data corruption when outputting data in SMP mode - From Masayuki Ishikawa (2019-10-16). - * sched/pthread, Documentation: fix pthread_key_delete, pthread_self and - pthread_yield documentation and some comments. From Juha Niskanen - (2019-10-17). - * arch/arm/src/stm32l4/Kconfig: Add STM32L4R5ZI chip type. From Jussi - Kivilinna (2019-10-17). - * include/sys/time.h: include sys/select.h to compatible with earlier - standards. According to earlier standards, usage of select(), FD_CLR, - FD_ISSET, FD_SET and FD_ZERO just need include headers: sys/time.h, - sys/types.h and unistd.h. So include sys/select.h in time.h to - compatible with it. Or mbedtls library would build break in calling - select() and FD_* related functions. - https://pubs.opengroup.org/onlinepubs/007908799/xsh/select.html - From liuhaitao (2019-10-17). - * sched/signal: Add support for SIGPIPE. SIGPIPE uses - SIG_SIGPIPE_ACTION which terminates process by default. It also could - be ignored. From liuhaitao (2019-10-17). - * tools/LibTargets.mk: Make libapps.a by the default target. From - Xiang Xiao (2019-10-17). - * include/nuttx/timers/pwm.h: Correct some typos. - arch/arm/src/stm32f0l0g0: Add PWM support. From Daniel Pereira - Volpato (2019-10-17). - * boards/arm/stm32f0l0g0/nucleo-g070rb: Add PWM support and GPIO_TIM3_* - mappings - boards/arm/stm32f0l0g0/nucleo-g070rb/configs/nsh: Enable PWM example - From Daniel Pereira Volpato (2019-10-17). - * boards: stm32f4discovery: Add support for MMCSD_SPI. This change - works with STM32F4 Discovery Shield plus microSD click From Masayuki - Ishikawa (2019-10-18). - * boards: spresense: audio: add missing header. Add the missing header - to silence compiler warnings From Alin Jerpelea (2019-10-18). - * boards/arm/am335x/beaglebone-black/src/: Use the same bring-up - structure as is used with other boards. From Gregory Nutt (2019-10-18). - * arch/arm/src/stm32/hardware/stm32f40xxx_pinmap.h: ETH_RMII_REF_CLK is - an input. From Gregory Nutt (2019-10-18). - * net/udp/udp_psock_sendto_unbuffered.c: Add a check for the device - that is polling. In the multiple network device case, this check is - necessary to prevent sending the UDP packet to the wrong device. This - change addresses only the unbuffered case. The buffered case is more - complex. See patch attached to issue 172. From Gregory Nutt - (2019-10-18). - * net/udp/udp_psock_sendto_buffered.c: Add a check for the device that - is polling. In the multiple network device case, this check is - necessary to prevent sending the UDP packet to the wrong device. This - change addresses the buffered case. From Gregory Nutt (2019-10-18). - * boards/sim/sim/sim/configs:: Add -m32 to HOSTLDFLAGS if enable - CONFIG_SIM_M32. Fixes the following link errors: - /usr/bin/ld: i386 architecture of input file `nettest_host.hobj' is - incompatible with i386:x86-64 output - /usr/bin/ld: i386 architecture of input file `nettest_server.hobj' is - incompatible with i386:x86-64 output - From Xiang Xiao (2019-10-19). - * tools/indent.sh: Add a command line option to suppress reformatting - of comments. This is useful when comments are already correct and/or - contain formatted data such as tables or lists. From Gregory Nutt - (2019-10-19). - * arch/arm/src/s32k1xx: Support configuration and initialization of the - flash configuration bytes. In - boards/arm/s32k1xx/s32k1**evb/scripts/flash.ld: Create a special - FLASH section to hold the FLASH configuration bytes. From Gregory - Nutt (2019-10-19). - * arch/arm/src/s32k1xx/Kconfig: Add some help text for the flash - configuration fields. From Gregory Nutt (2019-10-19). - * boards/arm/imxrt/imxrt1060-evk/src/imxrt_lcd.c: Add support for LCD. - Clean up some LCD-related interfaces. From Fabio Balzano (2019-10-20). - * arch/sim/src/sim/up_tickless.c: Correct the calculation of the timer - period. Fix some missing initialization of globals and missing return - values. From Matias N (2019-10-20). - * fix early timespec overflow if using 32 bit system timer From Jens - Gräf (2019-10-21). - * STM32H7 Ethernet: Fix ETH_MACMDIOAR_CR_MASK bit mask. From Markus - Bernet (2019-10-21). - * boards: cxd56xx: add board support for LTE modem and modem driver - - drivers: modem: add altair modem driver. Add modem driver for the - altair modem. - - boards: cxd56xx: add board support for LTE modem. Add the Altair - LTE modem support on the Spresense board. - - boards: cxd56xx: spresense: add LTE defconfig. Add the Altair LTE - modem defconfig for spresense board - From Alin Jerpelea (2019-10-21). - * arch/sim/src/sim: Fixes compilation for sim target when enabling power - management. From Matias N (2019-10-22). - * stm32f4dis with gs2200m: - - drivers: wireless: Add SPI_SELECT() to _read/write_data() in gs2200m.c - - boards: stm32f4discovery: Add support for gs2200m. NOTE: GS2200M - for Spresense works with mikroe STM32F4 Discovery Shield (slot3) - From Masayuki Ishikawa (2019-10-22). - * STM32H7: Flash driver and Serious BUG fixes: - - arch/arm/Kconfig:Add ARCH_HAVE_PROGMEM for STM32H7 - - stm32h7:Add FLASH progmem support - - stm32h7:pwr add CPUCR & D3CR - - stm32h7:syscfg Add PWRCR - - stm32h7:rcc Properly configure VOS and Flash - From David Sidrane (2019-10-22). - * arch/arm/src/s32k1xx/s32k1xx_flashcfg.c: Flash configuration array - should be const (although it really does not matter in this context). - From Gregory Nutt (2019-10-22). - * drivers/usbhost: Remove all traces of support for the installable GPL - RTL8187 USB host driver. From Gregory Nutt (2019-10-22). - * boards: cxd56xx: spresense: add board_timerhook function - - boards: cxd56xx: spresense: add board_timerhook function. In - preparation for SDK we muts have a weak board_timerhook function - - drivers: usbhost: add missing endif. By accident an endif was - missing. - - boards: cxd56xx: audio: add build barrier. The audio implementation - should not be bebuilt if the config CONFIG_CXD56_AUDIO is not set. - - arch:arm:cxd56xx: add ge2d.h header. The header is used by - imageproc. - From Alin Jerpelea (2019-10-23). - * drivers/usbhost/usbhost_hidkbd.c: Fix keyboard debounce algorithm - used when CONFIG_HIDKBD_NODEBOUNCE is undefined. From Jeff Theusch - (2019-10-23). - * boards: cxd56xx: spresense: add Spresense Image Processor. Enable - support for accelerated format converter, rotation and so on.using the - CXD5602 image processing accelerator. - boards:cxd56xx:spresense: initialize GNSS and GEOFENCE at boot. Add - the optional initialization of GNSS and GEOFENCE at bootif the - drivers are enabled. - From Alin Jerpelea (2019-10-23). - * drivers/usbhost/Kconfig: Change default for CONFIG_HIDKBD_POLLUSEC - per recommendation of Jeff Theusch. From Gregory Nutt (2019-10-23). - * tools/nxstyle.c: Add detection of carriage returns. Improve - reporting of TABs. From Gregory Nutt (2019-10-23). - * i.MXRT1060-EVK (mostly): Add basic LCD support for the board - IMXRT1060-EVK. From Fabio Balzano (2019-10-23). - * boards/arm/imxrt/imxrt1060-evk: Added Littlevgl demo configuration - into imxrt1060-evk board directory. From Fabio Balzano (2019-10-23). - * boards/arm/imxrt/imxrt1060-evk/README.txt: Fix typos and whitespace - problems in README file. From Fabio Balzano (2019-10-23). - * boards/arm/imxrt/imxrt1060-evk/README.txt: Added instructions to run - the LVGL demo. From Gregory Nutt (2019-10-23). - * arch/sim/src/Makefile: Fixes missing recursion into sim board - directory for dependency generation. From Matias N (2019-10-24). - * arch/sim/src/sim/up_idle.c: Report activity on simulated UART. From - Matias Nitsche (2019-10-24). - * boards/arm/imxrt/imxrt1060-evk: Fix FT5X06 CTRSTn pin configuration, - increased number of pollwaiters for the FT5X06, tuned resolution - during pointer dragging. From Fabio Balzano (2019-10-24). - * boards: cxd56xx: spresense: cleanup and new defconfig - - arch: cxd56xx: remove NVIC_SYSH redefinition. The NVIC_SYSH is - already defined in nvicpri.h - - boards: cxd56xx: spresense: configs: enable SPRESENSE_EXTENSION. - Enable high current mode for the Spresense Extension board on all - examples that have SDCARD support - - boards: cxd56xx: spresense: ifdef SDCARD_TXS02612. The SD Card - TXS02612 port expander is hosted on the Extension board and should - not be enabled if the extension board is not prezent. - - boards: cxd56xx: spresense: configs: increase MQ_MAXMSGSIZE. This - change is needed by the display driver on spresense platform - - boards: cxd56xx: spresense: config: add lcd examples defconfig. - This is a configuration for the basic nx examples. - From Alin Jerpelea (2019-10-24). - * tools/nxstyle.c: Add logic to detect if there is a blank line - following the final right brace. sched/: Applied the modified - nxstyle to all C file as a test. From Gregory Nutt (2019-10-24). - * arch/arm/src/imxrt/imxrt_lpi2c.c: Fix a warning about an unused local - variable. Found in build testing. From Gregory Nutt (2019-10-24). - * Add DMA support for STM32L4+ series - - Add DMA support for STM32L4+ - - stm32l4xrxx_rcc: enable "Range 1 boost" mode if any PLL freq above - 80 MHz - From Jussi Kivilinna (2019-10-25). - * stm32l4_otgfs: enable OTGFS for STM32L4+ series. The OTGFS peripheral - on stm32l4x6 and stm32l4rxxx reference manual is exactly the same. - This change also adds missing bits and fixes errors in stm32l4x5xx and - stm32l4x6xx OTGFS register maps. From Jussi Kivilinna (2019-10-25). - * drivers/mtd/gd25.c: Add 4byte address operation for capacity larger - than 128Mbit. From YanLin Zhu (2019-10-25). - * tools/nxstyle.c: Eliminate false alarm errors on comments that are to - the right of code when the comment terminator is on the same line as - the last of the comment. From Gregory Nutt (2019-10-25). - * drivers/modem/altair/Kconfig: Default for CONFIG_MODEM_ALTMDM should - be 'n' and it must depend on CONFIG_SPI_EXCHANGE. From Gregory Nutt - (2019-10-25). - * This change corrects a problem with NSH: NSH was calling the OS - internal function ramdisk_register() in violation of the portable - POSIX interface. This change solves the problem by introducing a new - boardctl() function BOARDIOC_MKRD which moves the RAM disk creation - into the OS. From Gregory Nutt (2019-10-26). - * drivers/Kconfig: Add an option, CONFIG_DRVR_MKRD, to control whether - or not the mkrd() implementation is build. Otherwise, if mkrd() is - built unconditionally, it will be drawn into every build whether it is - used or not and will increase the build size. From Gregory Nutt - (2019-10-26). - * board/boarctl.c: Add support for the new BOARDIOC_ROMDISK command. - This allows applications to create ROMFS block drivers without illegal - direct calls to romdisk_register. - include/sys/boardctl.h: Add basic definitions to support a ROM disk - creation boardctl() command. - From Gregory Nutt (2019-10-26). - * drivers/Kconfig: If CONFIG_DRVR_MKRD is selected, then we must - auto-select CONFIG_FS_WRITABLE and CONFIG_FS_READABLE. From Gregory - Nutt (2019-10-26). - * boards/arm/stm32/axoloti: Every BSP must provide boot - board_late_initialize() AND board_app_initialize(). That is because - you never now how the configuration will be set. CONFIG_LIB_BOARDCTL - may be auto-selected by applications that need boardctl() support... - requiring the existence of board_app_initialize(). From Gregory Nutt - (2019-10-26). - * tools/nxstyle.c: Eliminate false alarms when checking for alignment - of comments to the right of code. Fix check for C++ style comments so - that strings like http:// and https:// do not generate false alarms. - From Gregory Nutt (2019-10-27). - * boards/arm/sama5/sama5d4-ek/src/sam_appinit.c: Fix error found in - build testing. Bad conditional compilation for - board_app_initialize(). Should depend only on CONFIG_LIB_BOARDCTL, - CONFIG_BUILD_KERNEL is irrelevant. From Gregory Nutt (2019-10-27). - * boards/arm/dm320/ntosd-dm320/src/: Fix error found in build testing. - All configurations must provide boar_app_initialize() which is - required if CONFIG_LIB_BOARDCTL is enabled. From Gregory Nutt - (2019-10-27). - * arch/arm/src/stm32 and boards/arm/stm32/olimex-stm32-p207/src: Fix an - error found in build testing. There is not relationship be - CONFIG_STM32_USBHOST and CONFIG_USBHOST, yet they they are used - interchangeably. This means that can (and did) get out of synch - causing link time failures. This change adds logic to select - CONFIG_USBHOST when CONFIG_STM32_USBHOST is selected, keeping the two - settings synchronized. Furthermore, since CONFIG_STM32_USBHOST is the - authoritative setting, all occurrences of CONFIG_USBHOST were replaced - with CONFIG_STM32_USBHOST in the architecture code and in this one - board code that was producing the error in build testing. From - Gregory Nutt (2019-10-27). - * boards/arm/a1x/pcdueno-a10/src/: Fix error found in build testing. - All configurations must provide boar_app_initialize() which is - required if CONFIG_LIB_BOARDCTL is enabled. From Gregory Nutt - (2019-10-27). - * boards/arm/stm32/stm32vldiscvoery/src/: Fix error found in build - testing. All configurations must provide boar_app_initialize() which - is required if CONFIG_LIB_BOARDCTL is enabled. From Gregory Nutt - (2019-10-27). - * arch/arm/src/stm32l4 and boards/arm/stm32l4/nucleo-l476rg: Add - support for LPTIM timers on the STM32L4 as PWM outputs. From Matias N - (2019-10-27). - * boards/arm/kinetis/twr-k60n512/src/k60_appinit.c: Suppress errors - related to card detect GPIO configuration if SDHC support is not - enabled. From Gregory Nutt (2019-10-27). - * drivers/can/mcp2515.c and boards/arm/stm32/nucleo-f4x1re: MCP2525 - SPI STD-EXT ID fixes. Verified on MCP2525 tested on nucleo-f4x1re. - From DisruptiveNL (2019-10-28). - * drivers/mtd/gd25.c and gd5f.c: Missed in previous change. Without - this change, the compiler will complain that spi_devid cannot be - found. From Xiang Xiao (2019-10-29). - * drivers/wireless/ieee80211/bcmf_chip_43362.c: Fix bcmf_chip_43362 - compile error. From Xiang Xiao (2019-10-29). - * fs/driver/fs_findmtddriver.c: Fix compile failed if NO CONFIG_MTD. - From ligd (2019-10-29). - * arch/arm/src/stm32/stm32_sdio.c: SDIO Fix system hang on card eject. - From David Sidrane (2019-10-29). - * arch/arm/src/stm32f7/stm32_sdmmc.c: SDMMC Fix system hang on card - eject. From David Sidrane (2019-10-29). - * arch/arm/src/stm32h7/stm32_sdmmc.c: SDMMC Fix system hang on card - eject. From Gregory Nutt (2019-10-29). - * arch/arm/src/stm32l4/stm32l4_sdmmc.c: SDMMC Fix system hang on card - eject. From David Sidrane (2019-10-29). - * drivers/mmcsd/mmcsd_sdio.c: Set wrbusy after success of all the - operations. Any failure could leave wrbusy set when it should not be - if the operation failed. From David Sidrane (2019-10-29). - * drivers/mmcsd/mmcsd_sdio.c: Enter a removed card state On a failure. - If we fail to read cardstatus in mmcsd_transferready consider this a - hard error and set the card to removed. From David Sidrane - (2019-10-29). - * arch/arm/src/stm32f7/stm32_otghost.c: OTGFS_EPTYPE_INTR should be - OTG_EPTYPE_INTR. From Gregory Nutt (2019-10-29). - * drivers/wireless/ieee80211/mmc_sdio.c: In sdio_io_rw_extended(), the - behavior of the DMA setup differs, depending on the hardware - capability SDIO_CAPS_DMABEFOREWRITE. If this capability is set, then - the DMA setup much be done before the transfer setup. Dave Marples - modified this file for the i.MXRT USDHC which does have the - SDIO_CAPS_DMABEFOREWRITE. Xiao Xiang reports that this change breaks - the Wifi on the Photon which does not report the - SDIO_CAPS_DMABEFOREWRITE and suggests reverting the change. In - reality both changes are correct but must be conditioned on the DMA - capability of the underlying SDIO device. From Gregory Nutt - (2019-10-29). - * drivers/wireless/ieee80211: Add tools/nxstyle to all of the C files - in this directory. From Gregory Nutt (2019-10-29). - * NXP k66 Ethernet - - Kinetis:Add TJA1100 Phy - - Kinetis:enet.c formatted with nxstyle - - net:mii Cleanup TJA1100 Support. Formatting and adding mask and - shifts. - - net:Kconfig Cleanup formatting. - From David Sidrane (2019-10-30). - * drivers/mmcsd/mmcsd_sdio.c: Align DMA buffer for MBURST size. From - David S. Alessio (2019-10-31). - * drivers/mtd/gd25.c: spi_devid argument was not used in - initialization. GD25 driver was always using priv->spi_devid - initialized to zero by kmm_zalloc(). This change initializes it from - the supplied function argument. From Juha Niskanen (2019-10-31). - * Add INVIOLABLES.txt file. From Gregory Nutt (2019-10-31). - * This change brings in the drivers needed to support OpenAMP. These - changes were ported from https://github.com/FishsemiCode/nuttx. The - current state: Most drivers do now compile but are not yet verified. - This port was effort of a number of people, I rather arbitrarily gave - authorship to Guiding Li because he has the largest number of - fundamental quashed commits from the Xiamoi repository. From Guiding - Li (2019-11-02). - * include/nuttx/usb/usbdev.h and usbhost.h: Add CODE qualifier to - function pointers. From Gregory Nutt (2019-11-02). - * drivers/rptun/rptun.c and fs/hostfs/hostfs_rpmsg.c: Fix 64-bit build - issue in rpmsg driver. From Xiang Xiao (2019-11-03). - * drivers/rptun/rptun.c: Switch open/close/seek/read to file_* - version. From Xiang Xiao (2019-11-03). - * Documentation/NuttShell.html: Update to include the new rptun - command. From Gregory Nutt (2019-11-03). - * net/netlink/netlink_route.c (mostly): This completes a minimal - netlink implementation that will retrieve the ARP table. - net/netlink: Add basic hooks (only) to support the NETLINK_ROUTE - protocol. From Gregory Nutt (2019-11-03). - * Documentation/NuttShell.html: Document the new -t option for the - 'arp' command. From Gregory Nutt (2019-11-03). - * net/netlink/: Misc bugfixes from initial testing using NSH 'arp -t' - command. From Gregory Nutt (2019-11-03). - * Various drivers: Cloned logic. On error, memory was freed, but the - error was not returned. It just continued as though no error - happened. From Petro Karashchenko (2019-11-03). - * sched/semaphore/spinlock.c: Remove support for re-entrant spinlocks. - They seem like a good idea, but they are never used. From Xiang Xiao - (2019-11-03). - * sched/semaphore/spinlock.c: spin_trylock handle memory barrier and - instrumentation correctly. From Xiang Xiao (2019-11-03). - * drivers/addrenv.c: Move up_addrenv_ implementation to common folder. - From Xiang Xiao (2019-11-03). - * include/nuttx/ioexpander/gpio.h: Add guards so that file content will - not compile unless CONFIG_DEV_GPIO is selected. From ligd (2019-11-03). - * audio/audio.c: Add message type to support audio trigger. From - anchao (2019-11-03). - * include/nuttx/mm/mm.h: Remove the assumption that one character - equals eight bits. From Xiang Xiao (2019-11-03). - * drivers/serial/serial.c: Only real uart will call pm_activity(). - From ligd (2019-11-03). - * include/nuttx/rptun/rptun.h: openamp/open_amp.h must not be included - unless CONFIG_RPTUN (and heance CONFIG_OPENAMP) are selected. From - Alin Jerpelea (2019-11-04). - * boards/arm/cxd56xx/spresense/configs/lte/defconfig: Select - CONFIG_MODEM_ALTMDM. From Alin Jerpelea (2019-11-04). - * boards/boardctl.c: Expose power manager function through boardctl - interface. From Xiang Xiao (2019-11-04). - * Documentation/NuttShell.html: Update document to at least mention the - new pmconfig command. From Gregory Nutt (2019-11-04). - * arch/: Add rpmsg_serialinit() call to every implementation of - up_initialize() for rpmsg uart initialization. From Xiang Xiao - (2019-11-04). - * drivers: modem: altair: auto select SPI. The Altair hardware is - connected to SPI and will not work without SPI support. The - SPI_EXCHANGE is automatically enabled (default y) when SPI is - selected. Since SPI is mandatory it should be auto selected. From - Alin Jerpelea (2019-11-04). - * net/netlink: The NETLINK_ROUTE logic needs to return the first queued - response and not attempt to match up responses with requests. That is - the Linux compatible way. Also, use queue.h functions for list - management and fix an error in arp_snapshot(). From Gregory Nutt - (2019-11-04). - * arch/arm/src/imxrt/imxrt_serial.c: This change improves the - performance of UART serial ports on the IMXRT by enabling the RX & TX - FIFOS and transmission on the holding register being empty (TDRE) - rather than transmission being complete (TC). From Dave Marples - (2019-11-04). - * boards/arm/stm32f0l0g0/nucleo-g070rb: Add button driver support, Add - driver support. Add GPIO example. Includes fixes to the GPIO driver - support from Guillherme Amaral . From Daniel - Pereira Volpato (2019-11-04). - * boards/arm/stm32f0l0g0/nucleo-g070rb/src/stm32_boot.c: Fix some - erroneous conditional compilation in board_late_initialize(). From - Gregory Nutt (2019-11-04). - * boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c: Fix some erroneous - conditional compilation in board_late_initialize(). From Gregory Nutt - (2019-11-04). - * libs/libc/string/Make.defs: Need to include build support for files - needed when CHAR_BIT != 8. From Gregory Nutt (2019-11-02). - * drivers/serial/serial_io.c: Uses signal numbers, but does not include - signal.h. This has not problems but missing signal definitions have - been seen in certain cases. From David Sidrane (2019-11-04). - * include/sys/boardctl.h: pm.h is in include/nuttx/power/pm.h, not - include/nuttx/pm.h. From Gregory Nutt (2019-11-04). - * boards/boardctl.c: pm_stay() was used were pm_staycount() was - intended. The caused an error: void value not ignored as it ought to - be. From Gregory Nutt (2019-11-04). - * boards/Kconfig: Newer Olimex E407 boards are populated with - STM32407ZE chips. From David Alessio (2019-11-05). - * fs/smartfs/smartfs_smart.c: Fix O_CREAT without O_TRUNC truncating - existing file. Also nothing in POSIX says that O_APPEND should - prevent O_TRUNC. From Juha Niskanen (2019-11-05). - * fs/smartfs/smartfs_smart.c: Honor O_APPEND on writes. Also document - pwrite() bug/limitation. From Juha Niskanen (2019-11-05). - * sched/sched/sched_waitpid.c: Fix null pointer dereference on race - without DEBUG_ASSERT. From David Alessio (2019-11-05). - * boards/arm/stm32h7/nucleo-h743zi/src: Added gpio-device-driver for - userspace apps. From Heiko Demlang (2019-11-05). - * drivers/wireless/ieee80211/bcm43xxx: Move drivers/wireless/ieee80211/ - to drivers/wireless/ieee80211/bcm43xxx/ since the directory only - contains only BCM43362 and BCM43438 related code. From Xiang Xiao - (2019-11-05). - * boards/arm/stm32/olimex-stm32-e407/scripts/: Individual linker - scripts for F407ZE and F407ZG chips. From David S. Alessio - (2019-11-05). - * drivers/serial/serial_dma.c: Avoid uart_xmitchars_done() move the - tail bigger then head. If ioctl(TCOFLUSH) occurs between - uart_xmitchars_dma() and uart_xmitchars_done(), TCOFLUSH will reset - xmit buffer, then uart_xmitchars_done() will move the 'tail' ahead of - 'head', then sends lots of wrong data. From ligd (2019-11-06). - * stm32h7: allocateheap SRAM and SRAM1 are not continuous From David - Sidrane (2019-11-06). - * arch/arm/src/tiva, arch/arm/include: Add support for Tiva - TM4C129ENCPDT. From Nathan Hartman (2019-11-06). - * arch/arm/src/tiva/common/tiva_flash.c: Improve tiva_write(). - arch/arm/src/tiva/common/tiva_flash.c: Fix several mistakes in - tiva_write() but note that this function needs more work. (1) Fix - wrong use of && when & was intended. (2) Add compile- time warning - directive because according to this function's interface, it is - supposed to support unaligned writes and/or writes of arbitrary - numbers of bytes to FLASH. However, this function does NOT support - that at this time. This needs to be fixed. (3) Fix wrong preprocessor - conditional. Was written to use the 32-word write buffer only for - TM4C1294NCPDT. This buffer is available on all TM4C123 and TM4C129 - parts. Now conditioned upon CONFIG_ARCH_CHIP_TM4C123 or - CONFIG_ARCH_CHIP_TM4C129. (4) Add comments to document the intent of - the above preprocessor logic. From Nathan Hartman (2019-11-06). - * arch/arm/include/tiva/tm4c_irq.h: Fix wrong IRQ vector number. From - Nathan Hartman (2019-11-06). - * drivers/serial/serial_dma.c: Still need reset xmit buffer when meet - TCOFLUSH. From ligd (2019-11-07). - * boards/arm/s32k1xx/s32k146evb/scripts/s32k146.cfg and - boards/arm/s32k1xx/s32k146evb/README.txt: Added configuration script - and instructions for using Thread-Aware OpenOCD for the S32K146 with - Eclipse. From Han Raaijmakers (2019-11-07). - * net/netlink/Kconfig: Remove dependency on EXPERIMENTAL. Although the - Netlink implementation is still only fragmentary, there is no usable - functionality there and no reason for it to depend on EXPERIMENTAL. - Also minor changes to the menu organization so that the Netlink - options appear the same was as do other network options. From Gregory - Nutt (2019-11-07). - * arch/arm/src/stm32l4/stm32l4x6xx_rcc.c: This fix is needed if HSI - clock is selected. Otherwise when waking up from STOP mode, the MSI - clock is selected instead of the HSI clock. From Matias N (2019-11-07). - * drivers/syslog/syslog_device.c: Fix assert that assumes re-opened - syslog file is the same. Logic in syslog_file_channel() is calling - syslog_initialize() for the default syslog device as a recovery action - after failed syslog_dev_initialize(). From Juha Niskanen (2019-11-08). - * arch/arm/src/armv7-m/nvic.h: Add BPIALL register address. From Dave - Marples (2019-11-08). - * STM32H7: Set the BBSRAM memory range to non-cacheable. - - armv7-m: mpu add user peripheral helper - - stm32h7: BBSRAM Exclude BBSRAM from cacheable when - CONFIG_ARMV7M_DCACHE. ST placed the STM32H7 BBSRAM in the SRAM - default memory region which is cacheable. This change sets the - BBSRAM memory range to non-cacheable. - From David Sidrane (2019-11-08). - * net/netlink/netlink_route.c: Add Netlink socket NETLINK_ROUTE support - for getting a snopshot of the Neighbor table. - net/neighbor/neighbor_snapshot.c: Add neighbor_snapshot() that will - eventually be used by the Netlink sockets. Also fixed naming - violation 'struct neighbor_entry' -> 'struct neighbor_entry_s'. - include/nuttx/net/neighbor.h: Expose format of the IPv6 neighbor - table for use with Netlink sockets. - From Gregory Nutt (2019-11-08). - * arch/arm/src/stm32l4/stm32l4_idle.c: (1) Added BEGIN_IDLE() / - END_IDLE() to stop call so that we also get notification via LED of - the STOP mode, (2) Added the stm32l4_clockenable call as previously - discussed, and (3) Added call to pm_changestate() to inform drivers - we're back to running after the call to stm32l4_stop() returns. From - Matias N (2019-11-08). - * This change, initially for the imxrt1050, separates out the pinmux and - iomux functions cleanly. For ease of conversion default IOMUX - definitions have been added into imxrt_iomux.h. The change effectively - does two things; - (1) Unifies the iomux definitions - previously some pins had them, and - some didn't. This effectively made it impossible to use the - pinmuxes without editing the header file in the standard - distribution tree. - (2) Unifies the pin definitions so that every pin now has a suffix. - This makes it *much* easier to see when a pin is in use in your - code, because it will always have a definition in your board.h file. - For anyone who is already using this CPU, a couple of small changes - are needed to existing code; - - In respect of (1) add IOMUX decorators to your pin definitions. - You will find defaults in haardware/imxrt_iomux.h. Every pin - should have a IOMUX decorator and in general the defaults should - be OK. - - In respect of (2) you will need to add selectors for any function - that previously only had one pinning option. There aren't many of - those but LPUART1 is a good example. That just means adding into - your board.h something like; From Dave Marples (2019-11-08). - * boards/arm/imxrt/imxrt1020-evk: Add support for the MIMXRT1021-EVK - board. It features nsh, netnsh and usdhc sample configurations. From - Dave Marples (2019-11-08). - * arch/arm/src/imxrt/imxrt_enet.c: Improve naming of Ethernet pins. - From Dave Marples (2019-11-08). - * i.MXRT 106x: pinmux changes of the 1060's. From Dave Marples - (2019-11-08). - * tools/nxstyle.c: Correct detection of missing blank line following a - block comment. From Gregory Nutt (2019-11-09). - * drivers/power/pm: Historically, the NuttX PM subsystem has consisted - of two functional components: (1) an "Upper" part that detects state - changes based on a random walk driven by activity levels, and (2) and - "lower" part that implements the state changes. - This change decouples that upper activity-based logic from the lower - random walk logic and allows use of other upper state detection logic - (such as a custom, application-specific state machine). - From Matias Nitsche (2019-11-09). - * boards/arm/imxrt/imxrt1020-evk/include/board.h: Fix an error that I - introduced with code review. From Gregory Nutt (2019-11-09). - * arch/sim/src/nuttx-names.dat: Add host ftruncate() support. From - chao.an (2019-11-09). - * tools/nxstyle.c: Eliminate false positive 'Invalid character after - asterisk in comment block'. From Gregory Nutt (2019-11-09). - * net/netlink/netlink_route.c: Add support for the NETLINK_ROUTE - RTM_GETLINK command that is used to obtain a list of all devices in - the UP state. From Gregory Nutt (2019-11-09). - * single wire Allow selection of pull{up|down|none}: - - tioctl: Allow selection of pull{up|down|none} - - stm32: Single Wire add pull{up|down|none} tioctl - - stm32f0l0g0: Single Wire add pull{up|down|none} tioctl - - stm32f7: Single Wire add pull{up|down|none} tioctl - - stm32h7: Single Wire add pull{up|down|none} tioctl - - stm32l4: Single Wire add pull{up|down|none} tioctl - From David Sidrane (2019-11-10). - * openamp/: Add Makefile defines. From hao.an (2019-11-10). - * openamp/Makefile: Linker input file unused because linking not done. - From Xiang Xiao (2019-11-10). - * drivers/rptun/rptun.c: Refine the rptun naming. From Xiang Xiao - (2019-11-10). - * net/netlink: Fix offset in rtattr. include/net/route.h: Correct form - and naming of sruct rtentry. include/netpacket/netlink.h: Add some - definitions that will be needed to access routing tables. From - Gregory Nutt (2019-11-10). - * net/netlink/netlink_route.c: Add support for obtaining the entire - routing table. From Gregory Nutt (2019-11-10). - * net/netlink/netlink_route.c: Add missing routing table list - terminating response. From Gregory Nutt (2019-11-10). - * boards/arm/imxrt/imxrt1060-evk: An update to the configuration on - imx1060-evk to remove compilation warnings about duplicated - definitions. No functional changes. From Dave Marples (2019-11-10). - * arch/sim/src/sim/up_simuart.c: Remove CONFIG_SIM_UART_DATAPOST for - arch/sim. It's very dangerous to call NuttX API from simuart_thread. - From Xiang Xiao (2019-11-10). - * arch/sim/src/sim: Replace all CONFIG_DEV_CONSOLE with USE_DEVCONSOLE - for arch/sim and compile up_devconsole.c conditionally. From Xiang - Xiao (2019-11-10). - * arch/sim/src/Makefile: Move all SMP stuff into one place for - arch/sim. From Xiang Xiao (2019-11-10). - * arch/sim/src/sim/up_hostfs.c: Fix warning: 'mapflags' may be used - uninitialized in this function. From Xiang Xiao (2019-11-11). - * drivers/rptun/rptun.c: Refine the start/stop flow to support the - repeat boot. From Xiang Xiao (2019-11-11). - * drivers/rptun/rptun.c: vring size should also be aligned. From ligd - (2019-11-11). - * boards/arm/imxrt/imxrt1020-evk: Fix ifdef string. The old configs - folder was migrated to Boards/ and we should fix the ifdef. - From Alin Jerpelea (2019-11-11). - * boards/arm/imxrt/imxrt1020-evk: Make naming of the LED consistent. - In most places it is referred to as LED1. In board.h it is referred - to as USERLED1. The i.MXRT1020-EVK hardware user guide (HUG) uses the - name USERLED. This command makes all names internally consistent and - consistent with the HUG. Noted by Alin Jerpelea. From Gregory Nutt - (2019-11-11). - * arch/sim/ and boards/sim/sim/sim: Support OpenAMP between two - simulator instances. Please read rpserver/rpproxy section in - boards/sim/sim/sim/README.txt for more information. From chao.an - (2019-11-12). - * boards/renesas/rx65n: Fix ifdef string in header files. The old - configs folder was migrated to Boards/ and we should fix the - ifdef. From Alin Jerpelea (2019-11-12). - * boards/arm/imxrt/imxrt1020-evk/src/imxrt1020-evk.h: Fix ifdef - string. The old configs folder was migrated to Boards/ and we - should fix the ifdef. From Alin Jerpelea (2019-11-12). - * boards/arm/lpc17xx_40xx/lincoln60/src/lincoln60.h: Fix ifdef - string. The old configs folder was migrated to Boards/ and we - should fix the ifdef. From Alin Jerpelea (2019-11-12). - * drivers/power/activity_governor.c: Fix timer can't start when meet - very small pmtick. From ligd (2019-11-12). - * arch/arm/src/imxrt/imxrt_idle.c: Y'all remember that conversation we - had about why WFI might have been disabled on imxrt? Well, looks like - we found the reason: - - https://github.com/zephyrproject-rtos/zephyr/pull/8535/commits: - "The imxrt1050 is configured to use SYSTICK for the kernel timer, but - SYSTICK cannot wake up the soc from low-power modes. Disable - low-power modes on this soc until we have support for an alternative - timer." - "This fixes k_sleep on the EVKB version of the mimxrt1050_evk board. - An earlier version of the board (EVK, not EVKB), had A0 silicon which - by default did not enter low-power mode on a wfi." - - This change reverts the WFI enable for further investigation post - 8.2. With this change in place together with the previous one my - system is fully stable(*), just drinking a bit more power than I'd - like. From Dave Marples (2019-11-12). - * drivers/mtd/gd25.c: Add gd25_lock/unlock to case: enable 4-bytes - address From ligd (2019-11-12). - * arch/arm/src/imxrt/imxrt_serial.c: o, just to complete the - documentation of this...it looks like two issues, which confused me - greatly: - 1) Operational issue. TC (Transmission complete) and TDRE (TX Buffer - Empty) were transposed in imxrt_serial.c. The end result was that - for unoptimised code everything worked fine, but optimised code - got itself into a real mess and continually fired interrupts. The - change attached fixes this. This one would have been found much - more quickly if this particular board had supported SWO :-/ - 2) Startup issue. There are a number of chip errata that apply to - the 1052 first revision (A-suffix) that don't apply to the second - (B-suffix). Those got me for a while and it's important to use an - EVK_B_ dev board if you're suffering stability problems with this - particular chip. However, even with that resolved with either - optimised or unoptimised code when there is no SNVS (Battery - Backup) power and the power is switched on the CPU appears to boot - but gets stuck with timer interrupts not being generated. The CPU - is running and it will execute linear code. I have determined - this by putting an 'imxrt_lowputc('A'+irq)' into up_doirq. For the - non-running case the output looks like this: - - LLLL - - this implies 4 0x0b interrupts have been generated, and nothing - else. If I hit keys on the keyboard I get 'e' in the flow. 0x0b - is the SVC instruction and is the mechanism by which NuttX handles - task switching. 'e' is 0x24, which corresponds to the LPUART1 - interrupt. Other than these, the system does not respond further - but is happily in the idle loop. In this circumstance if you hit - SW2 on the EVKB board though the logjam 'unjams' and normal - service is established, output now looks like: - - LLLLPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPLPP ...etc. - - Where 'P' is 0x0f (the SYSTICK interrupt)....this is what _should_ - be happening so; SYSTICK starts up after SW2 has been pressed. - From this point on everything works correctly and you can reboot - the CPU, put new code into it or do whatever you wish, **provided - power is not cycled off**. If power is cycled off then return to - the top and go through the process again. When there is SNVS - power to the CPU then power can be switched on and off as you - wish, and the CPU will boot correctly. This has been determined by - putting 3V onto J6. - I think we are probably doing something naughty with the way we - are starting the clocks to the timers. There are certainly some - restrictions on imxrt clock manipulation which we have studiously - avoided. I am investigating further and have some potential - patches but even if I find the root cause it should not be - included in 8.2 as the change could be disruptive. - From Dave Marples (2019-11-12). - * net/netlink: Add options to disable individual NETLINK_ROUTE - commands. This will probably become quite large and will need to be - higher tunable for smaller platforms. From Gregory Nutt (2019-11-12). - * libs/libc/stdio/lib_getdelim.c: Add implementations of the POSIX - functions getdelim() and getline(). From Gregory Nutt (2019-11-12). - * libs/libc/stdio/lib_libfgets.c: Because of how the function is - defined, getline() cannot be used on platforms that use CR-LF line - terminations. From Gregory Nutt (2019-11-12). - * include/sys/time.h, libs/libc/unistd, sched/timer: Implement - alarm(), setitimer() and getitimer() APIs. From liuhaitao - (2019-11-13). - * libs/libc/stdio/lib_getdelim.c: Make getdelim() behave per - specification on OpenGroup.org. Specifically, needs to reallocate - buffer if more data is received than will fit. From Gregory Nutt - (2019-11-13). - * libs/libc/stdio/lib_getdelim.c: Initial allocation should be larger; - incremental reallocs should be smaller. Update some comments. From - Gregory Nutt (2019-11-13). - * arch/renesas/include and arch/renesas/src: Fix spurious '=' in - comments. From David Sidrane (2019-11-14). - * drivers/syslog/ramlog.c: Fix ramlog readers never woken up when using - ramlog as syslog or console. We also make an attempt to avoid the - thundering herd problem if there are multiple readers/pollers. - Change also removes forcing CONFIG_RAMLOG_CRLF in - uttx/syslog/ramlog.h as there is no point of wasting precious RAM for - useless characters. From Juha Niskanen (2019-11-14). - * boards/arm/imxrt/imxrt1060-evk/src/imxrt_lcd.c: Because - board-private GPIO definitions have been moved to the public board.h - (VERY BAD IDEA), breakage happened in all files that need GPIO - definitions, but did not include board.h (which they should not have - to). From Gregory Nutt (2019-11-14). - * include/netpacket/netlink.h: Add definitions that will be needed for - future NETLINK_CRYPTO support. From Gregory Nutt (2019-11-14). - * syscall/: Implementation of syscall for new getitimer and setitimer - were incomplete. - include/sys/syscall.h: Should be SYS_getitimer and SYS_setitimer, - not SYS_getitime and SYS_setitime. - From Gregory Nutt (2019-11-14). - * syscall/ and include/sys/syscall.h: Fix an inconsistency. In - some places, getitimer() and setitimer() depend on - CONFIG_DISABLE_POSIX_TIMERS=n and in other places they depend on - nothing. As a result, there are link failures when - CONFIG_DISABLE_POSIX_TIMERS=y. Which is correct? On one hand, these - interfaces are not POSIX timers, so conditioning them on - CONFIG_DISABLE_POSIX_TIMERS. I opted to keep the dependence and just - apply it consistently. I did this because setitimer() and - getitimer() are seldom used so it is really best if a system call is - no generated for them in all cases. From Gregory Nutt (2019-11-14). - -8.3 2020-xx-xx Gregory Nutt