Skip to content
ReleaseNotes 753 KiB
Newer Older
      - STM32F334-DISCO:  Add powerled example configuration.  From Mateusz
        Szafoni.
      - STM32F334-DISCO:  Add lower-half driver for SMPS (buck-boost onboard
        converter).  From Mateusz Szafoni
      - Nucleo-F334R8:  Add logic for zero latency high priority interrupts
        example.  From Mateusz Szafoni.
      - Nucleo-F334R8:  Add highpri example configuration.  From Mateusz
        Szafoni.
      - STM32 F4 Discovery:  Added support for the LIS3DSH accelerometer on
        the STM32F4 Discovery rev. C boards.  From Florian Olbrich.
      - STM32 F4 Discovery: ROMFS for STM32F4 Discovery board.  From Tomasz
        Wozniak.
      - STM32 F4 Discovery:  Add a USB MSC configuration.  From Alan Carvalho
        de Assis.
      - STM32 F4 Discovery:  RNDIS support on STM32F4Discovery + DM-STF4BB.
        NOTE: MAC address for the host side starts 0xaa.  This assignment
        scheme should be fixed later.  From Masayuki Ishikawa.
      - STM32 F4 Discovery:  Add STM32F4 Discovery board support for
        Nunchuck joystick.  From Alan Carvalho de Assis.
      - STM3240G-EVAL:  Add a configuration for testing the Framebuffer
        character driver using the LCD framebuffer front.
      - STM3240G-EVAL:  Mount procfs if enabled.
      - STM3240G-EVAL:  Add support for pdcurses and the pdcurses demo
        programs in the 'fb' configuration.
      - Clicker2-STM32:  Adds SD card, automount, and syslog file
        support and fixes a few minor issues.  From Anthony Merlino.
      - Clicker2-STM32:  Adds support for USB RNDIS device.  From Anthony
        Merlino.
      - Olimex STM32-H407:  Add serial support on the on-board UEXT
        connector.  Add USART6 for UEXT connector.   Add nsh_uext
        configuration and README update.  From Jan Pobríslo.
      - Nucleo-F410RB:  Add support for the nucleo-F410RB board.  From
        Gwenhael Goavec-Merou.
      - STM32F429i-DISCO:  Add framebuffer driver initialization.  Add a
        framebuffer (fb) configuration.
      - STM32F429i-DISCO:  Add logic to auto-mount procfs.  Enable procfs in
        all configurations that use NSH.
      - STM32F429i-DISCO:  Enable support for the STMPE811 touchscreen
        controller.  Enable touchscreen and also the touchscreen testa at
        apps/examples/touchscreen in the fb configuration.
      - 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.
      - STM32L476-MDK:  Add support for the on-board LEDs.
      - Nucleo-L496ZG:  Add DFSDM initialization.  From Juha Niskanen
      - Nucleo-L496ZG:  Add support for SDMMC driver.  From Miha Vrhovnik.
      - Nucleo-L496ZG:  Enable I2C4 bus with i2ctool in NSH configuration.
        From Jussi Kivilinna.
      - Nucleo-L496ZG:  Make HSE on Nucleo-L496ZG default to enable USB.
        From Miha Vrhovnik.
      - 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.
      - Nucleo-144:  Adds support for the Nucleo-144 boards with
        STM32F722ZE.  From Bob Feretich.

    * ZiLOG Z80

      - z80/include: compiler.h, limits.h, types.h:  Update SDCC/z80 files
        to include support for long long, inline, __FILE__, and __func__.

    * C Library/Header Files:

      - include/:  Add stdnoreturn.h.  Holds definitions for the C11
        noreturn keyword.  Applies to C too.
      - include/netinet/tcp.h:  Add trivial standard tcp.h header file.
      - libc:  Add support for readv() and writev().
      - libc:  Adds tcflow().
      - libc:  Add support for sigwait().
      - libnx:  Changes to allow the font subsystem to be built without
        enabling the entire graphics system (CONFIG_NX).  Adds
        CONFIG_NXFONTS and CONFIG_NXGLIB.  Needed to duplicate some Kconfig
        setting for NXFONTs if it can be configured and built independently
        of NX.

    * Tools:

      - 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).
      - tools/configure.c:  Duplicate new functionaity added to configure.sh.
      - 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.
      - tools/configure.c:  Update functionality to match last change to
        tools/configure.sh.

    * NSH: apps/nshlib:

      - apps/nshlib:  mount command no long uses the non-standard OS
        interface foreach_mountpoint().  Now simply cats /proc/fs/mount
        when there are no arguments to the mount command.
      - apps/nshlib:  df command no long uses the non-standard OS interface
        foreach_mountpoint().  Now simply cats /proc/fs/blocks or
        /proc/fs/usage.
      - apps/nshlib:  The free commands no longer used mallinfo() to get
        the state of the use heap.  Two reasons:  That is not useful
        information in the kernel build.  And (2) there are other memory
        resources of interest in other configurations such as the Kernel
        heap in PROTECTED and KERNEL builds, and the prog mem uses when
        FLASH is used to hold modifiable data.  The free command has been
        extended to just dump the content of procfs entries and to include
        all of these other memory resources of the procfs entries are
        available.

    * Examples/Tests: apps/examples:

      - apps/examples/fb:  Add a simple test for the framebuffer character
        driver..
      - apps/examples/ostest: sem_open() now returns SEM_FAILED in the
        event of a failure.
      - examples/ostest:  Extend cancellation test to make sure that
        cancelable threads waiting on a message queue or on a signal can be
        canceled.
      - Added a simple reader example for the LIS3DSH acceleration sensor
        on STM32F4Discovery.  From Florian Olbrich.
      - apps/examples/apa102:  Add a Rainbow example for APA102 LED Strip.
        From Alan Carvalho de Assis.
      - apps/examples/flowc:  Add a simple test of serial hardware flow
        control.
      - Add powerled driver example.  From Mateusz Szafoni.
      - apps/examples/ina219: A simple infinite loop that polls the INA219
        sensor and displays the measurements.  From Sebastien Lorquet.
      - apps/examples/alarm:  Add options for reading alarm value and
        canceling it.  From Juha Niskanen.
      - Add -n samples to lm75 app and replace Centigrade with Celsius.
        From Alan Carvalho de Assis.
      - apps/examples/adps9960:  Add ADPS-9960 example.  From Alan Carvalho
        de Assis.
      - apps/examples/obd2:  Add OBD2 example application.  From Alan
        Carvalho de Assis.
      - apps/examples/userfs:  Add a test case for verifying UserFS.
      - apps/examples/smps: add SMPS driver example.  From Mateusz Szafoni.
      - apps/examples/pdcurses:  Bring in pdcurses demos and make them
        conform to the NuttX coding style.
      - apps/examples/pdcurses:  Add a very simple example that just shows
        the entire character set (7-bit only).  It adapts to the size of
        the framebuffer and, hence, can be used with very tiny displays.
        In fact it looks really dumb on big displays.
      - apps/examples/nunchuck:  Add Nunchuck example application.  From
        Alan Carvalho de Assis.

    * File System Utilies: apps/fsutils:

      - apps/fsutils/mkfatfs:  Move mkfatfs from the OS to here.

    * Network Utilities: apps/netutils:

      - apps/netutils/netlib:  Add netlib_ipv6adaptor() and
        netlib_ipv4adaptor().
      - apps/netutils/netlib:  Add helpers for reading the routing table:
        netlib_read_ipv4route() and netlib_read_ipv6route().
      - apps/netutils/netlib:  Add new utilities netlib_ipv[4|6]router()
        that can be used to determine the IP address of a router that would
        be used some some destination IP address that is not locally
        accessible.
      - apps/netutils/ftpc:  Adds support for IPv6 and fixes various
        transfer issues.   From Anthony Merlino.

    * CANUtilities: apps/canutils:

      - apps/canutils/libobd2:  Add libobd2 for NuttX.  From Alan Carvalho
        de Assis.

    * Graphics: apps/graphics:

      - graphics/traveler:  Convert to use the framebuffer driver.
      - apps/graphics/pdcurs34:  This commit brings the public domain
        pdcurses library into NuttX.  NuttX graphics support based on the
        framebuffer character drivers has been integrated.  Input is
        currently limited to a discrete joystick driver.

    * Wireless Utilities: apps/wireless:

      - apps/wireless/ieee802154/i8sak:  Adds socket interface support. You
        can now use both socket or char driver to control the MAC layer.
        From Anthony Merlino.
      - apps/wireless/ieee802154/i8sak:  Adds sniffer port option and a few
        other get/set parameters.  From Anthony Merlino.
      - apps/wireless/ieee802154/i8sak: Changes 'notif' to 'primitive'
        corresponding to the changes in the Kernel.  From Anthony Merlino.
      - apps/wireless/ieee802154/i8sak: Channel setting is now saved
        locally, so when performing a startpan or assoc, the channel
        previously set is still used, even though the MAC layer gets reset.
        From Anthony Merlino.
      - apps/wireless/ieee802154/i8sak:  Adds ability to get/set rxonidle
