Commit graph

58497 commits

Author SHA1 Message Date
Kerogit
bce6ef6aad arch/avr/avrdx: provide tickless OS option
This patch adds tickless OS support for AVR architecture in alarm mode.
Currently, only devices from AVR DA/DB family are supported.
2025-05-08 15:58:18 +08:00
Kerogit
4000eaa1b8 boards/avr/avrdx/breadxavr: added AVR DA chip on breadboard
Example breadboard to have something to pair with AVR Dx chip
development
2025-05-08 15:58:18 +08:00
Kerogit
66f6bb45ab arch/avr/avrdx: initial support for AVRnDx chips
Initial support adds chip specific files like Kconfig, flags for the compiler,
and basic functionality like system timer. Some files are stubs derived
from corresponding ATmega files but without the functionality they are
supposed to add (to be done in later patches)

Part of the work is altered copies of corresponding files for ATMega MCUs.

Initially supported is AVR128DA28.
2025-05-08 15:58:18 +08:00
Kerogit
100bbe620e arch/avr: make the linker obey DEBUG_LINK_MAP
This patch adds -Map linker flag to Toolchain.defs for AVR.
2025-05-08 15:58:18 +08:00
Kerogit
290f09934d arch/avr: enable eliminating unused sections with GCC
This patch marks host GCC toolchain option with ARCH_TOOLCHAIN_GCC,
enabling various other settings depending on it. One of the enabled
settings is DEBUG_OPT_UNUSED_SECTIONS.

This patch also adjusts compiler and linker flags based on the value
of DEBUG_OPT_UNUSED_SECTIONS so unused sections are removed
2025-05-08 15:58:18 +08:00
Kerogit
3b39101c82 arch/avr: decouple enabling of IOBJ/IPTR qualifiers from debugging
These qualifiers are useful on their own, not only when debugging-related
strings are flagged with them
2025-05-08 15:58:18 +08:00
Kerogit
22df1ed2ab tools: add permitted mixed case suffixes to nxstyle
Newer AVR chips (DA/DB family) use mixed-case constants in header
file defining constants for I/O register values (provided
by manufacturer.)

Based on mailing list discussion, this patch adds some
of the lowercase suffixes used (the less prevalent constants
are then redefined in NuttX.)
2025-05-08 15:58:18 +08:00
Kerogit
492ea844ef boards/avr: fix alignment of .text section if .progmem is used
The .progmem section in the .text section contains data marked
to not be copied into RAM and instead used directly from program
memory. Unlike other sections that naturally align to 2 byte words,
this section may be odd in length.

If this happens, following sections will end up misaligned
and the compilation will fail. This patch forces correct alignment
after the .progmem section end.
2025-05-08 15:58:18 +08:00
Alan Carvalho de Assis
7b3aad198e ci/testlist: Don't build breadxavr board 2025-05-08 15:58:18 +08:00
Alan Carvalho de Assis
5acfb995e0 codespell: Add RCALL 2025-05-08 15:58:18 +08:00
Matteo Golin
468c9eacd8 arm/sam34/boards/arduino-due: Migrate README.txt to RST.
Migrated README.txt documentation to RST as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Matteo Golin
3b79525a1b arm/lpc31xx/boards/ea3131: Migrate README.txt to RST.
Migrate README.txt documentation to RST as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Matteo Golin
ec278064ad arm/lpc31xx/boards/olimex-lpc-h3131: Migrate README.txt to RST.
Migrate README.txt documentation to RST format as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Matteo Golin
1c91e5000e arm/lpc31xxj/boards/ea3152: Migrate README.txt to RST.
Migrated the README.txt documentation to RST format as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Matteo Golin
39f7e81a81 xtensa/esp32/boards/esp32-ethernet-kit: Migrate README.txt to RST
Migrated the README.txt documentation to RST format as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Matteo Golin
4a5b0f8e2d misco/lm32/boards/misoc: Migrate README.txt to RST
Migrated documentation from README.txt to RST format as part of #11077.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-08 03:04:04 +02:00
Serg Podtynnyi
e54d5fffd6 arch/arm/rp23xx: add missing fpu init for smp cores
On SMP systems we should enable FPU on each core

FPU extenstion support must be enabled on each core as stated on 4.6.5
arm m33 devices generic user guide

Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
2025-05-07 22:03:15 -03:00
Serg Podtynnyi
7c203a96af arch/arm/rp23xx: update USB PLL/VCO/FBDIV and usb setup
RP2350 datasheet and upstream pico-sdk suggests higher VCO freq to
better output stability.
Increase the VCO and update PLL divs according to specs and calculation.
Higher VCO freq is more stable, lower VCO freq is more power friendly.
Also it's possible to use 120/6/5 with VCO 1440MHz for USB PLL to even
higher output stability.
USB setup changes from rp2040
Must clear the MAIN_CTRL.PHY_ISO bit at startup and after power down
events.

Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
2025-05-08 03:02:06 +02:00
simbit18
4245db2c47 tools/ci/testlist/sim-01.dat: skip build sim:can for macOS
macOS can compilation is not currently supported

[SocketCAN - Controller Area Network](https://www.kernel.org/doc/html/latest/networking/can.html)
 [Linux-CAN / SocketCAN ](https://github.com/linux-can/can-utils)

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-05-08 02:59:31 +02:00
Tyler Bennett
9fca766bd4 arch/arm/stm32f0l0g0: Add STM32G0 Flash driver.
Add arch files and Kconfig options to interface with the progmem
driver on STM32G0 MCUs.

Signed-off-by: Tyler Bennett <tbennett@2g-eng.com>
2025-05-07 21:37:25 -03:00
Tomasz 'CeDeROM' CEDRO
11d444403e github: master branch protection tune.
* Strict master branch protection requires all PR to be in sync with latest
  master even if changes are not related and there are no conflicts.
* Because we have lots of daily merges this blocks most of the PRs as they
  are forced to be rebased on top of current master.
* This also causes unnecessary automatic CI rebuild of each rebase.
* Therefore we are setting strict status checks setting to false.
* required_signatures in github means not only `git commit -s` but also
  cryptographic signature which is not required by us, setting false.
* Disable "contexts" checks enforcement, that cause CI problems, mark TODO.

References:
https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file
https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification
https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2025-05-07 18:37:13 -05:00
Tomasz 'CeDeROM' CEDRO
358469e5bb github: Setup protection for master branch.
* We do not have "Settings" tab in the Apache's owned repository,
  thus we need to update .asf.yaml file with repository settings.
* No direct push to master branch is possible.
* Require status checks to pass before merge.
* Setup reviews parameters.
* Require signatures.
* Require conversation resolution.
* Require linear history.

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2025-05-07 10:37:44 +08:00
Tyler Bennett
559a278ddb boards/stm32h5/nucleo-h563zi: Add USART2 board defines.
This adds the ability to use USART2 as a console if wanting to use
a console without going through the ST-Link VCOM port. This required when
using an external debugger or trace with this board.

Signed-off-by: Tyler Bennett <tbennett@2g-eng.com>
2025-05-07 02:20:28 +08:00
Tyler Bennett
6ef5dab160 documentation/platforms/arm: Add Nucleo G0B1 board.
Include description of support for Nucleo G0B1RE from STMicro.
2025-05-07 02:03:19 +08:00
Tyler Bennett
94a62cb5a7 boards/stm32f0l0g0: Add Nucleo G0B1RE support
The Nucleo G0B1RE is a development board using the STM32G0B1RE MCU.
This commit adds a basic nsh over serial configuration.
2025-05-07 02:03:19 +08:00
Tim Hardisty
f967a69748 arch/arm/sama5: Add code to report the reset reason
This adds the necessary code and function to allow a board to determine the reason for a reset. This is useful in NXboot, for example.

Signed-off-by: Tim Hardisty <timh@jti.uk.com>
2025-05-07 02:03:00 +08:00
ouyangxiangzhen
fb592064cb sched: Improved the wdog and wq list insertion.
For the watchdog list and the workqueue list, we wonder whether the list head has changed after the insertion. In the original implementation, we have to access the list->next field and compare the result to the currently inserted node. In this commit, we mark the list head before the insertion and comparing the current traversed node with the list head we marked, which can avoid accessing the list->next and is more cache-friendly.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-05-07 02:02:10 +08:00
ouyangxiangzhen
6f72f5481d sched/wqueue: Refactor delayed and periodical workqueue.
This commit refactors the logic of workqueue processing delayed and periodic work, and changes the timer to be set in `work_thread`. The improvements of this change are as follows:
- Fixed the memory reuse problem of the original periodic workqueue implementation.
- By removing the `wdog_s` structure in the `work_s` structure, the memory overhead of each `work_s` structure is reduced by about 30 bytes.
- Set the timer for each workqueue instead of each work, which improves system performance.
- Simplified the workqueue cancel logic.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-05-07 02:02:10 +08:00
ouyangxiangzhen
9dbb9b49c6 sched/wqueue: Change dq to list.
In NuttX, the dq and the list are two different implementations of the double-linked list. Comparing to the dq, the list implementation has less branch conditions such as checking whether the head or tail is NULL. In theory and practice, the list is more friendly to the CPU pipeline. This commit changed the dq to the list in the wqueue implementation.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-05-07 02:02:10 +08:00
ouyangxiangzhen
900b1c19dd wqueue: improve the robustness of the work
struct work_s
{
  union
  {
    struct
    {
      struct dq_entry_s dq;      /* Implements a double linked list */
      clock_t qtime;             /* Time work queued */
    } s;
    struct wdog_s timer;         /* Delay expiry timer */
    struct wdog_period_s ptimer; /* Period expiry timer */
  } u;
  worker_t  worker;              /* Work callback */
  FAR void *arg;                 /* Callback argument */
  FAR struct kwork_wqueue_s *wq; /* Work queue */
};

work_cancel() should determine whether the current work is
in the timer or has already entered the queue.
This judgment is indispensable because the structure is a union.
Whether it is interpreted as a timer or as a dq needs to be determined.

But this judgment seriously depends on the order of struct wdog_s and
struct dq_entry_s, once someone change the order of any, there is a bug.
So we decide remove the union, to improve the robustness.

For the work_s structure size will grow bigger, then we will provide a
another optimization patch

Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-05-07 02:02:10 +08:00
Tiago Medicci Serrano
c22df41ca6 espressif: Add variable to override MCUboot version and URL
The version and the git repository of Espressif's MCUboot port can
be changed by setting the `MCUBOOT_VERSION` and `MCUBOOT_URL`
environment variables before running the `make bootloader` command.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-05-07 01:51:40 +08:00
Matteo Golin
6eba7ad35b docs/xtensa: Added chip tags
Added chip documentation tags to Xtensa boards.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-06 19:19:56 +02:00
Matteo Golin
989809b82c docs/arm/rp2350: Add chip tags
Added chip tags to the rp2350 board family.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-06 19:19:56 +02:00
Matteo Golin
af45a91d10 docs/arm64: Tag arm64 boards.
Added appropriate chip tags for the arm64 boards.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-06 19:19:56 +02:00
Matteo Golin
f6222a013c docs/arm/nrf: Tag NRF chip boards.
Introduces chip tags for family and chip type on all of the supported
nRF based boards.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-06 19:19:56 +02:00
Matteo Golin
4d8d2354ec docs/arm/stm32: Tag all STM32 chip families with their chips.
This commit introduces the tagging system into the STM32 family of chips
by tagging all chips with their appropriate chip type/family.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-06 19:19:56 +02:00
vrmay23
e086ef2d02 boards/arm/stm32f7/nucleo-f767zi: enhance button support
Before this patch, the board nucleo-767zi had just one button available for the
user, which one was not working (there was no /dev/buttons on stm32_bringup.c).

Aditionally, I have changed the stm32_buttons.c to support not only the
built-in button but as well as to another four external buttons.
2025-05-05 20:14:23 -03:00
Serg Podtynnyi
95cc862794 arch/arm/rp23xx: fix watchdog, enable TICK blocks
On the RP2350, the watchdog receives its tick input from the
system-level ticks block, unlike the RP2040, where the watchdog includes
its own tick generator. Enable the TICK blocks, update the watchdog
routines.

Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
2025-05-05 23:58:10 +08:00
Filipe Cavalcanti
28abfb5fd1 boards/esp32s3: fix rtc segment on linker script
Modify rtc_data_seg to rtc_slow_seg to fix RTC problems.
The proper location for those is in RTC slow memory.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-05-05 23:50:52 +08:00
simbit18
d4e1d85008 CMake: added tm4c129e-launchpad, launchxl-cc1312r1, lm4f120-launchpad, lm3s8962-ek and ekk-lm3s9b96 boards
CMake added following boards:
tm4c129e-launchpad
launchxl-cc1312r1
lm4f120-launchpad
lm3s8962-ek
ekk-lm3s9b96
2025-05-05 23:50:20 +08:00
chao an
d07bed3e6b tools/process_config: remove unused unnecessary printing
Too much unnecessary printing that meaningless to non-builder developers

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-05-05 23:49:16 +08:00
Matteo Golin
ac583fc585 arch/arm/rp2040/gpio: Allow simultaneous selection of multiple interrupt modes.
The RP2040 chip supports 4 different GPIO interrupt modes. They can be
configured to be used simultaneously, although previously the NuttX
support only allowed one type of interrupt to be enabled per GPIO pin.
This allows up to all four to be selected without changing previous
behaviour.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-05 23:48:21 +08:00
Eren Terzioglu
5cc7046a7f arch/risc-v/espressif: Fix Serial IFLOW build issue
Serial IFLOW build error fixed for risc-v based Espressif devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-05-05 23:47:05 +08:00
Eren Terzioglu
929c6313ff arch/risc-v/espressif: Add RS485 support for esp32[c3|c6|h2]
Add RS485 support for Risc-V based Espressif devices

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2025-05-05 23:47:05 +08:00
Lars Kruse
4d70fa74e8 pre-commit: enable codespell checks 2025-05-05 12:34:39 +08:00
Lars Kruse
7088d2ee91 ci: enable spelling checks (via codespell) 2025-05-05 12:34:39 +08:00
Lars Kruse
1efeb39da0 style: add codespell configuration for common spelling exceptions
This file can be extended in order to cover all spelling check
exceptions (perceived as misspellings).
2025-05-05 12:34:39 +08:00
Serg Podtynnyi
bc8a7f713d arch/arm/rp23xx: add dsp/fpu extensions support
Each Arm Cortex-M33 processor in RP2350 is configured with Single
precision FPU and DSP extension
2025-05-05 09:35:39 +08:00
Lars Kruse
10c3930279 fix(udhcpc): missing interface name in log message
The mis-referenced variable probably did not cause an error, but simply
led to an empty string instead of the real network interface name.
2025-05-05 09:32:31 +08:00
Lars Kruse
bacc6bec37 fix(locale): misspelled "February" string (nl_langinfo) 2025-05-05 09:32:31 +08:00