Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PR-1611 libc: Allocate file_struct dynamically

...

PR-1684 Add gdb script for NuttX thread debugging

PR-1911 init_section was not being emitted resulting in C++ static constructors not being called.

PR-1889 Fix build error for ::setbuf  if CONFIG_STDIO_DISABLE_BUFFERING is set

Major Changes to the Build System

New Features

PR-1786 Support building external code into the OS

Bug Fixes

PR-1713 Fix export target: libboard was missing KERNEL flag.

PR-1470 Fix Make.dep not updated by .config changes

PR-1345 Enhance export target: make BIN directory configurable, export post build script, use LDNAME instead of LDSCRIPT

PR-1332 Include incdir.c in the export target

Architectural Support

New Architecture Support

PR-1847 ARM: Initial support for ARMV6M to support CortexM0+

Architectures With Significant Improvements

cxd56xx

PR-1753 cxd56xx: Use spinlock in gpioint to improve SMP performance

PR-1650 cxd56xx: Use spinlock in rtc to improve SMP performance

PR-1621 cxd56xx: Use spinlock in serial to improve SMP performance

PR-1569 cxd56xx: Add SMp support to cxd56_farapi.c

ESP32

PR-1422 ESP32: Add SPI driver (Master & Slave)

PR-1435 ESP32: Add I2C driver

PR-1491 ESP32: Add SPI Flash driver

PR-1525 ESP32: Add Ethernet driver

PR-1610 ESP32: Improve SPI transmision (DMA, IOMUX, software CS)

PR-1630 ESP32: Add support for HW RNG

PR-1830 ESP32: Add Power Management of Force-Sleep

PR-1859 ESP32: Add hist timer and improve the oneshot timer logic

PR-1754 ESP32: Add support for external SPIFLASH

PR-1613  ESP32: Add function for switching CPU from 80MHz to 240MHz

IMXRT

PR-1868 IMXRT: Add ADC driver

Kinetis

PR-1624 Kinetis: USBHOST improvements to avoid race condition durring freeing for queue head structure by using Async Advance Doorbell.

NRF52

PR-1418 NRF52: Add Timer and RTC drivers

PR-1432 NRF52: Add timer lowerhalf

PR-1635 NRF52: Add support for RTC event handling

PR-1636 NRF52: Add support for PPI peripheral

PR-1681 NRF52: Add support for GPIOTE task mode

PR-1726 NRF52: Extend systimer support

PR-1773 NRF52: Add ADC and PWM support

PR-1915 NRF52: Add serial termios support (no flow control)

PR-1907 NRF52: Add basic error handing for i2c in polling mode to support i2ctool.  Still not handled in DMA mode.

PR-1839 NRF52: Add missing SPI callback register hooks to support drivers like mmcsd

PR-1646 NRF52: Better differentiation between NRF52840 and NRF52832

RISCV

PR-1858 RISCV: Add missing CSR macros listed in RISC-V spec V1.10.

RX65N

PR-1622 RX65N: Add I2C(RIIC) support

PR-1894 RX65N: Add USB device support

PR-1899 RX65N: Add DTC driver

PR-1910 RX65N: Add SPI driver support

SAMD5E5

PR-1515 SAMD5E5: Add Watchdog timer support

PR-1574 SAMD5E5: Add USB host support

PR-1594 SAMD5E5: Freerun timer, oneshot timer and tickless support

PR-1816 SAMD5E5: Add MTD progmem support and NVM USER PAGE IOTCLs

SIM

PR-1914 SIM: SIGUSR1 handling now uses NuttX interrupt logic

PR-1767 SIM: Allow access to tty interfaces for better termios support

PR-1655 SIM: Add support for Linux HCI Socket as a NuttX BLE adapter.  Full NuttX BLE stack can be run against any Linux Bluetooth adapter in sim.

PR-1558 SIM: Add support for Stack Smashing Protector.

STM32F4

