!apps: Simplify NuttX initialization#3405
Open
linguini1 wants to merge 2 commits intoapache:masterfrom
Open
Conversation
Contributor
Author
|
NOTE: The CI will always fail since it will be using a version of NuttX where the defconfigs still contain references to |
xiaoxiang781216
requested changes
Feb 22, 2026
| boardctl(BOARDIOC_INIT, 0); | ||
|
|
||
| # ifdef CONFIG_BOARDCTL_FINALINIT | ||
| #if defined(CONFIG_BOARDCTL_FINALINIT) && !defined(CONFIG_BOARD_LATE_INITIALIZE) |
Contributor
There was a problem hiding this comment.
why check CONFIG_BOARD_LATE_INITIALIZE
Contributor
Author
There was a problem hiding this comment.
I suppose my idea here was the use-case raiden mentioned, where users that still want control over the init process put a custom one in board_finalinitialize. But, I guess in that case they should be allowed to enable both options anyways. I will modify this (and anywhere else I did this) to just check for CONFIG_BOARD_FINALINIT.
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>
c036e68 to
50679c8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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