Commit graph

63636 commits

Author SHA1 Message Date
Royyan Zahir
eafd01cecc arch/arm/imxrt: a fixed link when no PHY answers
A carrier with a switch port wired MAC to MAC has no PHY on MDIO, and
ifup failed. With IMXRT_ENET_FIXED_LINK the configured PHY, or the
board's PHY list, is tried first; if none answers the MAC runs at
100 Mbps full duplex and SIOCGMIIREG reports the link up, so the
network monitor keeps the interface up.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-04 17:15:18 -03:00
Royyan Zahir
a6f5b1b2b5 arch/arm/imxrt: nxstyle fixes in imxrt_enet.c
Blank lines after declarations and the RX_ER pin indentation, so
checkpatch passes on the file.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-04 17:15:18 -03:00
raiden00pl
2bae5010b9 arm/nrf54l: add PWM support
arm/nrf54l: add PWM support

Assisted-by: Codex:GPT-6
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-10-05 02:35:45 +08:00
raiden00pl
5fda288a2a arm/nrf54l: add GPIOTE support
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
arm/nrf54l: add GPIOTE support

Assisted-by: Codex:GPT-6
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-10-04 20:10:23 +08:00
Darryl Ring
16b8a74417 arch/arm/stm32h5: Add OTP/eFuse support
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
This adds support for the OTP flash region in the STM32H5 via both
low-level functions and an eFuse lower half driver.

Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Darryl Ring <darryl@bluerobotics.com>
2026-10-03 21:57:49 +08:00
raiden00pl
04c7eb43e8 libs/libc/machine/x86_64: accept R_X86_64_NONE relocations
Since the ELF linker script keeps .eh_frame, a relocatable --gc-sections
link leaves R_X86_64_NONE relocations for collected functions. The loader
rejected them, so no kernel-mode program could be loaded on x86_64.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-10-03 21:55:56 +08:00
Daniel P. Carvalho
adffae71df arch/arm/stm32: Add DAC low-level operations support.
Add CONFIG_STM32_DAC_LL_OPS support to the common STM32 DAC driver
(stm32_dac_m3m4_v1). This provides low-level ops (llops) and helper
macros (DAC_ENABLE, DAC_WRITE_DRO, DAC_START_DMA, DAC_STOP_DMA,
DAC_DUMP_REGS) matching the existing interface in stm32l4 and stm32h7.

This allows real-time control applications (such as power converters,
inverters, and function generators) to operate the DAC peripheral directly
without char driver VFS overhead.

Assisted-by: Antigravity:gemini-3.8-flash
Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com>
2026-10-03 21:55:26 +08:00
Royyan Zahir
8df6e2a3f4 sched/signal: run no cleanup handlers on signal termination
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
nxsig_abnormal_termination() popped the thread's pthread cleanup
handlers in the kernel, so in the protected and kernel builds a process
could get its own code called with kernel privilege by raising a fatal
signal. POSIX runs cleanup handlers on pthread_exit() and on acting upon
a cancellation; termination by a signal is as if by _exit(), which runs
none.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-02 15:38:52 -03:00
Royyan Zahir
07c81e2673 sched/signal: nxstyle
No functional change; the next commit touches this file.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-02 15:38:52 -03:00
raiden00pl
40c9117651 arm/nrf54l: add Bluetooth SoftDevice Controller support
add Bluetooth SoftDevice Controller support

Assisted-by: Codex:GPT-6
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-10-02 15:37:12 -03:00
yushuailong
0c64d2e923 style(sched): add required declaration separator
Add the blank line required by nxstyle between the local declaration and the following statement in task_restart().

Signed-off-by: yushuailong <yyyusl@qq.com>
2026-10-03 01:10:28 +08:00
yushuailong
84f363d79d sched/group: Preserve the shared kernel group on init failure.
Kernel threads use the statically allocated g_kthread_group. If initialization of the first kernel thread fails, the common error path currently passes that static object to kmm_free(), corrupting the kernel heap.

Only free dynamically allocated task groups and detach the failed group from the TCB before returning.

Assisted-by: OpenAI Codex
Signed-off-by: yushuailong <yyyusl@qq.com>
2026-10-03 01:10:28 +08:00
yushuailong
008521df5c sched/group: Clear exiting state after task restart.
group_kill_children() marks the task group as exiting, but task restart reuses that same group. Leaving the flag set causes later group shutdown to skip child termination and changes cancellation behavior for threads created after the restart.

Clear GROUP_FLAG_EXITING after the old child threads have been removed so the reused group starts in its normal state.

Assisted-by: OpenAI Codex
Signed-off-by: yushuailong <yyyusl@qq.com>
2026-10-03 01:10:28 +08:00
Darryl Ring
c046c337c1 arch/arm/stm32h5: Add EDATA flash driver
Some checks are pending
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
Add support for high-cycle flash which can be used for EEPROM emulation.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Darryl Ring <darryl@bluerobotics.com>
2026-10-02 16:09:17 +08:00
Jukka Laitinen
437306409e arch/arm/imxrt: Add support for ARMV8M_DCACHE_LINESIZE in imxrt_usbdev.c
Some checks failed
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
Build Documentation / build-html (push) Has been cancelled
Select the cache line size from either ARMV7M_DCACHE_LINESIZE or
ARMV8M_DCACHE_LINESIZE, so the driver can also be used with D-cache
enabled on the i.MX RT1180 Cortex-M33.

Also fix the imxrt1180-evk USB DMA allocator alignment. Pad the header
to the 32-byte DMA alignment, so that the buffer remains aligned.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-10-01 23:31:49 +08:00
Jukka Laitinen
0fa3459dbe arch/arm/imxrt: Fix imxrt_usbdev bring-up sequence
Fix the usb phy pll bring-up sequence to match the imxrt1170 and
imxrt1180 RM:

1 enable the reference clock for the pll
2 enable the pll regulator
3 release the phy from reset
4 power up the pll
5 configure the pll_sic[pll_div_sel]

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-10-01 23:31:49 +08:00
yushuailong
31f3857cb4 sched: Fix deadlock cycle collection.
Use Floyd cycle detection on the mutex wait-for chain so only threads that actually participate in a cycle are reported. This avoids omitting the last cycle member and incorrectly including threads that merely lead into a deadlock.

Also handle empty output buffers and document truncation semantics.

Assisted-by: OpenAI Codex
Signed-off-by: yushuailong <yyyusl@qq.com>
2026-10-01 23:19:43 +08:00
Royyan Zahir
fd57ce7695 arch/risc-v: refuse reserved syscalls from user mode
Any ecall below CONFIG_SYS_RESERVED reached the context switch and signal
return paths from U-mode: a process could crash the kernel or return to
S-mode through a signal return nobody dispatched.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-01 23:14:53 +08:00
Royyan Zahir
50a4f8061d arch/arm64: refuse reserved syscalls from user space
Any svc below CONFIG_SYS_RESERVED reached the context switch and signal
return paths from EL0: a process could crash the kernel or return to
EL1 through a signal return nobody dispatched.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-01 23:14:53 +08:00
jsanchez-2g
ea4beccfc7 arm/stm32g0: Expose SPI2 capability on STM32G0B1.
STM32G0B1 devices provide SPI2, but their chip configuration does not
select STM32_HAVE_SPI2. Since STM32_SPI2 depends on that capability,
an explicit CONFIG_STM32_SPI2=y request is dropped by Kconfig.

Select the capability for STM32G0B1 so boards can enable the existing
SPI2 driver. SPI2 remains disabled unless requested. Other chip
families and the driver implementation are unchanged.

The STM32G0B1 datasheet DS13560, section 3.23, documents SPI2:
https://www.st.com/resource/en/datasheet/stm32g0b1re.pdf

Verified before/after configuration on STM32G0B1RE and STM32G0B1CE,
with STM32G071RB as an unchanged control. The same one-line fix is
included in the Golgi STM32G0B1CE firmware build 7248, whose build and
hardware acceptance were recorded on September 25, 2026.

Assisted-by: Codex:GPT-6
Signed-off-by: jsanchez-2g <jsanchez@2g-eng.com>
2026-10-01 23:14:44 +08:00
leocafonso
67eb7b1c33 Documentation/arm/ra8m1: Document the GPT timers and shield GPIO
Describe the GPT timer support on the RA8M1 platform page and the
Arduino shield header's D2-D13 GPIO mapping on the EK-RA8M1 board page,
including the ek-ra8m1:timer-gpio configuration used to test them.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Assisted-by: Claude:claude-sonnet-5
Signed-off-by: leocafonso <leocafonso@gmail.com>
2026-10-01 23:12:10 +08:00
leocafonso
2c061c6c18 boards/arm/ra8m1: Register the GPT timers and add GPIO support
Register GPT0 (32-bit) as /dev/timer0 and GPT9 (16-bit) as /dev/timer1
during bring-up.

Register the Arduino Uno shield header's D2-D5 as inputs and D6-D13 as
outputs through the generic GPIO expander driver, as /dev/gpio0-3 and
/dev/gpio4-11.

Add the ek-ra8m1:timer-gpio configuration (nsh plus both GPT channels,
the GPIO support above, and apps/examples/gpio and
apps/examples/timer_gpio), used to validate the GPT timer driver on
hardware with an oscilloscope.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Assisted-by: Claude:claude-sonnet-5
Signed-off-by: leocafonso <leocafonso@gmail.com>
2026-10-01 23:12:10 +08:00
leocafonso
279e1ec458 arch/arm/ra8m1: Add GPT timer support
Add the General PWM Timer (GPT) as a generic timer, registered as
/dev/timerN through the upper-half timer driver.  GPT0-7 are 32-bit,
GPT8-13 are 16-bit, and the timeout can be changed while running.

Give each ICU event used by GPT its own enum value instead of a
__COUNTER__-based macro, since the latter can hand out a different
number at every use.

Live period changes to the same prescaler now reload through GTPBR
(the buffered period register) instead of stopping the counter,
matching Renesas's own FSP driver, and fix a hardware-confirmed bug
where an uninitialized GTPBR silently corrupted the period after the
first cycle.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Assisted-by: Claude:claude-sonnet-5
Signed-off-by: leocafonso <leocafonso@gmail.com>
2026-10-01 23:12:10 +08:00
Jukka Laitinen
62cc75c691 arch/arm/imxrt: Fix LPSPI frequency setting for imxrt1180
The LPSPI_CCR register is write only in imxrt1180. Therefore, the existing
modifyreg32 calls can't be used to set the fields. Use direct putreg8
writes to update the PCSSCK, SCKPCS, DBT and SCKDIV.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-10-01 22:55:01 +08:00
Jukka Laitinen
5b8df0f65b arch/arm/imxrt: Fix lpspi clocking for imxrt118x
At imxrt_lpspibus_initialize the code tried to read IMXRT_LPSPI_CR to
detect whether the SPI is already initialized. This doesn't work on
imxrt118x, if the LPSPI clock is still gated. But the gate is
opened only during the initialization. So this is a chicken-egg
problem.

Instead of reading the register, just have an "initialized" flag in
priv.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-10-01 22:55:01 +08:00
Royyan Zahir
f2739fe4f4 arch: bound syscall numbers and nesting in every build
The table index and the nesting depth were checked by DEBUGASSERT only,
and arm64 and risc-v let the first number past the table through.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-01 22:53:55 +08:00
Royyan Zahir
9f73ff7e77 arch/arm64: bound pgalloc() to the user heap
pgalloc() is a syscall in a kernel build. Its start was checked by
DEBUGASSERT only and its end not at all, so a user task could map pages
past ARCH_ADDRENV_VEND.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-01 22:53:42 +08:00
rikaken2004
d0b5d0b7b3 drivers/mmcsd/mmcsd_sdio.c: fix legacy nxstyle alignment in ioctl switches
The check CI job runs nxstyle over the whole file once it is touched,
and mmcsd_ioctl()/mmcsd_iocmd() carried pre-existing violations: case
labels and their blocks were indented one level too shallow, and four
argument continuation lines exceeded 78 columns. Reindent the two
switch bodies and rewrap the long call sites (local buffer variables
for the CMD8/18/25 data pointers, operand-per-line for the CMD23
ternary). No functional change.

Signed-off-by: rikaken2004 <244897142+rikaken2004@users.noreply.github.com>
2026-10-01 22:14:44 +08:00
rikaken2004
414d300e1a drivers/mmcsd/mmcsd_sdio.c: check RECVSETUP/SENDSETUP return on non-DMA paths
The non-DMA data paths discard the return value of SDIO_RECVSETUP in
mmcsd_readsingle() and mmcsd_readmultiple() and of SDIO_SENDSETUP in
mmcsd_writesingle(), mmcsd_writemultiple() and the CMD56 read/write
helpers, so when the lower half fails to set up the transfer the
driver still issues CMD17/18/24/25/56 and the failure only surfaces
later as an unrelated-looking transfer timeout. The DMA paths in the
same functions all check SDIO_DMARECVSETUP/SDIO_DMASENDSETUP, cancel
the transfer and propagate the error, so mirror that handling on the
non-DMA paths.

Signed-off-by: rikaken2004 <244897142+rikaken2004@users.noreply.github.com>
2026-10-01 22:14:44 +08:00
Alan Carvalho de Assis
91008cf1b1 sched/clock: keep the seqlock sequence in uint32_t
clock_get_sched_ticks() stored the value of read_seqbegin(), a
uint32_t, in an unsigned int and passed it back to read_seqretry().
Where int is 16 bits the copy is truncated, so once the 32-bit
sequence number passes 65535 read_seqretry() always reports a change
and the loop never ends.  The sequence advances once per tick, so after
65536 ticks (11 minutes at 100 Hz) the next caller, the timer interrupt
itself, spins forever with interrupts disabled and the system stops.

Seen on the CDP1802 (16-bit int): NSH stopped answering after 55
minutes at 20 Hz.  AVR has the same problem.  hrtimer's readers of the
same lock already use uint32_t. Don't assume int is 32-bit :-D

Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
Assisted-by: Claude Opus 5.5 (claude-opus-5-5)
2026-10-01 10:17:21 -03:00
Alan Carvalho de Assis
1dfa028808 include/fcntl.h: keep open() flags within a 16-bit int
O_DIRECTORY, O_NOFOLLOW, O_NOATIME, O_CLOEXEC, __O_SYNC, O_PATH and
__O_TMPFILE are defined as shifts by 16 to 22 bits.  Where int is 16
bits (AVR, for example), these shifts exceed the width of the type:
GCC evaluates them to 0, and the -Wshift-count-overflow warning is not
shown because include/ is a system include directory.  The oflags
argument of open() is an int, so it could not carry those bits anyway.

As a result, on arch with int equal 16-bit opendir() opens directories
without O_DIRECTORY, so opening a mount point such as /proc fails with
ENOENT, and O_CLOEXEC and O_NOFOLLOW have no effect.

When UINT_MAX is 0xffff, use the unused bits 2 to 4 for O_DIRECTORY,
O_CLOEXEC and O_NOFOLLOW, define O_NOATIME and __O_SYNC as 0 (O_SYNC
falls back to O_DSYNC), and leave O_PATH and O_TMPFILE undefined, so
that code which needs them fails to build instead of silently opening
with the wrong flags; nothing in the tree uses them.  _O_MAXBIT becomes
15. On bigger systems (32-bit, 64-bit) keep the original bit shift.

Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
Assisted-by: Claude Opus 5.5 (claude-opus-5-5)
2026-10-01 08:54:02 -03:00
Royyan Zahir
1d8fb674da drivers/timers/pcf85263: report a lost time as lost.
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
A stopped oscillator sets OS in the seconds register and leaves stale
time behind, which the driver returned as the time. Return -EAGAIN, as
it already does before it is enabled, so the clock starts unset instead
of wrong. Setting the time clears OS.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-10-01 18:05:07 +08:00
Beat Küng
e9ddc4b9d1 Documentation/guides/rust: update config requirements
And CONFIG_LIBC_MUTEX_BACKTRACE=0 is required for
https://github.com/rust-lang/libc/pull/5555
2026-10-01 17:58:02 +08:00
Abhishek Mishra
cb70a35d46 Documentation/tflite-micro: describe the new tflm tool options
Document -I, -d, -x and -n, the operators the tool now registers from
the model, how outputs and inputs are handled, and a hostfs example
that runs the hello-world sine model from NSH.

