Commit graph

61721 commits

Author SHA1 Message Date
Matteo Golin
8e06efb047 boards/stm32f4discovery: Normalize mt6816 defconfig
Normalize board configuration for mt6816 config.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-04 12:16:11 -03:00
Alan Carvalho de Assis
4d72eb8421 net/icmpv6: Discard Neighbor Discovery packet if optlen is 0
This commit make ICMPv6 on NuttX compliant with RFC4861 ignoring
a Neighbor Discovery packet when its optlen is 0.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-04 12:06:43 -03:00
shichunma
3c9a9d683f include/errno.h: skip set_errno in interrupt context
set_errno() should not modify the interrupted task's errno.
Add a check using up_interrupt_context() and skip the assignment
when called from an interrupt handler.

Signed-off-by: Jerry Ma <shichunma@bestechnic.com>
2026-05-03 17:23:40 -03:00
Matteo Golin
a8a492cb4f boards/arm: Remove app-specific initialization
Now that initialization is performed by BOARD_LATE_INITIALIZE,
app-specific initialization options are not needed.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-03 08:23:18 -03:00
Alan Carvalho de Assis
51cd4a548f doc: Improved QE Documentation and add mt6816 board profile doc
This commit explain that the QE encoder driver can be used to
internal QE from microcontroller or external magnetic encoder.
Also explains how to use the mt6816 board profile to STM32F4Discovery

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Alan Carvalho de Assis
928d7682ce boards/stm32f4discovery: Add support to MT6816
This commit add support to use MagTek Magnetic Rotary Encoder MT6816
on STM32F4Discovery board.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Alan Carvalho de Assis
a1d6016962 drivers/sensors: Add support to MT6816
This commit adds support to MagTek MT6816 sensor

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Alan Carvalho de Assis
04d5cad64e drivers/spi: Add SPIDEV_MAG_ENCODER() definition
This definition is needed to have multiplese Magnetic Sensors in the
same board.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Alan Carvalho de Assis
f8e78c1075 drivers/qe: Don't compile stm32_qencoder.c if STM32 QE is not enabled
NuttX uses Quadrature Encoder lower half driver to internal QE from
MCUs and also with Magnetic Rotary Encoder sensors. But when the
STM32 QE is not enabled, the board code will try to compile the
stm32_qencoder.c because Magnetic Rotary Encoders enables the
CONFIG_SENSORS_QENCODER. This patch fixes this issue.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Alan Carvalho de Assis
2b8be4a3da drivers/fb: Fix a symbol missing CONFIG_
This was a mistake that was preveting the boot logo to stay visible
for more time.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-02 15:26:10 -03:00
Matteo Golin
51f77ee111 boards/config: Remove final mentions of NSH_ARCHINIT
Since `NSH_ARCHINIT` is now removed, this commit cleans the last few
references to this option in the defconfig files that were recently
modified and escaped removal in initialization simplification commit.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 15:25:45 -03:00
Alan Carvalho de Assis
c01aca09f0 boards/qemu-i486: Fix the removal of qemu_appinit.c
This PR makes the qemu-i486 boot again.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 01:22:00 +08:00
Alan Carvalho de Assis
63a03d0f8a arch/x86: Add palette 256 color to qemu-i486 VGA driver
This patch adds support to get the VGA driver working with 256
colors.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-02 09:51:59 -04:00
Alan Carvalho de Assis
b30fe55fe0 arch/x86: Replace planar pixel copy with linear copy
The planar copy was used even when linar mode was used (chain4 = 1)
Probably this modification could impact VGA text mode, but for now
it is not important, since the goal is get graphic mode working.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-02 09:51:59 -04:00
Matteo Golin
a5e8ea2b40 arch/ceva: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
66ae075ae8 boards/arm: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
d54f3a31cb boards/xtensa: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
1e8564c3e9 boards/x86: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
48307b3a48 boards/sparc: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
73e243584e boards/risc-v: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
945329efd0 boards/z16: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
445b66430d boards/x86_64: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
e30da0ba74 boards/tricore: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
7fded74212 boards/renesas: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
f077c0321d boards/avr: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
9eb9cccbab boards/mips: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
cbbc5c42f4 boards/hc: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
296ee45be0 boards/z80: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
d0ee99a8a9 boards/arm64: Replace board_app_initialize
Replaced board_app_initialize logic with board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
46182069c8 boards/or1k: Remove board_app_initialize
Logic provided by board_app_initialize is removed due to the removal of
BOARDIOC_INIT boardctl command. Logic inside board_late_initialize is to
be used and is identical.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
5c42dbcaa4 boards/sim: Replace board_app_initialize
Logic provided by board_app_initialize is replaced by
board_late_initialize.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Matteo Golin
48db502daf !boards: Remove NSH_ARCHINIT and board_app_initialize
BREAKING: In an effort to simplify NuttX initialization, NSH_ARCHINIT is
removed. board_app_initialize is also removed. BOARD_LATE_INITIALIZE now
performs all board initialization logic, and is by default enabled. All
references to these symbols are removed. BOARDIOC_INIT remains, but will
result in -ENOTTY when called. It is to be removed in a later commit.

