Commit graph

60846 commits

Author SHA1 Message Date
wangzhi16
3116c19efc sched/spinlock: Add configuration to record busywait.
Add configuration "CONFIG_SCHED_CRITMONITOR_MAXTIME_BUSYWAIT", which can record the busy waiting time to get spinlock or enter critical section.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 21:59:14 +08:00
hujun5
bb562cf8bf arch/armv8-r64: userspace PMU access
Enable ARCH_HAVE_PERF_EVENTS_USER_ACCESS capability for Cortex-R82 to
allow userspace applications to directly access hardware performance
counters. Move up_perf_gettime() outside kernel-only block so it can
be called from userspace for efficient profiling.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-01-27 21:57:37 +08:00
yukangzhi
dea1bc1121 note: add NOTE_DUMP_BINARY support for binary log dumping
Add NOTE_DUMP_BINARY to the note_type_e enum and implement its handling
in noteram_dump_one. This enables the recording and dumping of binary
logs in hexadecimal format, improving traceability for binary event data.

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
2026-01-27 21:56:03 +08:00
ganjing
206aaa8612 arch/sim: improve heap management on Simulator
and proper accounting of heap metadata

Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-01-27 21:27:53 +08:00
ganjing
1c1cf74491 mm/tlfs: Account initial size of struct mm_heap_s
and then initialize it.

Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-01-27 21:27:53 +08:00
ganjing
af3d5e2212 fs/procfs: Add mallinfo and memdump callback to procfs_meminfo_entry_s
so the implementation can do the customized action through hook

Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-01-27 21:27:53 +08:00
ganjing
e8bbf496ee mm: Call mm_free_delaylist in mm_mallinfo
and remove it from meminfo_read to enuse caller
always get get accuracy memory information.

Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-01-27 21:27:53 +08:00
ganjing
e941b18e29 mm/umm: Allow customizing the implementation of umm heap
and migrate arch/sim from the customized mm_heap to
umm_heap, so the default mm_heap implementation can
still be used(e.g. shared memory in OpenAMP).

Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-01-27 21:27:53 +08:00
wangzhi16
364a633ec3 sched/signal: Optimize code logic
Adjust the up_schedule_sigaction function to facilitate subsequent spinlock optimization work.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 21:24:31 +08:00
hujun5
5775037da6 coverity: Prevent cross-border access(OVERRUN)
Add defensive bounds validation before memory access operations to
prevent out-of-bounds access. This addresses Coverity OVERRUN defect
by ensuring array indices and buffer sizes stay within valid range.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-01-27 21:22:30 +08:00
hujun5
850bafb13e coverity: HIS_metric_violation(HIS_CALLS)
Refactor sem_reset.c to reduce nested function call depth by consolidating
internal helper functions and optimizing call chains. This addresses Coverity's
HIS_metric_violation(HIS_CALLS) warning to comply with MISRA HIS coding
standards for embedded systems safety and maintainability.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-01-27 20:54:55 +08:00
xuxin19
a5f3937ff9 cmake(bugfix):change default compile obj extension to .o
CMake uses the `system_name` parameter by default to determine the .obj file extension.
On the Nuttx platform, our `system_name` is `bare matel`,
   while CMake only uses `.o` on Linux/Unix systems  otherwise, it uses `.obj`.

Therefore, we will change it to `.o` by default.

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
xuxin19
80505da579 cmake(bugfix):remove unused libmad link in SIM build
libmad has been ported into apps
and does not require linking to the host.

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
xuxin19
82fc9f4151 cmake(bugfix):Separate extra flags to avoid parsing errors
cc1: note: unrecognized command-line option '-Wno-cpp -Werror' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-cpp -Werror' may have been intended to silence earlier diagnostics

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
xuxin19
19d6806dbe cmake(bugfix):fix armv8m missing compile option in CMake
fix typo

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
xuxin19
e3fcb025cb cmake(bugfix):fix common/etc confilt with src/etc in CMake genromfs
We use the rules added later to overwrite the previous rules

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
xuxin19
4f80953ecd cmake(bugfix):do not set nuttx_add_app NAME as required
Instead, use direct return, because in non-build targets,
such as savedefconfig, menuconfig, this check is unnecessary

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-01-27 20:54:26 +08:00
pangzhen1
a665cd795a sched/irq: functions should have exactly one exit point
According to MISRA C-2004 Rule 14.7, Every function must have exactly one entry point and one exit point.

