Skip to content

!apps: Simplify NuttX initialization#3405

Draft
linguini1 wants to merge 2 commits intoapache:masterfrom
linguini1:byebye-archinit
Draft

!apps: Simplify NuttX initialization#3405
linguini1 wants to merge 2 commits intoapache:masterfrom
linguini1:byebye-archinit

Conversation

@linguini1
Copy link
Contributor

@linguini1 linguini1 commented Feb 19, 2026

Summary

BREAKING:

In an effort to simplify board initialization logic for NuttX, NSH will no longer support architecture initialization. This will happen during boot via the BOARD_LATE_INITIALIZE option. The boardctl command BOARDIOC_INIT is also no longer available from user-space.

Quick fix: Any application relying on BOARDIOC_INIT should now enable BOARD_LATE_INITIALIZE to have initialization performed by the kernel in advance of the application running. If control over initialization is still necessary, BOARDIOC_FINALINIT should be implemented and used. Boards relying on NSH for initialization should also enable BOARD_LATE_INITIALIZE instead.

Part of apache/nuttx#11321.

To be merged with twin PR to NuttX kernel: apache/nuttx#18408

Impact

This reduces the complexity of NuttX initialization by keeping it within the
kernel logic for the normal case. Users can still control initialization from
their application using BOARDIOC_FINALINIT instead.

This impacts almost every NuttX supported board, as many configurations relied
on NSH for initialization. This also impacts each application in the diff which
relied on BOARDIOC_INIT.

Testing

TBD, I will likely need help testing the affected applications (for this PR).

Testing of modified NuttX kernel defconfigs can be found in the twin PR: apache/nuttx#18408

BREAKING: In an effort to simplify board initialization logic for NuttX,
NSH will no longer support architecture initialization. This will happen
during boot via the BOARD_LATE_INITIALIZE option. The boardctl command
BOARDIOC_INIT is also no longer available from user-space.

Quick fix:
Any application relying on BOARDIOC_INIT should now enable
BOARD_LATE_INITIALIZE to have initialization performed by the kernel in
advance of the application running. If control over initialization is
still necessary, BOARDIOC_FINALINIT should be implemented and used.
Boards relying on NSH for initialization should also enable
BOARD_LATE_INITIALIZE instead.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
Ignore some new lines with incorrect spelling error detection.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
@linguini1
Copy link
Contributor Author

NOTE: The CI will always fail since it will be using a version of NuttX where the defconfigs still contain references to NSH_ARCHINIT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments