Commit graph

62310 commits

Author SHA1 Message Date
hanzhijian
20579ab531 drivers/contactless: fix uninitialized uid leak in mfrc522_read
Fix security issue where uninitialized kernel stack contents could be
leaked to userspace when mfrc522_picc_select() fails.

In mfrc522_read(), the local variable 'uid' was not initialized before
being passed to mfrc522_picc_select(). If the function fails (e.g., due
to bad data on the SPI bus), the uninitialized uid.sak value could pass
the PICC_TYPE_NOT_COMPLETE check, causing snprintf() to copy
uninitialized kernel stack data to the userspace buffer.

Fixes #19417

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
Author: hanzhijian <hanzhijian@zepp.com>
2026-07-13 19:50:57 +08:00
Catalin Visinescu
8d2b71d127 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1)
Description:

In kernel builds, any unprivileged process running on the NuttX device
can open /dev/efuse and attempt to read/write fuse content. Reading the
fuses may provide valuable information to an attacker controlling the user
process. The write operation, in extreme cases where the fuse blocks are
not locked, may brick the device.

This is part of https://github.com/apache/nuttx/issues/19410

Compiles ok.

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
2026-07-13 12:08:01 +02:00
raul_chen
0d2993dd87 Documentation/net: document lower-half driver performance tuning
Add a "Performance tuning" section to the network driver guide covering the
knobs that matter most for throughput on Wi-Fi lower-half drivers whose MAC
runs on a companion core: RX quota as backpressure, keeping the RX thread
priority at or below the vendor packet-delivery task, and capping the TCP
window / send buffer (backed by the shared IOB pool) on lossy wireless paths.

Signed-off-by: raul_chen <raul_chen@realsil.com.cn>
2026-07-13 11:53:26 +02:00
raul_chen
51c8b7158d arch/arm/ameba: fix open-network Wi-Fi association
Connecting to an open AP after having connected to a secured one failed in
pre-auth: the stored passphrase (priv->psk) was kept forever, so a later
open-AP connect was still driven as WPA2 and rejected by the AP.

Clear the stored passphrase on explicit disconnect (SIOCSIWESSID with
flags == 0) only; it is still kept across normal reconnects so a secured
network does not need the key re-entered on every join.  Also set key_id = -1
(non-WEP) instead of leaving the memset-zero default, and print the security
type in the connect log to aid diagnosis.

Signed-off-by: raul_chen <raul_chen@realsil.com.cn>
2026-07-13 11:53:26 +02:00
raul_chen
4a69d77b38 arch/arm/ameba: tune WHC Wi-Fi TCP throughput on both boards
Tune the TCP stack and driver resources for the WHC Wi-Fi data path on both
rtl8720f_evb and pke8721daf (NuttX runs on the application core; the Wi-Fi MAC
runs on a companion core reached over an on-chip IPC):

- Cap the advertised TCP receive window (NET_RECV_BUFSIZE=10000) to about the
  out-of-order reassembly capacity and bound in-flight TX
  (NET_SEND_BUFSIZE=16384).  The stock unbounded window/queue let the peer and
  the local stack burst far more than the Wi-Fi path can smooth, causing
  bursty loss/reordering and RTO stalls (RX), and starving incoming-ACK
  processing so the peer window collapses and spurious retransmits tear the
  link down (TX).
- Keep out-of-order reassembly (NET_TCP_OUT_OF_ORDER) but disable selective
  ACK.  PR #19353 enabled NET_TCP_SELECTIVE_ACK on both boards; on the lossy
  Wi-Fi TX path the sender-side selective-ACK recovery does not reliably
  repair multi-segment holes and stalls TX, so NewReno with out-of-order
  reassembly is used instead -- same steady-state throughput, robust recovery.
- Widen IOB buffers to 512 bytes; the window and out-of-order buffers draw
  from the shared IOB pool at run time and add no static memory.
- Drop the busy-wait retry in the transmit path (the send-buffer cap makes it
  dead code) and lower the forced host TX skb count (skb_num_ap) to 8, which
  covers the NP's transient TX backlog without over-reserving AP heap.

Signed-off-by: raul_chen <raul_chen@realsil.com.cn>
2026-07-13 11:53:26 +02:00
Felipe Moura
cd6ed0dbf9 Documentation/sim: document dropbear configuration
Describe how to build and use the Dropbear SSH server configuration on
the simulator, including host TAP network setup, user creation and the
volatile /tmp host key/passwd caveat.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-07-13 09:44:06 +08:00
Felipe Moura
b466c449b8 boards/sim: add dropbear config for local SSH/crypto testing
Add config to use Dropbear in sim environment.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-07-13 09:44:06 +08:00
Matteo Golin
c15a3bfc97 docs/audio_tone: Add documentation about the audio tone driver
This commit adds some documentation about the audio tone driver, how to
use it and links to it from the main audio component page. I also added
some back links to other audio docs there for convenience.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-13 09:42:26 +08:00
simbit18
29c5ae62ad ci/platforms/darwin.sh: fix genromfs installation
fix
Error: Refusing to load formula px4/px4/genromfs from untrusted tap px4/px4.
Run `brew trust --formula px4/px4/genromfs` or `brew trust px4/px4` to trust it.
Error: Process completed with exit code 1.

Homebrew 6.0+ refuses to load formulae from third-party taps unless they
are explicitly trusted ("Refusing to load formula ... from untrusted tap").
Trust each tap non-interactively before installing from it. Without this,
`brew install` aborts before pouring any package (including ccache).
`brew trust` only exists on Homebrew 6.0+; guard it so older versions,
which don't gate untrusted taps, skip it silently.

50161b1f09/Tools/setup/macos.sh (L54-L64)

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-07-12 22:21:24 +02:00
raul_chen
31caf8497b boards/arm: Ameba produce nuttx.bin and derive flash offsets from the SDK layout
Rework the RTL8721Dx / RTL8720F flashable-image handling to match the common
NuttX convention:

- Name the packed application image nuttx.bin (was app.bin) and leave only it
  plus the map files in the top-level build directory; the prebuilt bootloader
  boot.bin stays in the board prebuilt/ directory.  Drop the redundant per-core
  and OTA image copies from the top-level directory.
- Read the boot and application flash offsets from the SDK flash layout
  (platform_autoconf.h) instead of hardcoding them, and write boot.bin and
  nuttx.bin each at its own offset.  A flash-layout change is then tracked
  automatically and no offsets are entered by hand.
- Update the board documentation to match.

Signed-off-by: raul_chen <raul_chen@realsil.com.cn>
2026-07-12 14:23:41 -04:00
Matteo Golin
618119edb7 docs/raspberrypi-4b: Document PWM configuration
Documents the configuration which allows PWM audio.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:52:26 +08:00
Matteo Golin
de8db15fad boards/raspberrypi-4b: Add a configuration with PWM audio
This configuration has PWM audio output over the audio jack and built-in
examples to play with it.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:52:26 +08:00
Matteo Golin
1971ddd081 boards/raspberrypi-4b: Bring up PWM devices
Brings up PWM interfaces for the RPi4B when enabled.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:52:26 +08:00
Matteo Golin
232d254275 bcm2711/oneshot: Implement oneshot timer driver for BCM2711
This commit implements a count-based oneshot timer driver for the
BCM2711 system timers.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:52:26 +08:00
Matteo Golin
c511052251 bcm2711/pwm: Implement PWM driver for the BCM2711
Implements the BCM2711 PWM driver. Works for PWM0 and PWM1.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:52:26 +08:00
Matteo Golin
9748c760be contributing: Add requirement for 'Assisted-by' commit field
This adds the requirement for the 'Assisted-by' commit field as voted in
the mailing list to the contribution guide. This allows commits created
with generative tooling to be easily filtered/tracked using automated
tooling, and adopts the guidelines from the ASF with semantics similar
to the Linux kernel recommendation.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-07-12 09:42:28 +08:00
raiden00pl
c3afd427c4 boards/arm/stm32{l5,u5,wb,wl5,n6,h5}: use stm32 boards common
Wire the remaining STM32 families (L5, U5, WB, WL5, N6, H5) to the shared
boards/arm/common/stm32 board-common directory.

