Commit Graph

61230 Commits

Author SHA1 Message Date
chao an d32ac6ea9d serial/uart_rpmsg: Remove redundant CONFIG_RPMSG_UART_CONSOLE macro check
Remove the unnecessary CONFIG_RPMSG_UART_CONSOLE preprocessor guard around
the console registration logic in uart_rpmsg_init().

The uart_rpmsg_init() function already accepts a bool isconsole parameter to
dynamically control console registration, which is designed to support flexible
console setup in distributed multi-core SOC systems. Adding the macro check on
top of this runtime parameter is redundant and negates the dynamic registration
capability.

This change fixes a regression introduced by PR #18410, which broke the functionality
of sim/rpproxy and sim/rpserver due to the incorrect macro guard preventing proper
console registration for the rpmsg UART device.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-03-27 17:08:27 +08:00
Shunchao Hu 363f8fd125 drivers/net/telnet: Fix typo.
This commit fixed code comment typo in telnet.c.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
2026-03-27 17:08:09 +08:00
SPRESENSE 62b463bcf7 arch: cxd56xx: Fix nxstyle
Fix error: Case statement should be on a new line.

Signed-off-by: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com>
2026-03-27 17:07:00 +08:00
SPRESENSE ed0338a1df arch: cxd56xx: Fix DMA transfer for large memory size
When using a dummy memory address in DMA LLI transfers,
do not update the memory address.

Signed-off-by: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com>
2026-03-27 17:07:00 +08:00
Michal Lenc 08bffe1c0b drivers/mtd/w25.c: ensure the device is not in power down mode
If power down mode is set, trying to read ID ends in an infinite loop
because w25_waitwritecomplete never returns as status register never
signalizes write complete. Therefore ensure the device is not in a
power down mode before trying to read from it.

This can be an issue if the board is trying to check for more NOR
memories on one SPI bus and one chip select. For example GD25 driver
returns the memory to power down state after read id is finished,
therefore board initialization is stuck in an infinite loop if it first
checks for GD25 and then fallbacks to W25.

The commit fixes the possible issue by ensuring W25 is brought back
to normal operation mode before trying to obtain the manufacturer ID.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-03-27 17:05:17 +08:00
Arjav Patel e2f3950d45 libc: add support for C23 stdbit.h with bit manipulation macros
Build Documentation / build-html (push) Has been cancelled
- Introduced Kconfig options for stdbit.h, allowing architecture-specific and generic implementations.
- Added new documentation for stdbit.h, detailing its usage and configuration.
- Updated CMake and Makefile to handle the inclusion of stdbit.h based on configuration settings.

This enhances the NuttX library with optional C23 bit manipulation utilities, improving functionality for architectures that support it.

Signed-off-by: Arjav Patel <arjav1528@gmail.com>
2026-03-02 09:09:40 -03:00
Chip L. 47c7169825 wireless/nrf24l01: Implement common RF IOCTLs and fix missing register reads.
Update the nrf24l01_ioctl function to fully comply with the common wireless
character driver interface defined in nuttx/wireless/ioctl.h, and complete
previously unimplemented device-specific commands.

* Add support for WLIOC_SETRADIOFREQ and WLIOC_GETRADIOFREQ with
  quantitative conversion between Hz (API) and MHz (Hardware).
* Add support for WLIOC_SETTXPOWER, WLIOC_GETTXPOWER, WLIOC_SETFINEPOWER,
  and WLIOC_GETFINEPOWER.
* Add WLIOC_SETMODU and WLIOC_GETMODU, strictly enforcing WLIOC_GFSK
  modulation as required by the nRF24L01 physical layer.
* Map WLIOC_SETADDR and WLIOC_GETADDR to the existing TX address routines.
* Resolve -ENOSYS in NRF24L01IOC_GETRETRCFG by reading the
  NRF24L01_SETUP_RETR register and decoding ARD/ARC shift bits.
* Resolve -ENOSYS in NRF24L01IOC_GETDATARATE by parsing RF_DR_LOW and
  RF_DR_HIGH bits from the NRF24L01_RF_SETUP register.

