148 lines
7.7 KiB
Plaintext
148 lines
7.7 KiB
Plaintext
|
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
|