summaryrefslogtreecommitdiff
path: root/nuttx/ReleaseNotes
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/ReleaseNotes')
-rw-r--r--nuttx/ReleaseNotes319
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.