PR-1865 STM32F4:  Add support for STM32F412CE fixing I2C2/I2C3 and USART1 alt

STM32H7

PR-1714 STM32H7: Fix I2C driver interrupt storm

Bug Fixes

CXD56xx

PR-1930 cxd56xx: Fix handle_irqreq() in cxd56_cpupause.c

PR-1789 CXD56xx: Fix deadlock issue in up_txinit() in SMP mode.

PR-1620 cxd56xx: Fix IRQ control in cxd56_dmac.c

ESP32

PR-1908 ESP32: Fix task signal process preemption

NRF52

PR-1928 NRF52: Fix PPI group disable and add group clear

PR-1885 NRF52: Fix SPI driver structures when SPI_EXCHANGE is not set

PR-1799 NRF52: Fix SPI_MASTER entry in kconfig

PR-1787 NRF52: Fix base address for SPIM{1,2,3}

PR-1777 NRF52: Handle case where rx or tx buffer could be 0 but data would still be transferred. Also error if more than max data is requested.

PR-1770 NRF52: Fix bug where SPI cmddata was not properly mapped for SPIM 0,2,3

RISC-V

PR-1909 RISC-V: MIE instead of MPIE register was being used in up_schedule_sigaction for storing interrupt state

SIM

PR-1903 SIM: Fix complication issue for WPCAP in Cygwin build

PR-1888 SIM: Fix EOVERFLOW returned when CONFIG_SIM_M32 is set

STM32

PR-1841 STM32: Remove broken overdriver support

PR-1719 STM32: Lowputc: Ensure USART is disabled before attempting to configuring it

PR-1556 STM32: Fix IO compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0

STM32F7

PR-1898 STM32F7: Fixes data loss bug in UART5 with TX DMA

PR-1553 STM32F7: Fix possible interrupt blocking in serial TXDMA ISR

Miscellaneous

PR-1912 Fix up_interrupt_contex() in case of SMP - Make sure the operation is atomic in case of SMP

Driver Support

Bug Fixes

PR-1896 spi_xx25xx EEPROM: return the number of bytes written instead of 0 or error

PR-1891 serial: Don't mangle PID when ISIG is changed

PR-1856 pipe: In case of empty pipe with no writers, return EOF instead of EAGAIN

PR-1796 vfs: Fix memory leak calling pseudorename

PR-1794 vfs: Fix issue where opendir would remove the trailing whitespace or /

PR-1793 vfs: Make sure that rename of mount point uses pseudorename.  Previously mv on a mountpoint would return err 88.

PR-1836 stmpe811: Fix incorrect GPIO interrupt register logic

PR-1741 mmcsd_sdio: Properly arm the write completion detection

PR-1737 vfs: reuse file_dup2 direction in file_dup to prevent segfault issue

New Driver Support

PR-1797 leds: WS2812 LED controller (aka Adafruit NeoPixel)

PR-1851 kbd: Add support for SolderParty BlackBerry Q10 Keyboard

PR-1618 BQ27426 fuel gauge

PR-1276 Add support for the ST7735 TFT Controller

Drivers With Significant Improvements

PR-1816 stmpe811: Add SPI support for touch screen controller

PR-1800 vfs: Add FIOCLEX/FIONCLEX ioctl support

PR-1798 mmcsd: Allow setting IDMODE_CLOCK via kconfig

PR-1587 BCH: Delay the sector flush to avoid multiple earse/write operations in sequence write

PR-1577 rwbuffer: Avoid allocating memory for the temporary erase buffer by the FTL driver

PR-1466 Altair Modem: Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, Fix priority of SPI transfer task is too low, Modify timeout value for RX ready

Board Support

Significant Improvements

PR-1618 metro-m4: Add support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gague initialization

New Board Support

PR-1664 NRF52: Add support for NRF52832 MakerDiary MDK board

PR-1633 NRF52: Add support for Sparkfun NRF52832 Breakout Board

Boards With Significant Improvements

