Skip to content
ReleaseNotes 403 KiB
Newer Older
      - Enhanced output to NSH ping command from Max Neklyudov.
      - The NSH mount command now recognizes the Union filesystem type when
        listing mounted file systems.

    * Applications: apps/netutils:

      - apps/netutils/thttpd/ and apps/examples/thttpd/: Add support for
        using binfs/ with the Union FS instead of NXFLAT.  NXFLAT is
        probably the better solution but recently compiler changes make it
        unusable.  binfs or ELF are fallback binary formats.  This commit
        adds an option to use binfs with the Union FS.

    * Applications: apps/examples:

      - Modify/simpify apps/examples build files.  From Roman Saveljev.
      - apps/examples/ltdc:  Add testing support for the STM32 LTDC's 2D DMA.
        From Marco Krahl.
      - apps/examples/ostest: Add a test of nested signals.  There are no
        failures to handle signals but neither am I getting any nested signal
        handling.
      - apps/examples/elf: Add configuration options to support building the
        hello++4 example that depends upon having uClibc++ available.  Also
        add hello++5 to the ELF example  From  Leo aloe3132.
      - apps/examples/unionfs: Add a test of the union file system to
        apps/examples.

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:

      - boardctl():  Add missing case causing that caused failures of PWM
        test.
      - pthread_kill(): 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.
      - uint32_t callbacks: Update the type passed to watchdog timer
        handlers.  Using uint32_t is a problem for 64-bit machines because
        it it too small to pass a pointer.  uintptr_t is a more appropriate
        type.
      - 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.
      - 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.  Noted by Jouko Holopainen.

    * File Systems/Block Drivers/MTD:

      - MTD:  Increase the size of the fields in the geometry structure
        (again) to support larger FLASH sizes.  Needed by Sebastien Lorquet.

    * Common Drivers:

      - poll(): Fix resource leak and memory corruption on poll failure.
        From Jussi Kivilinna.

    * USB Host:

      - LPC31xx and SAMA5Dx EHCI:  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.

    * USB Device:

      - All USB device 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.

    * Networking:

      - TCP:  Correct failures in long Telnet sessions by increasing th
        size of the number of bytes sent from uint16_t to uint32_t.  This
        avoids an integer overflow that causes a long Telnet session to be
        closed unexpectedly.  From Rony XLN.
      - Network locks: 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.
      - Local Sockets: 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.
      - 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.
      - TCP: net_startmonitor() always returned OK.  In the race 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 incorrectly marked as connected.  This
        behavior was noted by Pelle Windestam.
      - setsockopt() failed when setting timeouts to values less tha 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.
      - TCP: 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.

    * Atmel SAM3/4 Drivers:

      - 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.

    * Atmel SAMA5 Drivers:

      - SAM3/4 Serial:  When reconfigured, serial does not receive bytes
        from UART.  This happens because RX interrupt was disabled in the
        setup routine.  Fixed this I save interrupt configuration before
        UART shutdown and restore it after.  From Max Neklyudov.

    * NXP LPC17xx Drivers:

      - LPC176x GPIO:  Reorder steps when an output GPIO is configured in
        order to avoid transient bad values from being output.  From Hal
        Glenn.
      - LPC17 USB OHCI:  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.
      - LPC17xx Ethernet:  Review, update, and modify the Ethernet driver so 
        that it works better with CONFIG_NET_NOINTS=y.  Also, update all
        LPC17xx networking configurations so that they have
        CONFIG_NET_NOTINTS=y selected.

    * SiLabs EMF32 Drivers:

      - EFM32 SPI: Add missing SPI GPIO pin initialization.  From Pierre-noel
        Bouteville.

    * STMicro STM32:

      - STM32 F3:  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.

    * STMicro STM32 Drivers:

      - STM23 RTC: Fix an error introduced into stm32_pwr_enablebkp().
        That function must preserve the previous state of backup domain
        access on return.
      - STM32 RTC counter: Now need to enable backup domain write access
        when setting the time.  From Darcy Gong.
      - STM32 OTG FS and HS: Added protection in the event that out-of-bound
        endpoint numbers are received.  From David Sidrane.

    * STMicro STM32 Boards:

      - 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 Krahl.

    * TI Tiva

      - Fixes for Tiva TM4C1294NCPDT.  From Frank Sautter.

    * Atmel SAMV71 Drivers:

      - SAMV7 TWIHS: Fix SAMV TWIHS logic that performs multi-message
        transfers with and without repeated starts.

    * Atmel SAMA5D3/4 Dirvers:

      - SAMA5 CAN: Fix SAMA5 CAN frame construction.  From Max Holtzberg.

    * C Library/Header Files:

      - stdlib.h:  MAX_RAND should be RAND_MAX.
      - assert.h: Wrap definitions of assertion macros in do while so that
        they are valid C statements.  Numerous places throughout the code
        where semicolons were missing at the end of an assertion also had to
        be fixed. Suggested by orbitalfox.
      - inetntoa(): Correct errors in printing IP address when type char is
        signed and the value is >= 128.  From Max Neklyudov.

    * Tools:

      - Tools: Fix test for the existence of the apps/ directory in
        configure.c. Fix backward interpretation of options, -l was selecting
        Windows and -w was selecting Linux. This was SourceForege Ticket #39.

    * Applications: apps/nshlib:

      - apps/nshlib/nsh_timcmds.c: Check return values from time functions.
      - apps/nshlib/: Fix handling of gmtime_r return value in time commands.
        gmtime_r returns a pointer, not an int.

    * Applications: apps/netutils:

      - apps/netutils/ntp: Fix mismatched sched_lock/unlock.  Noted by Juha
        Niskanen.

    * Applications: apps/examples:

      - apps/examples/nxlines:  Fix missing right bracket that causes
        compile error when CONFIG_NX_XYINPUT=y.  From Librae.
      - apps/examples: When boardctl() fails, need to print errno not the
        returned value which will always be -1.
      - apps/examples: Correct use of the BOARDIOC_GRAPHICS_SETUP boardctl()
        call.
