59736 Commits

Author SHA1 Message Date
liwenxiang1
5697e4fabb arch/intel64: Macro definition use positive check
This commit added macro definition using positive checking.

Signed-off-by: liwenxiang1 <liwenxiang1@xiaomi.com>
2025-11-17 10:25:37 +08:00
liwenxiang1
62a2f5c2f6 arch/intel64: Add TSC adjust setting for SMP
This commmit added TSC adjust setting for SMP.

Signed-off-by: liwenxiang1 <liwenxiang1@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
946ac39c7a arch/intel64: Fix updating MSR_IA32_TSC_ADJUST.
If the initial value of the MSR_IA32_TSC_ADJUST register is not 0 (may be modified by BIOS or bootloader), it may cause timing errors. This commit addressed the issue.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
7185f41356 arch/intel64: Support MSR_IA32_TSC_ADJUST.
On newer x86 CPUs, the MSR_IA32_TSC_ADJUST register is utilized to fine-tune the offset of the Time Stamp Counter (TSC). This commit introduces support for MSR_IA32_TSC_ADJUST and enhances the TSC tickless
driver, optimizing its performance.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
8957740117 arch/intel64: Disable set_pcid if CPU does not support.
This commit disabled `set_pcid` function if CPU does not support.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
9364d0aa37 arch/risc-v: simplify mtimer driver.
This commit simplified RISC-V mtimer driver.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
932f890267 arch/arm64: add timer initialization for the secondary CPUs.
This commit added timer initialization for the secondary CPUs.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
ouyangxiangzhen
0b34c167e5 arch/arm64: tick alignment work-around for the generic timer.
This commit aligned the arm64 generic timer count to the tick boundary. Notice that this is just a work-around. We should pass both the current system ticks and the delay ticks as input parameters. But we only have the delay tick here due to the oneshot interfaces.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-11-17 10:25:37 +08:00
songjunfan
5e17b5f6ec arch/arm64_boot.c: Fixed the boot stage stuttering issue on iMX8QM.
Before we disable dcache, we should flush all dcache.

Signed-off-by: songjunfan <songjunfan@xiaomi.com>
2025-11-17 10:25:37 +08:00
donghaokun
f2d0d5b45f Documentation: Add documentation for NSH_BUILTIN_AS_COMMAND
Some checks failed
Build Documentation / build-html (push) Has been cancelled
This patch adds the description for NSH_BUILTIN_AS_COMMAND including its advantage and disadvantage.
NSH_BUILTIN_AS_COMMAND is an optional configuration in nsh. It allows nsh builtin apps to run directly like nsh command without creating a thread. This is done in pull request https://github.com/apache/nuttx-apps/pull/3168

Signed-off-by: Haokun Dong <donghaokun@lixiang.com>
2025-11-15 10:49:58 -05:00
simbit18
6161fececf tools/checkpatch.sh: Improved error display on GitHub
Some checks failed
Build Documentation / build-html (push) Has been cancelled
The improvement includes symbols that help employees visualise any errors detected during the PR check phase (check.yml).

Error ->  U+274C  Cross Mark
             https://en.wikipedia.org/wiki/X_mark

Checks pass -> ✔️ U+2714 Heavy Check Mark
             https://en.wikipedia.org/wiki/Check_mark

These characters are emojis that are recognized by the Unicode standards which define what each character represents.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-14 16:50:25 -03:00
Matteo Golin
858619ec29 docs/platforms/raspberrypi-4b: Document cgol configuration
Documents the newly added `cgol` configuration for playing with Conway's
Game of Life.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-11-14 16:57:10 +01:00
Matteo Golin
c38e8dd061 boards/raspberrypi-4b: Add CGOL configuration
Adds another configuration which includes the CGOL game application.
This gives users something animated and interesting to see on the HDMI
video output, since the frame-buffer example is not as interesting.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-11-14 16:57:10 +01:00
Matteo Golin
058c7a8353 docs/applications/games/cgol: Documentation for CGOL game
Added documentation for the new Conway's Game of Life application.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-11-14 16:57:10 +01:00
Filipe Cavalcanti
caa3772d50 boards/risc-v/esp32c3: remove CXX initialization from BLE defconfig
Espressif common initialization and lib_cxx_initialize are having
conflicts and multiple linker script issues.
Removing CXX_INITIALIZE solves those problems with no side effects.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-11-14 23:53:14 +08:00
wangchengdong
63f081cbf2 arm/lc823450: Use clock_systime_ticks() to access system ticks
Use clock_get_sched_tclock_systime_ticks() to access system ticks
     in order to fix the build error and improve code safety.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-13 18:40:16 -03:00