PR-1644: stm32f746g-disco: Move serial console from USART6 to USART1 which is attached to the USB virtual COM port.

File System

...

1607 mm: Implement malloc_usable_size

PR-1606 sched/pthread: Implement pthread_attr_detachstate

PR-1600 Implement epol_pwait and EPOLLONESHOT flag

PR-1597 sched: Support passing non empty argument to init task

PR-1596 libc: Replace all sem_xxx with _SEM_XXX. This insures the correct semaphore interface is used by userspace and the kernel.

PR-1517 sched/wdog: Chang the default value of MAX_WDOGPARMS from 4 to 2 as wd_start is two every where in the code base. Also bump CONFIG_MAX_WDOGPARAMS from 1 to 2 in defconfigs to support pthread_condclockwait()

PR-1486 libc: Implement ftw and nftw functions

PR-1567 libc: Implement proposed POSIX _clockwait variants of _timedwait functions

PR-1411 libxx: Integrate latest uclibcxx 0.2.5


Bug Fixes

PR-1911 init_section was not being emitted resulting in C++ static constructors not being called.

PR-1889 Fix build error for ::setbuf  if CONFIG_STDIO_DISABLE_BUFFERING is set

PR-1595 epoll_wait() must loop until "maxevents" to fille output evs array

PR-1519 libc: Replace index/rindex from macro to function to protect against side effects with conflicting local variables

PR-1514 Remove usage for user-space memalign() from kernel/driver code.  Instead use the proper kernel memory interface.

PR-1512 / PR-1510 / PR-1507 Remove usage for user-space malloc()/zalloc()/free() from kernel/driver code.  Instead use the proper kernel memory interface.

PR-1496 libc: Change ctype macro to normal function to resolve macro evaluation side effects

Major Changes to the Build System

New Features

PR-1786 Support building external code into the OS

PR-1396 Make C/C++ search path common so all boards support uClibc++/libc++ automatically

Bug Fixes

PR-1713 Fix export target: libboard was missing KERNEL flag.

PR-1470 Fix Make.dep not updated by .config changes

PR-1345 Enhance export target: make BIN directory configurable, export post build script, use LDNAME instead of LDSCRIPT

PR-1332 Include incdir.c in the export target

Architectural Support

New Architecture Support

PR-1847 ARM: Initial support for ARMV6M to support CortexM0+

PR-1397: EOSS3: Initial support for the QuickLogic EOS S3 SoC

Architectures With Significant Improvements

cxd56xx

PR-1753 cxd56xx: Use spinlock in gpioint to improve SMP performance

PR-1650 cxd56xx: Use spinlock in rtc to improve SMP performance

PR-1621 cxd56xx: Use spinlock in serial to improve SMP performance

PR-1569 cxd56xx: Add SMP support to cxd56_farapi.c

PR-1689 cxd56xx: Use spinlock in uart to improve SMP performance

ESP32

PR-1422 ESP32: Add SPI driver (Master & Slave)

PR-1435 ESP32: Add I2C driver

PR-1491 ESP32: Add SPI Flash driver

PR-1525 ESP32: Add Ethernet driver

PR-1610 ESP32: Improve SPI transmision (DMA, IOMUX, software CS)

PR-1630 ESP32: Add support for HW RNG

PR-1830 ESP32: Add Power Management of Force-Sleep

PR-1859 ESP32: Add hist timer and improve the oneshot timer logic

PR-1754 ESP32: Add support for external SPIFLASH

PR-1613  ESP32: Add function for switching CPU from 80MHz to 240MHz

PR-1712 ESP32: Add support for external MMCSD card over SPI

IMXRT

PR-1868 IMXRT: Add ADC driver

Kinetis

PR-1624 Kinetis: USBHOST improvements to avoid race condition durring freeing for queue head structure by using Async Advance Doorbell.

PR-1516 Kinetis K28: Add support for USB High Speed Host

NRF52

