| NuttX-9.0.0 |
| ----------- |
| |
| This is the first release of NuttX as Apache NuttX (Incubating) and represents our first major milestone as a Podling of the Apache Software Foundation's Incubator. This release is the culmination of nearly 6 months of hard work and includes several new architectures and drivers, and numerous improvements and bug fixes to the core RTOS, drivers, and networking subsystems. |
| |
| * Major Changes to Core OS |
| * Bugfixes |
| - nxsem_wait_uninterruptible() now returns if the task is canceled. |
| - Fix a bug in pthread_condwait() that was improperly re-initializing the mutex. |
| - In sched_setpriority(), fix functions called inside a DEBUGASSERT that were eliminated when assertions are disable |
| |
| * Compatibility Concerns |
| |
| - The configuration option CONFIG_CAN_PASS_STRUCT is now removed. Previously, it was used (at the cost of breaking standards support) to support older versions of the SDCC compiler that couldn't pass structs/unions as functions' parameters. A newer version of the compiler has resolved the issue. |
| |
| * Major Changes to Build System |
| - Add a post-build function that allows extending the build with CPU/board-specific logic. |
| - Add build tools to simplify ZDS-II tool usage. |
| - mkexport.sh: Deal with ARCHSCRIPT containing multiple files. |
| - Various nxstyle improvements. |
| |
| * Architectural Support |
| * New architecture support |
| - Add support for RISCV-64 |
| - Add support for x86_64 (tested on QEMU) |
| - Add support for ELF64 |
| - Add a port to the NUCLEO-F429ZI board |
| - Add support for the STM32H747I-DISCO board |
| - Add Z20X board support and bootloader to upload code from the W25 flash to SRAM |
| - Add initial support for Litex with softcore CPU VexRiscV SoC |
| - Add support for the Digilent ARTY_A7 board to test the Litex port |
| - Added initial support for Sipeed Maix Bit board with Kendryte K210 processor |
| - New architectural support: ez80f92 |
| - Flat address x86_64 port of NuttX |
| - Support to run NuttX on ESP32 QEMU |
| - Initial support for Sipeed Maix Bit board with Kendryte K210 processor |
| - Add initial support for Kendryte K210 processor in SMP mode |
| - NXP S32K11x (Cortex-M0+) and S32K14x (Cortext-M4F): Add support for NXP automotive boards. |
| - XMC 4700 (Cortex-M4F) |
| * Architectures with significant improvements |
| - ESP32 loadable modules support |
| - i.MX RT: FLEXIO clock config logic. |
| - Fix the clock configuration for the i.MX RT family |
| - i.MX RT: Add ability to run from OCRAM |
| - SAMA5D27 peripheral support - USB Host working |
| - z20x: Add W25 bootloader |
| - i.MX RT: Add USB Device support |
| - STM32, STM32F7, STM32H7 add SPI DMATHRESHOLD |
| - Improve the simulator timer |
| - 64-bit modules on macOS simulator |
| - z20x: Add XTP2046 SPI support; add timer support |
| - RX65N RTC Driver added |
| - NXP Freedom K28F Board SD-Card support |
| - STM32H7: support SDRAM via FMC peripheral |
| - LM3S6965-ek: Add PROTECTED build support |
| - STM32H7: Added IWDG and WWDG, power management (sleep/stop/standby), WKUP pin configuration |
| - SAMV71: Add read UID implementation and move flash functions to RAM |
| - i.MX RT: Fix interrupts storm (serial & I2C) |
| - Various fixes and cosmetic changes to the CxD56xx architecture |
| - Fix SiFive FE310 related code (comments, improve serial irq handling, initial int status) |
| - Implement QSPI for STM32H7 |
| - Improvements for the nRF52 port: I2C, SPI, GPIO support |
| - Updates for LPC17xx/40xx serial |
| - Adds basic support for Microchip SAM E54 Xplained Pro board |
| - Adds an Ethernet driver for the SAME5x family (based on the SAMA5 GMAC driver) |
| - Add CDC ECM Ethernet over USB 2.0 High Speed (tested on SAMA5D36-Xplained board) |
| - Simulator: Reimplement simulator uart on top of serial driver framework |
| - NXP S32K1XX peripheral clock fixes |
| - Fix syscall stack alignment on armv7-m |
| - Fix flash_erase(page) when page >= 256 for STM32L4 family |
| - Add partial support for the NETLINK poll() operation. |
| - Add serial DMA support for STM32F7 |
| - Add AM335x Clock Configuration |
| - Add I2C support for AM335x |
| - Add configuration to fine tune LPI2C Timeout for iMXRT |
| - Add CAN support to AM335x |
| - Add I2C support to STM32F0/L0/G0 |
| - Kinetis LPC SDCard improvements |
| - Replace the busy polling with work_queue in the ethernet driver of simulator |
| - Fix Xtensa's SMP support to follow same logic from other SMP archs |
| - PIC32MZ: SPI transfers can be configured to use DMA. |
| - PIC32MZ: Implement cache operations. |
| * Driver Support |
| * New drivers |
| - New driver for the ADS7828 I2C analog to digital converter |
| - driver/ioexpander: New driver for PCA9538 I2C I/O expander |
| - New driver type for battery monitor ICs. |
| - Driver for the BQ769x0 battery monitor IC. |
| - Add Support for Quectel EC20 4G LTE Module USB CDC/ACM |
| - Add QSPI-based Winbond NOR FLASH driver |
| * Drivers with significant improvements |
| - Update all the drivers to check return value of nxsem_wait_uninterruptible(). |
| - MCP9844 shutdown mode support |
| - fcntl: add O_CLOEXEC flag, add O_CLOEXEC/FD_CLOEXEC support |
| - CDC-ECM Ethernet over USB 2.0 HS |
| - smartfs improvements: Handling of duplicate sectors, support fsck to check and repair the smartfs file system, and recover SPI Flash from initial error state. |
| - Various fixes for USBDEV driver: Remove unnecessary reset logic, fix descriptor type mismatch when dual speed is enabled, fix invalid/unsupported command processing, and fix string ID calculation. |
| - Handle size zero in umm_malloc.c and umm_realloc.c, which causes a system freeze in kernel mode. |
| - Fixed compilation issue with poll fds notification. |
| - Report POLLHUP and POLLERR in 'revents' regardless the requested 'events' set. |
| * Networking |
| - Telnet: Fix/Refine CTRL+C to work on telnet |
| - TCP: Fix of faulty TCP sequence increments |
| - netdb: Fix netdb to query IPv4 and IPv6 addresses regardless the server address type |
| - Netlink sockets may be set to non-blocking |
| - Improve TUN and SLIP, refine Control+C Handling in Telnet |
| - Sockets: Add socket MSG_DONTWAIT support |
| - Network Loopback Driver: Add a configuration option to control packet size |
| - Network IOCTLs: Add FIONBIO network IOCTL support |
| - NFS: Support IPv4 and TCP |
| - Sockets: Add IP and TCP socket options needed by iperf3 |
| - Netlink: Add support for asynchronous Netlink responses |
| - TCP: Monitor TCP_POLL/TCP_NEWDATA/TCP_BACKLOG per the request like UDP counterpart |
| - TCP: Minor design improvement to TCP delayed ACKs |
| - DNS IPv4/IPv6 Dual Host Support: When IPv4/IPv6 Dual Stack is enabled, queries both types of addresses regardless of whether the DNS server is accessed via IPv4 or IPv6. As a result, getaddrinfo() may return a mixed (IPv4/IPv6) address list. |
| |
| * Applications |
| * Improvements |
| - Extend netutils and netinit to work with only Netlink sockets enabled |
| - Add getprime program to check multi-thread performance |
| - Improve zmodem send performance |
| - Add simple HTS221, LSM303 and LSM6DSL examples |
| - Improve to gs2200m wiki performance |
| - Improve telnet server and enable it to listen on both IPv4 and IPv6 |
| - Improve ntpclient logic |
| - Improve wapi to save configuration to file system |
| - Improve wapi to skip associate if ssid is invalid |
| - Improve cmd_nfsmount to use IPv4 and IPv6 |
| - Improve ostest for SMP and non-SMP configurations |
| - Improve UDP to avoid using standard symbols |
| - Improve dhcpd to include configurable timeout and retry count |
| * Bugfixes |
| - Correct format when printing ARP tablet entries |
| - Ensure /bin/ping and ping work at the same time |
| - Correct backward conditional logic in dhcpd_leaseexpired() |
| - Fix several problems on ftpd |
| - Fix dhcpd issue reported on Issue #17 |
| - Fix sendmail example to run on a local SMTP server |
| - Fix buffer overflow on netlib |
| - Fix compile errors in loopback mode of the tcpblaster |
| - Fix stack corruption in ELF task test |
| - Fix errors in NoBlockRecv and BlockRecv tests of usrsocktest |
| - Fix ipforward IP Header issue for IPv4 |
| - Fix wrongly swapped parity options of CU program |
| - Fix slcd to avoid using priv->fd before initializing it |
| - Fix (tcp, udp)blaster to build on macOS |
| - Correct the buffer type of base64 program |