Commit graph

60363 commits

Author SHA1 Message Date
trns1997
41842ade12 cmake: Fix C++ STL toolchain linkage with CONFIG_LIBCXXTOOLCHAIN
Ensure the CMake build explicitly locates and links libstdc++.a
when CONFIG_LIBCXXTOOLCHAIN is enabled. This aligns CMake behavior
with the Make build system and fixes STL/libc header conflicts
observed on xmc4800-relax:nsh.

Signed-off-by: trns1997 <trns1997@gmail.com>
2026-01-08 10:19:16 +08:00
Kerogit
0a8be84033 arch/avr/src/avrdx: remove unused variable and update comment
Commit e5db83d7db introduced a change to the file updated by this patch
which caused a build-time warning about unused variable. This patch
removes declaration of the variable from the code.

This patch also updates comment that relates to what was changed
in the commit.

Patch was tested by building breadxavr:nsh - resulting binary is identical
(by SHA256 checksum) and the warning is no longer present.

Signed-off-by: Kerogit <kr.git@kerogit.eu>
2026-01-08 10:17:33 +08:00
Justin Erenkrantz
220263e7c4 risc-v/litex: Update docs for vexriscv invalidate and no-op flush.
Per further feedback from Litex community, the vexriscv cache is
write-through so no flush is required - therefore, make it a nop.

And add a pointer to vexriscv invalidation magic instr docs.

Signed-off-by: Justin Erenkrantz <justin@erenkrantz.com>
2026-01-08 09:21:50 +08:00
jianglianfang
0737eb3325 virtio-gpu: support vsync and double fb.
changed from a single buffer to a dual buffer, and adapted the vsync buffer queue.

Signed-off-by: jianglianfang <jianglianfang@xiaomi.com>
2026-01-08 02:49:43 +08:00
Peter van der Perk
0fed06190b libc: Add Kconfig option to disable hex-string to float parsing
Introduce CONFIG_LIBC_DISABLE_HEXSTR_TO_FLOAT to remove support for
parsing hexadecimal floating-point constants (C99 %a) in strtod(),
strtof(), strtold(), and sscanf("%a"). This feature is rarely used in
embedded systems and its removal saves significant flash space. Decimal
float parsing remains unaffected.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-01-08 02:37:21 +08:00
Peter van der Perk
6b5d2fa3b1 kinetis: fix flexcan header typo
Fix PROSEG -> PROPSEG typo

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-01-08 02:23:39 +08:00
Peter van der Perk
afa1fccffe s32k3xx: emac compile fix
Fix compile error with undefined barrier function

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-01-08 02:23:39 +08:00
Peter van der Perk
ca9a597af0 s32k3xx: edma compile fix
Refactoring didn't add the required spinlock

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-01-08 02:23:39 +08:00
Peter van der Perk
e46c2348ce kinetis: edma compile fix
Refactoring didn't add the required spinlock

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-01-08 02:23:39 +08:00
Huang Qi
e6a0c6c377 Documentation: Add mquickjs documentation
Add documentation for MicroQuickJS JavaScript interpreter in
Documentation/applications/interpreters/mquickjs/index.rst.

The documentation includes:
- Description of MicroQuickJS (lightweight JS interpreter by Fabrice Bellard)
- Strict mode restrictions (ES5 subset, no array holes, no value boxing, etc.)
- Configuration options (CONFIG_INTERPRETERS_MQJS, priority, stack size)
- Usage instructions with command options and examples
- Memory limit warning (default 16MB is too large for embedded systems)
- Feature highlights (minimal footprint, tracing GC, ROM-based stdlib, etc.)

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2026-01-07 12:39:14 -05:00
Yongrong Wang
9d6edc37e7 rpmsg: fix rpmsg dead lock and ns bind race condition problem
If a ns_bind message come at between traverse g_rpmsg_cb and add g_rpmsg_cb list,
the cb->node has not been added to the g_rpmsg_cb list yet.
So rpmsg_ns_bind will not find this callback and not call the cb->ns_bind()
to notify the rpmsg services.

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2026-01-07 22:47:09 +08:00
Yongrong Wang
eac3cea465 sched/sem_rw.c: Add downgrade_write API for sem_rw
support downgrad a write lock to a read lock

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2026-01-07 22:47:09 +08:00
liaoao
f9272fa090 rpmsg_port_spi: fix reconnect failed issue
The reconnect will fail because the state changes to connecting when
shutdown cmd is still in process.

And after the shutdown cmd processed, it will reset the state to
unconnected, even though the connect cmd is in ready list,
it will still not be processed.