16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669
        setting for MAC layer. From Anthony Merlino.
      - apps/wireless/ieee802154/i8shark:  Adds i8shark, a sniffer "adapter"
        that captures all 802.15.4 traffic, packages it into a Wireshark ZEP
        packet, and sends it to a host running Wireshark  From Anthony
        Merlino.

    * System Utilities (apps/system)

      - apps/system/ping and ping6:  This commit removes the ping and ping6
        commands from NSH and replaces then with the apps/system/ping and
        apps/system/ping6 built-in commands.  The NSH ping[6] commands had
        to be removed because they violated the portable POSIX OS interface.
        The apps/system/png and ping6 command uses the sem-standard
        IPPROTO_ICMP and IPPROTO_ICMP6 socket interfaces.

    * Platform-Specific Support (apps/platform)

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:

      - Task Environment Creation:  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.
      - timer_create():  Fix watchdog resource leak if cannot allocate a new
        timer. From Bruno Herrera.
      - OS Internal Functions: Internal OS functions should not return error
        information via the user errno variable:  This includes functions
        like file_seek(), file_read(), file_write(), etc.  The complete list
        is too long to duplicate here (please refer to the ChangeLog for
        details).
      - OS Internal Functions:  Not only should internal OS functions not
        modify the errno variable, they should never introduce cancellation
        points:  psock_connect(), psock_listen(), psock_getsockopt(), etc.
        The list is too long to duplicate here (please refer to the
        ChangeLog for details).
      - OS Internal Functions:  Create OS internal versions of many
        applications functions that were used by the OS.  The new versions
        differ from the application interfaces in that (1) they do not
        return error information via the errno variable, and (2) they never
        create cancellation points.  This includes new internal interfaces
        like nxsem_init() that is like sem_init(), etc.  There are too many
        to list here (see the ChangeLog for details).
      - Task Exit:  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.
      - memalign():  Fix heap corruption caused by using unaligned chunk
        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.
      - SMP:  In sched/sched/sched_cpuselect.c, 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.
      - spinlocks:  Disable local interrupts in spin_setbit() and
        spin_clrbit() in order to avoid a deadlock condition.  From Masayuki
        Ishikawa.
      - atexit()/on_exit():  Clear atexit()/on_exit() 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.

    * File System/Block and MTD Drivers:

      - tmpfs:  Fixed directory unlocking in tmpfs_opendir.   From Dmitriy
        Linikov.
      - fcntl():  fcntl() did not return success fail for F_SETFL.  Reported
        by Jussi Kivilinna.
      - 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.
      - FS FAT:  Fix hard-fault when listing contents of FAT root.  From
        Jussi Kivilinna.
      - procfs: 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 lenghts.
        i.e., if strlen(fs) != strlen(fs/block), then report fs as a
        directory instead of a file.
      - procfs:  Fix uptime being clse to maximum 32-bit value in certain
        config.  From Juha Niskanen.

    * Binary Loader:

      - binfmt/:  Don't schedule starthook if there are no constructors.

    * Graphics/Display Drivers:

      - LCD: ILI9341 initialize method not permitted to set errno.

    * Networking/Network Drivers:

      - Networking:  net/netdev/netdev_ifconfig.c: Was not returning all of
        the address info.
      - Networking: 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.
      - SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on
        network adatpors in the UP state.
      - recvfrom():  Fix double leave_cancellation_point on error path.
        From Jussi Kivilinna.
      - send():  Verify that sock descriptor is valid.  Fixes assertion when
        using send on closed socket.  From Jussi Kivilinna.
      - 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.
      - 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.
      - dup()/dup2():  There was a reference counting problem in the TPC
        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.
      - close():  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.
      - inet:  Add check for protocol before handing out TCP and UDP sockets.
      - IP Forwarding:  Fixes typo that caused build error when IP
        forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as
        well.  From Anthony Merlino.
      - IP Forwarding:  Do not add link layer header size to d_len inside
        devif_forward().  From Anthony Merlino.
      - 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.
      - UDP Broadcat:  Fix some issues with regard to UDP broadcast
        handling.  This is Bitbucket Issue #77.
      - ICMP:  Fix an error in the poll logic.  It was assumed that the
        input parmeter 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.
      - ICMPv6: 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.
      - ICMPV6:  icmpv6_input() needs to set d_len to 0 after consuming echo
        reply, otherwise, garbage will get sent out.  From Anthony Merlino.
      - ICMPV6:  Fix an error in the poll logic.  It was assumed that the
        input parmeter 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.
      - IGMPv2 Send:  Fix incoming IGMP checksum calculation.  From Louis
        Mayencourt.
      - ARP:  Fix IGMP Ethernet address computation.  From Louis Mayencourt.

    * Wireless/Wireless Drivers:

      - CC1101:  CC1101 driver not permitted to set errno.
      - 6LoWPAN:  Correct an error in uncompressing multicast address.
      - 6LoWPAN:  Correct a bug in handling uncompressed frames (IPv6
        dispatch).  Adds a separate local variable, protosize, to keep track
        of the size of thep protocol header.
      - 6LoWPAN:  Fix an endian-ness problem in 6LoWPAN address
        decompression.  From Anthony Merlino.
      - 6LoWPAN:  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.

    * Common Drivers:

      - Serial: 16550 UART driver IOCTL method must not set errno; it must
        return a negated errno value.
      - LIS3DSH:  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.
      - LIS2DH:  Fixes for self-test.  From Jussi Kivilinna.
      - LIS2DH:  Fix use of obsolete dbg macro.  From Jussi Kivilinna.
      - LIS331DL:  LIS331DL driver not permitted to set errno.
      - HTS221:  Power-on sensor for loading calibration data. From Jussi
        Kivilinna.
      - MCP2515:  Fix the MCP2515 Bit Rate Prescale calculation.   Fix BRP
        for SET_BITTIMING ioctl as well.  From Alan Carvalho de Assis.
      - STMPE811: 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.
      - BQ2429X:  Add BATIO_OPRTN_SYSON for enabling BATFET after SYSOFF.
        From Jussi Kivilinna.

    * Simulation:

      - Simulation:  Serial and console drivers are not permitted to set
        the errno.

    * ARMv7-M:

      - ARM Stack Check:  Fix assert panic when both TLS and interrupt stack
        are enable.  From Jussi Kivilinna.

    * Infineon XMC4xxx Drivers:

      - XMC4 USIC: Kconfig was not selecting XMC4_USIC for USIC1. From Alan
        Carvalho de Assis.
      - XMC4 UART: Fix XMC4xxx USIC UART sginal to be high level when in idle.
        From Alan Carvalho de Assis.
      - XMC4 UART:xmc4_uart_configure() expects the channel# not uartbase as
        an input parameter.  From Alan Carvalho de Assis.
      - XMC4 UART:  Enable RX/TX status.  From Alan Carvalho de Assis.
      - XMC4 UART:  The Alternative Receive Interrupt was not being
        configured.

    * Infineon XMC4xxx Boards:

      - XMC4500-Relax:  Setup max. freq. 120MHz and setup pull-up to UART
        RXD pin.  From Alan Carvalho de Assis.

    * Microchip/Atmel SAMv7 Drivers:

      - SAMv7:  DAC and ADC drivers are not permitted to set the errno.
      - SAMv7:  Correct an error in RX DMA setup.  From Manish Kumar Sharma.
      - SAMv7 USB:  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.

    * NXP/Freescale LPC31xx Drivers:

      - LPC31xx:  Serial and console drivers are not permitted to set
        the errno.

    * NXP/Freescale LPC43xx:

      - lpc43xx:  lpc43_adc.c was being selected by the build system wehn
        DAC was selected.

    * NXP/Freescale LPC43xx Drivers:

      - LPC43xx Ethernet:  Fix some backward logic setting full-duplex and
        100mbps when autoconfiguration is disabled.  Noted by Anonymous in
        Issue #76.
      - lpc43xx: UART_RX pins should be configured with input buffers
        enabled. Otherwise it cannot be read.  From Alexander Vasiljev.

    * STMicro STM32:

      - STM32 F2:  Fixed build for STM32F20XX platforms when
        CONFIG_STM32_DMACAPABLE is enabled.  From Dmitriy Linikov.
      - STM32 F4:  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/dma2d.h and ltdc.h.
      - STM32 L4:  Build stm32l4_idle.c only if  CONFIG_ARCH_IDLE_CUSTOM is
        not enabled.  From Jussi Kivilinna.
      - STM32 F7:  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/stm32f7/dma2d.h and
        ltdc.h.

    * STMicro STM32 Drivers:

      - STM32:  DAC and ADC drivers are not permitted to set the errno.
      - STM32 ADC:  Clear pending interrupts.  From Mateusz Szafoni.
      - STM32 CAN:  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.
        Fixed by settin the TXFP bit in the CAN_MCR register (FIFO
        transmit order).  From comments by Alexey T, in Bitbucket Issue 73.
      - STM32 HRTIM:  Fix pclk calculation.  From Mateusz Szafoni.
      - STM32 HRTIM:  Fix burst mode prescaler update. From Mateusz Szafoni.
      - 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.
      - STM32:  LTDC and DMA2D drivers are not permitted to set the errno.
      - 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."
      - STM32 Serial:  Do not stop processing input in SW flow-control
        mode.  From Juha Niskanen.
      - STM32F33xxx ADC:  Add some publicly visable interfaces and some
        code to support injected channels.  From Mateusz Szafoni.
      - STM32F33xxx DMA:  Add public interface to handle with DMA
        interrupts.  From Mateusz Szafoni.
      - STM32F33xxx RCC:  Fix CAN clock enable.  From Mateusz Szafoni.
      - stm32 F4 I2C:  Ensure proper interrupt 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.
      - STM32 L4 Serial:  Do not stop processing input in SW flow-control
        mode.  From Juha Niskanen.
      - STM32 F7:  LTDC and DMA2D drivers are not permitted to set the errno.
      - STM32 L4:  DAC and ADC drivers are not permitted to set the errno.
      - STM32 L4 DAC:  Do not configure output pin if it is not used.  From
        Juha Niskanen.
      - STM32 L4 RTC, PM:  Small fixes to subseconds handling, ADC
        power-management hooks
      - STM32 F4 RTC:  Fix reading alarm value that is more than 24h in
        future.  From Juha Niskanen
      - STM32 L4 RTC:  Fix reading alarm value that is more than 24h in
        future.  From Juha Niskanen
      - STM32 L4 TIM:  Fix compilation of timers with complementary outputs
        when not PWM_MULTICHAN.  From Juha Niskanen.
      - STM32 L4 RCC:  Restore backup-registers after backup-domain reset.
        From Jussi Kivilinna.
      - STM32 L4 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...)
      - STM32 L4 RTC:  Init mode was never exited because nested locking in
        rtc_synchwait() disabled backup domain access.  From Juha Niskanen.
      - STM32 L4 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.  From Juha Niskanen.
      - STM32 L4 RTC:  Put back the SSR race condition workaround.  ST has
        confirmed that the issue has not been fixed, and that it applies to
        STM32 L4 too (was not in errata sheets due to documentation bug) See
        discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution .
        From Juha Niskanen.
      - STM32 F7 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.
      - STM32 F7 I2C: fix I2C_M_NORESTART handling.  From Jussi Kivilinna.
      - STM32 F7 I2C:  Restore bus frequency after I2C reset.  Copy
        frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C
        driver.  From Jussi Kivilinna.
      - STM32 F7 RTC:  Fix reading alarm value that is more than 24h in
        future.  From Juha Niskanen

    * STMicro STM32 Boards:

      - STM32F334-DISCO:  Add missing ram_vectors configuration in linker
        script.  From Mateusz Szafoni.
      - Nucleo-F334R8:  Add missing ram_vectors configuration in linker
        script.  From Mateusz Szafoni.
      - Nucleo-F334R8:  Add Missing ADC trigger configuration tot he highpri
        configuration.  From Mateusz Szafoni.
      - STM3240G-EVAL:  The timer frequencies (BOARD_TIMx_FREQUENCY) are
        incorrectly defined in 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.
      - STM32F429i-DISCO:  The ltdc 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.

    * ZiLOG Z80

      - configs/z80sim and xtrs:  Serial driver lower halfs ioctl methods
        should return a negated errno value, not set the errno variable.
      - z80 Make.defs:  Fixes dependency generation with newest SDCC
        compiler.
      - configs/z80sim:  Fix a naming problem.  Also, don't try to build the
        serial driver if CONFIG_NFILE_DESCRIPTOR=0.
      - Z80:  Makefile fix for use with current SDCC.

    * Build System

      - configs/:  All defconfig filess that include
        CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and
        deselect CONFIG_DISABLE_POLL.
      - 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.
      - 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.

    * C Library/Header Files:

      - libc/stdio:  Build the lib_noflush() and lib_snoflush() stubs even
        if CONFIG_FILE_DESCRIPTORS=0.  They may still be needed.
      - 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.
      - libc/match:  Use of exp() vs expf() in logf() caused function to be
        slow.  From Alan Carvalho de Assis.
      - libnx:  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.
      - sscanf():  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.

    * Tools

      - tools/:  configure.sh and configure.c should redirect stdout to
        /dev/null but should not suppress stderr output.

    * NSH: apps/nshlib:

      - apps/nshlib/:  Avoid truncating the strcmp result in the parser
        into a unsigned char variable.  nshlib/nsh_netcmds.c:  Check for
        valid hostip before using it.   From Bruno Herrera.
      - apps/nshlib/:  Fix resouce leak in 'dd' commenad when 'if=' or
        'of=' params are repeated in the command line.  For example:
          dd if=/dev/null if=/dev/zero of=/dev/null or
          dd if=/dev/zero of=/dev/zero of=/dev/null.   From Bruno Herrera.
      - apps/nshlib:  This commit eliminates the ping and ping6 commands
        from NSH and replaces them with 'built-in' commands at
        apps/system/ping and ping6.  The original NSH version of ping[6]
        commands violated the portable POSIX interface and, hence, had to
        be removed. The new system/ping and ping6 built-in commands uses
        the new IPPROTO_ICMP AF_INET and IPPROTO_ICMP6 AF_INET6 datagram
        sockets to implement ping.
      - apps/nshlib: Fix parsing of empty strings when CONFIG_NSH_CMDPARMS
        is not defined. Problem noted by Juha Niskanen.

    * Examples/Tests: apps/examples:

      - All configurations that use NXIMAGE or NXHELLO must select
        NX_MULTIUSER.  All configurations that use examples/nxterm must
        enable CONFIG_LIB_BOARDCTL.
      - All configurations that use NXLINES must select NX_MULTIUSER.  All
        configurations that use the NX server need to have larger POSIX
        messages.
      - apps/examples/adc:  Fix g_adcstate.count initialization.  From
        Masayuki Ishikawa.
      - apps/examples/elf:  Remove low-level interfaces and replace with
        call to exec().
      - apps/examples/nxflat:  Remove low-level interfaces and replace with
        call to exec().
      - examples/ostest:  Works around a bug in printf() when cancellation
        points are enabled.  printf() is a cancellation point because it
        calls write().  This is correct according to OpenGroup.org.
        However, printf holds the stdio library semaphore when it is
        canceled and this leaves the semaphore in a bad state.  No fix for
        the printf bug yet.
      - apps/examples/nx:  The NX example no longer supports single user
        mode.
      - apps/examples/nxtext:  The nxtext example no longer supports single
        user mode.
      - apps/examples/nxhello now supports only multiuser mode.
      - apps/examples/nximage now supports only multiuser mode.
      - examples/nxlines:  Now supports only multiuser mode.

    * Network Utilies: apps/netutils:

      - apps/netutils/ftpc:  Fix some crazy comparisons to determine is a
        file is an absolute path.  Noted by Anthony Merlino.

    * System Unitilities (apps/system)

      - apps/system/i2ctool: Fixed i2ctool write operation in `no restart`
        mode (flag `-n`).  It seems that I2C driver has changed a bit since
        i2ctool was written, so now i2ctool sends repeated start even if
        `no restart` flag (-n) was passed to it.  From Dmitriy Linikov.