diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2015-02-11 11:05:45 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2015-02-11 11:05:45 -0600 |
commit | e3257dea5121ebcf9640c2def6584ed1a0d74761 (patch) | |
tree | acc535a9222e94d4979cdf76c2550923d211e481 /nuttx/ReleaseNotes | |
parent | 8727159fa333a1aab7cead2928cfca06a9ec00fd (diff) | |
download | px4-nuttx-e3257dea5121ebcf9640c2def6584ed1a0d74761.tar.gz px4-nuttx-e3257dea5121ebcf9640c2def6584ed1a0d74761.tar.bz2 px4-nuttx-e3257dea5121ebcf9640c2def6584ed1a0d74761.zip |
Prep for 7.8 release
Diffstat (limited to 'nuttx/ReleaseNotes')
-rw-r--r-- | nuttx/ReleaseNotes | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes index d4f781ab7..d43243d5a 100644 --- a/nuttx/ReleaseNotes +++ b/nuttx/ReleaseNotes @@ -8098,3 +8098,322 @@ detailed bugfix information): signal, do not do anything crazy like exit. Most from Rony Xln - apps/nshlib/: NSH TFTP get command: Wrong file name used for the destination. From Lazlo + +NuttX-7.8 +--------- + +The 108th release of NuttX, Version 7.8, was made on February 11, 2015, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-7.8.tar.gz and +apps-7.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release is primarily a bugfix release for the NuttX-7.7 version that +was release just two weeks prior. That release included substantial +modifications in the NuttX networking to accommodate support for IPv6. This +release follows close behind NuttX-7.7 in order to correct some the problems +discovered in that networking code. This release does, however, include a +small number of new features and bug fixes unrelated to NuttX networking. + +Additional new features and extended functionality: + + * Core OS: + + - Tickless Mode: added limit of maximum delay that can be request + by the scheduler tickless logic. This is necessary so that the + tickless logic does not request a delay beyond the capability of the + underlying hardware. From Macs Neklyudov. + + * Common Drivers: + + - VFS Unlink: 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. + - Pipes and FIFOs: 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. + - Added 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. + + * File Systems/Block Drivers/MTD: + + - RAM/ROM disk: 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 in this case -- + Should it be freed or not? Changed all calls to ramdisk() to use + these new parameters. + + * Networking: + + - Add support for local, Unix domain sockets. Support included for + both SOCK_STREAM and SOCK_DGRAM style local socket. + - UDP enhancement: Add UDP read-ahead support. In addition to + eliminating the main reason for lost UDP packets, then change + enables support for for poll/select on UDP sockets and also non- + blocking UDP sockets. From Macs Neklyudov. + - SLIP interface improvements. From Macs Neklyudov. + - IPv6 Neighbor Solicitation: Added logic to support verification + that we have the IPv6 address in the Neighbor Table before sending + any packets. If not, then the Neighbor Solicitation message is + sent. This feature is important because otherwise the first packet + sent to a remote peer will fail (it would have been replaced with a + Neighbor Solicitation). + - IPv6 Autonomous Auto-Configuration: Added support for sending + ICMPv6 Router Solicitation and receiving Router advertisement. The + local IPv6 address, mask, and router address are then auto-configured + from the response.. + - IPv6 Router Support: Add logic to behave like a router (if so + configured) only in the sense that NuttX will send the router + advertisement message in response to any received router solicitation + messages. Thus, one NuttX node in a network can configure the IPv6 + addresses of all other nodes in the network. + - Optional IPv6 address filtering added to all Ethernet drivers for + the all-routers multicast address. + + * Atmel AVR: + + - Added architecture support for the Atmel AVR ATMega1284P MCU. From + Jedi Tek'Unum. + + * Atmel AVR Boards: + + - Added support for the LowPowerLab MoteinoMEGA that is based on the + Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum. + + * Atmel SAMA4: + + - Add support for Tickless mode of operation for the SAM4CM platform. + From Macs Neklyudov. + + * Atmel SAMA4 Drivers: + + - Ethernet: The SAM4E Ethernet driver can now be configuration to + perform all network processing on the work queue. This greatly + reduces the amount of interrupt level processing to service Ethernet + packets. + - SAM4E Ethernet: Add support multicast address matching and IPv6. + + * Atmel SAMA4 Boards: + + - SAM4E-EK: The nsh configuration now configures the Ethernet driver + for execution on the work thread. + + * Atmel SAMA5D Drivers: + + - SAMA5D4 Ethernet: The SAMA5D4 Ethernet driver can now be configuration + to perform all network processing on the work queue. This greatly + reduces the amount of interrupt level processing to service Ethernet + packets. + - SAMA5D3 and SAMA5D4 Ethernet: Add support multicast address matching + and IPv6. + + * Atmel SAMA5D Boards: + + - SAMA5D4-EK; Added a configuration to testing IPv6. + - SAMA5D4-EK: Converted the nsh and ipv6 configurations to configure + the Ethernet driver to use the work queue (vs. interrupt level + processing). + + * Freescale KL: + + - Add architectural support for the K26Z128VLH4 chip. From Derek B. Noonburg. + + * Freescale KL Boards: + + - Add board support for the Freedom KL26Z board. From Derek B. Noonburg. + + * NXP LPC17xx Drivers: + + - Ethernet: Add support multicast address matching and IPv6. + + * SiLabs EFM32: + + - Add configurable option 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. + + * SiLabs EFM32 Drivers: + + - EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville. + + * STMicro STM32 Drivers: + + - AES: Add driver for STM32L162XX AES peripheral. From Juha Niskanen. + - Ethernet: The STM32 Ethernet driver can now be configuration to + perform all network processing on the work queue. This greatly + reduces the amount of interrupt level processing to service Ethernet + packets. + - Ethernet: Add support multicast address matching and IPv6. + + * STMicro STM32 Boards: + + - Added an IPv6 configuration for the STM32F4-Discovery board (with the + STM32-DISCO_BB base board). + - Converted all STM32F4-Discovery configurations (with base board) to + configure the Ethernet driver to use the work queue (vs. interrupt + level processing). + + * TI Tiva Drivers: + + - Added support for TM4C123G timers. From Calvin Maguranis. + - Added a Tiva ADC driver. From Calvin Maguranis. + + * TI Tiva Boards: + + - Added TM4C123G timers on the TM4C123G Launchpad. From Calvin Maguranis. + - Added Tiva ADC support to the TM4C123G-Launchpad. From Calvin Maguranis. + + * C Library/Header Files: + + - Math Library: Added support for inverse hyperbolic functions, + isfinite(), error functions, nan(), copysign(), and trunc() + functions. From Brennan Ashton. + + * Applications: + + - apps/examples/ustream: Add a simple test of Unix domain stream + sockets. + - apps/examples/udgram: Add a simple test of Unix domain datagram + sockets. + - apps/netutils/netlib: Add utilities to convert to/from prefix + lengths from/to 128-bit network masks. + - apps/nshlib: Modify the NSH IPv6 ifconfig command to show the more + standard post-pended prefix value, rather than the full 128-bit + netmask. + +Efforts In Progress. The following are features that are partially +implemented but present in this release. They are not likely to be +completed soon. + + * Processes. Much of the work in this release is focused on the + realization of Unix-style user processes in NuttX. There is more to + be done, however. The full roadmap and status is available at: + http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes + + * XMega: There are some fragments in place for an XMega port. That + port has not really started, however. + +Bugfixes. Only the most critical bugfixes are listed here (see the +ChangeLog for the complete list of bugfixes and for additional, more +detailed bugfix information): + + * Core OS: + + - Work Queues: Fix a backward calculation when determining the time + to the next interesting event. . From Liio Chen via the PX4 + repository. + - clock_systimespec(): Fixes for compilation errors in certain + configurations. From Macs Neklyudov. + + * Graphics + + - Fixed a problem with one of the font files. From Pierre-noel Bouteville. + + * Networking: + + - IOB Deadlock: 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: The network should never + wait for TCP read-ahead buffering space to be available. It should + drop the packets immediately if no buffering is available. 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. + - TCP Deadlock: Fix another deadlock when CONFIG_NET_NOINTS is enabled. + 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. + - ARP response waiting: Fixes another CONFIG_NET_NOINTS issue. 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). + - TCP accept(): Fix a major TCP bug introduced with the NuttX-7.7 + IPv6 changes: 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-... + - Lots of build problems introduced into multiple NIC support with the + IPv6 changes of NuttX-7.7. 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. + + * Common Drivers: + + - Pipes and FIFOs: 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. + - RAMTRON: Table of parts is not terminated properly if + CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David + Sidrane. + + * All Archtectures: + + - Removed all occurrences of up_maskack_irq() that disables 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 + impossible to test. + + * ARM + + - ARMv7-A and ARMv7-M memcpy(): Optimized ARM assembly language + memcpy's were not returning a value in R0 they are required to do. + From David Sidrane. + - ARMv7-A interrupt handler should not automatically re-enable interrupts + on interrupt return. That interferes with the driver's ability to + manage interrupts. Analogous change made to all other architectures + as well (ARM7, ARM9, HC, SH, x86, z16, z80, etc,. See above.). + + * STMicro STM32: + + - GPIO Interrupts: Disabling any of EXTI 5-9 interrupts was disabling + interrupts for all EXTI 5-9. Same issue with EXTI 10-15. From Jussi + Kivilinna. + + * STMicro STM32 Drivers: + + - RTCC: Fix for recent changes that caused compilation failrues with + STM32L15XX configurations. From Jussi Kivilinna. + - SPI: The source clock for SPI 4,5, and 6 should be PCLK2, not PCLK1 + (for F411, F427, and F429). Per David Sidrane. + + * C Library/Header Files: + + - execl(): Fix bad logic in counting the number of arguments. + execl() parameter passing could never have worked. Noted by + Pierre-noel Bouteville. + + * Applications: + + - Fix for building with parallel make. Build-server sometimes failed + 'make -j24' with errors in the builtin line or or sometimes silently + succeeds but generated builds that contain a random subset of + configured NuttX applications. There are two root causes for this: + (1) Recipes for building builtin_list.h and builtin_proto.h are + not linearizable, and (2) Nothing ensures that 'make context' is run + first for apps/builtin. This change address both issues. From Juha + Niskanen. |