This patch solve this issue.

Signed-off-by: liaoao <liaoao@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
bc58b0d837 rpmsg_port_spi/slave: fix the reconnect issue during shutdown process
If connect cmd is dropped during the shutdown cmd process, it will
not be able to reconnect because current side will not try to send
connect cmd after shutdown cmd processed.

So change state to connecting when received connect cmd during the
shutdown cmd process.

Signed-off-by: liaoao <liaoao@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
ec06af22b8 rpmsg_port_spi.c: setfreq to 0 to shutdown the spi device
In the stop process, add SPI_SETFREQUENCY(rpspi->spi, 0) to stutdown
the spi device.

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
1fba4986c9 rpmsg_port_spi/slave: add suspend/resume notify
Now rpmsg port spi can receive peer's suspend and resume command,
suspend command means peer enter into the lowpower state and
resume command means peer waked up

These two commands can let us know peer's running status, so we
will modify the rpmsg signals to let the rpmsg service can get
peer's running state too.

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
a41c2cb741 rpmsg_port_spi: add support for peer's shutting down notify
Shutdown mean peer's want to disconnect the connection untial
peer want connect with local side again.

After receive shutdown command, local will clear the state until
reconnecting and clear the gpio status to avoid the leak current.

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
01b022fdd0 rpmsg_port_spi_slave: only drop tx queue used buffer when unconnecting
because rxq may have received peer's reconnection data, so we can
connect with peer again.

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
972dae38a2 rpmsg_port_spi: add connecting/disconnecting status for port spi
to make sure the connecting process will not be interrupted

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
d4a787aebf rpmsg_port_spi: only drop tx queue used buffer when unconnecting
Because rxq may have received reconnection data, when connect state
changed to unconnected but the reconnect data has not been processed,
and during that time there is a tx buffer to be sent, the
drop_packets may drop the reconnect data and two sides can not
reconnected anymore.

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
39ff211469 rpmsg_port_spi: add log to know spi complete callback not called
1. add error log when transferring keeps rasing because of no spi
exchange complete callback;
2. this log can also be used to check if there is an interrupt has
been caught when peer side keeps trying to send data;

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
liaoao
880160bfca rpmsg_port_spi: add more detail debug info for transfer failed
Add log to know the error command and aviable buffer number

Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-07 22:47:00 +08:00
yintao
ad08484cdb rpmsg: fix rpmsg_router_hub_unbind crash when reconnect
0x106b9ad2 in metal_list_del (node=<optimized out>) at /home/yintao/O61/nuttx/include/metal/list.h:85
rpmsg_unregister_endpoint (ept=0x1857ba30) at open-amp/lib/rpmsg/rpmsg.c:296
rpmsg_destroy_ept (ept=0x1857ba30) at open-amp/lib/rpmsg/rpmsg.c:389
0x102b871a in rpmsg_router_hub_unbind (ept=0x1857b330) at rpmsg/rpmsg_router_hub.c:139
0x102b7fec in rpmsg_device_destory (rpmsg=rpmsg@entry=0x1859e4e8) at rpmsg/rpmsg.c:486
0x102b9928 in rpmsg_port_unregister (port=port@entry=0x1859e4e8) at rpmsg/rpmsg_port.c:749
0x102b9bca in rpmsg_port_spi_process_packet (rxhdr=0x185ba718, rpspi=<optimized out>) at rpmsg/rpmsg_port_spi.c:408
rpmsg_port_spi_thread (argc=<optimized out>, argv=<optimized out>) at rpmsg/rpmsg_port_spi.c:452
0x102aa96e in nxtask_start () at task/task_start.c:111