No functional change: these boards do not yet use any shared driver, but the
shared board-common features are now available to the families.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-12 09:35:56 +08:00
raiden00pl
d5b78ed9aa arch/arm/src/stm32: unify pulse count driver into common/stm32
Merge the six near-identical pulse count drivers (two common, plus
the F7/H7/H5/L4 copies) into a single common/stm32/stm32_pulsecount.c.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-12 09:35:51 +08:00
raiden00pl
30c5040547 drivers/timers, sched/clock: use file_get/file_put
fs_getfilep()/fs_putfilep() were renamed to file_get()/file_put().

The PTP clock paths still used the old names, breaking the PTP_CLOCK build.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-11 17:22:07 -04:00
Felipe Moura
5e2ce6190d crypto: add CRYPTO_CHACHA20_DJB variant (64-bit counter/nonce)
CRYPTO_CHACHA20 implements the RFC 8439/IETF parameterization (32-bit
counter + 96-bit nonce). SSH's chacha20-poly1305@openssh.com uses the
original DJB construction instead: a 64-bit block counter in state
words 12..13 and a 64-bit nonce in words 14..15 (libtomcrypt's
chacha_ivctr64). The two layouts produce different keystreams for the
same key, so an SSH server cannot interoperate with OpenSSH clients
through the IETF variant.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-07-11 17:58:55 -03:00
raiden00pl
6d62533e4d arch/arm/stm32: always select STM32_QE is STM32_QEx enabled
always select STM32_QE is STM32_QEx enabled

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-11 15:09:45 -03:00
raiden00pl
cdaa4b1ee6 boards/arm/stm32h7: switch board common to boards/arm/common/stm32
Wire the STM32H7 family to the shared boards/arm/common/stm32 board-common
directory.

Drop the local copies that are already provided by the shared directory:

  - stm32_reset.c from nucleo-h723zg, nucleo-h743zi, nucleo-h743zi2,
    nucleo-h753zi, stm32h745i-disco and stm32h750b-dk
  - stm32_romfs_initialize.c and stm32_romfs.h from nucleo-h743zi (identical
    to the shared versions)

Enable CONFIG_ARCH_BOARD_COMMON=y in the configs that use CONFIG_BOARDCTL_RESET
or CONFIG_STM32_ROMFS so board_reset()/romfs are pulled from the shared
directory.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-11 15:09:45 -03:00
yi chen
6fdc2dde41 drivers/serial: hold xmit.lock around echo in uart_readv()
uart_putxmitchar() manipulates dev->xmit.head/buffer directly with
no internal locking - every other caller (uart_write()) takes
dev->xmit.lock first. uart_readv()'s ECHO handling (both the
backspace/delete erase sequence and the normal character echo)
calls uart_putxmitchar() without taking that lock, so a concurrent
uart_write() and a local echo can race on the same circular buffer
state, corrupting it.

Take dev->xmit.lock around each echo's uart_putxmitchar() calls,
matching what uart_write() already does. uart_readv() holds
dev->recv.lock for its own duration, but no other code path ever
acquires recv.lock while holding xmit.lock, so nesting xmit.lock
inside the existing recv.lock scope here doesn't introduce a new
lock-ordering cycle.

Fixes #14845

Signed-off-by: yi chen <94xhn1@gmail.com>
2026-07-11 15:00:40 -03:00
Lwazi Dube
3ffe5a9358 arch/mips: Add option to use mips syscall instruction for syscalls
When enabled, the change fixes random crashing on Ingenic JZ4780.