PR-1418 NRF52: Add Timer and RTC drivers

PR-1432 NRF52: Add timer lowerhalf

PR-1635 NRF52: Add support for RTC event handling

PR-1636 NRF52: Add support for PPI peripheral

PR-1681 NRF52: Add support for GPIOTE task mode

PR-1726 NRF52: Extend systimer support

PR-1773 NRF52: Add ADC and PWM support

PR-1915 NRF52: Add serial termios support (no flow control)

PR-1907 NRF52: Add basic error handing for i2c in polling mode to support i2ctool.  Still not handled in DMA mode.

PR-1839 NRF52: Add missing SPI callback register hooks to support drivers like mmcsd

PR-1646 NRF52: Better differentiation between NRF52840 and NRF52832

PR-1685 NRF52: Add ARM system reset support.  Add UID support.

PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources.

RISCV

PR-1858 RISCV: Add missing CSR macros listed in RISC-V spec V1.10.

RX65N

PR-1622 RX65N: Add I2C(RIIC) support

PR-1894 RX65N: Add USB device support

PR-1899 RX65N: Add DTC driver

PR-1910 RX65N: Add SPI driver support

SAMD5E5

PR-1515 SAMD5E5: Add Watchdog timer support

PR-1574 SAMD5E5: Add USB host support

PR-1594 SAMD5E5: Freerun timer, oneshot timer and tickless support

PR-1816 SAMD5E5: Add MTD progmem support and NVM USER PAGE IOTCLs

SAMA5D2

PR-1412 SAMA5D27: Implement system reset to support nsh reboot command

PR-1393 SAMA5D2x: Implement SDMMC peripheral support

SIM

PR-1914 SIM: SIGUSR1 handling now uses NuttX interrupt logic

PR-1767 SIM: Allow access to tty interfaces for better termios support

PR-1655 SIM: Add support for Linux HCI Socket as a NuttX BLE adapter.  Full NuttX BLE stack can be run against any Linux Bluetooth adapter in sim.

PR-1558 SIM: Add support for Stack Smashing Protector.

PR-1392 SIM: Make uClibc++ and libcxx work on sim platform

STM32

PR-1865 STM32F4:  Add support for STM32F412CE fixing I2C2/I2C3 and USART1 alt

PR-1506 STM32: Add support for single wire UART push/pull mode

Bug Fixes

AVR

PR-1410 avr: Implement missing double_t type, CONFIG_STACK_ALIGNMENT, linker emulation flags

CXD56xx

PR-1930 cxd56xx: Fix handle_irqreq() in cxd56_cpupause.c

PR-1789 CXD56xx: Fix deadlock issue in up_txinit() in SMP mode.

PR-1620 cxd56xx: Fix IRQ control in cxd56_dmac.c

ESP32

PR-1908 ESP32: Fix task signal process preemption

IMXRT

PR-1527 IMXRT: Fix kconfig so that IMXRT_ENET_NRXBUFFERS can be set

NRF52

PR-1928 NRF52: Fix PPI group disable and add group clear

PR-1885 NRF52: Fix SPI driver structures when SPI_EXCHANGE is not set

PR-1799 NRF52: Fix SPI_MASTER entry in kconfig

PR-1787 NRF52: Fix base address for SPIM{1,2,3}

PR-1777 NRF52: Handle case where rx or tx buffer could be 0 but data would still be transferred. Also error if more than max data is requested.

PR-1770 NRF52: Fix bug where SPI cmddata was not properly mapped for SPIM 0,2,3

RISC-V

PR-1909 RISC-V: MIE instead of MPIE register was being used in up_schedule_sigaction for storing interrupt state

SIM

PR-1903 SIM: Fix complication issue for WPCAP in Cygwin build

PR-1888 SIM: Fix EOVERFLOW returned when CONFIG_SIM_M32 is set

PR-1709 SIM: Fix up_cpu_start initialization for macOS with SMP enabled

