Commit graph

58041 commits

Author SHA1 Message Date
nuttxs
e1ffc1075d arch/esp32_spi: Add check to see if the TX_FIFO is empty
to avoid sending empty data

Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
2025-03-27 02:20:02 +08:00
yangao1
ded5a6aae5 nxgdb/dmesg.py:add use gdb dump rpmsg_syslog
(gdb) dmesg
RAM log:
[01/06 02:27:05] [ 1] [cp] reset mode:1
...
[01/06 02:27:05] [ 1] [cp] Dump board_reset backtrace:
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace| 1: 0x10a0d880 0x10a0a78e 0x10a0d8b6 0x10a0f29e 0x10a0f182
[01/06 02:27:05] [ 1] [cp] Time: Mon Jan  6 02:27:05 2025
---END of RAMLOG

RPMSG syslog:
dumpstack: backtrace|10: 0x10a0d880 0x10a0a78e 0x10a110de 0x10a3a482 0x10a3c4fa 0x10a23358 0x10a4aaee 0x10a34a7c
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|10: 0x10a2330a 0x10a0f1f4
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|11: 0x10a0d880 0x10a0a78e 0x10a110de 0x10a3a482 0x10a15152 0x10a0f182
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|15: 0x10a0d880 0x10a0a78e 0x10a0d8b6 0x10a174d0 0x10a3a482 0x10a3c4fa 0x10a222ee 0x10a18c66
[01/06 02:27:05] [ 1] [cp] Time: Mon Jan  6 02:27:05 2025
---END of RPMSG SYSLOG---

Signed-off-by: yangao1 <yangao1@xiaomi.com>
2025-03-27 02:18:37 +08:00
Alexander Lerach
d1be769038 arch/arm: Fix crash when using memcpy/memset as RAMFUNCS
Add no_builtin for memcpy/memset to the startup code of boards
with CONFIG_ARCH_RAMFUNCS, because certain compilers call memcpy/memset
instead of the explicit for loop. This will cause a crash if memcpy/memset
are mapped to RAM because the function that copies them to RAM is called later,
resulting in undefined code being executed.

Signed-off-by: Alexander Lerach <alexander@auterion.com>

arch/arm: Use decorator for entry point

Use a decorator that contains the required no_builtin instead of adding
them explicitly to the startup code. This way it will be easier to
maintain them in the future when changes to the no_builtin used are required.

Signed-off-by: Alexander Lerach <alexander@auterion.com>

arch/arm: Rename decorator

Rename the entry point decorator used for the startup code to a less explicit name.
This way the style is more consistent with other decorators.

Signed-off-by: Alexander Lerach <alexander@auterion.com>
2025-03-27 02:17:14 +08:00
Tim Hardisty
3ad4ae503a drivers/mtd/gd55.c: fix uninitialised variables.
These caused runtime errors and compiler warnings.

Signed-off-by: Tim Hardisty <timh@jti.uk.com>
2025-03-27 02:16:48 +08:00
Michal Lenc
19b655b4fd arch/arm/sama5/spi: fix ifdelay setup in spi_setdelay call
ifdelay description (delay between frames) matches the DLYBCT field
(delay between consecutive transfers without removing chip select)
much better compared to stopdelay (delay between last CLK and CS
inactive). The option for stopdelay does not seem to be configurable
in SAMA5 peripheral.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2025-03-26 23:20:10 +08:00
raiden00pl
ae1950ebd9 boards/arm/nrf52/nrf52840-dk: add GPIO driver based on leds and buttons
With this change we can use on board leds and buttons with gpio driver

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-26 23:16:26 +08:00
Jukka Laitinen
b83493d8a0 Normalize defconfigs, remove CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT=y
This is now default when CONFIG_PRIORITY_INHERITANCE=y

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-26 22:36:48 +08:00
Jukka Laitinen
06d00b4c88 Correct the pthread mutex priority inheritance default setting
After pthread mutexes changed to nxmutex, the priority inheritance
was set on by default; even if one tried to control it with
CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT.

Also the CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT is not effective.