Signed-off-by: Lwazi Dube <lwazeh@gmail.com>
2026-07-11 14:58:24 -03:00
Ricard Rosson
05df45dfee boards/rp23xx: copy .got into RAM at boot in the memmap linker scripts
The pico-sdk-derived rp23xx linker scripts place .got/.got.plt as orphan
sections after the .data output section, so the boot-time .data copy
(which runs to _edata) never copies the GOT into RAM.  Any position-
independent (-fPIC) object linked into an application then reads an
uninitialised GOT full of NULLs: the first GOT-indirected access
branches to 0 and the board hardfaults before main().  A PIC static
library (for example liboqs, whose SHA3 dispatch reads its function
pointers through the GOT) triggers this deterministically.

Fold *(.got)/*(.got.plt) into the .data{} section, before _edata, in all
three boot-mode scripts (memmap_default/copy_to_ram/no_flash) for every
rp23xx board, so the GOT is initialised in RAM by the standard startup
copy.  No effect on non-PIC images (the GOT is empty).

Reproduced and fixed on a Raspberry Pi Pico 2 W: an app linking a -fPIC
liboqs.a wedged the board on its first crypto call before the change and
runs correctly after it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Ricard Rosson <ricard@groundbits.com>
2026-07-11 14:57:17 -03:00
Alan Carvalho de Assis
d8d77c249c libs/libdsp: Add Matrix operations
This commit adds support for matrix operation on libdsp. The code
came from: https://github.com/DjVul/Extended-Kalman-Filter---STM32/blob/main/Core/Src/matrix_utils.c

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-07-11 14:55:59 -03:00
liang.huang
6e979f841b fs/procfs: fix incorrect environ read for another task under CONFIG_ARCH_ADDRENV
Reading /proc/<pid>/group/env for another task dereferenced tg_envp
under the caller's own address environment instead of the target
task's, since tg_envp lives in the target's user heap. Switch to the
target's address environment around the traversal, and to the
caller's own environment only around the copy into the caller's
buffer.

Signed-off-by: liang.huang <liang.huang@houmo.ai>
2026-07-11 12:43:10 -03:00
raiden00pl
5c0cd18719 arch/arm/src/stm32: make STM32_ETHMAC depend on NET
STM32_ETHMAC selects NETDEVICES, but NETDEVICES depends on NET. Enabling
ETHMAC without NET produced an invalid Kconfig

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-11 12:42:24 -03:00
makejian
bdd68ed1e5 crypto: Add ChaCha20/ChaCha20-Poly1305 to /dev/crypto, fix RFC 8439 nonce.
Expose the ChaCha20 stream cipher and the ChaCha20-Poly1305 AEAD through
the OCF crypto framework (/dev/crypto) so applications such as an SSH
server (chacha20-poly1305) can use them directly, and fix the underlying
ChaCha nonce/counter layout so both match RFC 8439.

RFC 8439 nonce layout fix
-------------------------
chacha_ivsetup() previously used the original DJB layout: a 64-bit block
counter (input[12..13]) followed by a 64-bit nonce (input[14..15]). RFC
8439 defines a 32-bit block counter (input[12]) and a 96-bit / 12-byte
nonce (input[13..15]). With the old layout the existing ChaCha20-Poly1305
AEAD could not reproduce the RFC 8439 test vectors (the last 4 bytes of a
12-byte nonce were consumed as the high half of the counter). This
commit switches chacha_ivsetup() to the RFC 8439 layout and updates the
ChaCha20-Poly1305 one-shot helpers to pass a 12-byte nonce accordingly.

Standalone ChaCha20 on the unified enc path
-------------------------------------------
Instead of introducing a separate multi-buffer stream path (parallel
encrypt_multi/decrypt_multi callbacks), extend the existing enc_xform
encrypt/decrypt callback signature with a length argument:

  void (*encrypt)(caddr_t, FAR uint8_t *, size_t len);
  void (*decrypt)(caddr_t, FAR uint8_t *, size_t len);

With that single change every cipher, block or stream, flows through the
same swcr_encdec path. swcr_encdec already handles a short final block
via buflen = MIN(i, blocksize), so arbitrary-length data works without a
second code path. This is exactly how the existing stream ciphers
(AES-CTR/OFB/CFB) already behave: the cipher keeps its own counter in the
context and swcr_encdec feeds it whole blocks (only the last one may be
shorter). chacha20_crypt likewise relies on the underlying chacha state
block counter (input[12]) to continue the keystream across calls, so no
per-call keystream caching is needed.

  * chacha_private.h: chacha_ivsetup uses a 4-byte counter and a 12-byte
    nonce (RFC 8439).
  * chachapoly.c / chachapoly.h: split reinit into chacha20_reinit (raw,
    counter 0) and chachapoly_reinit (AEAD, counter 1); chacha20_crypt
    takes a length and encrypts it in one pass, mirroring aes_ctr_crypt;
    12-byte nonce for the one-shot AEAD helpers.
  * xform.h / xform.c: add size_t len to encrypt/decrypt; add
    enc_xform_chacha20 (blocksize 64, 12-byte IV).
  * cryptodev.c / cryptosoft.c: register CRYPTO_CHACHA20 as a txform
    cipher, route new sessions to enc_xform_chacha20, feed the AEAD AAD
    through crp_aad/crp_aadlen, and handle the short final block in
    swcr_encdec.
  * cryptodev.h: add CRYPTO_CHACHA20; bump EALG_MAX_BLOCK_LEN to 64.

This keeps all ciphers on one uniform path instead of maintaining two,
and any future stream cipher drops in with just an xform table entry.

Impact: extends an internal kernel callback signature (enc_xform
encrypt/decrypt). All in-tree implementations are updated in the same
commit and the user-facing /dev/crypto ABI is unchanged, so this is
self-contained and not a breaking change for existing configurations.

Testing:
  Build host: Ubuntu Linux x86_64, GCC (host sim toolchain)
  Target: sim:crypto (CONFIG_ARCH=sim)
  Ran the crypto test apps. ChaCha20 uses RFC 8439 2.4.2 vectors
  (including a 375-byte multi-block vector exercising cross-block counter
  continuity); ChaCha20-Poly1305 uses the RFC 8439 2.8.2 AEAD vector.
  A full regression of the other ciphers was run to confirm the extended
  encrypt/decrypt signature does not change their behaviour:

    nsh> chacha20
    chacha20: 2/2 vectors passed
    nsh> chachapoly
    OK test vector 0
    chachapoly: 1/1 vectors passed
    nsh> des3cbc          -> all vectors OK
    nsh> aescbc           -> all vectors OK
    nsh> aesctr           -> all vectors OK
    nsh> aesxts           -> 14 vectors OK (encrypt + decrypt)
    nsh> hmac             -> md5 / sha1 / sha256 all success

Signed-off-by: makejian <makejian@xiaomi.com>
2026-07-11 10:19:39 -03:00
Jorge Guzman
b7305d8780 Documentation: nsh: document the top command
The top command was added to nshlib in 2024 but was never documented.
Add a section to the NSH commands page covering syntax, options,
example output and configuration dependencies, including the
Linux-like summary header.

Also enable the command in the linum-stm32h753bi:nsh config: procfs,
CPU load measurement, stack coloration and task names, so that top
and ps are fully functional out of the box. This requires a dedicated
interrupt stack and larger IDLE/init task stacks: with SCHED_CPULOAD
the per-tick accounting runs in interrupt context, and with
ARCH_INTERRUPTSTACK=0 it lands on the stack of the interrupted task,
overflowing the 1 KiB IDLE stack and corrupting the adjacent heap.

Also add the VT100 escape sequences used by the top command screen
refresh as string literals in include/nuttx/vt100.h (VT100_STR_*),
next to the existing VT100_FMT_* definitions.

Tested on hardware.

Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
2026-07-11 09:15:15 -03:00
Felipe Moura
4a927bc7e0 Documentation/applications: document Dropbear scp file transfers
Document how to transfer files with scp on the Dropbear server port,
which requires the legacy protocol (scp -O) since the port has no SFTP
server. Recent OpenSSH clients default to SFTP and fail otherwise.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-07-10 15:37:54 -03:00
liang.huang
e0b4eb7c9c arch/risc-v: kill faulting user task instead of panicking kernel
riscv_fillpage() unconditionally panics the kernel on an unmappable
or invalid access, even when the fault is caused by a user task. A
user-space fault should terminate that task with SIGSEGV instead of
taking down the whole system, matching the existing behavior for
other exceptions in riscv_exception().

Signed-off-by: liang.huang <liang.huang@houmo.ai>
2026-07-10 20:07:18 +08:00
aineoae86-sys
95e4561145 tools: rp2040: Drop uninitialized name length check
scan_dir() checked name_len before assigning it. Directory entries already compute and validate strlen(a_dirent->d_name) before allocating the dir item, while the root path passed to scan_dir() is not encoded as a directory entry name.

Remove the stale pre-opendir check so scan_dir() no longer branches on an uninitialized local variable.

Generated-by: OpenAI Codex
Signed-off-by: aineoae86-sys <ai.neo.ae86@gmail.com>
2026-07-10 12:39:44 +08:00
raiden00pl
1369a2875d sched/misc/coredump.c: guard tcb->name in coredump
coredump_dump_tcb() copied tcb->name unconditionally, but the tcb_s name
member only exists when CONFIG_TASK_NAME_SIZE > 0

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-10 05:04:13 +08:00
Abhishek Mishra
d75d713165 cmake/romfs: invoke passwd helper scripts via POSIX shell
Run update_romfs_password.sh, check_passwd_keys.sh, and
gen_passwd_keys.sh through an explicit sh/bash interpreter so CMake
configure works on Linux, macOS, MSYS2, and Cygwin instead of relying
on direct script execution.

Signed-off-by: Abhishek Mishra <mishra.abhishek2808@gmail.com>
2026-07-09 22:41:11 +08:00
Abhishek Mishra
e9c9cba51d boards: add CI ROMFS passwd credentials and refresh docs
Support NUTTX_ROMFS_PASSWD_PASSWORD via update_romfs_password.sh for
configs that enable ROMFS passwd without a defconfig password (sim/login
CI). Enable RANDOMIZE_KEYS in sim/login defconfig. Update mkpasswd.c
header, platform docs, and the mkpasswd_autogen guide.

Signed-off-by: Abhishek Mishra <mishra.abhishek2808@gmail.com>
2026-07-09 22:41:11 +08:00
Abhishek Mishra
ffa6ba222f !boards: enforce secure ROMFS passwd and TEA key setup
Remove implicit default credentials and add build-time validation.
Add check_passwd_keys.sh and gen_passwd_keys.sh; run key setup via
passwd_keys.mk before config.h is generated. Mirror the same logic in
cmake/nuttx_add_romfs.cmake for CMake builds.

BREAKING CHANGE: Builds with CONFIG_BOARD_ETC_ROMFS_PASSWD_ENABLE=y now
require an explicit admin password and non-default TEA keys. The
Kconfig default password "Administrator" and default TEA keys are no
longer accepted. Fix: run make menuconfig, set Admin password under
Board Selection -> Auto-generate /etc/passwd, enable random TEA keys or
set CONFIG_FSUTILS_PASSWD_KEY1..4 manually, and use NSH login with
Encrypted password file verification.

Signed-off-by: Abhishek Mishra <mishra.abhishek2808@gmail.com>
2026-07-09 22:41:11 +08:00
raiden00pl
a38fd1603c drivers/i2c: I2C_SLAVE_DRIVER depends on I2C_SLAVE
I2C_SLAVE_DRIVER depends on I2C_SLAVE

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 22:31:31 +08:00
raiden00pl
0f8032d0c5 boards/arm/stm32f7: switch board common to boards/arm/common/stm32
switch stm32f7 board common to boards/arm/common/stm32.

Move the STM32F7-only board-common features into the shared directory
so they are available to every STM32 family:

  - bmi270, cs4344, can_setup, cansock_setup, reset, romfs_initialize and
    spitest
  - the duplicate stm32_bh1750 is removed (already present in common).

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 22:30:42 +08:00
raiden00pl
adc3fd23a1 arch/arm/src/stm32: make STM32_FOC depend on MOTOR_FOC
Enabling STM32_FOC without MOTOR_FOC failed to build with
"unknown type name 'foc_current_t'". Add the dependency on MOTOR_FOC.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 22:30:02 +08:00
raiden00pl
39ebdb2953 arch/arm/src/stm32: STM32_DTS depends on SENSORS
The H5 DTS driver registers with the sensor framework (sensor_register),
so it requires SENSORS.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 10:02:41 -04:00
raiden00pl
a65a1e619e drivers/serial/uart_ram: match uart_ops_s receive() prototype
fix uart_ops_s receive() prototype

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 09:59:27 -04:00
raiden00pl
5758b06698 arch/arm/src/stm32: define EXTI_* for all STM32G4
define EXTI_* for all STM32G4

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 09:59:02 -04:00
raiden00pl
e2665eb61a arch/arm/src/stm32: add G4 RNG base address
add missing STM32_RNG_BASE for G4

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 09:59:02 -04:00
raiden00pl
6b8a21ab96 arch/arm/src/stm32: add G4 RCC I2C3/I2C4 enable/reset aliases
add missing I2C3 and I2C4 aliases for G4

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 09:59:02 -04:00
raiden00pl
e60c831c40 arch/arm/src/stm32: fix H5 I2C kernel-clock register names
stm32h5/stm32_i2c.c selected the I2C2/3/4 kernel clock with
RCC_CCIPR4_I2CnSEL_PCLKx, but the H5 RCC header names those values
RCC_CCIPR4_I2CnSEL_RCCPCLKx.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-07-09 09:38:29 -03:00
Shriyans S Sahoo
cf93ac12c3 Documentation/sensors: Add MPU6050 uORB driver documentation
Add ReStructuredText documentation for the MPU6050 6-axis IMU uORB driver under Special Sensor Drivers. Includes device registration, Kconfig options, uORB topic descriptions, and bring-up examples.

Signed-off-by: Shriyans S Sahoo <shriyans.s.sahoo@gmail.com>
2026-07-09 09:33:15 -03:00
Shriyans S Sahoo
a9192ff349 drivers/sensors: Add MPU6050 6-axis IMU uORB driver
Add lower-half uORB sensor driver for the InvenSense MPU6050 over I2C. Supports accelerometer and gyroscope sensor types, register read/write, fetch, and control operations.

All internal register definitions and full-scale range constants are placed in the private driver C file (drivers/sensors/mpu6050_uorb.c) for clean encapsulation. The device struct uses explicit named members ('accel' and 'gyro') for high readability.

Add Kconfig option CONFIG_SENSORS_MPU6050 under Sensor Drivers, and add build integration to drivers/sensors/Make.defs and CMakeLists.txt.

Signed-off-by: Shriyans S Sahoo <shriyans.s.sahoo@gmail.com>
2026-07-09 09:33:15 -03:00
Mihai Pacuraru
d2d65c48d5 tools/nxstyle.c: Add exclusion for MQTTErrors
Added a Mixed case exclusion for MQTTErrors defined in
apps/netutils/mqttc/MQTT-C/include/mqtt.h

Signed-off-by: Mihai Pacuraru <mpacuraru@protonmail.com>
2026-07-09 09:27:41 -03:00
Old-Ding
8ff9dfdea3 libs: netdb: Advance stream buffers by transfer count
Update the DNS stream send and receive helpers to advance their buffers
by the number of bytes actually transferred. Advancing by the original
remaining length skips data when send() or recv() completes partially.

Signed-off-by: Old-Ding <ai.neo.ae86@gmail.com>
2026-07-09 08:45:42 +08:00