Signed-off-by: Abhishek Mishra <mishra.abhishek2808@gmail.com>
2026-10-01 17:55:53 +08:00
Marco Casaroli
e8a3d4ee1c Documentation/esp32s3: Describe memory protection and the kernel build.
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
The chip page did not say which build modes the ESP32-S3 supports, how a
KERNEL build uses the MMU, or what happens when user code takes a fault.
Add a section for that, with the console messages of a fault and the
options CONFIG_ESP32S3_USERFAULT_ABORT and CONFIG_ESP32S3_PAGEFAULT.

On the board page, kernel_oct said the shell needs the full path of a
program, but /system/bin is in PATH.  Say that instead, describe the
isolation of a process, and show how ostest and sandbox check it.  Also
add a section for ksta_softap, which had none.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-09-30 13:40:16 -03:00
Marco Casaroli
e7c6367533 arch/arm: Call FDPIC constructors with the module's own data base.
Under FDPIC an .init_array or .fini_array entry is a code address, but a
C function pointer is a function descriptor.  crt0 called each entry
through a function pointer, so it read the constructor's first
instructions as a descriptor and jumped to garbage.

Call each entry with fdpic_call() and the data base from fdpic_base(),
which is the module's own.  Without CONFIG_FDPIC both are a direct call,
as before.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-09-30 13:40:02 -03:00
Marco Casaroli
4db7594eb6 libs/libc/elf: Read the dynamic relocations at their file offset.
DT_REL and DT_JMPREL hold the link-time address of their table, and the
loader read the table at that value as a file offset.  The two are equal
only when the segment that holds it starts at file offset 0.  An object
linked with its text at file offset 0x1000, as the tree's gnu-elf.ld does,
had its relocations read from padding, so none were applied and the
module called through unrelocated pointers.

Translate the address through the PT_LOAD headers first.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-09-30 13:40:02 -03:00
Marco Casaroli
ec78241ebe libs/libc/elf: Load an FDPIC object's data into the data heap.
An architecture that sets CONFIG_ARCH_USE_DATA_HEAP gives a loaded module
its data from up_dataheap_memalign(), because the ordinary heap is not where
that data belongs there.  The ELF loader honours it for every object but an
FDPIC one: an FDPIC object places its writable segment on its own, and that
allocation, and the two places that free it, still use lib_memalign() and
lib_free().  Its text already comes from the text heap.

So an FDPIC module's data goes to the data heap too, and back to it when the
module is unloaded or removed.

On mps3-an547, which sets both heaps, fdpicxip loaded the data of its two
instances at 0x1007220 and 0x104e480, in the ordinary heap.  With this change
they are at 0x21000000 and 0x21000180, in the SRAM2 data heap, and both
instances run.  In a protected build the difference matters: there the
ordinary heap is kernel memory, and the module takes a data access violation
on its first access to its data.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-09-30 13:39:45 -03:00
Felipe Moura
1c6ed642bf espressif: stop leaking a Wi-Fi interrupt handle on every esp_wifi_start()
set_intr_wrapper() allocates a new intr_handle_data_t from the kernel
heap each time the Wi-Fi driver calls it, and the driver calls it on
every esp_wifi_start() -- twice per start on esp32s3 -- not only the
first time.  clear_intr_wrapper() is a no-op, so the IRQ still holds the
handle from the previous start: esp_set_handle() refuses to replace it
with -EINVAL, the return value is ignored, and the new block is lost.