Quick fix: Boards relying on NSH_ARCHINIT should now enable
CONFIG_BOARD_LATE_INITIALIZE instead. If the application needs
fine-grained control over board initialization from userspace, the logic
performed by BOARDIOC_INIT may be copied to the board_finalinitialize
function and used instead via BOARDIOC_FINALINIT. All
board_app_initialize logic provided by NuttX is now moved to
board_late_initialize, and the same should be done for out-of-tree
boards.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Daniel Monteiro
8e91dd60a0 Documentation: add rst file for the TM4C123G
Signed-off-by: Daniel Monteiro <monteiroquiet@gmail.com>
2026-05-02 10:18:08 +08:00
raiden00pl
772a51b43a boards/thingy53: add sensors scope demo for fixed16
add sensors scope demo with fixed16 as sensor data type

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
18716159c9 sensors/bmi270_uorb: support for fixed-point data
support for fixed-point data for bmi270_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
c3190cd04b sensors/bmm150_uorb: support for fixed-point data
support for fixed-point data for bmm150_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
cf9aaba449 sensors/bh1749nuc_uorb: support for fixed-point data
support for fixed-point data for bh1749nuc_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
192719aa82 sensors/adxl372_uorb: support for fixed-point data
support for fixed-point data for adxl372_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
a5d9f14215 sensors/adxl362_uorb: support for fixed-point data
support for fixed-point data for adxl362_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
25ddf14cf5 sensors/hyt271_uorb: support for fixed-point data
support for fixed-point data for hyt271_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
5c3c369dbd sensors/bmp180_uorb: support for fixed-point data
support for fixed-point data for bmp180_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
37981b2b2f sensors/bmp280_uorb: support for fixed-point data
support for fixed-point data for bmp280_uorb

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
raiden00pl
39378e1d46 drivers/sensors: add initial support for fixed-point data for sensors
new sensor framework can now select between float data type and
fixed-point data type

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
yaojiaqi
ae7525d195 arch/arm/include/arm*/irq.h: fix FPU context layout guard macro
The register index layout for D16-D31 and FPU_CONTEXT_REGS was guarded
by CONFIG_ARM_HAVE_DPFPU32 (hardware capability) in three header files,
but all save/restore code in the corresponding .S files gates on
CONFIG_ARM_DPFPU32 (software enable).

These two macros are distinct:
  CONFIG_ARM_HAVE_DPFPU32 - set by chip via 'select'; means hardware
                            has D16-D31 registers
  CONFIG_ARM_DPFPU32      - user-selectable; means software has chosen
                            to use D16-D31 (requires hardware support)

When ARM_HAVE_DPFPU32=y and ARM_DPFPU32=n, the header defined
REG_FPSCR at offset 64 and FPU_CONTEXT_REGS=65, while the assembly
only saved S0-S31+FPSCR (33 words), placing FPSCR at offset 32.
This mismatch causes incorrect register access and wrong xcptcontext
sizing.

Signed-off-by: yaojiaqi <yaojiaqi@lixiang.com>
2026-04-30 21:23:41 +08:00
aviralgarg05
57acb80e6b boards/arm/stm32: add nucleo-f412zg ostest and coremark configs.
Add dedicated ostest and coremark defconfigs for nucleo-f412zg.
The ostest config keeps the existing NSH-oriented board setup and
adds the runtime self-test application, while the coremark config
boots directly into the benchmark with an -O3 build profile.

Both configurations were verified with GNU Make and CMake/Ninja
using Arm GNU Toolchain 15.2.Rel1 on macOS arm64.

Signed-off-by: aviralgarg05 <gargaviral99@gmail.com>
2026-04-30 19:24:26 +08:00
Filipe Cavalcanti
3759cc72ab arch/xtensa: properly set carrier on/off on espnow driver
In esp_espnow_pktradio.c, after ESP-NOW is successfully initialized in espnow_ifup, call netdev_carrier_on(dev).
In espnow_ifdown, call netdev_carrier_off(dev).

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2026-04-30 12:25:32 +08:00
Jukka Laitinen
dde26e5589 Documentation/drivers/timers: Add documentation of DShot driver upper half
Add documentation for the DShot electronic speed controllers protocol

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-04-30 12:24:47 +08:00
Jukka Laitinen
66f3b66eda boards/imx93-evk: Add initialization of DShot driver
This adds initialization of the flexio_dshot driver to the
imx93-evk:nsh target.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-04-30 12:24:47 +08:00
Jukka Laitinen
101ff2c2bb arch/imx9: Add bidirectional dshot driver using i.MX9 FlexIO
Create a bidirectional dshot lower-half driver, using the flexio block.

This driver enables use of DShot protocol for Electronic Speed Controllers
(ESCs) typically used in drone motor control.

Eight channels of DShot per flexio block are supported in:

- Normal mode in all DShot speeds, with telemetry request (uart response
  needs to be handled outside of this driver)
- Bidirectional mode in all DShot speeds, with telemetry request & response
- Configurable to use either independent TX timers for each channel, or to
  use a common TX timer for all channels to synchronize the output
- For bidirectional RX, each channel always uses an own timer.

In normal mode, the driver operates without any interrupts.

In bidirectional mode, the driver reconfigures the FlexIO timers (as needed)
and shifters from TX to RX in the interrupt handler, and reads out the
raw response packet.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-04-30 12:24:47 +08:00
Jukka Laitinen
b810cbe4d3 drivers/timers: Add common include files, definitions and upper-half for DSHOT
DShot is a packet based serial protocol, used for controlling motor controllers
(ESCs), typically for drones.

This adds an upper-half driver for dshot protocol, along with common
configuration options and definitions definitions.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-04-30 12:24:47 +08:00