Commit graph

63241 commits

Author SHA1 Message Date
wangjianyu3
21e9d0cafa Documentation/rexecd: document command-line options including -t
Fill in the previously empty rexecd page with a description of the
daemon, its listening port/RPMsg name, usage, and all command-line
options (-4/-6/-r/-t), including the new -t threadless option that
serves each connection inline without a per-connection worker thread.

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2026-06-30 20:19:16 +08:00
Xiang Xiao
9e141acab3 !include/fcntl.h: align open flags with Linux values
Align the NuttX open(2) flag constants with the Linux asm-generic
values so that the FUSE wire protocol and other cross-platform
interfaces work without conversion.

All code that used '(flags & O_RDONLY)' as a bitmask check (always 0
now that O_RDONLY=0) has been updated to use '(flags & O_ACCMODE)'
comparisons.

The NUTTX_O_* constants in include/nuttx/fs/hostfs.h are updated to
match, and the sim hostfs open flag mapping is fixed.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-30 13:43:44 +08:00
tengshuangshuang
9c381340c0 shm: fix shm_open permission error
to pass PSE52 test suite

Signed-off-by: tengshuangshuang <tengshuangshuang@xiaomi.com>
2026-06-30 13:43:44 +08:00
Catalin Visinescu
9ec50ceb0d tools/nxstyle.c: Add symbols for drivers/crypto/pnt/pnt_se05x_api.c
This file does not build with minor modifications due to nxstyle issues.
Adding symbols to the white_content_list to address_this.

Testing: "gcc -o nxstyle nxstyle.c" builds fine.

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
2026-06-30 03:28:39 +08:00
Alan Carvalho de Assis
d59ab52935 arch/arm: Fix LPC2378 to work again
Olimex LPC-2378-STK was the first board I ran NuttX in 2010. Then
in 2023 I found this board on eBay and decided to buy it to try
NuttX on it again, but for my disappointment it was not working:
https://acassis.wordpress.com/2023/04/01/testing-nuttx-again-on-olimex-lpc2378-stk-board/

Then I opened an Issue: https://github.com/apache/nuttx/issues/19201
and Xiang Xiao and ldube helped me to get it working again.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-06-30 03:28:12 +08:00
Michal Lenc
6e239036bc test_os.py: fix foopencookie test spellcheck
succesfull => successful

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-06-29 14:44:17 +02:00
Michal Lenc
93975f0817 ci: add stdbit.h test
Test stdbit functions in CI.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-06-29 14:44:17 +02:00
dependabot[bot]
5d443efd17 build(deps): bump actions/cache from 5 to 6
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-29 12:59:18 +02:00
Catalin Visinescu
6f74205b42 nuttx/drivers/crypto/pnt/pnt_se05x_api: Minor Overflow in Secure Element
Driver May Cause a DoS

Invalid data is passed to the NXP Plug & Trust Nano Package used by the
NuttX secure element driver. If the NXP code is not handling the malformed
data, a corruption can occur. Alternatively, if the attacker is able to
point create_signature_args->algorithm in memory at an address that is not
accessible, a crash can occur.

Applicable to:
* `signature_algorithm_mapping[create_signature_args->algorithm]`
* `signature_algorithm_mapping[verify_signature_args->algorithm]`

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
2026-06-29 13:50:16 +08:00
Martin Vajnar
a923e4a714 stm32f746g-disco: Fix USERLED support
Provide correct pin name BOARD_LED1 and associated bit mask
BOARD_LED1_BIT. Also use non-negated `ledon`. Add initialization into
bringup code.

Signed-off-by: Martin Vajnar <martin.vajnar@gmail.com>
2026-06-28 11:40:10 -03:00
Xiang Xiao
6161c73639 include/fcntl.h: remove O_RDOK/O_WROK aliases
O_RDOK and O_WROK are non-standard aliases for O_RDONLY and O_WRONLY
respectively.  Having two names for the same flag creates confusion,
especially when aligning the flag values with Linux.  Remove the
aliases and replace all uses with the standard O_RDONLY/O_WRONLY.

No functional change — O_RDOK was defined as O_RDONLY and O_WROK as
O_WRONLY, so the replacement is a pure text substitution.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-28 09:10:11 -03:00
Chengdong Wang
1924a96064 arch/riscv: Add CONFIG_ARCH_RV_ISA_ZICSR_ZIFENCEI for fence.i
The fence.i instruction is only available when the Zifencei extension
(CONFIG_ARCH_RV_ISA_ZICSR_ZIFENCEI) is supported by the hardware.

