Commit graph

61425 commits

Author SHA1 Message Date
Alin Jerpelea
f8ef8e7bb1 Documentation: add NuttX-12.13.0 release notes
Add release notes for 12.13.0 release

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2026-03-29 22:34:53 +08:00
Shunchao Hu
fc6fd3f24d arch/risc-v/qemu-rv: Configure PMP before booting secondary harts.
Export qemu_rv_configure_mpu() and invoke it on the secondary-hart
boot path before riscv_cpu_boot().

This keeps protected SMP builds from faulting on !CPU0 when userspace
work is first scheduled there.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
2026-03-28 16:00:58 -03:00
Tiago Medicci Serrano
9028fe72c7 ci: split xtensa jobs into three separate jobs (instead of two)
This is necessary because new defconfig were recently added to
Xtensa-based Espressif SoCs and the build job may exceed 2 hours.
In order to avoid increasing job timeout, a specific job for each
supported SoC (ESP32, ESP32-S2 and ESP32-S3) was created instead.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-03-29 00:33:11 +08:00
Tiago Medicci Serrano
c17e16eaed xtensa/espressif: Update common-source integration for Xtensa devices
This commit updates the common-source integration for Xtensa-based
Espressif devices (ESP32, ESP32-S2, and ESP32-S3). This is part of a larger
common-source update split by architecture for better maintainability.

Major components updated:
- IRQ allocator refactoring with intr_alloc integration
- Common-source drivers (GPIO, RMT, I2C, SPI, UART, etc.)
- Espressif components upgrade to release/master.b-test
- Peripheral drivers (ADC, PWM, LEDC, MCPWM, PCNT, Temperature Sensor, etc.)
- Wireless adapters (Wi-Fi and BLE)
- esp_timer migration to the common-source path for Xtensa devices
- Common-source power management implementation (auto-sleep and wakeup paths)
- Board defconfigs for all Xtensa Espressif boards
- SMP support improvements for ESP32-S3
- Critical section handling improvements

Key architectural changes:
- IRQ Allocator: The new interrupt allocator enables multiple mapping
  options from interrupt sources to CPU interrupts, providing flexibility
  required by modern peripherals. Although this introduces breaking changes
  to the interrupt handling API, the required ARCH_MINIMAL_VECTORTABLE
  Kconfig option is explicitly checked during startup to ensure proper
  configuration. This validation prevents runtime issues from configuration
  mismatches.
- Xtensa-specific interrupt handling via esp_xtensa_intr.c providing
  NuttX-native implementations of xt_ints_on/off and interrupt handlers,
  avoiding conflicts with NuttX's core Xtensa macros.
- Timer/RTC unification: ESP32/ESP32-S2/ESP32-S3 move from chip-specific
  RTC/RT-timer code to common-source Espressif integration, including
  esp_timer_adapter/esp_rtc paths and the required bringup/defconfig updates.
- Power management consolidation: Xtensa PM follows the common-source
  implementation, including common-source auto-sleep behavior, UART/Wi-Fi
  wakeup coordination, and tickless-safe sleep flow compatibility.

Note: This is a large commit to maintain bisectability. Breaking the
changes into smaller commits would result in non-building intermediate
states across the common-source infrastructure update.

Tested configurations:
- All defconfigs were tested, including `ostest`.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-03-29 00:33:11 +08:00
Tiago Medicci Serrano
c64b95ccbf ci: split xtensa jobs into three separate jobs (instead of two)
This is necessary because new defconfig were recently added to
Xtensa-based Espressif SoCs and the build job may exceed 2 hours.
In order to avoid increasing job timeout, a specific job for each
supported SoC (ESP32, ESP32-S2 and ESP32-S3) was created instead.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-03-28 06:14:34 +08:00
Michal Lenc
5bb7ceb5fe nucleo-l476rg/stm32_gpio.c: fix compilation error
Fixes the following compilation error.

stm32_gpio.c: In function 'stm32gpio_interrupt':
stm32_gpio.c:150:24: error: 'tm32gpint' undeclared (first use in
this function); did you mean 'stm32gpint'?
  150 |                        tm32gpint->stm32gpio.id);
      |                        ^~~~~~~~~
      |                        stm32gpint

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-03-27 12:47:49 -04:00
Eren Terzioglu
5c9f5f1323 arch/risc-v/espressif: Fix wrong C3 naming
Fix wrong C3 naming in Kconfig

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-03-27 19:32:10 +08:00
Michal Lenc
b8374cbf1d nucleo-l476rg: fix ADC driver compilation
The definition of ADC channels should not depend on option
CONFIG_INPUT_AJOYSTICK at all. Moreover, the include of stm32l4_adc.h
file was missing (PWM include was used instead), causing the implicit
declaration of stm32l4_adc_initialize function.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-03-27 19:31:56 +08:00
liuhongchao
c252d564cd Documentation: Add getevent input event monitor documentation.
Add rst documentation for the getevent tool under
Documentation/applications/graphics/input/. Content is placed
directly in index.rst following the existing convention used by
other graphics application docs.