Signed-off-by: yintao <yintao@xiaomi.com>
2026-01-07 22:41:48 +08:00
yintao
773db122a3 drivers/rpmsg: fix double free at rpmsg_router_hub_unbind
/home/yintao/o61-2800/nuttx/libs/libc/assert/lib_assert.c:36
mempool_release
/home/yintao/o61-2800/nuttx/mm/mempool/mempool.c:431 (discriminator 1)
mempool_multiple_free
/home/yintao/o61-2800/nuttx/mm/mempool/mempool_multiple.c:637
mm_free
/home/yintao/o61-2800/nuttx/mm/mm_heap/mm_free.c:248
free
/home/yintao/o61-2800/nuttx/mm/umm_heap/umm_free.c:49
rpmsg_router_hub_unbind
/home/yintao/o61-2800/nuttx/drivers/rpmsg/rpmsg_router_hub.c:127
rpmsg_virtio_ns_callback
/home/yintao/o61-2800/nuttx/openamp/open-amp/lib/rpmsg/rpmsg_virtio.c:684
rpmsg_virtio_rx_callback
/home/yintao/o61-2800/nuttx/openamp/open-amp/lib/rpmsg/rpmsg_virtio.c:599
virtqueue_notification
/home/yintao/o61-2800/nuttx/openamp/open-amp/lib/virtio/virtqueue.c:600
rproc_virtio_notified
/home/yintao/o61-2800/nuttx/openamp/open-amp/lib/remoteproc/remoteproc_virtio.c:394
remoteproc_get_notification
/home/yintao/o61-2800/nuttx/openamp/open-amp/lib/remoteproc/remoteproc.c:1059
rptun_worker
/home/yintao/o61-2800/nuttx/drivers/rptun/rptun.c:324
rptun_worker
/home/yintao/o61-2800/nuttx/drivers/rptun/rptun.c:324
nxtask_start
/home/yintao/o61-2800/nuttx/sched/task/task_start.c:111

Signed-off-by: yintao <yintao@xiaomi.com>
2026-01-07 22:41:48 +08:00
gaohedong
863c20544c net/vlan: add a documentation for vconfig
Users can add or delete Vlan interfaces through the vconfig tool. This document describes the usage of vconfig.

Signed-off-by: gaohedong <gaohedong@xiaomi.com>
2026-01-07 22:25:47 +08:00
zhanghongyu
6a6bc58e07 net/udp_sendto_unbuffered.c: fix udp message cannot be sent to the network card
UDP message cannot be sent to the network card, and case a stuck issue.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-07 13:27:11 +01:00
zhanghongyu
1c65d71488 usrsock_rpmsg_server.c: replace net_lock with conn_lock
Protect usrsock_rpmsg_server resources through conn_lock, avoid lack
of protection for usrsock_rpmsg_server after net_lock modification.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-07 09:17:49 -03:00
zhangshuai39
6b4bb6b20f netlib: Supplement the netlib_check_ifconnectivity documentation
A brief introduction to the interface functions, parameters, and return values.

Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
2026-01-07 17:26:35 +08:00
OceanfromXiaomi
f53b986fb2 can: propagate iob_tryadd_queue() failure in can_datahandler
The can_datahandler() function calls iob_tryadd_queue() to enqueue
received CAN data. Since iob_tryadd_queue() may return a negative
value on failure, the error was previously not properly handled.

Update can_datahandler() to propagate the return value so callers
can detect and handle queueing failures correctly.

Signed-off-by: zhaohaiyang1 <zhaohaiyang1@xiaomi.com>
2026-01-07 08:31:06 +01:00
Bowen Wang
e3403709f8 virtio/virtio-gpu: fbmem should transfer to pa
When using the virtio-gpu-pci device, we need to use physical address

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-06 15:09:34 -03:00
ligd
cf4a9d7241 drivers/serial/pty: fix memory leak when pty_destroy
1. ptmx_open -> pty_register2 -> master register i_crefs 1
                              -> salve  register i_crefs 1
2. ptmx_open -> master unregister i_crefs 0
3. master open i_crefs 1
   salve  open i_crefs 2

4. in pty_close() master close with i_crefs 1
                  salve  close with i_crefs 2

So, if correct the i_crefs judgement in pty_close()

Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2026-01-06 15:08:23 -03:00
zhaohaiyang1
eee0d813a2 can: ctucanfd: initialize CAN message header on receive
The CAN message header was not fully initialized in
ctucanfd_chardev_receive(), which could result in uninitialized
fields and incorrect message contents being delivered to
upper-layer applications.

Signed-off-by: zhaohaiyang1 <zhaohaiyang1@xiaomi.com>
2026-01-06 23:20:18 +08:00
wangchengdong
24651af90c [EXPERIMENTAL]sched/hrtimer: update hrtimer document
Update the hrtimer documentation to describe the hrtimer state machine,
    which is introduced to handle safe cancellation and execution in SMP
    environments.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-06 23:14:04 +08:00
wangchengdong
1020bc74e8 [EXPERIMENTAL]sched/hrtimr: Allow running/armed hrtimer to be restarted
Allow running/armed hrtimer to be restarted to
  fix hrtimer bug: #17567