This commit adds a macro wrapper around fence.i usages to prevent
compilation errors on toolchains or targets where the Zifencei
extension is absent.

Signed-off-by: Chengdong Wang <wangcd91@gmail.com>
2026-06-28 02:17:03 +08:00
Felipe Moura
3f00e60c1f Documentation/esp32c3-devkit: document Dropbear SSH server setup
Describe how to enable and use the Dropbear SSH server on the ESP32-C3
DevKit, including Wi-Fi, host key, and login configuration.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-06-27 14:07:56 -03:00
Felipe Moura
e46e7edbdf boards/esp32c3-devkit: add Dropbear SSH server support
Add a board configuration that enables the Dropbear SSH server on the ESP32-C3 DevKit with Wi-Fi networking and the required crypto support.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-06-27 14:07:56 -03:00
Eren Terzioglu
5e1b10971d Docs/platforms/esp32p4: Add crypto docs for esp32p4
Add missing crypto accelerator docs for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-06-27 19:32:06 +08:00
Eren Terzioglu
bd83ffcae7 boards/risc-v/espressif: Add SHA512 and SHA224 board support
Add SHA224 board support for esp32[-c3|-c6|-h2|-p4]
Add SHA512 support for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-06-27 19:32:06 +08:00
Eren Terzioglu
940e292cd1 arch/risc-v/espressif: Add SHA512 and SHA224 support
Add SHA512 and SHA224 support for supported devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-06-27 19:32:06 +08:00
Alan Carvalho de Assis
861125a75e drivers/audio: Fix audio tone generator
The audio tone generator stopped working with the 'echo' command
since https://github.com/apache/nuttx-apps/pull/1559

Before that PR:

nsh> echo "t120o1l16b9n0baan0bn0bn0baaan0b9n0baan0b" > /dev/tone0
tone_write: Received 41 bytes
nsh>

After that PR:

nsh> echo "t120o1l16b9n0baan0bn0bn0baaan0b9n0baan0b" > /dev/tone0
tone_write: Received 40 bytes
tone_write: Received 1 bytes
nsh>

Unfortunately the Audio Tone was not block new write attempts even
when it was already playing a melody.