Fix this by setting the default mutex priority adjustment flags according
to CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT and CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-26 22:36:48 +08:00
simbit18
d7681cc815 CI: Improved speed to build nuttx on MSYS2 job
After MSYS2 updated the package on GitHub
there was a slowdown in building NuttX in the MSYS2 job.

It went from an average of 6 minutes to 10 minutes !!!

The purpose of this PR is to speed up the build to decrease the usage of the Windows runner.

Modified Files
tools/ci/cibuild.sh

tools/sethost.sh

make olddefconfig -j 4 -> make olddefconfig
workaround for remove
  Cleaning...
  Configuring...
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-03-26 22:35:19 +08:00
anjiahao
3844b43afe serial:gdbstub need enable irq
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2025-03-26 22:34:46 +08:00
ouyangxiangzhen
2b53d5af8d arch/arm64: Increase the timer accuracy with the lower USEC_PER_TICK.
This commit increased the timer accuracy with the lower USEC_PER_TICK.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-03-26 19:26:37 +08:00
ouyangxiangzhen
a121c059c4 arch/arm64: Optimize the initialization of the timer.
This commit optimized the initialization of the ARM generic timer for each cpu core.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-03-26 19:26:37 +08:00
stbenn
c4a84e30b7 driver/mtd: ramtron multi-device spi bus support
Adds a device ID to ramtron_initialize, which is stored in the ramtron_dev_s structure.
This ID is used when calling SPI_SELECT to board specific logic to allow chip select on the SPI bus.

This change is NOT backwards compatible, as it changes the function signature of ramtron_initialize.

This implementation is based on the handling of chip select in nuttx/drivers/mtd/sst26.c:sst26_initialize_spi().

Additional Changes:
  - Add MB85RS64V to ramtron supported parts list.
2025-03-26 19:26:01 +08:00
raiden00pl
1178bf4c57 CMakeLists.txt: fix warnings when using upstream boards in out-of-tree configs
When we use upstream board as a target in out-of-tree board configurations we
should not link dummy/Kconfig with a board Kconfig otherwise this file is
included twice which cause cmake warnings.

For example, when out-of-tree configuration is like this:

  CONFIG_ARCH_BOARD_CUSTOM=y
  CONFIG_ARCH_BOARD_CUSTOM_DIR="boards/arm/stm32/b-g431b-esc1/"
  CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
  CONFIG_ARCH_BOARD_CUSTOM_NAME="b-g431b-esc1"

this results with many warnings during configuration stage:

  CMake Warning at cmake/nuttx_kconfig.cmake:171 (message):
    Kconfig Configuration Error: warning: the default selection
    BOARD_STM32_BG431BESC1_USE_HSI (defined at
    boards/arm/stm32/b-g431b-esc1/Kconfig:12,
    /home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) of
    <choice> (defined at boards/arm/stm32/b-g431b-esc1/Kconfig:8) is not
    contained in the choice

    warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSI (defined at
    boards/arm/stm32/b-g431b-esc1/Kconfig:12,
    /home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) is
    defined with a prompt outside the choice

    warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSE (defined at
    boards/arm/stm32/b-g431b-esc1/Kconfig:15,
    /home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:15) is
    defined with a prompt outside the choice

    warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSI (defined at
    boards/arm/stm32/b-g431b-esc1/Kconfig:12,
    /home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) is
    defined with a prompt outside the choice

    warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSE (defined at
    boards/arm/stm32/b-g431b-esc1/Kconfig:15,
    /home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:15) is
    defined with a prompt outside the choice

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-26 19:24:36 +08:00
Javier Casas
e0b221016f driver/mtd/at45db.c: write to page without built-in erase
Using the FTL driver over a MTD flash device, when writing to flash, eventually the ftl_flush function is called and it does an erase (MTD_ERASE) and then the write (MTD_BWRITE). Currently, the at45db driver (at45db.c), uses a write command 0x82 ("Main Memory Page Program through Buffer 1 with Built-In Erase") that also performs a built-in erase before the write. In summary, each time a write to flash is performed, the page is erased twice before it is written, first in the FTL driver and then in the MTD driver.

This PR is to change the page writes to not use that built-in command.