Signed-off-by: pangzhen1 <pangzhen1@xiaomi.com>
2026-01-27 19:35:48 +08:00
wangchengdong
165f1cc063 sched/sched: enable OS tickless mode support using hrtimer
Add support for running the OS in tickless mode with hrtimer, allowing
the scheduler to operate without periodic ticks while maintaining
high-resolution timer functionality.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-27 19:35:31 +08:00
wangchengdong
2ae62d71a6 sched/hrtimer: fix hrtimer regression introduced by recent update
The hrtimer subsystem is independent of the OS tick mechanism and tickless
mode. It must always be able to reprogram the hardware timer to achieve
nanosecond-level resolution.

A recent update restricted hardware timer reprogramming to tickless mode
only. As a result, hrtimer no longer functions correctly when the scheduler
is running in tick-based mode.

This change removes the incorrect dependency on tickless mode and restores
proper hrtimer operation.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-27 19:35:31 +08:00
wangchengdong
d9a0cf46ac arch/risc-v: fix timer initialization for SMP using mtimer
Correct timer initialization issue in SMP mode using mtimer to ensure
  per-hart timers are properly set up during boot.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-27 19:34:45 +08:00
likun17
c52d54d500 drivers/sensors: Remove the uncalibrated member of the sensor
lowerhalf layer.

The uncalibrated type is passed in with type. The driver defaults
to the calibrated type.

Signed-off-by: likun17 <likun17@xiaomi.com>
2026-01-27 19:34:33 +08:00
likun17
4f0e71dca1 drivers/sensors: Add new features.
add nine-axis(Accerometer Magnetic Field and Gyroscope) uncalibrated type.

Signed-off-by: likun17 <likun17@xiaomi.com>
2026-01-27 19:34:33 +08:00
wangzhi16
c7e7711db5 sched/spinlock: Call spinlock nopreempt when need disable context switch.
Using spin_lock_irqsave_nopreempt and spin_unlock_irqrestore_nopreempt to replace the following case.
flags = spin_lock_irqsave(lock);
sched_lock();
.....
spin_unlock_irqrestore(lock, flags);
sched_unlock();

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 19:33:58 +08:00
pangzhen1
927cccb278 sched/irq: Avoid negative array index in irqchain_dispatch
IRQ_TO_NDX() may return a negative value when the IRQ number is invalid
or not mapped. Using this negative value directly as an array index for
g_irqvector causes undefined behavior and potential memory corruption.

This patch adds a bounds check to ensure ndx is non-negative before
accessing the g_irqvector array, returning the error code if invalid.

Signed-off-by: pangzhen1 <pangzhen1@xiaomi.com>
2026-01-27 19:33:29 +08:00
makejian
5331d5a905 docs: enhance crypto documentation with RSA signature schemes
Add comprehensive documentation for RSA digital signature operations supported by the cryptodev/cryptokey interface.

Includes:
- RSA-PKCS1.5: Traditional PKCS#1 v1.5 padding scheme
  - CRK_RSA_PKCS15_SIGN: Generate RSA signature with PKCS#1 v1.5 padding
  - CRK_RSA_PKCS15_VERIFY: Verify RSA signature with PKCS#1 v1.5 padding

- RSA-PSS: Probabilistic Signature Scheme for enhanced security
  - CRK_RSA_PSS_SIGN: Generate RSA signature with PSS padding
  - CRK_RSA_PSS_VERIFY: Verify RSA signature with PSS padding

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-27 19:30:14 +08:00
makejian
eea0f45e04 crypto: remove release process in close
The callback parameters are currently passed in by the upper layer, so the release process in close should not be performed here.