Co-authored-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-06 23:14:04 +08:00
ouyangxiangzhen
2a1f24b817 compiler: Add PRAGMA and unroll_loop.
This commit added PRAGMA and unroll_loop to support compiler
loop-unrolling.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-06 19:46:30 +08:00
zhanghongyu
fa6c8579dd driver/net: replace net_lock with netdev_lock
modify the code of the adapted protocol stack to avoid deadlocks and the
logic that cannot be protected by locks after modification.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-06 16:08:30 +08:00
zhanghongyu
5e1410ecab net/local: replace net_lock with local_lock
remove the use of net_lock in the local module and decouple it from
other network modules.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-06 16:08:30 +08:00
wangchen
c2774ba1ec netdev:When running, proto stack can exchange packets with device
netdev:when network device is running status,the network protocol stack is allowed to send packet to the network device and to receive from the network device

Signed-off-by: wangchen <wangchen41@xiaomi.com>
2026-01-06 16:04:03 +08:00
zhaohaiyang1
2a60b7e747 can: strict TX priority ordering to avoid priority inversion
Introduce a single configuration option to provide strict transmit
priority ordering based on CAN ID.

The intention is to expose the user-visible behavior (strict TX
priority ordering) rather than the underlying implementation details.
Strict priority ordering is only meaningful when hardware transmit
buffer cancellation is available, so splitting this functionality into
separate configuration options was misleading and could result in
partially effective or incorrect configurations.

Signed-off-by: zhaohaiyang1 <zhaohaiyang1@xiaomi.com>
2026-01-06 16:03:14 +08:00
Matteo Golin
9baf67c9d4 docs/platforms/raspberrypi-4b: Document testing configurations
Adds documentation for the two new testing configurations, ostest and
coremark.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-01-06 16:00:52 +08:00
Matteo Golin
cdf5118b62 boards/raspberrypi-4b: Add testing configurations
Adds ostest and coremark configurations. Also removed LED example from
regular NSH example.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-01-06 16:00:52 +08:00
chenzihan1
3c7999f996 drivers/sensors: fix mpu9250 register function comments
fix wrong function comments

Signed-off-by: chenzihan1 <chenzihan1@xiaomi.com>
2026-01-06 08:36:59 +01:00
simbit18
bfa7025c28 arch/xtensa: Fix Kconfig style
- Replace help => ---help---

- Remove TAB

- Add comments

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-01-06 06:35:08 +08:00
simbit18
35c7aa214e arch/risc-v: Fix Kconfig style
- Replace help => ---help---

- Remove TAB

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-01-06 06:35:08 +08:00
simbit18
0fd5feeab5 arch/rp23xx: Fix Kconfig style
- Remove TAB

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-01-06 06:35:08 +08:00
simbit18
ebacd9d0d5 arch/rp2040: Fix Kconfig style
- Remove TAB

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-01-06 06:35:08 +08:00
ENJOU1224
73b9bced17 boards/risc-v: Enable VPU initialization for QEMU RV
The riscv_vpuconfig() was defined but never called in qemu_rv_start. This caused mstatus.VS to remain disabled, leading to Illegal Instruction exceptions when the OS attempted to use vector registers. This patch adds the missing initialization call.

Signed-off-by: ENJOU1224 <enjou1224@outlook.com>
2026-01-06 02:32:48 +08:00
Tomasz 'CeDeROM' CEDRO
3ab698c734 docs/security: Add Security section to the documentation.
* Each Apache project should have its own security guide.
* Security section is added to the NuttX documentation.
* Information about reported and fixed CVEs.
* Information and hints on how to report and handle security issues
  in accordance with The Apache Security Team [1] and Committers Guide [2].
* Information on what is and is not considered a vulnerability.
* List of existing NuttX CVEs added.

[1] https://www.apache.org/security
[2] https://www.apache.org/security/committers.html

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2026-01-06 02:17:20 +08:00
Bowen Wang
7dfc62bac5 qemuv7a/v8a-rpserver/proxy: remove "_ivshmem" suffix and update documents
Now the qemu-armv7a:rpserver_ivshmem, qemu-armv7a:rpproxy_ivshmem and
qemu-armv8a:rpserver_ivshmem, qemu-armv8a:rpproxy_ivshmem are not
only based on the ivshmem device but also the virtio-serial, so
remove the "_ivshmem" suffix and update documents.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-06 02:15:43 +08:00
Bowen Wang
0ff7014f75 qemu-armv7a/rpserver and rpproxy: support the rpmsg port uart
Use virtio-serial as the rpmsg-port-uart serial device, so we
can bringup the rpmsg-port-uart in qemu platform.

And update the documents:
nuttx/Documentation/platforms/arm/qemu/boards/qemu-armv7a/index.rst

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-06 02:15:43 +08:00