STM32

PR-1841 STM32: Remove broken overdriver support

PR-1719 STM32: Lowputc: Ensure USART is disabled before attempting to configuring it

PR-1714 STM32H7: Fix I2C driver interrupt storm

PR-1556 STM32: Fix IO compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0

PR-1529 STM32: Fix intialization bug in ADC that prevented adc_reset() from working correctly

STM32F7

PR-1898 STM32F7: Fixes data loss bug in UART5 with TX DMA

PR-1553 STM32F7: Fix possible interrupt blocking in serial TXDMA ISR

Miscellaneous

PR-1912 Fix up_interrupt_contex() in case of SMP - Make sure the operation is atomic in case of SMP

Driver Support

Bug Fixes

PR-1896 spi_xx25xx EEPROM: return the number of bytes written instead of 0 or error

PR-1891 serial: Don't mangle PID when ISIG is changed

PR-1856 pipe: In case of empty pipe with no writers, return EOF instead of EAGAIN

PR-1836 stmpe811: Fix incorrect GPIO interrupt register logic

PR-1741 mmcsd_sdio: Properly arm the write completion detection

New Driver Support

PR-1797 leds: WS2812 LED controller (aka Adafruit NeoPixel)

PR-1851 kbd: Add support for SolderParty BlackBerry Q10 Keyboard

PR-1618 BQ27426 fuel gauge

PR-1276 Add support for the ST7735 TFT Controller

Drivers With Significant Improvements

PR-1816 stmpe811: Add SPI support for touch screen controller

PR-1800 vfs: Add FIOCLEX/FIONCLEX ioctl support

PR-1798 mmcsd: Allow setting IDMODE_CLOCK via kconfig

PR-1587 BCH: Delay the sector flush to avoid multiple earse/write operations in sequence write

PR-1577 rwbuffer: Avoid allocating memory for the temporary erase buffer by the FTL driver

PR-1466 Altair Modem: Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, Fix priority of SPI transfer task is too low, Modify timeout value for RX ready

PR-1471 ramlog: Add option to overwrite buffer

Board Support

Significant Improvements

PR-1618 metro-m4: Add support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gague initialization

PR-1727 b-g474e-dpow1: Add support for FLASH bootloader

PR-1683 cxd56xx: Add wifi_smp configuration

PR-1668 SIM: Add new configuration for SMP

PR-1464 cxd56xx: Add new GNSS functions, support for lower PWM frequency, CONFIG_CPUFREQ_RELEASE_LOCK, high speed ADC, HPADC input gain configuration, eMMC device, frame buffer support

New Board Support

PR-1664 NRF52: Add support for NRF52832 MakerDiary MDK board

PR-1633 NRF52: Add support for Sparkfun NRF52832 Breakout Board

PR-1728 SAMA5D27: Add support for Giant Board

PR-1397: EOSS3: Initial support for the QuickLogic EOS S3 SoC QuickFeather board

Boards With Significant Improvements

PR-1644: stm32f746g-disco: Move serial console from USART6 to USART1 which is attached to the USB virtual COM port.

PR-1405: stm32f4discovery: Add ELF support to wifi configuration

PR-1402: imxrt1060: Add buttons support to iMXRT1060

File System

Bug Fixes

PR-1796 vfs: Fix memory leak calling pseudorename

PR-1794 vfs: Fix issue where opendir would remove the trailing whitespace or /

PR-1793 vfs: Make sure that rename of mount point uses pseudorename.  Previously mv on a mountpoint would return err 88.

PR-1737 vfs: reuse file_dup2 direction in file_dup to prevent segfault issue

PR-1490 Insure that filesystems can all support paths that end with '/'


Significant Improvements

PR-1554 CROMFS: Add support for hard links

PR-1499 FAT: Add support for UTF8 long filename

PR-1479 vfs: Add file descriptor based events support eventfd()

Networking

Bug Fixes

Significant Improvements

...