Signed-off-by: Chip L. <chplee@gmail.com>
2026-03-02 08:07:39 -03:00
guoshengyuan1 2dae11461d nxgdb: change the symbol g_statenames to nxsched_get_stateinfo::g_statenames
I0680e48d8ff8847c8712e1a54efe32d320e7c84d changes the scope of the symbol definition.
So nxgdb needs to synchronize this modification.

Signed-off-by: guoshengyuan1 <guoshengyuan1@xiaomi.com>
2026-03-02 08:06:18 -03:00
dependabot[bot] 8730b52170 build(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 09:15:02 +01:00
Lars Kruse 2cca9a2bdf pynuttx: update
Commit 6ed4ea63d renamed the function `mm_initialize` to
`mm_initialize_heap`.

This caused the pynuttx modules (e.g. `mm dump`) to be missing.

Signed-off-by: Lars Kruse <devel@sumpfralle.de>
2026-03-02 10:25:21 +08:00
Matteo Golin 6cffe9b0b4 drivers/sensors: Legacy sensor warning
This commit implements a compile-time warning and in-code comment
warning for legacy sensor drivers. This is intended to:

- Warn users that legacy drivers may eventually be removed
- Warn developers that they should not use a legacy driver as a
  reference for their new driver contributions

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-03-01 16:37:20 -03:00
Kerogit c568a348f5 Documentation/guides/customboards: add example minimal defconfig file
Build Documentation / build-html (push) Has been cancelled
This patch adds defconfig example to The Custom Boards How-To guide.

The command specified in this guide which runs configure script fails
if the defconfig file does not exists; the guide did not mention this
file at all.

If the file exists but is empty, the configure script fails and leaves
the system in a broken state which is somewhat difficult to deal with.
(Subsequent attempts to configure fail but so do attempts to distclean.)

To resolve this, this patch adds a minimal defconfig example which
should be sufficient for the configure script to do its work correctly.

Signed-off-by: Kerogit <kr.git@kerogit.eu>
2026-02-28 20:59:01 -05:00
Kerogit 3225221519 Documentation/reference/os/time_clock: fix indentation in HR Timer description
This patch fixes formatting error in desription of High Resolution Timer.
Using indentation to (presumably) align non-bold text right of the bold
text did not have the desired effect, instead the line was split into two
and the second line was handled as an indented paragraph.

Signed-off-by: Kerogit <kr.git@kerogit.eu>
2026-02-28 20:59:01 -05:00
Kerogit b0af360212 arch/avr/src/avrdx: fixed typo in avrdx_gpio_isr_mux.c
This patch fixes a typo in a comment. (Tested: checkpatch - all checks
pass, compilation yields binary with identical SHA256 checksum
with and without the patch.)

Signed-off-by: Kerogit <kr.git@kerogit.eu>
2026-02-28 20:59:01 -05:00
Maarten Zanders 0db2567eaa docs/platforms/arm/imx9: add imx93-qsb documentation.
Build Documentation / build-html (push) Has been cancelled
Add a writeup of currently supported features with a picture
and block diagram.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 9cb736adbf arch/arm/imx9: update CODEOWNERS.
Add myself to new and common/modified files.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 9325571198 boards/arm/imx9: add i.MX93 Quick Start Board (QSB) support.
Add board support for the NXP i.MX93 QSB targeting the Cortex-M33
core. Three configurations are provided:

- nsh:     run from ITCM (128 kB), LPUART2 console
- nsh-ddr: run from DDR, LPUART2 console
- rpmsg:   run from ITCM, RPMsg/OpenAMP transport, NSH on
           /dev/tty-nsh via RPMSG_UART_RAW

Linker scripts:
- itcm.ld: vectors + text in ITCM, data in DTCM
- ddr.ld:  vectors + text + data in DDR (0x89000000, 16 MB)

Tool to enable local debug interface through USB.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders f70d40bca7 arch/arm/imx9: add i.MX93 Cortex-M33 support.
Add hardware register headers and driver support for the NXP i.MX93
Cortex-M33 core. All new and modified code is guarded by
ARCH_CHIP_IMX93_M33 preprocessor defines; existing i.MX95-M7 builds
are unaffected.

New drivers:
- imx9_xcache.c - off core cache init and maintenance
- imx9_ccm.c - generic CCM abstraction layer

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 461e7bd91f arch/arm/imx9: Kconfig: remove redundant menu wrapper around chip selection.
The menu and choice had the same purpose; keep only the choice.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders a82293e3ef arch/arm/imx9: make MU driver generic for all i.MX9 variants.
Rename imx95_mu_* functions to imx9_mu_*, decoupling the MU driver
API from the iMX95-specific naming in preparation for iMX93-M33
support.

Add ARCH_CHIP_IMX95_M7 dependency to the MU instance Kconfig entries
so they are only visible for the appropriate target.

Switch imx9_mu.c to include the generic imx9_memorymap.h instead of
the imx95-specific header.

Fix incorrect help text for MU8 (was copy-pasted from MU5).

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 7ee57f42bb arch/arm/imx9: rptun/rsctable: move addresses and MU instance to headers.
Extract chip-specific constants from imx9_rptun.c and imx9_rsctable.c
into new dispatch headers:

- hardware/imx9_rsctable.h: VDEV0_VRING_BASE and RESOURCE_TABLE_BASE,
  selected per ARCH_CHIP define
- hardware/imx9_rptun.h: MU_INSTANCE, selected per ARCH_CHIP define

Rename the misnamed VRING_SHMEM constant in imx9_rptun.c to
RESOURCE_TABLE_BASE, which correctly reflects that this address points
to the resource table, not the vring shared memory region.

No functional change for i.MX95-M7 builds.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 3631256219 arch/arm/imx9: irq: replace hardcoded NVIC register lists with loops.
Use NVIC_IRQ_ENABLE(n) and NVIC_IRQ_PRIORITY(n) macros in
imx9_dumpnvic() to iterate over all NVIC registers programmatically
based on CONFIG_ARCH_NINTS (IMX9_IRQ_NEXTINT), rather than
enumerating named per-range register defines. Output is grouped
4-per-line for priority and 4-per-line for enable registers,
matching the original layout.
This avoids accessing registers which don't exist when extending
the interrupt count.

Also replace named NVIC_IRQxx_yy_ENABLE constants in imx9_irqinfo()
with NVIC_IRQ_ENABLE(n), avoiding naming conflicts between chips
with different IRQ counts.

Fix the upper boundary in the >192 IRQ branch from 219 to 224 to
align with the 32-interrupt register granularity.

Change %08x to %08lx to silence warnings from the compiler for
the debug dump.

No functional change for existing i.MX95-M7 builds.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 2c5ffacff5 arch/arm/imx9: iomuxc: introduce IOMUXC_MUX_CTL_GPIO_LASTIO_OFFSET.
The GPIO mux range check in imx9_iomux_gpio() used a hardcoded
IOMUXC_MUX_CTL_GPIO_IO37_OFFSET as the upper bound, which is
i.MX95-specific. Move the define to imx95_iomuxc.h as an alias of
the last GPIO_IO entry, and use the named constant in the comparison.

No functional change; i.MX95 builds are unaffected.

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
Maarten Zanders 6f859b56c7 arch/arm/imx9: clockconfig: preparatory cleanup for i.MX93 support.
- Guard imx9_gpc.h inclusion with CONFIG_IMX9_WFI_AWAKES_AT_SYSTICK
  to avoid a GPC dependency on chips that lack GPC
- Add depends on ARCH_CHIP_IMX95_M7 to IMX9_WFI_AWAKES_AT_SYSTICK
  since GPC wake configuration is i.MX95-specific
- Move XTAL_FREQ and ROOT_CLOCK_OFFSET defines to imx95_clock.h
- Make imx9_sm_setrootclock() and imx9_sm_getipfreq() static;
  they are not referenced outside this translation unit

Signed-off-by: Maarten Zanders <maarten@zanders.be>
2026-02-28 10:30:06 +08:00
simbit18 de29af83f8 boards/arm/sama5: CMake added boards
CMake added boards:

 - sama5d3-xplained

 - sama5d3x-ek

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-02-27 16:33:00 -05:00
simbit18 84a512759d arch/arm/src/sama5: CMake build implemented for Microchip's SAMA5 Family
- added Microchip's SAMA5 Family

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-02-27 16:33:00 -05:00
Matteo Golin bbc330802d docs/esp32c3-xiao: Add NimBLE example configuration docs
Documents the NimBLE example configuration for the ESP32C3 Xiao.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-02-27 17:55:34 +01:00
Matteo Golin 65474bcd80 boards/esp32c3-xiao: Add nimble configuration
Adds a configuration that comes with the NimBLE example application.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-02-27 17:55:34 +01:00
zhanxiaoqi 975968db1b mm/mempool: fix the entry condition for semaphore during mempool allocation
When the mempool uses the waitsem semaphore for memory allocation,
the flowing two conditions must be satisfied simultaneously:
its wait variable is set to true, and the expandsize variable is set to 0

Signed-off-by: zhanxiaoqi <zhanxiaoqi@bytedance.com>
2026-02-28 00:24:54 +08:00
taoliu e3b1e5914e arch/arm/src: Add necessary conversion between tick and usec for tickless
When testing tickless scheme with default arm_systick.c, we found the
count writed to systick register is too smaller the expected, just the
ticks not count, and os runing abnormally with too much interrupter.
Add necessary coversion, then system run well.

Signed-off-by: taoliu <taoliu@asrmicro.com>
2026-02-27 14:08:51 +01:00
zhenwei fang f0fc695a81 arch/sim: fix warning ‘sim_buttonmap’ defined but not used
N/A

Signed-off-by: zhenwei fang <fangzhenwei@bytedance.com>
Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 19:54:46 +08:00
xingrentai.1 bf83ff3fbd arch/sim: guard X11 touchscreen events with CONFIG_SIM_TOUCHSCREEN
The X11 event loop in the POSIX simulator was processing MotionNotify
(touch/mouse movement)and ButtonPress/ButtonRelease events unconditionally,
even when the touchscreen feature(CONFIG_SIM_TOUCHSCREEN) was disabled.

This could lead to unnecessary event processing, potential compiler warnings
about unusedfunctions (e.g., sim_buttonevent), or unintended behavior in simulator
builds withouttouchscreen support. The touchscreen-related event handling should
only be active whenthe corresponding configuration is enabled.

This fix wraps the MotionNotify and ButtonPress/ButtonRelease event handling
logicwith #ifdef CONFIG_SIM_TOUCHSCREEN guards to:

1. Ensure touchscreen/mouse event processing is only compiled when CONFIG_SIM_TOUCHSCREEN is enabled.
2. Eliminate unused code warnings in non-touchscreen simulator builds.
3. Align event loop behavior with the configured feature set, reducing unnecessary runtime overhead.

The change maintains full touchscreen functionality when the config is enabled, whilecleaning up the
code path for builds that don't require touchscreen support.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 19:54:46 +08:00
xingrentai.1 ee3e931812 arch/sim: fix X11 framebuffer window not visible in POSIX simulator
The X11 framebuffer implementation in the POSIX simulator was creating a window
and graphics context but failing to map (display) the window to thescreen with XMapWindow().

This omission meant the framebuffer window would be created in the X11server but remain hidden,
making it impossible to see any graphics outputfrom the simulator. The window existed in the X11
server's state but wasnot rendered to the screen.

This fix adds the missing XMapWindow(display, g_window) call aftercreating the graphics context, which:
1. Maps the created X11 window to the screen (makes it visible).
2. Ensures framebuffer output is rendered to the display as expected.
3. Maintains compatibility with existing X11 framebuffer logic.

The change restores basic visibility of the simulator's framebuffer window,
fixing a critical usability issue for graphics-related testing in the POSIX simulator.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 19:54:46 +08:00
chenzhaoxiang 3fb1a40a4b libs/libc: add configurable skip count for mutex backtrace addresses
This commit introduces a new Kconfig option LIBC_MUTEX_BACKTRACE_SKIP tocontrol the
number of initial addresses skipped when generating mutex backtraces.

Key changes:
1. Add LIBC_MUTEX_BACKTRACE_SKIP Kconfig entry (depends on
LIBC_MUTEX_BACKTRACE > 0), defaulting to 2. This option lets users configure
how many leading addresses are omitted from the mutex backtrace output.

2. Modify the nxmutex_add_backtrace() function to pass the new config value
as the skip parameter to sched_backtrace(), replacing the hardcoded 0.

This enhancement improves the usability of mutex backtraces by allowing removalof uninformative
initial stack frames (e.g., backtrace helper functions ormutex acquisition wrappers), making the
relevant call stack entries more visiblefor debugging lock-related issues.

The default value (2) maintains sensibleout-of-the-box behavior while enabling customization for specific use cases.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 19:54:37 +08:00
chao an 2306cae933 serial/xlnx_ps: add help chapter for XUARTPS
N/A

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:14:03 -03:00
yinshengkai 45c38d8592 drivers/serial/16550: add polling mode support for serial drivers
Adds CONFIG_16550_POLLING options to enable polling mode for
transmission. This avoids TX interrupts and reduces interrupt latency
at the cost of blocking during TX.

Implements sendbuf() method for efficient buffer transmission
in polling mode.

Signed-off-by: yinshengkai <yinshengkai@bytedance.com>
Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:14:03 -03:00
yinshengkai 8c035a2414 drivers/serial/xlnxps: add polling mode support for serial drivers
Adds CONFIG_UART_XLNXPS_POLLING options to enable polling mode for
transmission. This avoids TX interrupts and reduces interrupt latency
at the cost of blocking during TX.

Implements sendbuf() method for efficient buffer transmission
in polling mode.

Signed-off-by: yinshengkai <yinshengkai@bytedance.com>
Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:14:03 -03:00
chao an cfd1771981 serial/xlnx_ps: add common Xilinx UART Peripheral System (XUARTPS) support
This PR adds complete driver support for the Xilinx UART Peripheral System (XUARTPS)
in the NuttX serial driver framework. The implementation includes the core driver code
(uart_xlnx_ps.c), configuration files (Kconfig-xlnxps), header definitions (uart_xlnx_ps.h),
and integration with the existing NuttX build system (CMakeLists.txt, Make.defs, Kconfig).

The driver supports UART0 configuration with customizable parameters (base address,
clock frequency, IRQ number, baud rate, parity, data bits, stop bits), RX/TX buffer sizing,
hardware flow control (RTS/CTS), interrupt-driven data transfer, and console mapping for XUARTPS UART0.
It also provides standard serial driver operations (setup, shutdown, attach/detach, ioctl, send/receive)
and early serial initialization for boot-time console access.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:14:03 -03:00
Tiago Medicci Serrano 18be6955c6 arch/xtensa/src/common: Create SoC-specific initialization routine
This commits adds a function that can be implemented by any vendor
to allow SoC-specific functions to be called by `up_initialize`.
Please note that `up_initialize` is provided by the arch level, but
it doesn't allow SoC-specific initialization. Although it could be
possible to run such initialization on board-level, semantically
it isn't related to the board, but with the SoC. As an example of
such implementation, some SoCs require RTC subsystem initialization
to occur before the OS is completely initialized.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-02-27 08:12:19 -03:00
Tiago Medicci Serrano ba20c930f8 arch/risc-v/src/common: Create SoC-specific initialization routine
This commits adds a function that can be implemented by any vendor
to allow SoC-specific functions to be called by `up_initialize`.
Please note that `up_initialize` is provided by the arch level, but
it doesn't allow SoC-specific initialization. Although it could be
possible to run such initialization on board-level, semantically
it isn't related to the board, but with the SoC. As an example of
such implementation, some SoCs require RTC subsystem initialization
to occur before the OS is completely initialized.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-02-27 08:12:19 -03:00
Chip L. 6cb6c45987 arch/xtensa/esp32: Fix buffer overflow in SPI poll exchange
The esp32_spi_poll_exchange() function previously used a hardcoded
length of sizeof(uint32_t) (4 bytes) for memcpy() operations and
pointer increments, disregarding the actual remaining transfer_size.

When an SPI transaction involved a data length not aligned to 4 bytes
(such as a 1-byte payload commonly used in sub-GHz radio drivers),
the driver forced a 4-byte memory transfer. This caused out-of-bounds
reads and writes, leading to stack smashing and fatal CPU exceptions
(e.g., EXCCAUSE=0000).

This patch resolves the memory corruption vulnerability by:
1. Calculating a precise `chunk` size for each iteration, strictly
   bounded by the remaining `transfer_size`.
2. Limiting the memcpy() operations and the subsequent pointer
   increments (tp and rp) to this exact chunk size.
3. Zero-initializing the temporary TX register (w_wd) before copying
   to clear padding and prevent reading uninitialized memory.
4. Adding a NULL check for the receive pointer (rp) prior to the
   memcpy operation to prevent unintended memory writes.

Signed-off-by: Chip L. <chplee@gmail.com>
2026-02-27 08:10:46 -03:00
Chip L. 3582497909 wireless/cc1101: Add Kconfig option to bypass strict version check
Many third-party CC1101 modules (such as those populated on the Evil Crow
RF V2) feature clone silicon that hardcodes the VERSION register to 0x00
instead of the official 0x14.

Previously, the cc1101_checkpart() function strictly enforced
VERSION == 0x14, which caused cc1101_register() to return -ENODEV (-19)
and abort initialization on these compatible modules.

This commit introduces the CONFIG_WL_CC1101_IGNORE_VERSION Kconfig option.
- When disabled (default), the driver maintains strict official silicon
  validation. This preserves the diagnostic ability to catch hardware
  faults, such as a MISO line shorted to GND (which also reads as 0x00).
- When enabled, the driver explicitly permits VERSION == 0x00, allowing
  successful initialization and interoperability with clone chips while
  printing a warning to the syslog.

Signed-off-by: Chip L. <chplee@gmail.com>
2026-02-27 08:10:04 -03:00
chao an 0acf6f02f3 docs/syslog: add syslog configuration options documentation
This commit updates the syslog.rst documentation to:
1. Add a new "Overview" section with the syslog-overview.png diagram
2. Introduce a comprehensive "Syslog Configuration Options" chapter
3. Document the CONFIG_SYSLOG_TIMESTAMP_MS option (newly added in driver code)
   - Clarify its dependency on CONFIG_SYSLOG_TIMESTAMP
   - Explain its function: use millisecond (ms) precision instead of default microsecond (µs)
4. Group all syslog Kconfig options by functional role (debug level, formatting, buffer, etc.)
   - Basic Debug Log Level Configuration
   - Message Formatting Configuration (timestamp/metadata/visual)
   - (Other categories follow the syslog system architecture)

The documentation changes align with the recent driver enhancement:
- drivers/syslog: add millisecond option for syslog timestamp formatting
- Maintain consistency between driver code and documentation
- Make syslog configuration options more discoverable for developers

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:09:31 -03:00
liwangzhu 19fa9c1c67 drivers/syslog: add millisecond option for syslog timestamp formatting
This commit introduces a new Kconfig option SYSLOG_TIMESTAMP_MS to allowconfiguring
syslog timestamps to use milliseconds (ms) instead of the default microseconds (µs).

Key changes:
1. Add CONFIG_SYSLOG_TIMESTAMP_MS boolean Kconfig option (depends on SYSLOG_TIMESTAMP),
   default disabled. This option lets users choose between millisecond and microsecond
   precision in syslog timestamps.

2. Modify the timestamp format string in nx_vsyslog():
  a. When CONFIG_SYSLOG_TIMESTAMP_MS is enabled: Use [%5ju.%03ld] (3 digits for ms).
  b. When disabled (default): Retain original [%5ju.%06ld] (6 digits for µs).

3. Adjust the timestamp value calculation:
  a. For ms: Divide nanoseconds by NSEC_PER_MSEC (1,000,000) to get millisecond value.
  b. For µs (default): Retain division by NSEC_PER_USEC (1,000) for microsecond value.

This enhancement provides flexibility in syslog timestamp precision:

1. Millisecond precision reduces log line length and is sufficient for many use cases.
2. Maintains backward compatibility (microseconds remain the default).
3. The Kconfig dependency ensures the option is only visible when timestamps are enabled.

The change is fully conditional and has no impact on existing behavior unless the new option is explicitly enabled.

Signed-off-by: liwangzhu <liwangzhu@bytedance.com>
Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 08:09:31 -03:00
chenzhaoxiang 635f64ebb8 sched/misc: fix potential out-of-bounds access in coredump stack emission
The elf_emit_tcb_stack() function in coredump.c was calculating the stackbuffer length
and emitting the stack data without validating whether thecalculated buffer range
(buf + len) exceeds the actual bounds of the TCB'sstack memory region (stack_base_ptr + adj_stack_size).

This could lead to out-of-bounds memory access when the calculated stacklength is larger
than the available stack space, potentially causing memorycorruption, crashes, or incorrect
core dump generation.

This fix adds a bounds check:
1. Compares the end of the intended stack buffer (buf + len) against the
   upper limit of the TCB's stack (stack_base_ptr + adj_stack_size).
2. If the buffer would exceed the stack bounds, truncates the length to fit
   within the valid stack memory range.

The change ensures safe memory access during core dump generation,preventing out-of-bounds
reads and improving the robustness of the coredumpfeature.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 17:52:34 +08:00
zhanghongyu e404fe4b8d rndis.c: move ifup in setconfig to the work queue
Move network interface up operation (ifup) to work queue in RNDIS USB
device driver to avoid calling netdev_carrier_on API in interrupt context.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-02-27 15:39:38 +08:00
chenzhaoxiang 0d12f82074 sched/misc: fix incorrect mutex holder retrieval in assert backtrace
The dump_lockholder() function in assert.c was directly accessing themutex->holder
member variable to print the mutex holder's thread ID inthe backtrace log. This is
incorrect because the holder field is aprivate implementation detail of the mutex structure,
and the properAPI nxmutex_get_holder() should be used to retrieve the holder ID.

Using the public API ensures consistency with mutex state management,avoids potential issues
with future changes to the mutex structure'sinternal layout, and adheres to the kernel's
encapsulation principles.

This fix corrects the log output to show the accurate mutex holder IDwhen assertion failures
related to mutex locks occur, improving thedebuggability of lock-related issues.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-27 09:24:55 +08:00
Yuran Wu 17bc7a36ce video/imgdata: fix IMGDATA_SET_BUF macro int-conversion warning
set_buf return type is not a pointer but an integer, this will cause -Wint-conversion error.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-26 14:47:52 +01:00
chenzhaoxiang 14fb39a6cd sched/misc: fix incomplete data emission in coredump elf_emit function
The elf_emit() function in coredump.c was only checking for negative returnvalues
from lib_stream_puts() to detect write failures. However, lib_stream_puts()can return 0
to indicate that no bytes were written (e.g., due to stream full,end-of-file, or other
non-error conditions that prevent data writing).

This oversight meant that cases where lib_stream_puts() returned 0 would bypassthe error handling,
leading to incomplete data emission in the core dump withoutany failure indication.
The loop would continue attempting to write the remainingdata, resulting in partial or corrupted core dump files.

This fix modifies the condition from ret < 0 to ret <= 0 to:

1. Catch both error conditions (negative return values) and zero-byte writes.
2. Immediately break the write loop and propagate the failure, ensuring the core
   dump process correctly aborts when data cannot be written.

This change improves the reliability of core dump generation by ensuring allfailed or
incomplete write attempts are properly handled, preventing corruptedcore dump files.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-26 14:44:16 +01:00
zhanxiaoqi 4b09f34a45 mm/mempool: The wait variable of the memory pool is controlled by macros
The wait variable of the memory pool is modified to be controlled by macros, facilitating dynamic adjustment of its value via configuration macros.

Signed-off-by: zhanxiaoqi <zhanxiaoqi@bytedance.com>
2026-02-26 20:48:12 +08:00