This prevents double-free issues and ensures proper resource management.

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-27 19:30:14 +08:00
makejian
3b151ae44b crypto/cryptodev: fix async callback
Fix incorrect memory management for asynchronous process callbacks.

Ensure callback memory is self-managed to prevent leaks or use-after-free issues.

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-27 19:30:14 +08:00
makejian
791e223001 crypto/cryptosoft: fix buffer pointer
Fix issue where input buffer pointer was modified during crypto operations.

Ensures original buffer pointer remains valid for the caller.

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-27 19:30:14 +08:00
makejian
2878fa3c38 crypto: export rsa with pkcs1.5 and pss mode
Add support for exporting RSA operations with PKCS#1 v1.5 and PSS padding schemes through the cryptodev interface.

This enables both traditional and modern RSA signature schemes:
- CRK_RSA_PKCS15_SIGN/VERIFY for PKCS#1 v1.5 padding
- CRK_RSA_PSS_SIGN/VERIFY for PSS padding

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-27 19:30:14 +08:00
chao an
f3e2a7029d sched: Remove legacy sched_resumescheduler.c
The sched_resumescheduler support was already removed in prior commits.
This change cleans up the now unused legacy source file.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-01-27 18:21:12 +08:00
wangzhi16
6fc2d010a6 graphics/nxterm: Use small lock to protect resource in graphics.
Use small lock to protect resource in graphics.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 17:59:07 +08:00
wangzhi16
4fa66a6850 drivers/pwm : remove critical section and mutex.
Use spinlock to replace critical section and mutex.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 17:59:07 +08:00
wangzhi16
4a68e55277 drivers/timer : remove critical section.
Use spinlock to replace critical section

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 17:59:07 +08:00
wangzhi16
85b09ca07b sched/wdog : remove critical section.
replace critical section with irq in wdog.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 17:59:07 +08:00
wangzhi16
4f33a32e36 mm/kasan: Remove unnecessary critical sections in mm/kasan.
Remove unnecessary critical sections in mm/kasan.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-01-27 17:59:07 +08:00
Bowen Wang
aa7ec1083b nuttx/spinlock.h: add rspin_trylock/_irqsave/_nopreempt support
Add try-lock variants for rspinlock_t to support non-blocking spinlock
acquisition with optional IRQ save/restore and preemption control.
These variants enable fine-grained synchronization patterns in nested
contexts with maximum nesting depth support (UINT16_MAX).

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-27 12:22:24 +08:00
yinshengkai
b777b0acbe boards/sam3u-ek: Increase kflash size from 65K to 80K.
Adjusted memory layout to allocate more space for kernel flash:

Signed-off-by: yinshengkai <yinshengkai@bytedance.com>
2026-01-27 10:37:37 +08:00
yinshengkai
450e760d16 fs/fat: add support for FIOC_FILEPATH ioctl
This patch adds support for the FIOC_FILEPATH ioctl command in the
FAT filesystem, allowing applications to retrieve the full path of
an open file descriptor.

Key features:
- Implements fat_getfilepath() to construct file paths by traversing
  parent directories using ".." entries
- Adds fat_findlfnstart() helper to locate the start of LFN sequences
- Supports both FAT12/16 and FAT32 filesystem types
- Handles both regular directories and root directory traversal

This functionality is useful for debugging, logging, and applications
that need to track file paths at runtime.

Signed-off-by: yinshengkai <yinshengkai@bytedance.com>
2026-01-27 10:37:37 +08:00
cuiziwei
94ac6b620b libstdc++: Relocate c++config.h from include/ to libstdc++ to preserve upstream integrity
- Add c++config.h to improve libstdc++ configuration support
- Update CMakeLists.txt and libsupc++.defs to integrate the new config header
- Remove the obsolete 0001-libsupc-Add-missing-header-files.patch to clean up the codebase