Signed-off-by: Javier Casas <javiercasas@geotab.com>
2025-03-26 10:29:12 +08:00
wangjianyu3
fbf1ccae0e Documentation/szpi-esp32s3: Add doc for PCA9557
Add basic NuttShell configuration console and I/O expander driver PCA9557 enabled.

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-25 15:46:09 -03:00
wangjianyu3
dd1e31b22c boards/szpi-esp32s3: Init config for PCA9557
Build & Burn

  ./tools/configure.sh -l lckfb-szpi-esp32s3:pca9557
  make flash -j$(nproc) ESPTOOL_PORT=/dev/ttyUSB0

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-25 15:46:09 -03:00
wangjianyu3
ce6d6b4602 boards/szpi-esp32s3: Add support for PCA9557
https://wiki.lckfb.com/zh-hans/szpi-esp32s3/open-source-hardware/

| PCA9557 | ESP32S3 |
|---------|---------|
| SCL     | IO2     |
| SDA     | IO1     |
| A0      | 3V3     |
| A1      | GND     |
| A2      | GND     |

| PCA9557 | Peripherals |
|---------|-------------|
| IO0     | LCD_CS      |
| IO1     | PA_EN       |
| IO2     | DVP_PWDW    |

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-25 15:46:09 -03:00
wangjianyu3
b73d7f2922 drivers/ioexpander: Add support for PCA9557
Datasheet: https://www.ti.com/lit/ds/symlink/pca9557.pdf

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-25 15:46:09 -03:00
wangjianyu3
5c2cfe8bac boards/esp32s3: Fix esp32s3_gpio_init undefined
When enable both `DEV_GPIO` and `GPIO_LOWER_HALF` for a GPIO pin device for an I/O expander pin.
See esp32s3_gpio.c for more details.

