!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>
This commit is contained in:
Matteo Golin
2026-02-16 14:24:28 -05:00
committed by Xiang Xiao
parent 8e91dd60a0
commit 48db502daf
1631 changed files with 579 additions and 2753 deletions
+3 -5
View File
@@ -149,12 +149,10 @@ Why after putting my application on ENTRYPOINT it stops to work?
----------------------------------------------------------------
When you replace the ENTRYPOINT from "nsh_main" to your application some
initialization flow are changed, for instance the NSH_ARCHINIT is not
executed anymore and so some drivers initialization that are called from
it also stops to work.
initialization flow are changed.
You can fix it enabling the Board Late Initialization that will replace the
NSH_ARCHINIT to call those drivers initialization. Just enable it::
You can fix it enabling the Board Late Initialization that will
perform driver initialization. Just enable it::
RTOS Features --->
RTOS hooks --->