These changes enhance the maintainability and portability of the C++ standard library and simplify the build process.
2026-01-27 10:35:58 +08:00
liwenxiang1
6d9ed4217a shced/irq: Add up_irq_to_ndx interface
Use architecture-specific up_irq_to_ndx() interface to map IRQ numbers to vector table indices

Signed-off-by: pangzhen1 <pangzhen1@xiaomi.com>
2026-01-27 10:34:13 +08:00
pangzhen1
d483364481 sched/wqueue: add configuring the stack of an hpwork/lpwork as static
Allows configuring a static stack for hpwork/lpwork.

Signed-off-by: pangzhen1 <pangzhen1@xiaomi.com>
2026-01-27 10:18:24 +08:00
Tomasz 'CeDeROM' CEDRO
ec41f30f9a doc: Update Host Tools section.
* Remove `tools/` from the section name.
* Generate local TOC that lists described tools.
* Update new parsetrace.py toctree location to fix indexing and display.

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2026-01-27 09:52:01 +08:00
Tomasz 'CeDeROM' CEDRO
1d06fe5905 doc: Improve sphinx build time + add autobuild help info.
* Update previous `-j 1` and `-j 8` switch to `-j auto` to use all CPUs.
* This improves doc build time 62s -> 25s on 24 core CPU.
* Add information about `make autobuild` to `make help`.
* Auotbuild is very handy for quick edits preview and was not in help before.

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2026-01-27 09:50:55 +08:00
yukangzhi
9bda244be8 tools/parsetrace.py: Fix get_typesize bug in parsetrace.py
For the following code, we need to check 'type_attr.form'.
type_attr = DIE.attributes["DW_AT_type"]
base_type_die = dwarfinfo.get_DIE_from_refaddr(xxx)

When type_attr.form==DW_FORM_ref_addr, 'type_attr.value' means
global reference (across compilation units).

When type_attr.form==DW_FORM_ref4, 'type_attr.value' means
local reference (within the same compilation unit).

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
2026-01-26 23:22:41 +01:00
nuttxs
fa2d2b8898 boards/xtensa: fixes for compilation and start-up issues when legacy
boot mode is configured

1. Explicitly define the .rtc_reserved section to ensure RTC data
that requires fixed address is correctly placed and does not
conflict with other sections
2. When legacy boot is configured, vecbase must also be set and
clear the BSS section
3. Cache must be disabled during Flash operations, so all
Flash-operation-related functions must be placed in IRAM
(internal RAM). Update the linker script for legacy boot mode

Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
2026-01-26 19:22:14 -03:00
Alexey Matveev
d57899847a arch/stm32: Add counter reset function
Added stm32_cap_rstcounter() function to reset the capture counter
by generating an update event. The function is integrated into the
capture operations structure and exposed via STM32_CAP_RSTCOUNTER
macro. Also added TI3 and TI4 input mappings for extended capture
channel support.

Signed-off-by: Alexey Matveev <tippet@yandex.ru>
2026-01-26 19:13:22 -03:00
Yongrong Wang
f56ea30479 drivers/rpmsg: refactor internal APIs to private header
Move rpmsg internal APIs from public header include/nuttx/rpmsg/rpmsg.h
to private header drivers/rpmsg/rpmsg.h. These APIs are only used within
the rpmsg driver implementation and should not be exposed to external
modules.

Moved APIs:
- rpmsg_modify_signals()
- rpmsg_ns_bind() / rpmsg_ns_unbind()
- rpmsg_device_created() / rpmsg_device_destory()
- rpmsg_register() / rpmsg_unregister()

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-26 17:23:31 -03:00
yukangzhi
8226e8e8fe driver/noteram: Support poll threshold
The noteram driver supports setting the poll threshold.

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
2026-01-27 03:18:38 +08:00
yukangzhi
890f2e4625 sched: add trace points during system startup and board initialization
Add trace points to record transitions of g_nx_initstate and to mark
board early/late initialization boundaries. Also add trace marks for
RESET and PANIC to improve boot-time diagnostics and failure analysis.

Add OSINIT_RESET to indicate system is in reset process.

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
2026-01-27 03:18:11 +08:00