Signed-off-by: liuhongchao <liuhongchao@xiaomi.com>
2026-03-27 08:09:24 -03:00
dependabot[bot]
e7dc7f3f5e build(deps): bump requests from 2.32.5 to 2.33.0 in /Documentation
Bumps [requests](https://github.com/psf/requests) from 2.32.5 to 2.33.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.5...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 09:45:36 +08:00
Jiri Vlasak
7f5e0285a8 kinetis/pinmux: Do not redefine PIN_UART2_RTS
When a developer working on BSP wants UART1 with RTS, the following
needs to be added in the BSP's include/board.h file:

	#define PIN_UART1_RTS PIN_UART1_RTS_1

which says that PIN_UART1_RTS_1 -- the first alternative pin with UART1
RTS function -- should be used for the UART1's RTS.

There are no alternative pins for PIN_UART2_RTS, therefore a similar
definition is not used for PIN_UART2_RTS.

However, that is a complication when we want PIN_UART2_RTS to be defined
as GPIO, for example:

	#define PIN_UART2_RTS (GPIO_OUTPUT | PIN_PORTB | PIN2)

In such a case, PIN_UART2_RTS is later redefined to the only alternative
function from hardware/kinetis_???pinmux.h file.

This patch avoids the redefinition of already defined names.

We considered renaming PIN_UART2_RTS to PIN_UART2_RTS_1 in the
hardware/kinetis_???pinmux.h file, but that is breaking change. We try
to avoid breaking change.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-03-27 09:37:06 +08:00
Jiri Vlasak
b2349aee5c kinetis/serial: Do not fake TX interrupt
Because it is not needed anymore.

The original code here is from the initial implementation in the commit
66b873ef77.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-03-27 09:37:06 +08:00
Jiri Vlasak
444073e370 kinetis/serial: Do not xmit when no chars to xmit
When there are no data in the TX buffer, we can avoid call to the
uart_xmitchars.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-03-27 09:37:06 +08:00
Jiri Vlasak
fd3e524c0f kinetis/serial: Enable RTS as GPIO for RS485CONTROL
When using CONFIG_UART?_RS485CONTROL, RTS pin is set high when sending
data and low otherwise. PIN_UART?_RTS is defined in the board.h file as
the appropriate ALT functionality of the chip's port.

However, it may happen that PIN_UART?_RTS is wired to another pin of the
chip that does not support the RTS as ALT functionality of the UART?  in
question. This commit addresses such a situation.

When UART?_RS485CONTROL_RTSISGPIO is set in menuconfig for the given
UART?, it is expected that the PIN_UART?_RTS is defined as GPIO_OUTPUT,
and the PIN_UART?_RTS is set high when sending data and low otherwise.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-03-27 09:37:06 +08:00
raiden00pl
4497bacb1c boards: use NTFC from pip for citest configs
use NTFC from pip for citest configs

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-27 06:41:58 +08:00
raiden00pl
65cfcc4779 .github: install NTFC from PIP
install NTFC package from PIP

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-27 06:41:58 +08:00
Filipe Cavalcanti
365756e3d1 arch/risc-v/espressif: select EFUSE when ESPRESSIF_EFUSE is enabled
Add 'select EFUSE' entry to enable NuttX EFUSE support.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2026-03-26 13:39:53 -04:00
simbit18
0a76e9fe8a arch\xtensa: Fix Kconfig style
- Remove spaces from Kconfig

- Add TABs

- Add comments

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-26 13:39:41 -04:00
Peter Barada
870c96350f arch/arm/stm32*: Cleanup stm32 irq reporting
Rename STM32_IRQ_NEXTINT to STM32_IRQ_NEXTINTS across all stm32
variants.
In stm32_dumpnvic() dynamically print NVIC enable and priority
registers based on STM32_IRQ_NEXTINTS.
Use PRIx32 format specifier instead of 'x' (since uint32_t on arm is
actually a long unsigned int).
Simplify if/else chain in stm32_irqinfo() to determine irq reg/bit.
There's no stm32_irqinfo.c; remove mention in stm32f0l0g0/Make.defs.

Signed-off-by Peter Barada <peter.barada@gmail.com>
2026-03-26 23:00:56 +08:00
SPRESENSE
2a4c5c8bee 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-26 13:24:40 +08:00
SPRESENSE
48e9de51f9 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-26 13:24:40 +08:00
simbit18
536dec431d boards/risc-v/fe310: CMake added hifive1-revb board
CMake added hifive1-revb board

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-25 19:20:58 -04:00
simbit18
fa4ecef410 risc-v/src/fe310: CMake build implemented for SiFive FE310
- added  SiFive FE310

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-25 19:20:58 -04:00
simbit18
74842b8778 boards/risc-v/hpm6750: CMake added hpm6750evk2 board
CMake added hpm6750evk2 board

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-25 14:43:54 -03:00
simbit18
b38095beac risc-v/src/hpm6750: CMake build implemented for HPMicro HPM6750
- added  HPMicro HPM6750

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-25 14:43:54 -03:00
Shunchao Hu
7b60f6dfec drivers/net/telnet: Fix typo.
This commit fixed code comment typo in telnet.c.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
2026-03-25 20:49:43 +08:00
Shunchao Hu
b86b309eea drivers/net/telnet: Ignore unsupported subnegotiation data.
Ignore unsupported telnet subnegotiation payload until `IAC SE` so
option bytes do not leak into the first NSH command.

Keep existing NAWS handling intact and also treat `IAC IAC` inside
subnegotiation payload as an escaped `0xFF` data byte rather than a
subnegotiation terminator.

This makes subnegotiation parsing RFC-compliant for both unsupported
options and NAWS payload processing.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
2026-03-25 19:21:30 +08:00
kywwilson11
c717873ae3 stm32h5/adc: fix TROVS bit and watchdog threshold register writes
Fix adc_oversample() where priv->trovs (a bool, 0 or 1) was OR'd
directly into setbits instead of using ADC_CFGR2_TROVS (bit 9).
This caused triggered oversampling to never actually be enabled.

Fix ANIOC_WDOG_UPPER and ANIOC_WDOG_LOWER ioctls where the TR1
register was overwritten with only the new threshold value, zeroing
out the opposite threshold and the AWDFILT digital filter bits.
Use read-modify-write to preserve the other fields.

Signed-off-by: kywwilson11 <kwilson@2g-eng.com>
2026-03-25 18:12:26 +08:00
Huang Qi
26a476e0c1 boards/risc-v/k210/maix-bit: Add userled support
Replace GPIO driver with userled driver for Pin 12 and 13 LEDs.
The red LED on Pin 14 remains as system LED.

- Add user LED definitions in board.h (BOARD_LED1, BOARD_LED2)
- Add k210_userleds.c implementing board_userled_* functions
- Remove k210_gpio.c (GPIO driver no longer needed)
- Update CMakeLists.txt and Makefile for userled build
- Update k210_bringup.c to initialize userled instead of GPIO

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2026-03-24 13:43:09 -04:00
simbit18
01e1844396 boards/arm64/rk3399: CMake added pinephonepro board
CMake added pinephonepro board

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 13:40:45 -04:00
simbit18
073c0d794d arch/arm64/src/rk3399: CMake build implemented for Rockchip RK3399
- added Rockchip RK3399

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 13:40:45 -04:00
raiden00pl
4b48a27aee boards/nucleo-c071rb: add adcscope example
add adcscope example for nucleo-c071rb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-24 18:24:40 +01:00
raiden00pl
1e42826dcf boards/nucleo-c071rb: add more ADC channels
enable more ADC channels for boards/nucleo-c071rb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-24 18:24:40 +01:00
simbit18
80b7174810 boards/arm64/a64: CMake added pinephone board
CMake added pinephone board

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 22:03:53 +08:00
simbit18
7048298f4f arch/arm64/src/a64: CMake build implemented for Allwinner A64
- added Allwinner A64

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 22:03:53 +08:00
simbit18
fa3ab9a62b boards/arm64/imx8: CMake added imx8qm-mek board
CMake added imx8qm-mek board

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 22:03:33 +08:00
simbit18
56a84607ca arch/arm64/src/imx8: CMake build implemented for NXP i.MX 8
- added NXP i.MX 8

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-03-24 22:03:33 +08:00
raiden00pl
d72bb349f4 sched/group_foreachchild.c: fix warning
fix compilation warning:

   group/group_foreachchild.c:85:10: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
   85 |   return ret;
      |          ^~~
   group/group_foreachchild.c:67:7: note: 'ret' was declared here
   67 |   int ret;

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-24 10:56:23 -03:00
raiden00pl
3670d0e6fe boards/nucleo-c0{71rb|92rc}: fix USART 1 pins
fix USART 1 pins for boards/nucleo-c0 boards

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-03-24 14:20:39 +01:00
dependabot[bot]
a849304ec9 build(deps): bump docker/login-action from 3.7.0 to 4.0.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.7.0 to 4.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](c94ce9fb46...b45d80f862)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 10:54:52 +01:00
dependabot[bot]
f0a76a4a11 build(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](8d2750c68a...4d04d5d948)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 10:53:56 +01:00
dependabot[bot]
b8813147ed build(deps): bump docker/build-push-action from 6.19.2 to 7.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.19.2 to 7.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](10e90e3645...d08e5c354a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 10:52:41 +01:00
buxiasen
ced3cb1aa8 Documentation: imx95-a55-evk: add UMS flashing steps for u-boot
Add detailed steps for copying nuttx.bin to eMMC via u-boot USB Mass
Storage (ums) mode, which exposes the eMMC as a USB drive on the host
PC for easy file transfer.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
b3b7e012e9 imx95-a55-evk: add emmc defconfig for eMMC 8-bit with partition table
Add a dedicated emmc board configuration that enables USDHC1 8-bit
eMMC access with MBR/GPT partition table parsing, instead of polluting
the base nsh defconfig. This allows users to build and test eMMC
functionality with:

  cmake -DBOARD_CONFIG=imx95-a55-evk/emmc

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
0f3590fd19 imx95-a55-evk: add MBR/GPT partition table parsing on eMMC
Parse the partition table on /dev/mmcsd0 during board bringup and
register each partition as /dev/mmcsd0pN. MBR partitions have no
name field so a custom handler is needed instead of the default
register_partition which skips unnamed entries.

Verify by i.mx95 FRDM
'mount -t vfat /dev/mmcsd0p0 /data'

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
9e048af2c3 imx9: usdhc fix dmapreflight rejecting small unaligned buffers
imx9_dmapreflight() rejected unaligned buffers unconditionally, but
dmarecvsetup() has a bounce path via priv->rxbuffer for small
transfers. Add a buflen > sizeof(priv->rxbuffer) check so that
small reads (e.g. ext_csd 512-byte stack buffer) can use the
bounce buffer instead of failing with -EFAULT.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
0b75df277d imx95-a55-evk: add USDHC eMMC driver support
Port USDHC1 (eMMC) driver to the i.MX95 FRDM EVK board:
- Create imx95_pinmux.h with SD1/USDHC1 pin definitions
- Add USDHC1 pin macros to board.h
- Create board-level imx9_usdhc.c glue code
- Update imx9_bringup.c with DMA allocator and USDHC init
- Add SCMI clock guards in imx9_usdhc.c (imx95 clock roots
  are owned by System Manager, direct CCM writes are no-ops)
- Fix CCM_CR_USDHC2 copy-paste bug to CCM_CR_USDHC1

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
695774a940 imx9: add GPIO support for imx95
Add imx95 GPIO register definitions (same IP block as imx93), fill
g_gpio_base[] array for imx95, include imx95_gpio.h from the common
header, and compile imx9_gpio.c/imx9_gpiobase.c for imx95 in cmake.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
25feecbc02 imx9: imx95 fix uSDHC IRQ naming to match NuttX USDHC convention
Rename IMX9_IRQ_uSDHC{1,2,3} to IMX9_IRQ_USDHC{1,2,3} in both arm
and arm64 imx95_irq.h to follow the all-caps naming convention used
by imx93_irq.h and the rest of the NuttX codebase. Remove the now
unnecessary USDHC IRQ alias block from arm64 imx95_irq.h.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00
buxiasen
9feaa4d841 mmcsd: fix MMC bus width switch using wrong condition and add 8-bit support
The MMC CMD6 bus width switch was gated on priv->buswidth which is
derived from the SD SCR register. For MMC cards this field is never
set (unless SDIO_CAPS_4BIT_ONLY), so the CMD6 was skipped while the
host PROCTL DTW was still changed - causing a bus width mismatch and
data transfer timeouts.

Fix by checking priv->caps instead of priv->buswidth for MMC cards.
Also select EXT_CSD_BUS_WIDTH_8 when host reports SDIO_CAPS_8BIT.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-03-24 15:39:07 +08:00