Any application that stops and restarts Wi-Fi to save power therefore
loses a few bytes of kernel heap per cycle, without bound.

Look up the vector descriptor first, then reuse the handle already
registered for the IRQ and only allocate and register one when there is
none.  A failed descriptor lookup no longer touches the registered
handle.

The same code is present in the esp32, esp32s2, esp32s3, esp32c3 and
esp32c6 Wi-Fi adapters; all five are fixed the same way.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:25:42 -03:00
Marcio Ribeiro
b38b03072a boards/risc-v/esp32c2/esp8684-devkitm: add ROMFS and extra configs
Add BMP180, ROMFS, MCUBoot NSH, ostest, and tickless defconfigs plus the
matching bring-up hooks.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-09-30 11:49:41 -03:00
Marcio Ribeiro
106273a370 boards/risc-v/esp32c2/common: add sensor and ROMFS board helpers
Add BMP180/BMP280 helpers and ROMFS init scripts used by non-SoC
board features.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-09-30 11:49:41 -03:00
Royyan Zahir
6bec3b6f5b arch/arm64/imx9: reject PWM channels outside the timer
A negative channel passed both checks, and TPM took one past the end,
so a caller could write FlexIO and TPM registers it does not own. TPM
also dropped the error and reported success.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
2026-09-30 09:24:36 -03:00
Jukka Laitinen
4295024832 boards/imxrt/imxrt1180-evk: Add buttons example app and SW8 button configuration
Some checks are pending
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
Add a button configuration to test GPIO inputs.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-09-30 14:10:58 +08:00
Jukka Laitinen
a48fd7363a arch/arm/imxrt: Fix rgpio interrupt definitions
Pack the LOWLEVEL/HIGHLEVEL/RISINGEDGE/FALLINGEDGE directly into correct bits in
pinset.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-09-30 14:10:58 +08:00
Jukka Laitinen
f55525b0fa arch/arm/imxrt: Fix GPIO / IOMUX macros for imxrt1180
There were some bits erroneously copied from imx9. For IMXRT1180, the
GPIO_AD* and GPIO_AON* pads should have SRE, DSE, PUE, PUS and ODE bits
on SW_PAD_CTL_PAD register.

The GPIO_EMC_*, GPIO_SD_*, GPIO_B1_* and GPIO_B2_* have a bit different fields,
PDRV, PULL and ODE.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-09-30 14:10:58 +08:00
Jukka Laitinen
88a4331348 arch/arm/imxrt: Fix imxrt_clockconfig_ver3 c++ linkage
There was a mismatched EXTERN definition for ver3 in imxrt_periphclks.h,
and the extern definitions should be there in imxrt_clockconfig_ver3.h

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-09-30 14:10:58 +08:00
Marcio Ribeiro
2d5ef658ee Documentation/risc-v/esp32c2: add ESP32-C2 and ESP8684-DevKitM pages
Some checks failed
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
Build Documentation / build-html (push) Has been cancelled
Document the chip (toolchain, Simple Boot, peripherals, MCUBoot) and
the DevKitM-1 board (pinout, headers, RGB, existing defconfigs),
including vendor figures.

Assisted-by: Cursor:Grok 4.6
Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-09-29 14:40:08 -03:00
Marcio Ribeiro
c1affc5923 boards/risc-v/esp32c2/esp8684-devkitm: add on-chip peripheral configs
Add GPIO, buttons, and defconfigs/bring-up for ADC, I2C, PWM, SPI,
timers, watchdog, eFuse, crypto, RTC, and related C2 peripherals.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-09-29 14:39:55 -03:00
Marcio Ribeiro
2f715c4918 boards/risc-v/esp32c2/common: add on-chip peripheral board helpers
Add ADC, I2C, LEDC, SPI, SPI flash, MMCSD and RNG helpers used by
the ESP32-C2 board bring-up.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-09-29 14:39:55 -03:00
raiden00pl
3ab1b4b8fe arm/nrf54l: add RRAM progmem support
add RRAM progmem support

Assisted-by: Codex:GPT-6
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-09-29 14:29:04 -03:00