This commit fix it and avoids the issue caused by that PR.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-06-26 15:33:39 -03:00
Junbo Zheng
578b303c63 arm/armv8-r: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
5ca845ff69 arm/armv8-m: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
8e644b1a70 arm/armv7-r: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
dc5b9b882a arm/armv7-m: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
f0fe80ec0f arm/armv7-a: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
1d4e4e9524 arm/armv6-m: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Junbo Zheng
ef963246c7 arm/arm: remove duplicate .globl for up_saveusercontext
The up_saveusercontext symbol was declared with .globl twice in a
row. The .globl directive is idempotent, so the duplicate line has
no effect on the generated object; drop it to match the single
declaration used by the other .S files in this directory.

Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2026-06-26 15:16:20 -03:00
Jiri Vlasak
9a4114a9d3 1wire: Move onewire_valid_rom to 1wire_crc.h
To let developers use all procedures implemented in the corresponding
.c file when 1wire_crc.h is included.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-06-26 22:50:43 +08:00
Xiang Xiao
2ea2655bc6 fs/dirent: add d_ino member to struct dirent
Add the POSIX d_ino (file serial number) member to struct dirent and
populate it on every readdir() path, so portable callers (e.g. scp in
dropbear) that read dp->d_ino observe a meaningful, non-zero inode
number:

  - include/dirent.h: declare d_ino in struct dirent and drop the
    outdated comment claiming the field is unimplemented.
  - include/nuttx/fs/hostfs.h: add d_ino to struct nuttx_dirent_s so
    the hostfs ABI can carry the inode number across the VFS boundary.
  - arch/sim/src/sim/posix/sim_hostfs.c: forward the host's
    ent->d_ino into entry->d_ino.
  - fs/vfs/fs_dir.c (read_pseudodir): copy the in-memory inode's
    i_ino into entry->d_ino for the pseudo filesystem.
  - fs/yaffs/yaffs_vfs.c: forward yaffs's dirent->d_ino into
    entry->d_ino.
  - fs/rpmsgfs: extend struct rpmsgfs_readdir_s with an 'ino' field
    and propagate it across the RPC in both rpmsgfs_server (fills it
    from the underlying entry) and rpmsgfs_client (writes it back to
    the caller's nuttx_dirent_s).

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-26 10:45:33 -04:00
Xiang Xiao
50377d0909 fs: widen ino_t from uint16_t to uint32_t
A 16-bit ino_t can only address 65536 distinct file serial numbers,
which is not enough for filesystems with large directory trees and
breaks portable software (e.g. dropbear's scp) that expects a wider
inode number space.  Widen ino_t (and nuttx_ino_t in the hostfs ABI)
to uint32_t to match common POSIX practice.

Update fs/rpmsgfs/rpmsgfs.h accordingly: promote the 'ino' field in
struct rpmsgfs_stat_priv_s from uint16_t to uint32_t and move 'nlink'
into the trailing 16-bit slot previously occupied by the reserved
field, keeping the overall packed-struct layout/size unchanged.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-26 10:45:33 -04:00
Xiang Xiao
fa61c78c78 sys/types: always use unsigned int for uid_t/gid_t
Move uid_t/gid_t out of the CONFIG_SMALL_MEMORY #ifdef so they are
always defined as unsigned int regardless of SMALL_MEMORY.

Update include/nuttx/fs/hostfs.h to match: drop the int16_t variants
of nuttx_gid_t/nuttx_uid_t and keep a single unsigned int definition
so the hostfs RPC ABI stays in sync with sys/types.h.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-26 10:45:33 -04:00
Michal Lenc
c13914c7b2 stdbit.h: fix compilation error of generic stdc_ functions
Generic stdc_ functions use _Generic macro, but this requires the type
specific functions stdc_*_uc, stdc_*_ul and so on to be functions,
not just another macro definitions.

This commit fixes the issue by ensuring all type specific functions
are static inline functions, not macro definitions.

There is no change other in the functionality or implementation.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-06-26 09:42:51 -04:00
Jorge Guzman
f5e3bb2459 boards/esp32p4: add support to M5Stack Tab5 board
This initial port supports NSH and the I2C0 bus; all board pins are
documented for future drivers.

Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
2026-06-26 09:32:08 -03:00
Carlos Sanchez
5feb1c4b8b arch/arm: fix DMA transfers with sizes smaller than 4 bytes.
When the buffer to send has a size not multiple of 4 bytes, 4-byte words
are sent correctly, but when the code reaches the section to send the
remaining bytes (1, 2 or 3) it was taking the remaining byte count as origin
of the copy, instead of the buffer (as it should). This commit fixes it
to correctly copy from the buffer pointer.

Signed-off-by: Carlos Sanchez <carlossanchez@geotab.com>
2026-06-25 16:57:41 -03:00
shichunma
21def97623 net/devif: harden devif_conn_event() against list mutation
devif_conn_event() saves list->nxtconn before invoking the current
callback. If the callback mutates its callback list, the saved local
successor may no longer match the post-callback list topology.

Align devif_conn_event() with devif_dev_event(): protect the current
callback with DEVIF_CB_DONT_FREE, refresh next after the callback
returns, and defer freeing the current node until iteration is safe.

Signed-off-by: shichunma <shichunma@bestechnic.com>
2026-06-25 15:19:02 -03:00
Catalin Visinescu
b840bf6552 drivers/can/ctucanfd_pci: Fix Malformed CAN Data Msg (address off-by-one)
PR https://github.com/apache/nuttx/pull/19139 addresses the issue, but there
is one minor problem. In the for loop the element `i+1` is written which
means there can still be an overflow by one element (uint32_t or 4 bytes).

Addressing here with this PR.

Tested locally, builds fine.

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
2026-06-25 15:15:20 -03:00
Michael Rogov Papernov
5c8fa78c4e ci/testing: Update MemBrowse targets and concurrency condition
Update the linker script path in membrowse-targets.json and
the cuncurrency condition, to prevent breaking the commit chain

Signed-off-by: Michael Rogov Papernov <michael@membrowse.com>
2026-06-25 12:56:02 -03:00
Alin Jerpelea
0d4ad87fe4 Documentation: add NuttX 13.0.0 release notes
add release notes for NuttX 13.0.0 release

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2026-06-25 19:50:07 +08:00
Felipe Moura
3aa3c21504 fs/vfs: provide link fallback without softlinks
Build fs_link.c unconditionally so link() remains available even when
CONFIG_PSEUDOFS_SOFTLINKS is disabled. Return ENOSYS in that
configuration instead of leaving applications with an undefined symbol.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-06-25 09:30:09 +08:00
Joao Mario Lago
2b17b0c992 arch/arm/stm32h5/adc: disable CONT for timer-triggered circular DMA
Clear ADC_CFGR_CONT when using timer-triggered circular DMA so each
timer event starts a single conversion sequence. This prevents the ADC
from free-running after the first trigger and losing syncronization with
the timer.

Signed-off-by: Joao Mario Lago <joao.mario.lago@hotmail.com>
2026-06-24 18:34:31 -03:00
Andrew Au
d79beefa54 armv7-m/armv8-m: honor SP modifications on signal return
On ARMv7-M/ARMv8-M, the hardware exception return determines the final
SP from the physical location of the HW exception frame, ignoring any
software modification to REG_R13 in the saved register context.  This
means signal handlers that adjust SP have their change silently
discarded.

Fix this by relocating the saved context in arm_sigdeliver before
calling arm_fullcontextrestore.  If the desired SP (regs[REG_R13])
differs from the implied SP, memmove the entire context frame so that
the hardware exception return produces the correct final SP.

The fix runs only in the signal return path, adding zero overhead to the
normal exception return hot path.

Signed-off-by: Andrew Au <cshung@gmail.com>
2026-06-24 15:00:35 -03:00
Xiang Xiao
9704481224 libc/unistd: add getgroups()
Add getgroups() to the C library.  NuttX has no supplementary group
IDs, so it reports a single group, the effective group ID, and follows
POSIX for the gidsetsize == 0 and short-buffer (EINVAL) cases.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-06-24 14:55:11 -03:00
raiden00pl
8b7639d5a3 Documentation: add STM32 porting guide
add STM32 porting guide

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
e5a9e5e1aa ci/arm-13.dat: update targets
update arm-13.dat build targets so they match state before stm32 split

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
e8ac5be43e boards: fix various stm32 boards errors
fix various stm32 boards errors found by CI

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
07c4bf0048 !arch/stm32: move stm32l1 and finalize the directory split
Move the stm32l1 sources, headers and boards into arch/arm/src/stm32l1,
arch/arm/include/stm32l1 and boards/arm/stm32l1, then finalize the split:
source each split family directly in arch/arm/Kconfig and boards/Kconfig and
remove the now-empty combined arch/arm/src/stm32 and boards/arm/stm32 trees.

BREAKING CHANGE: The legacy STM32 architecture and board paths were split into
stm32f1, stm32l1, stm32f2, stm32f3, stm32f4, and stm32g4 directories.
Out-of-tree boards must move from stm32 to the matching split family.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
52922288ef !arch/stm32: move stm32g4 to its own directory
BREAKING CHANGE:

Part of splitting the legacy stm32 super-directory; relocates
the stm32g4 sources, headers and boards into arch/arm/src/stm32g4,
arch/arm/include/stm32g4 and boards/arm/stm32g4.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
6cda2fcc96 !arch/stm32: move stm32f4 to its own directory
BREAKING CHANGE:

Part of splitting the legacy stm32 super-directory; relocates
the stm32f4 sources, headers and boards into arch/arm/src/stm32f4,
arch/arm/include/stm32f4 and boards/arm/stm32f4.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
b37e3e7c46 !arch/stm32: move stm32f3 to its own directory
BREAKING CHANGE:

Part of splitting the legacy stm32 super-directory; relocates
the stm32f3 sources, headers and boards into arch/arm/src/stm32f3,
arch/arm/include/stm32f3 and boards/arm/stm32f3.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
c94805fe74 !arch/stm32: move stm32f2 to its own directory
BREAKING CHANGE:

Part of splitting the legacy stm32 super-directory; relocates
the stm32f2 sources, headers and boards into arch/arm/src/stm32f2,
arch/arm/include/stm32f2 and boards/arm/stm32f2.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
e21a15eb4e !arch/stm32: move stm32f1 to its own directory
BREAKING CHANGE:

Part of splitting the legacy stm32 super-directory; relocates
the stm32f1 sources, headers and boards into arch/arm/src/stm32f1,
arch/arm/include/stm32f1 and boards/arm/stm32f1.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
raiden00pl
79e3c2e59f !arch/stm32f0l0g0: move stm32c0 and finalize the directory split
Move the stm32c0 sources, headers and boards into arch/arm/src/stm32c0,
arch/arm/include/stm32c0 and boards/arm/stm32c0, then finalize the split:
source each split family directly in arch/arm/Kconfig and boards/Kconfig and
remove the now-empty combined arch/arm/src/stm32f0l0g0 and
boards/arm/stm32f0l0g0 trees.

BREAKING CHANGE: The combined STM32F0/L0/G0/C0 architecture and board
paths were split into stm32f0, stm32l0, stm32g0, and stm32c0 directories.
Out-of-tree boards, include paths, source paths, and defconfigs must move
from stm32f0l0g0 to the matching split family.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00