wangchengdong
1b58a449c5 sched/clock: Make g_system_ticks a static variable
Make g_system_ticks a static variable, as it is only accessed by
    clock_get_sched_ticks().

    This change improves code modularity and enhances safety, since
    clock_get_sched_ticks() performs proper synchronization when
    reading g_system_ticks.

Signed-off-by: Chengdong Wang wangchengdong@lixiang.com
2025-11-13 18:40:16 -03:00
simbit18
1b58dd92d8 boards/arm/kinetis: CMake added NXP KWIKSTIK-K40 and PJRC Teensy 3.x boards
Some checks failed
Build Documentation / build-html (push) Has been cancelled
CMake added boards:

  - NXP KWIKSTIK-K40

 -  PJRC Teensy 3.x

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-13 14:13:16 -05:00
xiezhanpeng3
2ce0c128f9 toolchain/ghs: Adapt .macro syntax for GHS compiler
The GHS compiler uses different .macro syntax. Without this change,
the GHS compiler reports error like:
[asarm] (error #2014) nuttx/arch/arm/src/armv8-r/arm_vectors.S 155: expected a register
  vstmdb \ out ! , { s0 - s31 }
---------^

And:
[asarm] (error #2179) nuttx/arch/arm/src/armv8-r/arm_vectors.S 141: unexpected token type (comma) encountered; expected type (char)
  .macro savefpu , out , tmp
-----------------^

Co-authored-by: Chengdong Wang <wangchengdong@lixiang.com>
Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-11-14 01:49:09 +08:00
xiezhanpeng3
c9eeb4cb14 toolchain/ghs: change alignment syntax for GHS
The .align N syntax in GHS means the alignment is N Bytes. In GCC
compiler, it means 2**N Bytes. Therefore, .align 32 in GHS and
.align 5 in GCC are equivalent.

Co-authored-by: Chengdong Wang <wangchengdong@lixiang.com>
Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-11-14 01:49:09 +08:00
xiezhanpeng3
e0e8a6e852 toolchain/ghs: _hyp_vector_start uses b . syntax for both GCC and ghs
The $+0x0 is not accepted by Ghs compiler. Therefore, we change it to a
more common syntax " b   ." for endless self loop.

Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-11-14 01:49:09 +08:00
xiezhanpeng3
ecef24ea33 toolchain/ghs: greenhills compiler does not recognize .syntax unified
The GreenHills Compiler uses Unified Assembler Language by default and
it does not recognize .syntax unified instruction. Therefore, remove
them if GHS compiler is used.

Co-authored-by: Chengdong Wang <wangchengdong@lixiang.com>
Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-11-14 01:49:09 +08:00
xiezhanpeng3
1d9e160f97 toolchain/ghs: add Greenhills compiler support for .type directive for arm-v8r
The GreenHills Compiler uses different grammer for the .type directive
in asm, this patch adds support for the grammer for arm-v8r.
Similar change for arm-v7r was done in pull request #12883.

Co-authored-by: Chengdong Wang <wangchengdong@lixiang.com>
Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-11-14 01:49:09 +08:00
“duanqinshuo”
0b9c86905b arch/tricore: Fix specific definitions in the generic UART module
We found that specific chip pin definitions were used in the generic UART source file. Since pin definitions vary across different chips, the UART pin definitions have been moved to the corresponding chip-specific directory.

Co-authored-by: Chengdong Wang <wangchengdong@lixiang.com>
Signed-off-by: Qinshuo Duan <duanqinshuo@lixiang.com>
2025-11-14 01:48:17 +08:00
simbit18
f98d89874c boards/arm/kinetis: CMake added NXP TWR-K60N512 and TWR-K64F120M boards
CMake added boards:

  - NXP TWR-K60N512

 -  NXP TWR-K64F120M

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-13 11:34:01 -05:00
nuttxs
691cca4153 11_network.rst: Add a "Network Interfaces Overview" section and
reorganize the content structure:

- Add the new "Network Interfaces Overview" section
- Reorganize the document structure and optimize formatting

Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
2025-11-13 11:29:38 -03:00
wangchengdong
2440b4ef39 sched/sched: Fix nxsched_suspend() logic
nxsched_deliver_task() or nxsched_merge_pending() should only be
called when a context switch is required. This behavior is
independent of whether the current task is locked.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-13 21:01:18 +08:00
Antoine Juckler
d996c2e758 mtd/at25ee.c: Fix write check condition
Some checks failed
Build Documentation / build-html (push) Has been cancelled
Fix writing till the very last byte of the memory

Signed-off-by: Antoine Juckler <6445757+ajuckler@users.noreply.github.com>
2025-11-13 08:57:52 -03:00
Antoine Juckler
23de88e70e fs/fs.h: Add register_driver_with_size function
It acts as register_driver but also populates the inode size.
This allows to return a non-zero size when calling stat() on an eeprom
driver.

The conditions (CONFIG_PSEUDOFS_FILE or CONFIG_FS_SHMFS) for the
declaration of the inode size field have also been removed so that other
drivers can populate this field in the future.

Signed-off-by: Antoine Juckler <6445757+ajuckler@users.noreply.github.com>
2025-11-13 08:57:52 -03:00
Antoine Juckler
934dfdf645 drivers/eeprom: Retrieve the geometry
Add EEPIOC_GEOMETRY IOCTL command to retrieve the
EEPROM geometry.

Signed-off-by: Antoine Juckler <6445757+ajuckler@users.noreply.github.com>
2025-11-13 08:57:52 -03:00
hujun5
f1506c6212 fiq: fix some FIQ config in arm64/armv7-r/armv8-r
1. up_irq_save should not mask fiq if CONFIG_ARCH_HIPRI_INTERRUPT=y
2. up_irq_save should mask fiq if CONFIG_ARCH_TRUSTZONE_SECURE=y
3. up_irq_save should mask irq if CONFIG_ARCH_TRUSTZONE_SECURE=n
4. add up_secure_irq in arm64
5. add ARCH_HAVE_TRUSTZONE support for ARCH_CORTEX_R82

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2025-11-12 20:39:54 +08:00
Jani Paalijarvi
97c228c517 arch/arm64/src/imx9/imx9_flexspi_nor.c: Implement MTDIOC_RESET command
MTDIOC_RESET ioctl command executes "Reset Enable" and "Reset Memory"
commands to enter a power-on reset condition.

Signed-off-by: Jani Paalijarvi <jani.paalijarvi@unikie.com>
2025-11-12 20:39:00 +08:00
Jani Paalijarvi
c793572c1c include/nuttx/mtd/mtd.h: Add MTDIOC_RESET ioctl
Define MTDIOC_RESET ioctl command for resetting flash memory.

Signed-off-by: Jani Paalijarvi <jani.paalijarvi@unikie.com>
2025-11-12 20:39:00 +08:00
raiden00pl
3e30a93d1b boards/nucleo-h743zi: register TMPFS
register TMPFS for nucleo-h743zi

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-11-12 11:53:03 +01:00
trns1997
22bc630d9f drivers/kinetis/spi: Fix Kinetis DSPI transfers in non-FIFO mode.
Fix a transfer issue in the Kinetis DSPI driver when operating
with transmit and receive FIFOs disabled (`MCR[DIS_TXF]=1`,
`MCR[DIS_RXF]=1`). In this mode, the DSPI module behaves as a
simple double-buffered SPI interface without TX staging.

When FIFOs are disabled, `PUSHR` acts as a single 32-bit
command/data register. Partial (16-bit) writes to its upper or
lower halves can result in incomplete or corrupted transfers.
This patch ensures the full 32-bit packet is prepared and
written in a single operation.

* Resolves broken SPI transactions with LAN9252 (EasyCAT).
* Improves reliability in non-FIFO DSPI configurations.
* No impact on DMA or FIFO-enabled modes.

Signed-off-by: trns1997 <trns1997@gmail.com>
2025-11-12 11:24:03 +01:00
raiden00pl
922f950967 boards/x86_64/intel64/qemu-intel64: register TMPFS
register TMPFS for qemu-intel64

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-11-12 11:18:51 +01:00
simbit18
eb583704fe boards/arm/kinetis: CMake added NXP Freedom-K28F and Freedom-K66F boards
CMake added boards:

  - NXP Freedom-K28F

 -  NXP Freedom-K66F

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-11 14:04:23 -05:00
haitomatic
6b45617064 arch/risc-v/mpfs: Remove strict CAN frame data length check.
Some checks failed
Build Documentation / build-html (push) Has been cancelled
In MSS CAN transmit function, the check of net pkt data len is not neccessary. Since there are cases that the pkt len can exceed the expected 16 bytes of can_frame but the pkt is still valid. Such a case is when CONFIG_NET_CAN_RAW_TX_DEADLINE is enabled which has pkt len to become 32 bytes due to cmsghdr overhead.

Signed-off-by: haitomatic <hai.to@unikie.com>
2025-11-11 22:16:51 +08:00
simbit18
12cee023b2 boards/arm/kinetis: Added CMake build for NXP Freedom-K64F board
- CMake added board NXP Freedom-K64F

https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-K64F

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-11 22:15:52 +08:00
simbit18
eca3942320 arch/arm/src/kinetis: CMake build implemented for NXP Kinetis MCUs
- added NXP Kinetis MCUs

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-11 22:15:52 +08:00
hujun5
857fdad220 boards/arm/qemu/qemu-armv7a: add demo for gdbstub
Gdbstub support
===========
  The Qemu version must be above 9.2 to support two serial ports.

  One window:
  ./tools/configure.sh qemu-armv7a:gdbstub; make -j25
  qemu-system-arm -cpu cortex-a7 -nographic -machine virt,virtualization=off,gic-version=2 -net none -kernel ./nuttx  -serial mon:stdio -serial pty
  char device redirected to /dev/pts/26 (label serial1)
  nx_start: Entry
  uart_register: Registering /dev/console
  uart_register: Registering /dev/ttyS0

  Another window:
  gdb-multiarch nuttx -ex "target remot /dev/pts/26"
  GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
  Copyright (C) 2024 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  Type "show copying" and "show warranty" for details.
  This GDB was configured as "x86_64-linux-gnu".
  Type "show configuration" for configuration details.
  For bug reporting instructions, please see:
  <https://www.gnu.org/software/gdb/bugs/>.
  Find the GDB manual and other documentation resources online at:
  <http://www.gnu.org/software/gdb/documentation/>.

  For help, type "help".
  Type "apropos word" to search for commands related to "word"...
  Reading symbols from nuttx...
  Remote debugging using /dev/pts/26
  gdb_get_registers (state=0x402052f8) at gdbstub/lib_gdbstub.c:1020
  1020              reg = state->running_regs;
  (gdb) c

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2025-11-11 19:53:56 +08:00
hujun5
d94cb53d6c sched_lock: remove the check for whether tcb is NULL
Remove Redundant Checks

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2025-11-11 17:26:30 +08:00
wangchen
678164bf4e net_bufpool.c:when timeout value is zero,It don't break netlock
Resolve some timing issues caused by calling net_breaklock to release netlock in the function NET_BUFPOOL_TRYALLOC

Signed-off-by: wangchen <wangchen41@xiaomi.com>
2025-11-10 22:30:37 -05:00
wangchengdong
9053b60eb2 Documentation: Add wd_start_next() API description
Some checks failed
Build Documentation / build-html (push) Has been cancelled
Add documentation for wd_start_next() API,
    describing its purpose and usage.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
wangchengdong
61c4c54bd3 Documentation: Add wd_restart_next() API description
Add documentation for the newly introduced wd_restart_next() API,
    describing its purpose and usage.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
wangchengdong
07e05b8591 sched/wdog: Add wd_restart_next() for precise wdog restart upon expiration
This patch introduces wd_restart_next(), which enables precise and
    convenient watchdog restarts upon expiration. It is designed to be
    invoked within the watchdog expiration callback to facilitate accurate
    periodic events.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
wangchengdong
387803e958 Documentation: Add wd_restart() API description
Add documentation for the newly introduced wd_restart() API,
    describing its purpose and usage.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
wangchengdong
8696632abe sched/wdog: Add wd_restart() for convenient restart of a wdog
Introduce wd_restart() to allow restarting an existing watchdog
    with its previously configured callback and argument, making it
    easier to refresh or reuse preconfigured watchdog timers.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
wangchengdong
71f53c6c74 sched/wdog: Inline wd_start() to improve performance
Move wd_start() to an inline function to reduce function call
    overhead and improve performance in time-critical watchdog operations.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-11-10 23:16:57 +08:00
raiden00pl
44a924ab42 boards/stm32h7: add Arduino Portenta H7
Add initial support for Arduino Portenta H7.
For now only CM7 core is supported.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-11-10 18:13:47 +08:00