diff --git a/ReleaseNotes b/ReleaseNotes index 7af34909f6..7da43518c9 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -25647,3 +25647,974 @@ information): - apps/wireless/ieee802154/i8sak: Fixes conversion from extended address to IPv6 address. From Anthony Merlino. + +NuttX-8.2 Release Notes +------------------------ + +The 133nd release of NuttX, Version 8.3, was made on November 16, 2019, +and is available for download from the Bitbucket.org website. Note +that release consists of two tarballs: nuttx-8.2.tar.gz and +apps-8.2.tar.gz. These are available from: + + https://bitbucket.org/nuttx/nuttx/downloads + https://bitbucket.org/nuttx/apps/downloads + +Both may be needed (see the top-level nuttx/README.txt file for build +information). + +Additional new features and extended functionality: +--------------------------------------------------- + + * Core OS: + + - Signals: Add support for SIGPIPE default action. SIGPIPE uses + SIG_SIGPIPE_ACTION which terminates process by default. It also + could be ignored. From liuhaitao. + - Spinlocks: Remove support for re-entrant spinlocks. They seemed + like a good idea, but they are never used. From Xiang Xiao. + - Memory Manager: Remove the assumption that one character equals + eight bits. From Xiang Xiao. + - Power Management: Historically, the NuttX PM subsystem has + consisted of two functional components: (1) an "Upper" part that + detects state changes based on a random walk driven by activity + levels, and (2) and "lower" part that implementst the state changes. + This change decouples that upper activity-based logic from the lower + random walk logic and allows use of other upper state detection + logic (such as a custom, application-specific state machine). From + Matias Nitsche. + - boardctl(): Expose power manager function through boardctl() + interface. From Xiang Xiao. + + * File System/Block and MTD Drivers: + + - GD25: Add support for a new FLASH vendor. From zhangbo_a. + - GD25: Add support for GD25 device with 256-Mbit capacity. From + YanLin Zhu. + - GD25: Add 4-byte address operation for capacity larger than + 128-Mbit. From YanLin Zhu. + - GD25: Add gd25_lock/unlock to case: enable 4-bytes address From + ligd. + - GD5F: Add gigadevice SPI NAND FLASH driver. From YanLin Zhu. + + * Networking/Network Drivers: + + - Networking: Use ntoh() when printing IPv6 addresses so that the + addresses appear in friendlier host order vs. network order. From + Bernd Walter. + - Netlink: Implement minimal NETLINK_ROUTE socket functionality that + can (for now) be use used to obtain a list of network devices, IPv4 + ARP and IPv6 Neighbor tables, and IPv4 and IPv6 routing tables. + From Gregory Nutt. + + * Wireless/Wireless Drivers: + + - BCM43438A1 Bluetooth: Add support for the BCM43438A1 Bluetooth + capability. From Dave Marples. + - HCIUART Shim: Add a serial 'shim' to allow any regular serial port + to support a Bluetooth H4 interface and to be used to drive a + Bluetooth device. From Dave Marples. + - BCM4343x HCIUART: BCM4343x HCIUART support. From Dave Marples. + - BCM43xxx: Move drivers/wireless/ieee80211/ to + drivers/wireless/ieee80211/bcm43xxx/ since the directory only + contains only BCM43362 and BCM43438 related code. From Xiang Xiao. + - GS2200M: Add reset handler to interface. Add reset and un-reset + sequence in driver. From Masayuki Ishikawa. + + * Audio/Audio Drivers: + + - Audio: Add message type to support audio trigger. From anchao. + + * Other Common Device Drivers: + + - Altair: Add support for the altair LTE modem driver. From Alin + Jerpelea. + - MCP2515: MCP2525 SPI STD-EXT ID fixes. From DisruptiveNL. + - OpenAMP: Brings in the drivers needed to support OpenAMP. These + changes were ported from https://github.com/FishsemiCode/nuttx. + This port was effort of a number of people, I rather arbitrarily + gave authorship to Guiding Li because he has the largest number of + fundamental quashed commits from the Xiamoi repository. From + Guiding Li. + + * Simulator: + + - Simulator: Add stack coloration feature. From ligd. + - Simulator: Report PM activity on simulated UART. From Matias + Nitsche. + - Simulator: Add host ftruncate() support. From chao.an. + - Simulator: Replace all CONFIG_DEV_CONSOLE with USE_DEVCONSOLE for + arch/sim and compile up_devconsole.c conditionally. From Xiang + Xiao. + - Simulator OpenAMP: Support OpenAMP between two simulator + instances. Please read rpserver/rpproxy section in + boards/sim/sim/sim/README.txt for more information. From chao.an. + + * ARMv7-M + + - ARMv7-M: Add BPIALL register address. From Dave Marples. + - ARMv7-M MPU: Add user peripheral helper + + * Atmel SAMD2/L2 Boards: + + - Arduino-M0: Add initial board support for the Arduino M0 which is + based on the SAMD21 chip. Include nsh and usbnsh configurations. + From Alan Carvalho de Assis. + + * NXP i.MXRT Drivers: + + - i.MXRT LCD: Add support for LCD. Clean up some LCD-related + interfaces. From Fabio Balzano. + - i.MXRT Serial: This change improves the performance of UART serial + ports on the IMXRT by enabling the RX & TX FIFOS and transmission on + the holding register being empty (TDRE) rather than transmission + being complete (TC). From Dave Marples. + - i.MXRT Pin Mux: This change separates out the pinmux and iomux + functions cleanly. For ease of conversion default IOMUX definitions + have been added into imxrt_iomux.h. The change effectively does two + things: (1) unifies the iomux definitions - previously some pins + had them, and some didn't. This effectively made it impossible to + use the pinmuxes without editing the header file in the standard + distribution tree. And (2) unifies the pin definitions so that every + pin now has a suffix. This makes it *much* easier to see when a pin + is in use in your code, because it will always have a definition in + your board.h file. From Dave Marples. + - IMXRT1020-EVK: Add support for the MIMXRT1021-EVK board. It + features nsh, netnsh and usdhc sample configurations. From Dave + Marples. + + * NXP i.MXRT Boards: + + - IMXRT1060-EVK: Add basic LCD support for the board IMXRT1060-EVK. + From Fabio Balzano. + - IMXRT1060-EVK: Added Littlevgl demo configuration into the + IMXRT1060-EVK board directory. From Fabio Balzano. + + * NXP/Freescale Kinetis Drivers: + + - Kinetis Ethernet: Add support for TJA1100 PHY. From David Sidrane. + + * NXP S31K1xx: + + - S32K1xx: Support configuration and initialization of the flash + configuration bytes. From Gregory + + * NXP S31K1xx Boards: + + - S32K1**EVB: Create a special FLASH section to hold the FLASH + configuration bytes. From Gregory Nutt. + - S32K146EVB: Added configuration script and instructions for using + Thread-Aware OpenOCD for the S32K146 with Eclipse. From Han + Raaijmakers. + + * Renesas RX65N: + + - RX65N: Adds a port of to the Renesas RX65N Micro-controller. This + port includes Serial (UART) driver (13 ports) and and Ethernet + driver. From Anjana. + + * Renesas RX65N Boards: + + - RSK RX65N-2MB: Add support for the RSK RX65N-2MB board. From + Anjana. + - GR-Rose: Add support for the GR-Rose board. From Anjana. + + * Sony CXD56xx + + - CXD56xx CPU FIFO: Add configurations for CPU FIFO elements. From + Alin Jerpelea. + - CXD56xx Loader: Update loader and gnssfw ver. 17660. From Alin + Jerpelea. + - CXD56xx SMP: Add support for SMP. To run cxd56xx in SMP mode, new + boot loader which will be released later must be used. From + Masayuki Ishikawa. + - CXD56xx SMP: Add irq routing for SMP in cxd56_irq.c. In CXD56xx, + each external interrupt controller can be accessed from a local + APP_DSP (Cortex-M4F) only. This change supports IRQ routing for SMP + by calling up_send_irqreq() in both up_enable_irq() and + up_disable_irq(). From Masayuki Ishikawa. + + * Sony CXD56xx Drivers: + + - CXD56xx I2C: Add ability to set the i2c frequency to other than just + 100 or 400 Hz. From Alin Jerpelea. + - CXD56xx SDHCI: Reduce power consumption by stopping SD clock. Re- + enable SD clock during access to SD card. Improve GNSS low + sensitivity with SD card inserted. From Alin Jerpelea. + + * Sony CXD56xx Spresense Board: + + - CXD56xx Board Common: Add the Altair LTE modem support on the + Spresense board. From Alin Jerpelea. + - CXD56xx Board Common: Add Spresense Image Processor. Enable support + for accelerated format converter, rotation and so on. using the CXD5602 + image processing accelerator. + - Spresense: Add board specific pin configurations of CXD5602 pins to + fit Spresense board. From Takayoshi Koizumi. + - Spresense: Add a configuration option to select if an extension + board is attached to the SPresence. If there is no extension board + attached, the SPresense may run in a low-power mode by default (as + determined by the CONFIG_CXD56_CUSTOM_PINCONFIG option). If an + extension board is present, then the SPresense will need to run at a + higher power mode, selected by the new CONFIG_SPRESENSE_EXTENSION + option. From Gregory Nutt. + - Spresense Camera: Add ISX012 camera initialization and + configuration. From Alin Jerpelea. + - Spresense OS test: Enable ostest in rndis/defconfig and + wifi/defconfig. From Masayuki Ishikawa. + - Spresense: Add --gc-sections to LDFLAGS and add -ffunction-sections + and -fdata-sections to ARCHCFLAGS in scripts/Make.defs. From + Masayuki Ishikawa. + - Spresense SMP: Add smp configuration. From Masayuki Ishikawa. + - Spresense SCU: The SCU has to be initialized at bootup on Spresense + board because several functions depend on it. Add audio control + definitions. Add configuration for the audio implementation. From + Alin Jerpelea. + - Spresense: Add audio and board audio control implementation. From + Alin Jerpelea. + - Spresense: Sdd power_control and audio_tone_generator. Add a simple + way to control the audio buzzer with defined frequency for user-space + apps. From Alin Jerpelea. + - Spresense: Add the optional initialization of GNSS and GEOFENCE at + boot if the drivers are enabled From Alin Jerpelea. + - Spresense: Add LTE configuration. From Alin Jerpelea. + - Spresense: Enable high current mode for the Spresense Extension + board on all examples that have SDCARD support. From Alin Jerpelea. + - Spresense: Add lcd examples configuration. This is a configuration + for the basic nx examples From Alin Jerpelea. + + * STMicro STM32: + + - STM32F0/L0/G0: Add support for STM32G070xx family. From Daniel + Pereira Volpato. + - STM32F0/L0/G0 Power: Scale dynamic voltage and flash wait states + properly on STM32G0 chips. Included preliminary implementation of + PWR module VOS support. From Daniel Pereira Volpato. + - STM32L4R5ZI: Add support for the STM32L4R5ZI chip type. From Jussi + Kivilinna. + - STM32 L4+ DMA: Add DMA support for STM32L4+ series. From Jussi + Kivilinna. + - STM32 L4 Clocking: Enable "Range 1 boost" mode if any PLL freq + above 80 Mhz. From Jussi Kivilinna. + - STM32 L4 LPTIM: Add support for LPTIM timers on the STM32L4 as PWM + outputs. From Matias N. + - STM32 H7 Progmem: Add FLASH progmem support. From David Sidrane. + + * STMicro STM32 Drivers: + + - STM32 Serial: Single Wire add pull{up|down|none} via new IOCTL + command. From David Sidrane. + - STM32 F0/L0/G0 Serial: Single Wire add pull{up|down|none} via + new IOCTL command. From David Sidrane. + - STM32 F0/L0/G0 PWM: Add PWM support. From Daniel Pereira Volpato. + - STM32 G0 TIM: Support timers available on STM32G070. Includes TIM1 + PIOs, TIM driver lower-half. From Daniel Pereira Volpato. + - STM32 F7 Serial: Single Wire add pull{up|down|none} via new IOCTL + command. From David Sidrane. + - STM32 H7 BBSRAM: Exclude BBSRAM from cacheable when + CONFIG_ARMV7M_DCACHE. ST placed the STM32H7 BBSRAM in the SRAM + default memory region which is cacheable. This change sets the + BBSRAM memory range to non-cacheable. From David Sidrane. + - STM32 H7 SDMMC: Add SDMMC support and IDMA as well as interrupt + driven transmission. Support pull-ups and SDIO. From David Sidrane. + - STM32 H7 Serial: Single Wire add pull{up|down|none} via new IOCTL + command. From David Sidrane. + - STM32 L4 OTGFS: Enable OTGFS for STM32L4+ series. The OTGFS + peripheral on stm32l4x6 and stm32l4rxxx reference manual is exactly + the same. From Jussi Kivilinna. + - STM32L4 IDLE Loop: (1) Added BEGIN_IDLE()/END_IDLE() to stop call + so that we also get notification via LED of the STOP mode, (2) Added + the stm32l4_clockenable call as previously discussed, and (3) Added + call to pm_changestate() to inform drivers we're back to running + after the call to stm32l4_stop() returns. From Matias N. + - STM32 L4 Serial: Single Wire add pull{up|down|none} via new IOCTL + command. From David Sidrane. + + * STMicro STM32 Boards: + + - Nucleo-G070RB: Initial support for board STM32 NUCLEO-G070RB, + including NSH config. Enables PWR peripheral and set SYSCLK to + maximum frequency. From Daniel Pereira Volpato. + - Nucleo-G070RB: Enable basic timers. Add TIMx clock frequencies to + board.h. From Daniel Pereira Volpato. + - Nucleo-L476RG: Add required definitions if libcxx is enabled. From + Matias N. + - Nucleo-L476RG: Add support for LPTIM timers as PWM outputs. From + Matias N. + - Nucleo-G070RB: Add PWM support and GPIO_TIM3_* mappings. Add a PWM + configuration. From Daniel Pereira Volpato. + - Nucleo-G070RB: Add button driver support, Add driver support. Add + GPIO configuration. From Daniel Pereira Volpato. + - Nucleo-H743ZI: Added GPIO device driver for user-space apps. From + Heiko Demlang. + - olimex-stm32-e407: Newer Olimex E407 boards are populated with + STM32407ZE chips. From David Alessio. + - STM32F4-Discovery: Add support for external DS1307 module. From + Alan Carvalho de Assis. + - STM32F4-Discovery: Add support for MMCSD_SPI. This change works + with STM32F4 Discovery Shield plus microSD click From Masayuki + Ishikawa. + - STM32F4-Discovery: Add support for gs2200m. Works with mikroe + STM32F4 Discovery Shield (slot3) From Masayuki Ishikawa. + + * TI Tiva: + + - TM4C129ENCPDT: Add support for Tiva TM4C129ENCPDT. From Nathan + Hartman. + + * TI Tiva Drivers: + + - TM4C123G-Launchpad: SPI CAN functionality on TM4C123GXL. From + DisruptiveNL. + + * Build System: + + - tools/Config.mk: Eliminate use of the built-in implicit rules. + From anchao. + - tools/Config.mk and Makefile.unix: Support the incremental build + for configuration change. From Xiang Xiao. + - tools/Config.mk: Support the ability to change the CFLAGS for + the compilation of a single file. Set special compiler options as + follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS". + For example in apps/examples/hello/Makefile: + $(SRCDIR)/hello_main.c_CFLAGS = -DTEST. From Xiang Xiao. + - Configuration: Auto-select CONFIG_BUILD_LOADABLE when either + CONFIG_BUILD_KERNEL or CONFIG_BINFMT_LOADABLE is selected. From + Xiang Xiao. + + * Libraries/Header Files: + + - libs/libc: Add CONFIG_MODLIB_SYSTEM_SYMTAB to generate the symbol + table for dlopen/insmod. From Xiang Xiao. + - getdelim() and getline(): Add implementations of the POSIX + functions getdelim() and getline(). Because of how the function is + defined, getline() canot be used on platforms that use CR-LF lin + terminations. From Gregory Nutt. + - alarm(), setitimer(), and getitimer(): Implement alarm(), + setitimer() and getitimer() APIs. From liuhaitao. + + * Tools: + + - tools/mkexport.sh: Copy the essential build script files too and + move Make.defs/gnu-elf.ld into scripts like board folder layout. + From Xiang Xiao. + - tools/mkexport.sh: Should export full content for FLAT build even + with CONFIG_BUILD_LOADABLE. From Xiang Xiao. + - tools/testbuild.sh: Add an option to select the number of CPUs to + use with 'make' From Gregory Nutt. + - tools/indent.sh: Add a command line option to suppress reformatting + of comments. This is useful when comments are already correct + and/or contain formatted data such as tables or lists. From Gregory + Nutt. + - tools/nxstyle.c: Add detection of carriage returns. Improve + reporting of TABs. From Gregory Nutt. + - tools/nxstyle.c: Add logic to detect if there is a blank line + following the final right brace. From Gregory Nutt. + - tools/nxstyle.c: Eliminate false alarm errors on comments that are + to the right of code when the comment terminator is on the same + line as the last of the comment. From Gregory Nutt. + - tools/nxstyle.c: Eliminate false alarms when checking for + alignment of comments to the right of code. Fix check for C++ style + comments so that strings like http:// and https:// do not generate + false alarms. From Gregory Nutt. + - tools/nxstyle.c: Eliminate false positive 'Invalid character after + asterisk in comment block'. From Gregory Nutt. + + * apps/ Build System: + + - apps/ Build System: Numerous changes for improvements and general + clean-up of the apps/ build system. Too many small and individual + changes to list here. Includes many improvements related to loadable + modules and symbol table generation, removal of duplicated logic, + renaming of binary directories, use of cygpath, etc. From Xiang Xiao. + - apps/Application.mk: Support the ability to change the CFLAGS for + the compilation of a single file. Set special compiler options as + follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS" + As an example in apps/examples/hello/Makefile: + $(SRCDIR)/hello_main.c_CFLAGS = -DTEST + From Xiang Xiao. + - apps/Application.mk and main.c files: Change builtin's entry point + from main to xxx_main by macro expansion. This change make the + entry point fully compliant with POSIX/ANSI standard. From Xiang + Xiao. + + * Examples/Tests: apps/examples: + + - apps/examples/audio_rttl: Add a simple RTTL player demo that is + able to play tunes according to an RTTL song. From Alin Jerpelea. + - apps/examples/bmi160: Add bmi160 example app. This app will read + the BM160 data and list it on the NSH console. From Alin Jerpelea. + - apps/examples/charger: Simple charger example that will display on + the console voltage and current values. From Alin Jerpelea. + - apps/examples/netlink_route: Add test/example of NETLINK_ROUTE + 'get' operations. From Gregory Nutt. + + * NuttShell: apps/nshlib: + + - apps/nshlib/: Add rptun cmd for boot remote core. From ligd. + - apps.nshlib/: Add a -t option to the arp command which will enable + printing the entire ARP table. From Gregory Nutt. + - apps/nshlib/: Add new NSH command, 'pmconfig'. From ligd. + + * System Utilities: apps/system: + + - apps/system/cle: Add basic color support to the CLE editor. + From Dave Marples. + - apps/system/i2c: While many I2C slave devices have multiple + indexed registers, some have only one register and it's not indexed. + For example, the I2C bus switch TCA9548A has only a Control + Register, attempting to index to "Reg[0]" alters its contents to + 0x00 disabling all subordinate buses. This change fixes that + problem by simply trying to read something/anything from the slave. + This also helps coax out slaves with register files that start from + a higher index, i.e. the AT24CS0x, FLASH chips with a UUID that + appears as a 2nd I2C slave at (address+8), report their serial + number at Reg[80]-Reg[8F] and will NAK a read of Reg[0]. Modified + get/set to prevent write of reg index if not specified. + - apps/system/i2c: Added a 'dump' command to issue a single + transaction to retrieve multiple bytes from an I2C slave and + register/offset. From David Alessio. + - apps/system/spi: Add options to specify devtype, id for chip + select. From David S. Alessio. + - apps/system/symtab: Remove system/symtab since the same + functionality exist in nuttx now. From Gregory Nutt. + - apps/system/usrsock_rpmsg: Add rpmsg based usrsock implementation. + From Jianli Dong. + + * Network Utilities: apps/netutils: + + - apps/netutils/cjson/: Update default version to 1.7.12. Previous + releases raise compilation warnings about redefined true/false. + From raiden00pl. + - apps/netutils/netlib/: Add a function to read the entire ARP table + using NETLINK_ROUTE protocol. From Gregory Nutt. + - apps/netutils/netlib/: Add support for retrieving a snapshot of the + IPv6 neighbor table using Netlink sockets. From Gregory Nutt. + - apps/netutils/netlib/: Add a utility function that will return a + list of all network devices in the UP state. From Gregory Nutt. + - apps/netutils/netlib/: Add function to retrieve routing tables + using Netlink. From Gregory Nutt. + +Bugfixes: +--------- +Only the most critical bugfixes are listed here (see the ChangeLog for a +more complete list of bugfixes and for additional, more detailed bugfix +information): + + * Core OS: + + - Signals: Fix undefined reference from sig_default.c to + sched_suspend() if CONFIG_SIG_SIGSTOP_ACTION is not defined. From + raiden00pl. + - waitpid(): Fix a NULL pointer dereference on race without + DEBUG_ASSERT. From David Alessio. + - WD Timers: Back out a kludge-workaround in wd_start for an SDCC + compiler problem fix back in Feb 2017. That workaround now appears + to conflict with newer GCC versions using (unsupported) warning + options and SDCC no longer needs the work-around. From Gregory + Nutt. + - clock_systimespec(): Fix early timespec overflow if using 32 bit + system timer. From Jens Gräf. + - Spinlocks: spin_trylock handle memory barrier and instrumentation + correctly. From Xiang Xiao. + - Power Management: Fix a problem where a timer cannot start when it + encounters a very small pmtick. From ligd. + - boardctl(BOARDIOC_MKRD): This change corrects a problem with NSH: + NSH was calling the OS internal function ramdisk_register() in + violation of the portable POSIX interface. This change solves the + problem by introducing a new boardctl() function BOARDIOC_MKRD + which moves the RAM disk creation into the OS. From Gregory Nutt. + - boardctl(BOARDIOC_ROMDISK): Add support for the new + BOARDIOC_ROMDISK command. This allows applications to create ROMFS + block drivers without illegal direct calls to romdisk_register. + + * File System/Block and MTD Drivers: + + - SmartFS: Fix O_CREAT without O_TRUNC truncating existing file. + Also nothing in POSIX says that O_APPEND should prevent O_TRUNC. + From Juha Niskanen. + - SmartFS: Honor O_APPEND on writes. Also document pwrite() bug/ + limitation. From Juha Niskanen. + - GD25: spi_devid argument was not used in initialization. GD25 + driver was always using priv->spi_devid initialized to zero by + kmm_zalloc(). This change initializes it from the supplied function + argument. From Juha Niskanen. + - MMC/SD: Set wrbusy after success of all the operations. Any + failure could leave wrbusy set when it should not be if the + operation failed. From David Sidrane. + - MMC/SD: Enter a removed card state On a failure. If we fail to + read cardstatus in mmcsd_transferready consider this a hard error + and set the card to removed. From David Sidrane. + - MMC/SD (SDIO): Align DMA buffer for MBURST size. From David S. + Alessio. + + * Networking/Network Drivers: + + - Socket close(): Fixed problems noted by Bernd Walter: Eliminate an + incomplete test when a disconnection event happens. When a + disconnection event occurs, the close logic MUST always terminate + the wait. The conditional test was not incorrect, however, it + lacked 'else' logic and would simply ignore that disconnection event + in some cases. That is bad because there may not be another + disconnection event and that can lead to hangs (or at least very, + very long delays). From Gregory Nutt. + - ICMPv6: Dispatch ICMP_POLL to device's callback list too since + icmpv6_neighbor stills append the callback into this list. From + Gregory Nutt. + - ICMPv6: Decouple autoconfig and ICMPv6 socket to avoid an invalid + Kconfig combination. From Xiang Xiao. + - ICMPv6: cmpv6_autoconfig() error handling must not overwrite + overwrite the error code. From Xiang Xiao. + - TCP/UDP: Fix a chicken and egg problem by eliminating the check of + the arp/neighbor tables before packet transmission: + 1. For buffered TCP/UDP case, if CONFIG_NET_ARP_SEND / + CONFIG_NET_ARP_IPIN / CONFIG_NET_ICMPv6_NEIGHBOR isn't enabled + and the table doesn't contain the Ethernet address for the + destination IP address yet, then the logic will skip the real + transmission and then ARP/neighbor logic can't steal the final + buffer to generate the ARP/ICMPV6 packet. + 2. For all other case, the TCP layer or user program should already + contain the retransmit logic, the check is redundant and may + generate many duplicated packets if ARP/ICMPV6 response is too + slow because the cursor stop forward. If user is still concerned + about the very first packet lost, he could fix the issue by + enabling CONFIG_NET_ARP_SEND / CONFIG_NET_ICMPv6_NEIGHBOR. + From Xiang Xiao. + - UDP sendto(): Add a check for the device that is polling. In the + multiple network device case, this check is necessary to prevent + sending the UDP packet to the wrong device. From Gregory Nutt. + + * Wireless/Wireless Drivers: + + - MRF24J40: Correct erroneous isolation of address mode field and + subsequent bad comparison. From Gregory Nutt. + - GS2200M: Add SPI_SELECT() to _read/write_data() in gs2200m.c + - BCM43xx Wireless: In the SDIO interface, the behavior of the DMA + setup differs, depending on the hardware capability + SDIO_CAPS_DMABEFOREWRITE. If this capability is set, then the DMA + setup much be done before the transfer setup. Dave Marples + modified this file for the i.MXRT USDHC which does have the + SDIO_CAPS_DMABEFOREWRITE. Xiao Xiang reports that this change + breaks the Wifi on the Photon which does not report the + SDIO_CAPS_DMABEFOREWRITE and suggests reverting the change. In + reality both changes are correct but must be conditioned on the + DMA capability of the underlying SDIO device. From Gregory Nutt. + + * Common Drivers: + + - Various drivers (Cloned logic): On error, memory was freed, but + the error was not returned. It just continued as though no error + happened. From Petro Karashchenko. + - Serial: Fix data corruption when outputting data in SMP mode From + Masayuki Ishikawa. + - Serial: serial_io.c used signal numbers, but did not include + signal.h. This has no problems but missing signal definitions have + been seen in certain cases. From David Sidrane. + - Serial DMA: Avoid uart_xmitchars_done() move the tail bigger then + head. If ioctl(TCOFLUSH) occurs between uart_xmitchars_dma() and + uart_xmitchars_done(), TCOFLUSH will reset xmit buffer, then + uart_xmitchars_done() will move the 'tail' ahead of 'head', then + sends lots of wrong data. From ligd. + - mkfifo(): mkfifo() should return -1 and set errno on failure From + raiden00pl. + - RAMLog: Fix ramlog readers never awakened up when using ramlog as + syslog or console. We also make an attempt to avoid the thundering + herd problem if there are multiple readers/pollers. This change also + removes forcing CONFIG_RAMLOG_CRLF in nuttx/syslog/ramlog.h as there + is no point of wasting precious RAM for useless characters. From + Juha Niskanen. + - USB CDC/ACM: Fix memory leak of RX failsafe timer. From Juha + Niskanen. + - USB HID Keyboard device: Fix keyboard debounce algorithm used when + CONFIG_HIDKBD_NODEBOUNCE is undefined. From Jeff Theusch. + - USB HID Keyboard: Change default for CONFIG_HIDKBD_POLLUSEC per + recommendation of Jeff Theusch. From Gregory Nutt. + - VL53L1X IOCTLs: IOCTL commands for the VL53L1X did not follow the + sequence. Noted by Daniel Pereira de Carvalho. From Gregory Nutt. + - syslog: syslog_force does not set errno so do not test against it. + From Juha Niskanen. + - syslog: Fix assertion that assumes re-opened syslog file is the + same. Logic in syslog_file_channel() is calling syslog_initialize() + for the default syslog device as a recovery action after failed + syslog_dev_initialize(). From Juha Niskanen. + + * Simulator: + + - Simulator HostFS: Skip '.' and '..' in readdir' From Xiang Xiao. + - Simulator HostFS: Fix warning: 'mapflags' may be used uninitialized + in this function. From Xiang Xiao. + - Simulator Tickless: Correct the calculation of the Tickless timer + period. Fix some missing initialization of globals and missing + return values. From Matias N. + - Simulator: Add -m32 to HOSTLDFLAGS if enable CONFIG_SIM_M32. From + Xiang Xiao. + - Simulator PM: Fixes compilation for sim target when enabling power + management. From Matias N. + - Simulator Build: Fixes missing recursion into sim board directory + for dependency generation. From Matias N. + - Simulator SIMUART: Remove CONFIG_SIM_UART_DATAPOST for arch/sim. + It's very dangerous to call NuttX API from simuart_thread. From + Xiang Xiao. + + * ARMv7-A + + - ARMv7-A: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP + architecture as well. From Gregory Nutt. + + * ARMv7-M + + - ARMv7-M: Fix a deadlock in up_sigdeliver() in SMP mode. In + previous implementation, up_disable_irq() was called before + recovering local context. However, I noticed a deadlock happens in + the following situation. For example, if up_sigdevliver() is in + progress on CPU0 and CPU1 has called up_cpu_paused to CPU0, hence + g_cpu_irqlock has been locked by CPU1, in this case, we would see a + deadlock in later call of enter_critical_section() to restore + irqcount. To avoid this situation, we need to call + enter_critical_section() to break the deadlock. From Masayuki + Ishikawa. + + * Atmel SAM3/4 Boards: + + - SAM4CM: Fix cpustart() implementation. In Cortex-M, offset 0 in + vector table stores initial stack pointer and offset 4 stores reset + vector. From Masayuki Ishikawa. + + * Atmel SAMA5Dx Boards: + + - SAMA5D4-EK: Fix bad conditional compilation for + board_app_initialize(). Should depend only on CONFIG_LIB_BOARDCTL, + CONFIG_BUILD_KERNEL is irrelevant. From Gregory Nutt. + + * Microchip i.MXRT: + + - i.MXRT WFI: WFI needs to be disabled on i.MXRT. We found the + reason: The imxrt1050 is configured to use SYSTICK for the kernel + timer, but SYSTICK cannot wake up the MCU from low-power modes. + Disable low-power modes on this MCU until we have support for an + alternative timer. Earlier versions of the board (EVK, not EVKB), + had A0 silicon which by default did not enter low-power mode on a + WFI. With this change in place together with the previous one my + system is stable, just using more power than it should. From Dave + Marples. + + * Microchip i.MXRT Drivers: + + - i.MXRT Serial: TC (Transmission complete) and TDRE (TX Buffer + Empty) were transposed in imxrt_serial.c. The end result was that + for unoptimized code everything worked fine, but optimized code got + itself into a real mess and continually fired interrupts. From Dave + Marples. + + * Microchip i.MXRT Boards: + + - IMXRT1020-EVK: Make naming of the LED consistent. In most places + it is referred to as LED1. In board.h it is referred to as + USERLED1. The i.MXRT1020-EVK hardware user guide (HUG) uses the + name USERLED. This command makes all names internally consistent + and consistent with the HUG. Noted by Alin Jerpelea. From Gregory + Nutt. + + * NXP/Freescale Kinetis Boards: + + - TWR-K60N512: Suppress errors related to card detect GPIO + configuration if SDHC support is not enabled. From Gregory Nutt. + + * NXP LPC17xx/40xx Drivers: + + - lpc17xx/40xx I2C: Respect the I2C_M_NOSTART flag. Sending a + restart condition when not requested will break other drivers that + depend on this behavior. From Augusto Fraga Giachero. + - LPC17xx/40xx Ethernet: Use usleep() instead of up_delay() for large + wait times. From Augusto Fraga Giachero. + + * NXP LPC54xx: + + - LPC54 Clocking: Fix PLL settings. For the lpc54628 Rev. E board + the PLL was not configured properly and the board would not boot + correctly. I checked the startup files from the official IDE and + inspected the assembly instructions for the libraries used. From + Andrei Stefanescu. + + * NXP i.MXRT Boards: + + - IMXRT1060-EVK: Fix FT5X06 CTRSTn pin configuration, increased + number of pollwaiters for the FT5X06, tuned resolution during + pointer dragging. From Fabio Balzano. + + * On Semiconductor Boards: + + - LC823450: Fix cpustart() implementation. In Cortex-M, offset 0 in + vector table stores initial stack pointer and offset 4 stores reset + vector. From Masayuki Ishikawa. + - LC823450-XGEVK: Fix build error for posix_spawn. From Masayuki + Ishikawa. + + * Sony CXD56xx: + + - CXD56xx Assertions: Replace some assertions with error return + values. From Alin Jerpelea. + - CXD56xx Interrupts: Fix hang-up when error interrupt occurs. From + Alin Jerpelea. + - CXD56xx Pin Configuration: PIN_AP_CLK is used as a port selector of + SDIO expander on the extension board, and is set output low in + initialization. Therefore, this pin cannot be used by the other + board. To avoid this restriction, remove this initial operation + because this pin is pulled down by default on the extension board. + From Alin Jerpelea. + - CXD56xx: Remove duplicate NVIC_SYSH redefinitions. The NVIC_SYSH + is already defined in nvicpri.h From Alin Jerpelea. + + * Sony CXD56xx Drivers: + + - CXD56xx SDHCI: Fix initial value of semaphore in sdhci driver. + From Alin Jerpelea. + + * Sony CXD56xx Boards: + + - Spresense: The SD Card TXS02612 port expander is hosted on the + Extension board and should not be enabled if the extension board is + not present. From Alin Jerpelea. + + * STMicro STM32: + + - STM32 F4 Pin Multiplex: Ethernet pin ETH_RMII_REF_CLK is an input. + From Gregory Nutt. + - STM32 H7 ADC: Fix typos in ADC register definitions. From Markus + Bernet. + - STM32 H7: Heap allocation, SRAM and SRAM1 are not continuous From + David Sidrane. + - STM32 H7 CRC: Add the CRC option in KConfig. From Eduard Niesner. + - STM32 H7 RCC: Add PLL3 Support and only enable PLLs if used. From + David Sidrane. + - STM32 L4x6xx RCC: This fix is needed if HSI clock is selected. + Otherwise when waking up from STOP mode, the MSI clock is selected + instead of the HSI clock. From Matias N. + + * STMicro STM32 Drivers: + + - STM32 USB Host: There was no relationship between + CONFIG_STM32_USBHOST and CONFIG_USBHOST, yet they they were used + interchangeably. This means that can (and did) get out of synch + causing link time failures. This change adds logic to select + CONFIG_USBHOST when CONFIG_STM32_USBHOST is selected, keeping the + two settings synchronized. Furthermore, since CONFIG_STM32_USBHOST + is the authoritative setting, all occurrences of CONFIG_USBHOST were + replaced with CONFIG_STM32_USBHOST. From Gregory Nutt. + - STM32 SDIO: SDIO Fix system hang on card eject. From David Sidrane. + - STM32 F7 Ethernet: Large Ethernet packet can leads network halt. + From Bazooka Joe. + - STM32F7 OTGHOST: OTGFS_EPTYPE_INTR should be OTG_EPTYPE_INTR. From + Gregory Nutt. + - STM32 F7 SDMMC: SDMMC Fix system hang on card eject. From David + Sidrane. + - STM32 L4 Firewall: Correct a test to determine if an address lies + in FLASH or not. Improper mask caused test to always fail. From + Gregory Nutt. + - STM32 H7 Ethernet: Bazooka Joe's fix to the STM32 F7 Ethernet + driver should be applied to the H7 as well. The other STM32 + Ethernet drivers already have the change. From Gregory Nutt. + - STM32 H7 Ethernet: Fix ETH_MACMDIOAR_CR_MASK bit mask. From Markus + Bernet. + - STM32 H7 SDMMC: SDMMC Fix system hang on card eject. From Gregory + Nutt. + - STM32 H7 FLASH: Flash driver BUG fixes. From David Sidrane. + - STM32 H7 TIM: Correct register bit definitions and alternate + functions. Fix other copy-paste definitions. From Daniel Pereira + Volpato. + - STM32 L4 SDMMC: SDMMC Fix system hang on card eject. From David + Sidrane. + + * STMicro STM32 Boards: + + - STM32F4-Discovery: Fix build error for posix_spawn. From Masayuki + Ishikawa. + + * TI Tiva: + + - TIVA IRQs: Fix wrong IRQ vector number. From Nathan Hartman. + - Tiva FLASH: Fix several mistakes in tiva_write(). (1) Fix wrong + use of && when & was intended. (2) Add compile- time warning + directive because according to this function's interface, it is + supposed to support unaligned writes and/or writes of arbitrary + numbers of bytes to FLASH. However, this function does NOT support + that at this time. This needs to be fixed. (3) Fix wrong + preprocessor conditional. Was written to use the 32-word write + buffer only for TM4C1294NCPDT. This buffer is available on all + M4C123 and TM4C129 parts. Now conditioned upon + CONFIG_ARCH_CHIP_TM4C123 or CONFIG_ARCH_CHIP_TM4C129. (4) Add + comments to document the intent of the above preprocessor logic. + From Nathan Hartman. + + * Xtensa + + - Xtensa: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP + architecture as well. From Gregory Nutt. + + * Build System: + + - Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist + on Windows From Xiang Xiao. + - tools/Makefile.unix: Fix build error when issue 'make -B': "mkdir: + cannot create directory 'staging': File exists: + tools/Makefile.unix:269: recipe for target 'staging' failed". From + Xiang Xiao. + - All ARM linker scripts: Preface all _ebss definitions with '. = + ALIGN(4)'. Otherwise, the following .bss section may not be aligned + properly. From Gregory Nutt. + - MIPS Linker Scripts: The PIC32M* start-up code initializes .bss by + writing 16 bytes at a time in a loop. The start (_sbss) alignment + is only required to be 4 bytes since the write is done with 4 store + instructions. From Gregory Nutt. + - Top-level Kconfig: Add some protection so that you cannot select an + architecture-specific header file if the architecture does not + provide the header file. From Gregory Nutt. + - libc Kconfig: Should select the NuttX float.h file automatically + if the NuttX math library is selected. From Gregory Nutt. + - tools/Makefile.unix: Make COMMON_DIR work with + CONFIG_ARCH_BOARD_CUSTOM. From Xiang Xiao. + - tools/ Make fragments: Fix the various minor issue for NUTTXLIBS / + USERLIBS: (1) Remove libcxx duplication in FlatLibs.mk and from + kernel space, (2) Remove libpass1 from KernelLibs.mk since kernel + build doesn't support the two pass mode, and (3) Remove FSDIR + related comment since file system cannot be disabled now From Xiang + Xiao. + + * C Library/Header Files: + + - getcwd(): Remove stray sched_unlock(). Also fixes several typos. + From Juha Niskanen. + - date(), hostname(): Fix portability issue with date, hostname From + David Alessio. + - libs/libxx/Kconfig: Automatically select CONFIG_CLOCK_MONOTONIC when + CONFIG_LIBCXX is selected. Removed hardcoded -DCLOCK_MONOTONIC from + CFLAGS in Make.defs of several configurations. That definition is + now automatically adding this define when CONFIG_LIBCXX=y. From + Daniel Pereira Volpato. + - libs/libxx/Kconfig: CONFIG_LIBC_LOCALE is needed to build libcxx. + A math library is also needed, however, there are various ways to + provide a math library so CONFIG_LIBM is not now set. From Matias + N. + - libs/libc/symtab: Move symbol table generation into libc since the + address in symbol table should come from userspace binary for + PROTECTED build, not kernel binary. From Xiang Xiao. + - libs/libc/ Kconfig files: Disable EXECFUNCS_HAVE_SYMTAB for kernel + build. The symbol table doesn't have any meaning for kernel build + since all executable binary should be self contained. From Xiang + Xiao. + + - include/sys/time.h: According to earlier standards, usage of + select(), FD_CLR, FD_ISSET, FD_SET and FD_ZERO just need include + headers: sys/time.h, sys/types.h and unistd.h. So include + sys/select.h in time.h to compatible with it. Or mbedtls library + would build break in calling select() and FD_* related functions. + From liuhaitao. + + * Tools: + + - tools/configure.sh and configure.c: Do not remove CONFIG_SIM_M32 if + host is specified. From anchao. + - tools/Directories.mk: Remove FSDIRS/NOFSDIRS related logic/comments + since the file system can no longer be disabled now. From Xiang + Xiao. + - tools/Makefile.host: Add missing binaries from clean target. From + Gregory Nutt. + - tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so + that they lie in FLASH not RAM. From Bernd Walter. + - tools/nxstyle.c: Correct detection of missing blank line following + a block comment. From Gregory Nutt. + + * apps/ Build System: + + - Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist + on Windows From Xiang Xiao. + - Makefile: Fix warning: jobserver unavailable: using -j1. Add '+' to + parent make rule. From Xiang Xiao. + - apps/Application.mk: Correct an error in PATH usage. Use of + toolchain path causes make errors. From Gregory Nutt. + + * apps/tools: + + - tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so + that they like in FLASH not RAM. From Bernd Walter. + + * Examples: apps/examples: + + - apps/examples/mount: Replace illegal call to ramdisk_register() + with a call to boardctl(BOARDIOC_MKRD). From Gregory Nutt. + - apps/examples/nxlines/: Correct nxlines example program name. From + Gregory Nutt. + - apps/examples/nxterm/: PROGNAME, PRIORITY, STACKSIZE variable + names did not match declarations in Kconfig file. From Gregory + Nutt. + - apps/examples/romfs: Remove romfs_testdir.h. That file is + regenerated whenever the example is built and so should not be in + the repository. From Gregory Nutt. + + * Testing: apps/testing: + + - apps/testing/cxxtest/: Fix typo error in testing/cxxtest. From + Xiang Xiao. + - apps/testing/unity/: Fix the error when creating Make.dep. From + raiden00pl. + + * NSH Library: apps/nshlib: + + - apps/nshlib: Remove the inappropriate NSH_BUILTIN_APPS coupling. + From Xiang Xiao. + - apps/nshlib/: The NSH mkrd command was in violation of the NuttX + portable POSIX interface. It was calling the internal OS function + ramdisk_register() directly. Not only is this a violation of the + interface specification, but also prevents use of mkrd in PROTECTED + or KERNEL builds. With this change, the NSH mkrd command now uses + the BOARDIOC_MKRD boardctl() command. This command is available in + all build modes. The effect of this change is to move the heart of + the NSH mkrd command into to OS and provide user-space access via + boardctl(). From Gregory Nutt. + - apps/nshlib/: Replace direct calls to romdisk_register() with + indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only + fixes the violation of the portable POSIX OS interface, but also + permits use of ROM disks in PROTECTED and KERNEL modes. From + Gregory Nutt. + - apps/nshlib/: Add missing NSH_DISABLE_DMESG from Kconfig. From + Juha Niskanen. + + * System Utilities: apps/system: + + - apps/system/cle/: This change modifies the cle to use the streams + file interface more consistently and has removed the observed race + conditions. It was previously a mix of streams and fileio. It + also simplifies the VT100 cursor position handling. From Dave + Marples. + - apps/system/composite: Remove usb serial loopback test code we can + achieve the same effect by cat or dd command. From Xiang Xiao. + - apps/system/cu/: (1) Fix early exit. getc(stdin) can return 0 the + first time around. (2) Set optind to zero. getopt() was being + left in a bad state, causing parsing errors on second use. (3) Fix + priority of cu_listen(). (4) Add suppor for -h. From David + Alessio. + - apps/system/lzf/: Check the protection by CONFIG_SYSTEM_LZF != + CONFIG_m (not elf binary) instead of CONFIG_KERNEL_BUILD. From + Xiang Xiao. + - apps/system/spi: Correctly parse exch txdata args, if any. Should + always call the board's deselect From David Alessio. + + * File System Utilities: apps/fsutils: + + - apps/fsutils/passwd/: Use named semaphore by checking + CONFIG_FS_NAMED_SEMAPHORES instead of CONFIG_KERNEL_BUILD. From + Xiang Xiao. + + * Network Utilities: apps/netutils: + + - apps/netutils/cjson/Makefile: Fix the error when creating + Make.dep. From raiden00pl. + + * Graphics: apps/graphics: + + - apps/graphics/twm4nx/: Fix a recently introduced error that broke + all Twm4Nx configurations. From Gregory Nutt. + - apps/graphics/traveler/: Replace direct calls to romdisk_register() + with indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only + fixes the violation of the portable POSIX OS interface, but also + permits use of ROM disks in PROTECTED and KERNEL modes. From + Gregory Nutt. diff --git a/sched/Kconfig b/sched/Kconfig index 96338a551c..52b9e1dce6 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -27,6 +27,13 @@ config DISABLE_POSIX_TIMERS bool "Disable POSIX timers" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL + ---help--- + Disable support for the the entire POSIX timer family + including timer_create(), timer_gettime(), timer_settime(), + etc. + + NOTE: This option will also disable getitimer() and + setitimer() which are not, strictly speaking, POSIX timers. config DISABLE_PTHREAD bool "Disable pthread support"