Gregory Nutt's avatar
Gregory Nutt committed
9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620

NuttX-7.11 Release Notes
------------------------

The 111th release of NuttX, Version 7.11, was made on June 9, 2015,
and is available for download from the Bitbucket.org website.  Note
that release consists of two tarballs:  nuttx-7.11.tar.gz and
apps-7.11.tar.gz.  Both may be needed (see the top-level nuttx/README.txt
file for build information).

Additional new features and extended functionality:

    * Core OS:

      - clock_gettime(): Use up_timer_gettime for CLOCK_MONOTONIC in
        tickless mode.  From  Max Neklyudov.
      - waitpid(): Implement WNOHANG for waitpid() only and for the case of
        CONFIG_SCHED_HAVE_PARENT not selected.  From Max Neklyudov.
      - SCHED_SPORADIC:  Add a sporadic scheduler to NuttX.
      - Extend the processor-specific interface to include information to
        support the Sporadic Scheduler.
      - 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.

    * Binary Loader:

    * Graphics/Graphic Drivers:

      - Graphics:  Implement anti-aliasing in order to clean the drawing of
        all edges.  Anti-aliasing is supported in the horizontal, raster
        direction only.
      - SSD1306 LCD Driver: Modify the SSD1306 LCD driver to support either
        the SPI or I2C interface.  From Alan Carvalho de Assis.

    * File Systems/Block Drivers/MTD:

      - mount: Add the ability to mount a file system on top of en existing
        node in the psuedo-file system.
      - epoll(): Add a very simple epoll layer just around poll calls. To
        satisfy build app requirements.  From Anton D. Kachalov.

    * Common Device Drivers:

      - IOCTL: Add relay IOCTL definitions. From Max Neklyudov.
      - I/O Expander Framework:  Add an I/O expander driver framework. From
        Sebastien Lorquet
      - NXP PCA9555 I/O Explander.  Add PCA9555 driver.From Sebastien
        Lorquet
      - BMP180 Barameter: Add support to Bosch BMP180 barometer.  From
        Alan Carvalho de Assis.
      - CAN IOCTLs:  Add CAN IOCTL command definitions to manage CAN message
        filtering
      - CAN Driver:  Add configuration to support DLC to byte conversions
        needed for CAN FD mode.
      - SPI Slave Interface:  Add a definition of an SPI slave interface.
      - LM92 Temperature Sensor:  Add a driver for the LM92 temperature
        sensor.  Contributed by Paul Alexander Patience.
      - AS5048B Rotary Magnetic Sensor: Add support for an AS5048B rotary
        magnetic sensor.  From Paul Alexander Patience.
      - Ramtron Driver:  Update to include supportf for newer RAMTRON parts.
        From David Sidrane.
      - MB7040 Sonar Driver: Add support for a MB7040 sonar driver.  From
        Paul Alexander Patience.
      - ms5805 Altimeter Driver: Add support for an MS5805 altimeter.  From
        Paul Alexander Patience.

    * Networking:

      - DNS Client: Implement the low-level network DNS packet protocol to
        request and receive IPv6 address mappings.
      - 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.
      - NetDB:  Name resolution logic now supports lookups from a file like
        /etc/hosts.
      - Network Initialization: Add CONFIG_NETDEV_LATEINIT that can be
        used to suppress calls to up_netinitialize() from early in
        initialization.
      - FTMAC100 Ethernet MAC Driver. Add support for Faraday FTMCA100
        Ethernet MAC/ From Anton D. Kachalov.
      - UDP Networking:  Add support for send() for connected UDP sockets.

    * Crypto:

      - Add CFB and MAC AES modes.  From Max Neklyudov.

    * Simulation Platform:

      - Simulation: Implement board_power_off() for the simulation platform.
        This allows for a graceful exit from the simulation.

    * MoxaRT:

      - MoxaRT SoC: Add support for MoxaRT SoC found in the most Moxa serial
        converters such as NP51x0, NP66xx, UC72xx.  From Anton D. Kachalov.

    * MoxaRT Boards:

      - Moxa NP51x0: Moxa NP51x0 series of 2-port advanced RS-232/422/485
        serial device servers.  From Anton D. Kachalov.

    * ARMv6-M:

      - ARMv6-M Assertions: Port some per-process stack dumping logic from
        ARMv7-M to ARMv6-M.  From Alan Carvalho de Assis.

    * Atmel SAMD/L Boards:

      - SAML21: DMA: Add SAML21 DMA support.
      - SAMD21: Add architecture support for the SAMD21 family.
      - SAMD21-Xplained:  Board configuration for the SAMD21 Xplained board.

    * Atmel SAM3/4 Drivers:

      - SAM4E: Add default loop optimization if EEFC_FMR is available in the
        configuration (i.e., for SAM4S and 4E). From Marco Aurélio da Cruz.
      - crypto/ and SAM4CM: Add CFB and MAC AES modes.  From Max Neklyudov.
      - SAM3/4:  Add a TWI driver for the SAM4CM.  From  Max Neklyudov.

    * Freescale (NXP) Kinetis:

      - Kinetis: Add support for MK20DN--VLH5 and MK20DX---VLH5.  Needed
        for backward compatible support for Teensy-3.0.

    * Freescale (NXP) Kinetis Boards:

      - Teensy 3.x:  Add board support for the PJRC Teensy-3.0 and
        Teensy-3.1 boards.

    * Atmel SAMV7 Drivers:

      - SAMV7:  Add an MCAN driver for the SAMV7 platform.
      - SAMV7 SPI Slave Driver: Add the an SPI slave driver.

    * STMicro STM32:

      - STMicro STM32 F7:  Add architecture support for the STMicro STM32
        F7.
      - STM32 F446:  Add support for the STMicro STM32 F446.  From David
        Sidrane.

    * STMicro STM32 Drivers:

      - STM32 F7:  Add an STM32 F7 Ethernet driver.
      - STM32 F7:  Port the STM32 F4 DMA driver.
      - STM32 F4 ADC:  Add DMA support to the ADC driver for STM32 F4.  From
        Max Kriegler.

    * STMicro STM32 Boards:

      - STM32F762G-Disco:  Add support for the STMicro STM32 F7 Discovery
        board.
      - STM32F4-Disco: Add support to BMP180 driver on the STM32F4 Discovery.
        From Alan Carvalho de Assis.

    * C Library/Header Files:

      - Add asctime(), asctime_r(), ctime(), and ctime_r().
      - sethostname(): Add support for sethostname().
      - gethostbyname() and gethostbyaddr():  Add support for
        gethostbyname() and gethostbyaddr().  Also support included for the
        non-standard gethostbyname_r() and gethostbyaddr_r().  This moves
        the DNS client logic from apps/ into the NuttX libc implementation.

    * Tools:

      - testbuild.sh:  Add a script that can be used to perform building
        testing for several board configurations.

    * Build/Configuration System:

      - apps/ Build System:  No longer depends on hardcoded lists of
        directories. Instead, it does a wildcard search to find all
        appropriate directories.  This means that to install a new
        application, you simply have to copy the directory (or link it) into
        the apps/ directory.  If the new directory includes a Makefile and
        Make.defs file, then it will automatically be included in the build.
      - mkkonfig.sh: Add the tool mkkconfig.sh that dynamically builds the
        apps/Kconfig file at configuration time.  The hardcoded
        configuration file has been removed and now the top-level Makefile
        executes tools/mkkconfig.sh to auto-generate the top-level Kconfig
        file.  A new apps/ make target call preconfig: was added to support
        this operation.  Now you do not have to modify the top-level Kconfig
        file to add a new directory into the configuration; the top-level
        subdirectory simply needs to include a Kconfig file and it will
        automatically be included in the configuration.  The native Windows
        build is temporarily broken until a new apps/tools/mkconfig.bat
        script is generated.
      - mkkconfig.bat:  Add the Windows script corresponding to
        apps/tools/mkkconfig.sh.  Needed for a Windows native build.

    * Applications: apps/nshlib:

      - NSH shutdown command: NSH will now support an (optional) shutdown
        command if the board provides the option CONFIG_BOARDCTL_POWEROFF.
        The command can also be used to reset the system if
        CONFIG_BOARDCTL_RESET=y.
      - NSH uname command:  Add support for a uname command.
      - NSH nslookup command:  Add an nslookup command.

    * Applications: apps/system:

      - NetDB:  Add a system command to access the network database.
      - readline():  Add support for Unix-style tab complete to readline.
         Contributed by Nghia Ho.
      - readline():  Extended the tab-completion support to also expand NSH
        command names.
      - readline():  Add support for an in-memory command line history that
        can be retrieved using the up and down arrows.  Contributed by Nghia
        Ho.

    * Applications: apps/netutils:

      - DNS client:  Moved the DNS client logic into the NuttX C library.
        It is a necessary part for the full implementation of the netdb logic
        and provides more flexibility in that location.
      - Replace calls to the non-standard dns_gethotip() with calls to
        standard gethostbyname().
      - NetLib: Create netlib wrapper functions around dns_getserver() and
        dns_setserver() to isolate application code from changes to those
        interfaces.

    * Applications: apps/examples:

      - OS test:  Extend the OS test to include a test of
        pthread_mutex_trylock() for recursive mutexes. From Juha Niskanen.
      - OS test: Add a test for the sporadic scheduler.

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:

      - pthreads: Use -1 instead of 0 as PID for unclaimed mutexes.  From
        Juha Niskanen.
      - pthreads: Implement pthread_mutex_trylock() for recursive mutexes.
        From Juha Niskanen.
      - pthread_create():  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.
      - Protected Mode User Memory Allocator: 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.
      - pthread_create(): Fix an (unlikely) error in fallback value in the
        event of a failure (which should never occur).

    * Common Drivers:

      - STMPE811 Driver:  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.
      - CAN driver:  Fix an issue in the CAN driver where the rx_sem count
        can grow beyond bounds.

    * File System/Block Drivers:

      - 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 St??.

    * Networking/Network Drivers:

      - netconfig.h:  Fix some backward compilation that was emitting #error
        in the wrong condition when SLIP was enabled.
      - SLIP Driver:  Fix a missed name change when many of network
        interface names changed sometime back but were apparently never
        updated for SLIP.
      - Networking:  Allow receipt of empty UDP packets.  From Max Neklyudov.

    * ARMv6-M:

      - ARMv6-M: Fix Cortex-M0 assembly error when the interrupt stack is
        enabled.  From Alan Carvalho de Assis.

    * Atmel SAMD/L Drivers:

      - SAMD20, D21, L21: 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.
      - SAMD/L:  Several fixes to register definitions and types. From
        Janne Rosberg.

    * Atmel SAM3/4 Drivers:

      - SAM3/4 UART: Back out an error introduced with commit
        02c33f66c5a8be774034cd40e4125e9323c7b4d8.  Causes an infinite loop in
        up_lowputc().  From Max Neklyudov.
      - SAM4CM: Fix SUPC register definitions. From Max Neklyudov.
      - SAM3/4 WDT: Correct some problems with SAM3/4 watchdog driver.
        Includes some small improvements.  From Max Neklyudov.

    * Atmel SAMV7 Drivers:

      - SAMV7 UART: Also back the bad cloned change o sam_lowputc.c for
        SAMV7 platform.

    * NXP LPC43xx Drivers:

      - LPC4350: Correct some LPC4350 GPIO pin configurations.  From
        Alessandro Temil.

    * SiLabs EMF32 Drivers:

      - EFM32 SPI: Correct write to incorrect register in EFM32 SPI driver.
        From Pierre-noel Bouteville.

    * STMicro STM32 Drivers:

      - STM32 F15x: STM322 F15x stm32_stdclockconfig() was calling
        stm32_pw_setvos() which accessed PWR_CR via an inactive APB From
        Juha Niskaneni.
      - STM32 Ethernet: Extend STM32 Ethernet operating frequency to 180MHz.
        From Sebastien Lorquet.

    * STMicro STM32 Boards:

      - 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.

    * ARMv7-A:

      - Cortex-A5 vfork():  Fix a Cortex-A compilation error when system
        calls are enabled in modes other than CONFIG_BUILD_KERNEL. 

    * Atmel SAMA5 Drivers:

      - SAMA5Dx EHCI:  Fix some bad conditional compilation that left a
        function undefined if CONFIG_USBHOST_ASYNCH is not selected.

    * C Library/Header Files:

      - getopt():  Uninitialized variable can cause hardfault from getopt()
        if required argument is missing. From George McWilliams.

    * Applications: apps/nshlib:

      - NSH/THHPD:  Change decoding to handle the increased size of the
        scheduling policy field in the TCB.

    * Applications: apps/netutils:

      - THTTPD:  Fix compilation problems when
        CONFIG_THTTPD_GENERATE_INDICES is defined.
      - THTTPD: Missing gci-src as a dependency path when building with
        BINFS enabled.

    * Applications: apps/examples:

      - poll() example: Fix a few bit-rot compilation errors.
      - Nx Lines example:  If CONFIG_NX_ANTIALIASING=y, then the nxlines
        example now erases a line that is 2 pixels longer and 2 pixels wider
        than the line it drew.  That eliminates edges effects due to
        applying the anti-aliasing algorithm twice.  A better solution
        would be to make anti-aliasing an option for each graphics call so
        you would rend the line with anti-aliasing ON and clear it with
        anti-aliasing OFF. but I don't have the wherewithal for that change
        today.
      - OS test: Improve synchronization in round robin tests. On very fast
        processors, there are race conditions that make the test failure.
        Need better interlocking to assure that the threads actually do start
        at the same time.