Log

  xtensa-esp32s3-elf-ld: /workspace/nuttx/staging/libboard.a(esp32s3_bringup.o):(.literal.esp32s3_bringup+0x14): undefined reference to `esp32s3_gpio_init'
  xtensa-esp32s3-elf-ld: /workspace/nuttx/staging/libboard.a(esp32s3_bringup.o): in function `esp32s3_bringup':
  /workspace/nuttx/boards/xtensa/esp32s3/common/board/esp32s3_bringup.c:409: undefined reference to `esp32s3_gpio_init'

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-25 15:46:09 -03:00
Ville Juven
25e7b48c7e mpfs/mpfs_rcc: Add stub driver for FPGA clock and reset controller
This patch adds a driver framework to control individual FPGA reset and
clock gates.

For FPGA devices, only the fabric (FIC0/FIC1/FIC3) clock and reset can be
controlled, which affects the whole fabric / domain. This is problematic
for obvious reasons.

For MSS peripherals, clocks and reset are controlled individually for each
peripheral via MSS memory mapped registers (MPFS_SYSREG). To get the same
capability for FPGA peripherals, the same controller needs to be
fabricated on the FPGA.

However, the FPGA clock/reset controller is entirely user dependent, so a
generic implementation is not possible. However, a generic driver is
needed in order to build the current FPGA peripheral drivers. A stub
implementation of the driver is provided in order to achieve this.

Signed-off-by: Ville Juven <ville.juven@unikie.com>
2025-03-25 11:59:47 -03:00
Tony Lin
10d46929b9 Documentation/drivers/analog/adc/ads1115: Add documentation for the Texas Instrument ADS1115 driver
This commit adds the documentation for the Texas Instruments ADS1115 Driver.

Signed-off-by: Tony Lin <99093620+justapotato213@users.noreply.github.com>
2025-03-25 09:49:51 +01:00
Tony Lin
1f2f910ccd drivers/analog/ads1115: Add support for the Texas Instruments ADS1115
This patch adds initial support for the Texas Instruments ADS1115 ADC.
Please read the documentation for more details.

Signed-off-by: Tony Lin <99093620+justapotato213@users.noreply.github.com>
2025-03-25 09:49:51 +01:00
Tiago Medicci Serrano
85d9078a98 Documentation/testing: Add MTD transfer rate test app docs
Add documentation entry for the `mtd` test/benchmark application.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-03-24 16:08:42 -03:00
SPRESENSE
64b97bda5d drivers/sensors: Add CXD5602PWBIMU driver for IMU Add-on board
Add CXD5602PWBIMU driver for IMU Add-on board.

Signed-off-by: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com>
2025-03-24 16:07:45 -03:00
Eren Terzioglu
0bbdeb4b22 boards/esp32s3/esp32s3-box: Normalize esp32s3-box defconfigs
Normalize esp32s3-box defconfigs to fix CI issues

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-24 21:28:04 +08:00
Eren Terzioglu
43f982db1a arch/xtensa/esp32s3: Change default pins for esp32s3-lcd-ev-board v1.5
Change default pins for esp32s3-lcd-ev-board to prevent pin changes between boards

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-24 21:28:04 +08:00
Eren Terzioglu
fdfa589ce1 boards/xtensa/esp32s3: Add version support for esp32s3-lcd-ev boards
Add version support for esp32s3-lcd-ev boards to prevent pin changes

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-24 21:28:04 +08:00
Jari Nippula
930c4b0b0e arch/risc-v/mpfs: set GMAC_RX_UNITSIZE to max gmac frame len
Verify that GMAC RX/TX buffers are 64 byte aligned

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-24 20:27:52 +08:00
Jani Paalijarvi
12290d0111 arch/risc-v/src/mpfs/mpfs_ethernet.c: Remove unnecessary phyinit
mpfs_phyinit() was called twice during ifup().

Signed-off-by: Jani Paalijarvi <jani.paalijarvi@unikie.com>
2025-03-24 20:27:52 +08:00
Jukka Laitinen
cc662453c1 arch/risc-v/src/mpfs/mpfs_ethernet.c: Fix compilation with CONFIG_DEBUG_NET
- Fix compilation failure "error: 'mpfs_phydump' defined but not used [-Werror=unused-function]"
- Add debug dump of phy registers.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2025-03-24 20:27:52 +08:00
Jukka Laitinen
ea321d86cb arch/risc-v/src/mpfs/mpfs_ethernet.c: Add RX timeout workaround for broken PHYs
If the interface is UP, and no packets are received in 30s, re-initialize the interface by calling the
already implemented mpfs_txtimeout_expiry.

This is a workaround for a bug where IF might be UP and working but packets can only
be transmitted. Receive side just doesn't work at all. The bug manifests at least in
older LAN8742A (rev A and B), for which also a silicon errata exists.

The original issue can be re-produced easily by disconnecting and reconnecting the ethernet cable while
the IF is up.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-24 20:27:52 +08:00
Jukka Laitinen
f3142be127 mpfs/ethernet: Move txtimeout from HPWORK to LPWORK
- Use LPWORK by default if CONFIG_MPFS_ETHMAC_HPWORK is not defined
- Always use LPWORK for timeouts; this makes very lengthy operations such as re-initializing PHY.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-24 20:27:52 +08:00
raiden00pl
d9ee02bc2e boards/nucleo-f302r8: add rs485 support
add rs485 support for nucleo-f302r8 based on RS485 CAN Waveshare shield.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-24 20:25:29 +08:00
raiden00pl
6443b33a39 boards/nucleo-f302r8: add ADC support
Add ADC support for nucleo-f302r8.
CN8 pins 35, 36, 37 and 38 are used.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-24 20:24:57 +08:00
raiden00pl
9394962cf6 Documentation: move debug pages to a separate top level page
Move debug related pages from Guides to a separate top level page.
This way all pages related to debugging will be in one place
which is more user friendly.

Related Github issue: https://github.com/apache/nuttx/issues/15667

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-24 20:23:47 +08:00
Rodrigo Sim
a4777f153b boards/arm/ra4 Add support to Seeed Xiao RA4M1 Board
Added initial support for Seeed Studio XIAO RA4M1 Board. Initial
support to NuttShell via Serial, gpio and userleds. Also two
configurations is available: nsh for basic NuttShell access and
combo for gpio and userleds.

Signed-off-by: Rodrigo Sim <rcsim10@gmail.com>
2025-03-24 20:21:11 +08:00
Rodrigo Sim
02937bd939 Documentation: Add XIAO RA4M1 Board
Added documentation for Seeed Studio XIAO RA4M1
Board.

Signed-off-by: Rodrigo Sim <rcsim10@gmail.com>
2025-03-24 20:20:01 +08:00
raiden00pl
f3a4011a20 arch/{rp2040|rp23xx}: remove ADC option from Kconfig
Remove duplicated "config ADC" option which is already defined in drivers/analog/Kconfig.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-03-23 10:41:54 -03:00
Kevin Witteveen (MartiniMarter)
6b3f7e0939 Documentation/components/drivers/character/wireless: IOCTL interface initial documentation.
Adds initial documentation to the IOCTL commands of wireless character devices.

Signed-off-by: Kevin Witteveen (MartiniMarter) <kevinwit1999@gmail.com>
2025-03-23 17:51:15 +08:00
Kevin Witteveen (MartiniMarter)
1cd3b3d01c nuttx/wireless/ioctl: Common IOCTL API for RF Modulation Technologies.
This PR is a follow-up of issue #15856 and the mailing list proposal "Proposal: Common IOCTL API for RF Modulation Technologies"

Before this PR, the IOCTL API for character-driven RF devices lacked a common
interface across different modulation technologies, such as LoRa, FSK, and
OOK. The result was, driver-specific IOCTL commands were created even when they
could be shared across multiple radios. This fragmentation made
application portability more difficult to maintain.

This PR will add a common API that can be shared across all new drivers.
Such as
* LoRa
* FSK
* OOK / ASK
* read() return struct

Signed-off-by: Kevin Witteveen (MartiniMarter) <kevinwit1999@gmail.com>
2025-03-23 17:51:15 +08:00
Eren Terzioglu
141d5f8065 arch/risc-v/esp32[c3|c6|h2]: Fix I2C Slave driver write bug
Fix I2C Slave driver write bug when multiple write operation existed for risc-v based Espressif devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-23 17:48:18 +08:00
Eren Terzioglu
9a5a719835 arch/xtensa/esp32[-|-s2|-s3]: Fix I2C Slave driver write bug
Fix I2C Slave driver write bug when multiple write operation existed for Xtensa based Espressif devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-23 17:48:18 +08:00
Eren Terzioglu
a11baeabc1 arch/xtensa/espressif: Fix I2C Slave driver build error
Add missing files which are causing I2C Slave driver build error for Xtensa based Espressif devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-23 17:48:18 +08:00
yangsong8
a0a61ff345 driver/serial/cdcacm: Get the status of rx or tx buf by ioctl
In cdcacm, USB req buf is directly used as serial buf, so the getting
buf status operation in ioctl is different from the original serial.

Signed-off-by: yangsong8 <yangsong8@xiaomi.com>
2025-03-22 08:41:33 +08:00
wangjianyu3
a99c1839f1 boards/xtensa: Add support for szpi-esp32s3
Add configurations for nsh, adb, fastboot, etc.

Build & Burn

  ./tools/configure.sh -l lckfb-szpi-esp32s3:adb
  make flash -j8 ESPTOOL_PORT=/dev/ttyUSB0

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-22 08:40:40 +08:00
wangjianyu3
0dc3445bbd Documentation/esp32s3: Add doc for SZPI ESP32-S3
Add documentation for LCKFB SZPI ESP32-S3.

Official website: https://wiki.lckfb.com/zh-hans/szpi-esp32s3/

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-03-22 08:40:40 +08:00
Eren Terzioglu
453c6f75cf Documentation/esp32: Add snake defconfig docs for esp32
Add snake defconfig docs for esp32 devkitc board

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-21 10:28:45 -03:00
Eren Terzioglu
9c2b481cfe boards/esp32: Add snake defconfig
Add snake defconfig for esp32 devkitc board

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-21 10:28:45 -03:00
Eren Terzioglu
8ffc6689f4 Documentation/games: Add snake game docs
Add snake game documentation on docs

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-03-21 10:28:45 -03:00