You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2026/05/02 10:37:06 UTC

(nuttx) 13/18: boards/risc-v: Replace board_app_initialize

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 73e243584eb0c9714c2843f715c46661d8d80776
Author: Matteo Golin <ma...@gmail.com>
AuthorDate: Wed Feb 18 23:20:09 2026 -0500

    boards/risc-v: Replace board_app_initialize
    
    Replaced board_app_initialize logic with board_late_initialize.
    
    Signed-off-by: Matteo Golin <ma...@gmail.com>
---
 boards/risc-v/bl602/bl602evb/src/Makefile          |  2 +-
 .../src/{bl602_appinit.c => bl602_boardctl.c}      | 32 +--------
 boards/risc-v/bl602/bl602evb/src/bl602_boot.c      | 28 ++++++++
 boards/risc-v/bl808/ox64/src/Makefile              |  2 +-
 .../src/{bl808_appinit.c => bl808_boardinit.c}     | 42 +----------
 boards/risc-v/c906/smartl-c906/src/Makefile        |  4 --
 boards/risc-v/c906/smartl-c906/src/c906_appinit.c  | 77 --------------------
 boards/risc-v/c906/smartl-c906/src/c906_boot.c     | 29 ++++++++
 boards/risc-v/eic7700x/starpro64/src/Makefile      |  2 +-
 .../{eic7700x_appinit.c => eic7700x_boardinit.c}   | 42 +----------
 .../esp32c3-legacy-devkit-rust-1/src/Make.defs     |  8 +--
 .../src/esp32c3-legacy-devkit-rust-1.h             |  3 -
 .../src/esp32c3_appinit.c                          | 82 ---------------------
 .../src/esp32c3_boot.c                             |  2 +
 .../esp32c3-legacy-devkit/src/Make.defs            |  8 +--
 .../src/esp32c3-legacy-devkit.h                    |  3 -
 .../esp32c3-legacy-devkit/src/esp32c3_appinit.c    | 82 ---------------------
 .../esp32c3-legacy-devkit/src/esp32c3_boot.c       |  2 +
 .../esp32c3/esp32-c3-zero/src/CMakeLists.txt       |  2 -
 boards/risc-v/esp32c3/esp32-c3-zero/src/Make.defs  |  8 +--
 .../esp32c3/esp32-c3-zero/src/esp32-c3-zero.h      |  3 -
 .../esp32c3/esp32-c3-zero/src/esp32c3_appinit.c    | 83 ----------------------
 .../esp32c3/esp32-c3-zero/src/esp32c3_boot.c       |  2 +
 .../esp32c3/esp32-c3-zero/src/esp32c3_bringup.c    |  3 -
 .../esp32c3/esp32c3-devkit/src/CMakeLists.txt      |  2 -
 boards/risc-v/esp32c3/esp32c3-devkit/src/Make.defs |  8 +--
 .../esp32c3/esp32c3-devkit/src/esp32c3-devkit.h    |  3 -
 .../esp32c3/esp32c3-devkit/src/esp32c3_appinit.c   | 83 ----------------------
 .../esp32c3/esp32c3-devkit/src/esp32c3_boot.c      |  2 +
 .../esp32c3/esp32c3-devkit/src/esp32c3_bringup.c   |  3 -
 .../risc-v/esp32c3/esp32c3-xiao/src/CMakeLists.txt |  2 -
 boards/risc-v/esp32c3/esp32c3-xiao/src/Make.defs   |  8 +--
 .../risc-v/esp32c3/esp32c3-xiao/src/esp32c3-xiao.h |  3 -
 .../esp32c3/esp32c3-xiao/src/esp32c3_appinit.c     | 83 ----------------------
 .../risc-v/esp32c3/esp32c3-xiao/src/esp32c3_boot.c |  2 +
 .../esp32c3/esp32c3-xiao/src/esp32c3_bringup.c     |  3 -
 .../esp32c6/esp32c6-devkitc/src/CMakeLists.txt     |  2 -
 .../risc-v/esp32c6/esp32c6-devkitc/src/Make.defs   |  8 +--
 .../esp32c6/esp32c6-devkitc/src/esp32c6-devkitc.h  |  3 -
 .../esp32c6/esp32c6-devkitc/src/esp32c6_appinit.c  | 83 ----------------------
 .../esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c  |  3 -
 .../esp32c6/esp32c6-devkitm/src/CMakeLists.txt     |  2 -
 .../risc-v/esp32c6/esp32c6-devkitm/src/Make.defs   |  8 +--
 .../esp32c6/esp32c6-devkitm/src/esp32c6-devkitm.h  |  3 -
 .../esp32c6/esp32c6-devkitm/src/esp32c6_appinit.c  | 83 ----------------------
 .../esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c  |  3 -
 .../risc-v/esp32c6/esp32c6-xiao/src/CMakeLists.txt |  2 -
 boards/risc-v/esp32c6/esp32c6-xiao/src/Make.defs   |  8 +--
 .../risc-v/esp32c6/esp32c6-xiao/src/esp32c6-xiao.h |  3 -
 .../esp32c6/esp32c6-xiao/src/esp32c6_appinit.c     | 83 ----------------------
 .../esp32c6/esp32c6-xiao/src/esp32c6_bringup.c     |  3 -
 .../esp32h2/esp32h2-devkit/src/CMakeLists.txt      |  2 -
 boards/risc-v/esp32h2/esp32h2-devkit/src/Make.defs |  8 +--
 .../esp32h2/esp32h2-devkit/src/esp32h2-devkit.h    |  3 -
 .../esp32h2/esp32h2-devkit/src/esp32h2_appinit.c   | 83 ----------------------
 .../esp32h2/esp32h2-devkit/src/esp32h2_boot.c      |  2 +
 .../esp32h2/esp32h2-devkit/src/esp32h2_bringup.c   |  3 -
 .../configs/psram_usrheap/defconfig                |  1 -
 .../esp32p4-function-ev-board/src/CMakeLists.txt   |  2 -
 .../esp32p4-function-ev-board/src/Make.defs        |  2 -
 .../src/esp32p4-function-ev-board.h                |  6 --
 .../src/esp32p4_appinit.c                          | 83 ----------------------
 .../src/esp32p4_bringup.c                          |  6 --
 .../esp32p4-pico-wifi-wareshare/src/CMakeLists.txt |  2 -
 .../esp32p4-pico-wifi-wareshare/src/Make.defs      |  2 -
 .../src/esp32p4-pico-wifi.h                        |  6 --
 .../src/esp32p4_appinit.c                          | 83 ----------------------
 .../esp32p4-pico-wifi-wareshare/src/esp32p4_boot.c |  2 +
 .../src/esp32p4_bringup.c                          |  6 --
 .../risc-v/fe310/hifive1-revb/src/CMakeLists.txt   |  4 --
 boards/risc-v/fe310/hifive1-revb/src/Makefile      |  4 --
 .../risc-v/fe310/hifive1-revb/src/fe310_appinit.c  | 77 --------------------
 boards/risc-v/fe310/hifive1-revb/src/fe310_boot.c  | 29 ++++++++
 .../risc-v/hpm6000/hpm6360evk/src/CMakeLists.txt   |  8 +--
 boards/risc-v/hpm6000/hpm6360evk/src/Makefile      |  4 --
 .../hpm6000/hpm6360evk/src/hpm6360_appinit.c       | 76 --------------------
 .../risc-v/hpm6000/hpm6360evk/src/hpm6360_boot.c   | 27 +++++++
 .../risc-v/hpm6750/hpm6750evk2/src/CMakeLists.txt  |  4 --
 boards/risc-v/hpm6750/hpm6750evk2/src/Makefile     |  4 --
 .../hpm6750/hpm6750evk2/src/hpm6750_appinit.c      | 76 --------------------
 .../risc-v/hpm6750/hpm6750evk2/src/hpm6750_boot.c  | 29 ++++++++
 boards/risc-v/jh7110/star64/src/Makefile           |  2 +-
 .../src/{jh7110_appinit.c => jh7110_boardinit.c}   | 42 +----------
 boards/risc-v/k210/maix-bit/src/CMakeLists.txt     |  4 --
 boards/risc-v/k210/maix-bit/src/Makefile           |  4 --
 boards/risc-v/k210/maix-bit/src/k210_appinit.c     | 77 --------------------
 boards/risc-v/k210/maix-bit/src/k210_boot.c        | 30 ++++++++
 boards/risc-v/k230/canmv230/src/canmv_init.c       | 39 ----------
 boards/risc-v/litex/arty_a7/src/Makefile           |  6 +-
 .../src/{litex_appinit.c => litex_boardinit.c}     | 40 +----------
 boards/risc-v/mpfs/icicle/src/Make.defs            |  4 --
 boards/risc-v/mpfs/icicle/src/mpfs_appinit.c       | 77 --------------------
 boards/risc-v/mpfs/m100pfsevp/src/Make.defs        |  6 +-
 boards/risc-v/mpfs/m100pfsevp/src/mpfs_appinit.c   | 77 --------------------
 boards/risc-v/qemu-rv/rv-virt/src/CMakeLists.txt   |  2 +-
 boards/risc-v/qemu-rv/rv-virt/src/Makefile         |  2 +-
 .../src/{qemu_rv_appinit.c => qemu_rv_boardinit.c} | 83 +++++-----------------
 boards/risc-v/rp23xx-rv/common/src/rp23xx_usbmsc.c |  3 +-
 .../raspberrypi-pico-2-rv/src/CMakeLists.txt       |  4 --
 .../rp23xx-rv/raspberrypi-pico-2-rv/src/Make.defs  |  1 -
 .../raspberrypi-pico-2-rv/src/rp23xx_appinit.c     | 76 --------------------
 .../src/rp23xx_boardinitialize.c                   | 28 ++++++++
 boards/risc-v/rv32m1/rv32m1-vega/src/Makefile      |  4 --
 .../risc-v/rv32m1/rv32m1-vega/src/rv32m1_appinit.c | 77 --------------------
 boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_boot.c | 29 ++++++++
 boards/risc-v/sg2000/milkv_duos/src/Makefile       |  2 +-
 .../src/{sg2000_appinit.c => sg2000_boardinit.c}   | 42 +----------
 107 files changed, 305 insertions(+), 2150 deletions(-)

diff --git a/boards/risc-v/bl602/bl602evb/src/Makefile b/boards/risc-v/bl602/bl602evb/src/Makefile
index e2b99e65eca..9dc90ecf46e 100644
--- a/boards/risc-v/bl602/bl602evb/src/Makefile
+++ b/boards/risc-v/bl602/bl602evb/src/Makefile
@@ -25,7 +25,7 @@ include $(TOPDIR)/Make.defs
 CSRCS  = bl602_bringup.c bl602_boot.c
 
 ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += bl602_appinit.c
+CSRCS += bl602_boardctl.c
 ifeq ($(CONFIG_BOARDCTL_RESET),y)
 CSRCS += bl602_reset.c
 endif
diff --git a/boards/risc-v/bl602/bl602evb/src/bl602_appinit.c b/boards/risc-v/bl602/bl602evb/src/bl602_boardctl.c
similarity index 62%
rename from boards/risc-v/bl602/bl602evb/src/bl602_appinit.c
rename to boards/risc-v/bl602/bl602evb/src/bl602_boardctl.c
index 6bb65101a38..bee28b36714 100644
--- a/boards/risc-v/bl602/bl602evb/src/bl602_appinit.c
+++ b/boards/risc-v/bl602/bl602evb/src/bl602_boardctl.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/bl602/bl602evb/src/bl602_appinit.c
+ * boards/risc-v/bl602/bl602evb/src/bl602_boardctl.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -42,36 +42,6 @@
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-  bl602_bringup();
-
-  return 0;
-}
-
 #ifdef CONFIG_BOARDCTL_IOCTL
 int board_ioctl(unsigned int cmd, uintptr_t arg)
 {
diff --git a/boards/risc-v/bl602/bl602evb/src/bl602_boot.c b/boards/risc-v/bl602/bl602evb/src/bl602_boot.c
index 3822268181e..0b8299d83bf 100644
--- a/boards/risc-v/bl602/bl602evb/src/bl602_boot.c
+++ b/boards/risc-v/bl602/bl602evb/src/bl602_boot.c
@@ -31,6 +31,8 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "bl602evb.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -58,3 +60,29 @@ void bl602_boardinitialize(void)
 {
 }
 
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  bl602_bringup();
+}
+#endif
diff --git a/boards/risc-v/bl808/ox64/src/Makefile b/boards/risc-v/bl808/ox64/src/Makefile
index 4ab1d24e3a1..e925055af1a 100644
--- a/boards/risc-v/bl808/ox64/src/Makefile
+++ b/boards/risc-v/bl808/ox64/src/Makefile
@@ -24,6 +24,6 @@ include $(TOPDIR)/Make.defs
 
 RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
 
-CSRCS = bl808_appinit.c bl808_autoleds.c bl808_userleds.c
+CSRCS = bl808_boardinit.c bl808_autoleds.c bl808_userleds.c
 
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/risc-v/bl808/ox64/src/bl808_appinit.c b/boards/risc-v/bl808/ox64/src/bl808_boardinit.c
similarity index 80%
rename from boards/risc-v/bl808/ox64/src/bl808_appinit.c
rename to boards/risc-v/bl808/ox64/src/bl808_boardinit.c
index 4375075c7dd..b497ac1876e 100644
--- a/boards/risc-v/bl808/ox64/src/bl808_appinit.c
+++ b/boards/risc-v/bl808/ox64/src/bl808_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/bl808/ox64/src/bl808_appinit.c
+ * boards/risc-v/bl808/ox64/src/bl808_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -110,44 +110,6 @@ static int mount_ramdisk(void)
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  mount(NULL, "/proc", "procfs", 0, NULL);
-
-  return OK;
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -167,6 +129,7 @@ int board_app_initialize(uintptr_t arg)
  *
  ****************************************************************************/
 
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
 void board_late_initialize(void)
 {
   /* Mount the RAM Disk */
@@ -229,3 +192,4 @@ void board_late_initialize(void)
     }
 #endif
 }
+#endif /* CONFIG_BOARD_LATE_INITIALIZE */
diff --git a/boards/risc-v/c906/smartl-c906/src/Makefile b/boards/risc-v/c906/smartl-c906/src/Makefile
index e65aa99c6d5..e37ba5898a9 100644
--- a/boards/risc-v/c906/smartl-c906/src/Makefile
+++ b/boards/risc-v/c906/smartl-c906/src/Makefile
@@ -24,10 +24,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = c906_bringup.c c906_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += c906_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += c906_leds.c
 endif
diff --git a/boards/risc-v/c906/smartl-c906/src/c906_appinit.c b/boards/risc-v/c906/smartl-c906/src/c906_appinit.c
deleted file mode 100644
index 6d346b8d080..00000000000
--- a/boards/risc-v/c906/smartl-c906/src/c906_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/c906/smartl-c906/src/c906_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "c906.h"
-#include "smartl-c906.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return c906_bringup();
-#endif
-}
diff --git a/boards/risc-v/c906/smartl-c906/src/c906_boot.c b/boards/risc-v/c906/smartl-c906/src/c906_boot.c
index dabafd5fedc..ccc3bbc92ea 100644
--- a/boards/risc-v/c906/smartl-c906/src/c906_boot.c
+++ b/boards/risc-v/c906/smartl-c906/src/c906_boot.c
@@ -31,6 +31,8 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "smartl-c906.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -58,3 +60,30 @@ void c906_boardinitialize(void)
 {
   board_autoled_initialize();
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  c906_bringup();
+}
+#endif
diff --git a/boards/risc-v/eic7700x/starpro64/src/Makefile b/boards/risc-v/eic7700x/starpro64/src/Makefile
index 00863157ed7..4c1536de06f 100644
--- a/boards/risc-v/eic7700x/starpro64/src/Makefile
+++ b/boards/risc-v/eic7700x/starpro64/src/Makefile
@@ -24,6 +24,6 @@ include $(TOPDIR)/Make.defs
 
 RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
 
-CSRCS = eic7700x_appinit.c
+CSRCS = eic7700x_boardinit.c
 
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/risc-v/eic7700x/starpro64/src/eic7700x_appinit.c b/boards/risc-v/eic7700x/starpro64/src/eic7700x_boardinit.c
similarity index 75%
rename from boards/risc-v/eic7700x/starpro64/src/eic7700x_appinit.c
rename to boards/risc-v/eic7700x/starpro64/src/eic7700x_boardinit.c
index 8d0bb58bbf7..a712fd760d6 100644
--- a/boards/risc-v/eic7700x/starpro64/src/eic7700x_appinit.c
+++ b/boards/risc-v/eic7700x/starpro64/src/eic7700x_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/eic7700x/starpro64/src/eic7700x_appinit.c
+ * boards/risc-v/eic7700x/starpro64/src/eic7700x_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -92,44 +92,6 @@ static int mount_ramdisk(void)
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  mount(NULL, "/proc", "procfs", 0, NULL);
-
-  return OK;
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -149,6 +111,7 @@ int board_app_initialize(uintptr_t arg)
  *
  ****************************************************************************/
 
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
 void board_late_initialize(void)
 {
   /* Mount the RAM Disk */
@@ -159,3 +122,4 @@ void board_late_initialize(void)
 
   mount(NULL, "/proc", "procfs", 0, NULL);
 }
+#endif /* CONFIG_BOARD_LATE_INITIALIZE */
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/Make.defs b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/Make.defs
index dff51a3de6b..9fa8cab3a73 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/Make.defs
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c3_boot.c esp32c3_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c3_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c3_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c3_reset.c
 endif
 
 ifeq ($(CONFIG_ARCH_LEDS),y)
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3-legacy-devkit-rust-1.h b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3-legacy-devkit-rust-1.h
index b00782e6779..3a60764bd1d 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3-legacy-devkit-rust-1.h
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3-legacy-devkit-rust-1.h
@@ -70,9 +70,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize()
- *
  ****************************************************************************/
 
 int esp32c3_bringup(void);
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_appinit.c b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_appinit.c
deleted file mode 100644
index 43fcf7c696a..00000000000
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_appinit.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-#include <nuttx/board.h>
-
-#include "esp32c3-legacy-devkit-rust-1.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp32c3_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_boot.c b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_boot.c
index b4731faea05..a825d55cecd 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_boot.c
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit-rust-1/src/esp32c3_boot.c
@@ -28,6 +28,8 @@
 #include <nuttx/arch.h>
 #include <nuttx/board.h>
 
+#include "esp32c3-legacy-devkit-rust-1.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/Make.defs b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/Make.defs
index 4040c7f9393..92fd7f47de9 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/Make.defs
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c3_boot.c esp32c3_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c3_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c3_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c3_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3-legacy-devkit.h b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3-legacy-devkit.h
index bd8fe8da816..9a523b3c6cf 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3-legacy-devkit.h
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3-legacy-devkit.h
@@ -66,9 +66,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize()
- *
  ****************************************************************************/
 
 int esp32c3_bringup(void);
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_appinit.c b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_appinit.c
deleted file mode 100644
index ba31950794f..00000000000
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_appinit.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-#include <nuttx/board.h>
-
-#include "esp32c3-legacy-devkit.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp32c3_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_boot.c b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_boot.c
index e61142bda23..935ce6617c3 100644
--- a/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_boot.c
+++ b/boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/src/esp32c3_boot.c
@@ -28,6 +28,8 @@
 #include <nuttx/arch.h>
 #include <nuttx/board.h>
 
+#include "esp32c3-legacy-devkit.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/CMakeLists.txt b/boards/risc-v/esp32c3/esp32-c3-zero/src/CMakeLists.txt
index 315fae8352f..ac53348f444 100644
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c3/esp32-c3-zero/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c3_boot.c esp32c3_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c3_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c3_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/Make.defs b/boards/risc-v/esp32c3/esp32-c3-zero/src/Make.defs
index de99c8deadb..ed4fa5a58d0 100644
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/Make.defs
+++ b/boards/risc-v/esp32c3/esp32-c3-zero/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c3_boot.c esp32c3_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c3_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c3_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c3_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32-c3-zero.h b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32-c3-zero.h
index 506b3d094a1..2c421a4e83f 100644
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32-c3-zero.h
+++ b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32-c3-zero.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_appinit.c b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_appinit.c
deleted file mode 100644
index ab3478a7f60..00000000000
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32-c3-zero.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_boot.c b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_boot.c
index 5e77d94eea2..0bbd318bab4 100644
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_boot.c
+++ b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_boot.c
@@ -26,6 +26,8 @@
 
 #include <nuttx/config.h>
 
+#include "esp32-c3-zero.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_bringup.c b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_bringup.c
index 373fffa97a3..644034ea265 100644
--- a/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_bringup.c
+++ b/boards/risc-v/esp32c3/esp32-c3-zero/src/esp32c3_bringup.c
@@ -164,9 +164,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/CMakeLists.txt b/boards/risc-v/esp32c3/esp32c3-devkit/src/CMakeLists.txt
index 9377e66016b..1ef7d0a5ce0 100644
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c3/esp32c3-devkit/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c3_boot.c esp32c3_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c3_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c3_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/Make.defs b/boards/risc-v/esp32c3/esp32c3-devkit/src/Make.defs
index 1ca4c30c12a..deedce149d2 100644
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/Make.defs
+++ b/boards/risc-v/esp32c3/esp32c3-devkit/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c3_boot.c esp32c3_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c3_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c3_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c3_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3-devkit.h b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3-devkit.h
index 5f2bac614d3..20f6fc0bb69 100644
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3-devkit.h
+++ b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3-devkit.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_appinit.c b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_appinit.c
deleted file mode 100644
index 98e43f10979..00000000000
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32c3-devkit.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_boot.c b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_boot.c
index d56ec332a58..74fb00073e1 100644
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_boot.c
+++ b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_boot.c
@@ -26,6 +26,8 @@
 
 #include <nuttx/config.h>
 
+#include "esp32c3-devkit.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_bringup.c b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_bringup.c
index 65cb798ae34..942d6a1def0 100644
--- a/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_bringup.c
+++ b/boards/risc-v/esp32c3/esp32c3-devkit/src/esp32c3_bringup.c
@@ -155,9 +155,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/CMakeLists.txt b/boards/risc-v/esp32c3/esp32c3-xiao/src/CMakeLists.txt
index dc938b949b7..5ec07809461 100644
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c3/esp32c3-xiao/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c3_boot.c esp32c3_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c3_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c3_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/Make.defs b/boards/risc-v/esp32c3/esp32c3-xiao/src/Make.defs
index 37deb0146b2..db924d72acc 100644
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/Make.defs
+++ b/boards/risc-v/esp32c3/esp32c3-xiao/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c3_boot.c esp32c3_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c3_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c3_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c3_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3-xiao.h b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3-xiao.h
index 6645f64432c..51bb33484d9 100644
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3-xiao.h
+++ b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3-xiao.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_appinit.c b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_appinit.c
deleted file mode 100644
index 6113c90337f..00000000000
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32c3-xiao.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_boot.c b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_boot.c
index 947875d531e..ed4a149c6ea 100644
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_boot.c
+++ b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_boot.c
@@ -26,6 +26,8 @@
 
 #include <nuttx/config.h>
 
+#include "esp32c3-xiao.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_bringup.c b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_bringup.c
index 7fbfa7a43fa..d14ffd1b430 100644
--- a/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_bringup.c
+++ b/boards/risc-v/esp32c3/esp32c3-xiao/src/esp32c3_bringup.c
@@ -127,9 +127,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/CMakeLists.txt b/boards/risc-v/esp32c6/esp32c6-devkitc/src/CMakeLists.txt
index ca868903619..6acaf7683dd 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c6/esp32c6-devkitc/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c6_boot.c esp32c6_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c6_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c6_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/Make.defs b/boards/risc-v/esp32c6/esp32c6-devkitc/src/Make.defs
index 1ff59255012..7dc9abd1bc7 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/Make.defs
+++ b/boards/risc-v/esp32c6/esp32c6-devkitc/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c6_boot.c esp32c6_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c6_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c6_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c6_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6-devkitc.h b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6-devkitc.h
index e68bd78780e..c9a0af65e33 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6-devkitc.h
+++ b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6-devkitc.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_appinit.c b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_appinit.c
deleted file mode 100644
index c6f607a6fad..00000000000
--- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32c6-devkitc.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c
index d0f08c72046..0b221584f2d 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c
+++ b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c
@@ -173,9 +173,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/CMakeLists.txt b/boards/risc-v/esp32c6/esp32c6-devkitm/src/CMakeLists.txt
index 5228c69d97d..c1805246925 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c6/esp32c6-devkitm/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c6_boot.c esp32c6_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c6_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c6_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/Make.defs b/boards/risc-v/esp32c6/esp32c6-devkitm/src/Make.defs
index 82112d9c9a5..eaedb1ff108 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/Make.defs
+++ b/boards/risc-v/esp32c6/esp32c6-devkitm/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c6_boot.c esp32c6_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c6_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c6_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c6_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6-devkitm.h b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6-devkitm.h
index e960706d095..f131e28180f 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6-devkitm.h
+++ b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6-devkitm.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_appinit.c b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_appinit.c
deleted file mode 100644
index 94910f22522..00000000000
--- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32c6-devkitm.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c
index 9b18ce9a64f..7b20f598aba 100644
--- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c
+++ b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c
@@ -138,9 +138,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-xiao/src/CMakeLists.txt b/boards/risc-v/esp32c6/esp32c6-xiao/src/CMakeLists.txt
index 458dea794c7..7382fb3bbfe 100644
--- a/boards/risc-v/esp32c6/esp32c6-xiao/src/CMakeLists.txt
+++ b/boards/risc-v/esp32c6/esp32c6-xiao/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32c6_boot.c esp32c6_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32c6_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32c6_reset.c)
   endif()
diff --git a/boards/risc-v/esp32c6/esp32c6-xiao/src/Make.defs b/boards/risc-v/esp32c6/esp32c6-xiao/src/Make.defs
index 4a3bc371cb1..b65df426c6f 100644
--- a/boards/risc-v/esp32c6/esp32c6-xiao/src/Make.defs
+++ b/boards/risc-v/esp32c6/esp32c6-xiao/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32c6_boot.c esp32c6_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32c6_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32c6_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32c6_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6-xiao.h b/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6-xiao.h
index 365206addd2..deae1c430dd 100644
--- a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6-xiao.h
+++ b/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6-xiao.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_appinit.c b/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_appinit.c
deleted file mode 100644
index 32c6ff19c98..00000000000
--- a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32c6-xiao.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_bringup.c b/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_bringup.c
index b6c5e5f214d..102e3f6804b 100644
--- a/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_bringup.c
+++ b/boards/risc-v/esp32c6/esp32c6-xiao/src/esp32c6_bringup.c
@@ -120,9 +120,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/CMakeLists.txt b/boards/risc-v/esp32h2/esp32h2-devkit/src/CMakeLists.txt
index 44594ca44bc..73b4f8f16fa 100644
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/CMakeLists.txt
+++ b/boards/risc-v/esp32h2/esp32h2-devkit/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32h2_boot.c esp32h2_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32h2_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32h2_reset.c)
   endif()
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/Make.defs b/boards/risc-v/esp32h2/esp32h2-devkit/src/Make.defs
index 1f57dc7ee99..38eebccf487 100644
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/Make.defs
+++ b/boards/risc-v/esp32h2/esp32h2-devkit/src/Make.defs
@@ -24,12 +24,8 @@ include $(TOPDIR)/Make.defs
 
 CSRCS = esp32h2_boot.c esp32h2_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32h2_appinit.c
-
-  ifeq ($(CONFIG_BOARDCTL_RESET),y)
-    CSRCS += esp32h2_reset.c
-  endif
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+  CSRCS += esp32h2_reset.c
 endif
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2-devkit.h b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2-devkit.h
index 08f547dab24..4da4ed0be8e 100644
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2-devkit.h
+++ b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2-devkit.h
@@ -69,9 +69,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_appinit.c b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_appinit.c
deleted file mode 100644
index 8da0356480b..00000000000
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32h2-devkit.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_boot.c b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_boot.c
index 057de076015..a8a9fa856f2 100644
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_boot.c
+++ b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_boot.c
@@ -26,6 +26,8 @@
 
 #include <nuttx/config.h>
 
+#include "esp32h2-devkit.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_bringup.c b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_bringup.c
index b45476008b6..e04356a756a 100644
--- a/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_bringup.c
+++ b/boards/risc-v/esp32h2/esp32h2-devkit/src/esp32h2_bringup.c
@@ -152,9 +152,6 @@
  *   CONFIG_BOARD_LATE_INITIALIZE=y :
  *     Called from board_late_initialize().
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/psram_usrheap/defconfig b/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/psram_usrheap/defconfig
index c5401e99100..4d37c8358ce 100644
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/psram_usrheap/defconfig
+++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/psram_usrheap/defconfig
@@ -19,7 +19,6 @@ CONFIG_ARCH_MINIMAL_VECTORTABLE_DYNAMIC=y
 CONFIG_ARCH_NUSER_INTERRUPTS=17
 CONFIG_ARCH_RISCV=y
 CONFIG_BOARDCTL_RESET=y
-CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=15000
 CONFIG_BUILTIN=y
 CONFIG_ESPRESSIF_SPIFLASH=y
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/CMakeLists.txt b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/CMakeLists.txt
index 3e523e9a287..688eddaf1db 100644
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/CMakeLists.txt
+++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32p4_boot.c esp32p4_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32p4_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32p4_reset.c)
   endif()
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/Make.defs b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/Make.defs
index d3351e1aab9..021a384a173 100644
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/Make.defs
+++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/Make.defs
@@ -25,8 +25,6 @@ include $(TOPDIR)/Make.defs
 CSRCS = esp32p4_boot.c esp32p4_bringup.c
 
 ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32p4_appinit.c
-
   ifeq ($(CONFIG_BOARDCTL_RESET),y)
     CSRCS += esp32p4_reset.c
   endif
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4-function-ev-board.h b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4-function-ev-board.h
index 61a362e469f..6917761f504 100644
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4-function-ev-board.h
+++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4-function-ev-board.h
@@ -66,12 +66,6 @@
  * Description:
  *   Perform architecture-specific initialization.
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y :
- *     Called from board_late_initialize().
- *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_appinit.c b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_appinit.c
deleted file mode 100644
index b2d6710a307..00000000000
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32p4-function-ev-board.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_bringup.c b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_bringup.c
index 318a19bc152..e32286ada4f 100644
--- a/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_bringup.c
+++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/src/esp32p4_bringup.c
@@ -144,12 +144,6 @@
  * Description:
  *   Perform architecture-specific initialization.
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y :
- *     Called from board_late_initialize().
- *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/CMakeLists.txt b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/CMakeLists.txt
index 8e3313eb340..6d8acca90c1 100644
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/CMakeLists.txt
+++ b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/CMakeLists.txt
@@ -23,8 +23,6 @@
 set(SRCS esp32p4_boot.c esp32p4_bringup.c)
 
 if(CONFIG_BOARDCTL)
-  list(APPEND SRCS esp32p4_appinit.c)
-
   if(CONFIG_BOARDCTL_RESET)
     list(APPEND SRCS esp32p4_reset.c)
   endif()
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/Make.defs b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/Make.defs
index eca3e2c570d..84af56cdc75 100644
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/Make.defs
+++ b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/Make.defs
@@ -25,8 +25,6 @@ include $(TOPDIR)/Make.defs
 CSRCS = esp32p4_boot.c esp32p4_bringup.c
 
 ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += esp32p4_appinit.c
-
   ifeq ($(CONFIG_BOARDCTL_RESET),y)
     CSRCS += esp32p4_reset.c
   endif
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4-pico-wifi.h b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4-pico-wifi.h
index 1044c2ae796..0f826899c8e 100644
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4-pico-wifi.h
+++ b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4-pico-wifi.h
@@ -66,12 +66,6 @@
  * Description:
  *   Perform architecture-specific initialization.
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y :
- *     Called from board_late_initialize().
- *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_appinit.c b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_appinit.c
deleted file mode 100644
index 288170a905e..00000000000
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_appinit.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/board.h>
-
-#include "esp32p4-pico-wifi.h"
-
-#ifdef CONFIG_BOARDCTL
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return esp_bringup();
-#endif
-}
-
-#endif /* CONFIG_BOARDCTL */
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_boot.c b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_boot.c
index 681ddea0e90..956a9b741f8 100644
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_boot.c
+++ b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_boot.c
@@ -26,6 +26,8 @@
 
 #include <nuttx/config.h>
 
+#include "esp32p4-pico-wifi.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_bringup.c b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_bringup.c
index 5a1f598e479..9375eac5df6 100644
--- a/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_bringup.c
+++ b/boards/risc-v/esp32p4/esp32p4-pico-wifi-wareshare/src/esp32p4_bringup.c
@@ -133,12 +133,6 @@
  * Description:
  *   Perform architecture-specific initialization.
  *
- *   CONFIG_BOARD_LATE_INITIALIZE=y :
- *     Called from board_late_initialize().
- *
- *   CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
- *     Called from the NSH library via board_app_initialize().
- *
  * Input Parameters:
  *   None.
  *
diff --git a/boards/risc-v/fe310/hifive1-revb/src/CMakeLists.txt b/boards/risc-v/fe310/hifive1-revb/src/CMakeLists.txt
index 257f17040d2..29663a32022 100644
--- a/boards/risc-v/fe310/hifive1-revb/src/CMakeLists.txt
+++ b/boards/risc-v/fe310/hifive1-revb/src/CMakeLists.txt
@@ -22,10 +22,6 @@
 
 set(SRCS fe310_bringup.c fe310_boot.c)
 
-if(CONFIG_BOARDCTL)
-  list(APPEND SRCS fe310_appinit.c)
-endif()
-
 if(CONFIG_ARCH_LEDS)
   list(APPEND SRCS fe310_autoleds.c)
 endif()
diff --git a/boards/risc-v/fe310/hifive1-revb/src/Makefile b/boards/risc-v/fe310/hifive1-revb/src/Makefile
index d67da83bf4e..9d28af8a912 100644
--- a/boards/risc-v/fe310/hifive1-revb/src/Makefile
+++ b/boards/risc-v/fe310/hifive1-revb/src/Makefile
@@ -24,10 +24,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = fe310_bringup.c fe310_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += fe310_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += fe310_autoleds.c
 endif
diff --git a/boards/risc-v/fe310/hifive1-revb/src/fe310_appinit.c b/boards/risc-v/fe310/hifive1-revb/src/fe310_appinit.c
deleted file mode 100644
index 76dd76f98ca..00000000000
--- a/boards/risc-v/fe310/hifive1-revb/src/fe310_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/fe310/hifive1-revb/src/fe310_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "fe310.h"
-#include "hifive1-revb.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return fe310_bringup();
-#endif
-}
diff --git a/boards/risc-v/fe310/hifive1-revb/src/fe310_boot.c b/boards/risc-v/fe310/hifive1-revb/src/fe310_boot.c
index fd569df6bf9..1f1bcdbdf0c 100644
--- a/boards/risc-v/fe310/hifive1-revb/src/fe310_boot.c
+++ b/boards/risc-v/fe310/hifive1-revb/src/fe310_boot.c
@@ -31,6 +31,8 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "hifive1-revb.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -62,3 +64,30 @@ void fe310_boardinitialize(void)
   board_autoled_initialize();
 #endif
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  fe310_bringup();
+}
+#endif
diff --git a/boards/risc-v/hpm6000/hpm6360evk/src/CMakeLists.txt b/boards/risc-v/hpm6000/hpm6360evk/src/CMakeLists.txt
index 82a17b13357..9145db47cc4 100644
--- a/boards/risc-v/hpm6000/hpm6360evk/src/CMakeLists.txt
+++ b/boards/risc-v/hpm6000/hpm6360evk/src/CMakeLists.txt
@@ -20,13 +20,7 @@
 #
 # ##############################################################################
 
-set(SRCS hpm6360_bringup.c hpm6360_boot.c hpm6360_appinit.c)
-
-if(CONFIG_BOARDCTL)
-  if(EXISTS hpm6360_appinit.c)
-    list(APPEND SRCS hpm6360_appinit.c)
-  endif()
-endif()
+set(SRCS hpm6360_bringup.c hpm6360_boot.c)
 
 if(CONFIG_ARCH_LEDS)
   list(APPEND SRCS hpm6360_autoleds.c)
diff --git a/boards/risc-v/hpm6000/hpm6360evk/src/Makefile b/boards/risc-v/hpm6000/hpm6360evk/src/Makefile
index 4cf141fe1b8..f8800240033 100644
--- a/boards/risc-v/hpm6000/hpm6360evk/src/Makefile
+++ b/boards/risc-v/hpm6000/hpm6360evk/src/Makefile
@@ -24,10 +24,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = hpm6360_bringup.c hpm6360_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += hpm6360_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += hpm6360_autoleds.c
 endif
diff --git a/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_appinit.c b/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_appinit.c
deleted file mode 100644
index 6a2d02e5e14..00000000000
--- a/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_appinit.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "hpm6360evk.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return hpm6360_bringup();
-#endif
-}
diff --git a/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_boot.c b/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_boot.c
index 620df55a2a4..5c17f2ccede 100644
--- a/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_boot.c
+++ b/boards/risc-v/hpm6000/hpm6360evk/src/hpm6360_boot.c
@@ -64,3 +64,30 @@ void hpm6360_boardinitialize(void)
   hpm6360_autoled_initialize();
 #endif
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  hpm6360_bringup();
+}
+#endif
diff --git a/boards/risc-v/hpm6750/hpm6750evk2/src/CMakeLists.txt b/boards/risc-v/hpm6750/hpm6750evk2/src/CMakeLists.txt
index e1f20fbbc0d..d46aa06b81e 100644
--- a/boards/risc-v/hpm6750/hpm6750evk2/src/CMakeLists.txt
+++ b/boards/risc-v/hpm6750/hpm6750evk2/src/CMakeLists.txt
@@ -22,10 +22,6 @@
 
 set(SRCS hpm6750_bringup.c hpm6750_boot.c)
 
-if(CONFIG_BOARDCTL)
-  list(APPEND SRCS hpm6750_appinit.c)
-endif()
-
 target_sources(board PRIVATE ${SRCS})
 
 set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/ld.script")
diff --git a/boards/risc-v/hpm6750/hpm6750evk2/src/Makefile b/boards/risc-v/hpm6750/hpm6750evk2/src/Makefile
index 1b926a53679..8c2e28ad3de 100644
--- a/boards/risc-v/hpm6750/hpm6750evk2/src/Makefile
+++ b/boards/risc-v/hpm6750/hpm6750evk2/src/Makefile
@@ -24,8 +24,4 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = hpm6750_bringup.c hpm6750_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += hpm6750_appinit.c
-endif
-
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_appinit.c b/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_appinit.c
deleted file mode 100644
index 78a5e995a85..00000000000
--- a/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_appinit.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "hpm6750evk2.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return hpm6750_bringup();
-#endif
-}
diff --git a/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_boot.c b/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_boot.c
index dc85feaac90..3f831ec62db 100644
--- a/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_boot.c
+++ b/boards/risc-v/hpm6750/hpm6750evk2/src/hpm6750_boot.c
@@ -31,6 +31,8 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "hpm6750evk2.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -58,3 +60,30 @@ void hpm6750_boardinitialize(void)
 {
   ;
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  hpm6750_bringup();
+}
+#endif
diff --git a/boards/risc-v/jh7110/star64/src/Makefile b/boards/risc-v/jh7110/star64/src/Makefile
index c767f4330ae..1487e731976 100644
--- a/boards/risc-v/jh7110/star64/src/Makefile
+++ b/boards/risc-v/jh7110/star64/src/Makefile
@@ -24,6 +24,6 @@ include $(TOPDIR)/Make.defs
 
 RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
 
-CSRCS = jh7110_appinit.c
+CSRCS = jh7110_boardinit.c
 
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/risc-v/jh7110/star64/src/jh7110_appinit.c b/boards/risc-v/jh7110/star64/src/jh7110_boardinit.c
similarity index 75%
rename from boards/risc-v/jh7110/star64/src/jh7110_appinit.c
rename to boards/risc-v/jh7110/star64/src/jh7110_boardinit.c
index 5670219ce98..a028b89a4b8 100644
--- a/boards/risc-v/jh7110/star64/src/jh7110_appinit.c
+++ b/boards/risc-v/jh7110/star64/src/jh7110_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/jh7110/star64/src/jh7110_appinit.c
+ * boards/risc-v/jh7110/star64/src/jh7110_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -92,44 +92,6 @@ int mount_ramdisk(void)
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  mount(NULL, "/proc", "procfs", 0, NULL);
-
-  return OK;
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -149,6 +111,7 @@ int board_app_initialize(uintptr_t arg)
  *
  ****************************************************************************/
 
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
 void board_late_initialize(void)
 {
   /* Mount the RAM Disk */
@@ -159,3 +122,4 @@ void board_late_initialize(void)
 
   mount(NULL, "/proc", "procfs", 0, NULL);
 }
+#endif
diff --git a/boards/risc-v/k210/maix-bit/src/CMakeLists.txt b/boards/risc-v/k210/maix-bit/src/CMakeLists.txt
index e3da05f111a..d19f607e06a 100644
--- a/boards/risc-v/k210/maix-bit/src/CMakeLists.txt
+++ b/boards/risc-v/k210/maix-bit/src/CMakeLists.txt
@@ -22,10 +22,6 @@
 
 set(SRCS k210_bringup.c k210_boot.c)
 
-if(CONFIG_BOARDCTL)
-  list(APPEND SRCS k210_appinit.c)
-endif()
-
 if(CONFIG_ARCH_LEDS)
   list(APPEND SRCS k210_leds.c)
 endif()
diff --git a/boards/risc-v/k210/maix-bit/src/Makefile b/boards/risc-v/k210/maix-bit/src/Makefile
index 8a66a5a2f16..bb4a833a809 100644
--- a/boards/risc-v/k210/maix-bit/src/Makefile
+++ b/boards/risc-v/k210/maix-bit/src/Makefile
@@ -24,10 +24,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = k210_bringup.c k210_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += k210_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += k210_leds.c
 endif
diff --git a/boards/risc-v/k210/maix-bit/src/k210_appinit.c b/boards/risc-v/k210/maix-bit/src/k210_appinit.c
deleted file mode 100644
index 210c93a3fdd..00000000000
--- a/boards/risc-v/k210/maix-bit/src/k210_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/k210/maix-bit/src/k210_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "k210.h"
-#include "maix-bit.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return k210_bringup();
-#endif
-}
diff --git a/boards/risc-v/k210/maix-bit/src/k210_boot.c b/boards/risc-v/k210/maix-bit/src/k210_boot.c
index 96074ad2c65..200c3efe48a 100644
--- a/boards/risc-v/k210/maix-bit/src/k210_boot.c
+++ b/boards/risc-v/k210/maix-bit/src/k210_boot.c
@@ -31,6 +31,9 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "k210.h"
+#include "maix-bit.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -58,3 +61,30 @@ void k210_boardinitialize(void)
 {
   board_autoled_initialize();
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  k210_bringup();
+}
+#endif
diff --git a/boards/risc-v/k230/canmv230/src/canmv_init.c b/boards/risc-v/k230/canmv230/src/canmv_init.c
index 93ee63e0ab7..42aba0b0bfa 100644
--- a/boards/risc-v/k230/canmv230/src/canmv_init.c
+++ b/boards/risc-v/k230/canmv230/src/canmv_init.c
@@ -107,45 +107,6 @@ void rpmsg_serialinit(void)
 }
 #endif
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  mount(NULL, "/proc", "procfs", 0, NULL);
-
-  debug_dumps();
-  return OK;
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
diff --git a/boards/risc-v/litex/arty_a7/src/Makefile b/boards/risc-v/litex/arty_a7/src/Makefile
index 4d2aecfcb87..7ae8cc16ea5 100644
--- a/boards/risc-v/litex/arty_a7/src/Makefile
+++ b/boards/risc-v/litex/arty_a7/src/Makefile
@@ -22,11 +22,7 @@
 
 include $(TOPDIR)/Make.defs
 
-CSRCS  = litex_bringup.c litex_boot.c
-
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += litex_appinit.c
-endif
+CSRCS  = litex_bringup.c litex_boot.c litex_boardinit.c
 
 ifeq ($(CONFIG_LITEX_SDIO),y)
 CSRCS += litex_sdio.c
diff --git a/boards/risc-v/litex/arty_a7/src/litex_appinit.c b/boards/risc-v/litex/arty_a7/src/litex_boardinit.c
similarity index 66%
rename from boards/risc-v/litex/arty_a7/src/litex_appinit.c
rename to boards/risc-v/litex/arty_a7/src/litex_boardinit.c
index 095cd54cbc4..8862f0367ff 100644
--- a/boards/risc-v/litex/arty_a7/src/litex_appinit.c
+++ b/boards/risc-v/litex/arty_a7/src/litex_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/litex/arty_a7/src/litex_appinit.c
+ * boards/risc-v/litex/arty_a7/src/litex_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -40,42 +40,6 @@
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return litex_bringup();
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -95,6 +59,7 @@ int board_app_initialize(uintptr_t arg)
  *
  ****************************************************************************/
 
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
 void board_late_initialize(void)
 {
   #ifdef CONFIG_LITEX_APPLICATION_RAMDISK
@@ -103,3 +68,4 @@ void board_late_initialize(void)
 
   litex_bringup();
 }
+#endif /* CONFIG_BOARD_LATE_INITIALIZE */
diff --git a/boards/risc-v/mpfs/icicle/src/Make.defs b/boards/risc-v/mpfs/icicle/src/Make.defs
index b9d54b6903a..9b4fd55973f 100644
--- a/boards/risc-v/mpfs/icicle/src/Make.defs
+++ b/boards/risc-v/mpfs/icicle/src/Make.defs
@@ -22,10 +22,6 @@
 
 CSRCS  = mpfs_bringup.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += mpfs_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += mpfs_autoleds.c
 endif
diff --git a/boards/risc-v/mpfs/icicle/src/mpfs_appinit.c b/boards/risc-v/mpfs/icicle/src/mpfs_appinit.c
deleted file mode 100644
index 4b3a462829d..00000000000
--- a/boards/risc-v/mpfs/icicle/src/mpfs_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/mpfs/icicle/src/mpfs_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "mpfs.h"
-#include "board_config.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return mpfs_bringup();
-#endif
-}
diff --git a/boards/risc-v/mpfs/m100pfsevp/src/Make.defs b/boards/risc-v/mpfs/m100pfsevp/src/Make.defs
index c23e6aaa672..3ba94018644 100644
--- a/boards/risc-v/mpfs/m100pfsevp/src/Make.defs
+++ b/boards/risc-v/mpfs/m100pfsevp/src/Make.defs
@@ -26,10 +26,6 @@ ifeq ($(CONFIG_ARCH_LEDS),y)
   CSRCS += mpfs_autoleds.c
 endif
 
-ifeq ($(CONFIG_BOARDCTL),y)
-  CSRCS += mpfs_appinit.c
-endif
-
 DEPPATH += --dep-path board
 VPATH += :board
-CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
\ No newline at end of file
+CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
diff --git a/boards/risc-v/mpfs/m100pfsevp/src/mpfs_appinit.c b/boards/risc-v/mpfs/m100pfsevp/src/mpfs_appinit.c
deleted file mode 100644
index 779c9f6be0b..00000000000
--- a/boards/risc-v/mpfs/m100pfsevp/src/mpfs_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/mpfs/m100pfsevp/src/mpfs_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "mpfs.h"
-#include "board_config.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return mpfs_bringup();
-#endif
-}
diff --git a/boards/risc-v/qemu-rv/rv-virt/src/CMakeLists.txt b/boards/risc-v/qemu-rv/rv-virt/src/CMakeLists.txt
index d17da82ab56..810656072b9 100644
--- a/boards/risc-v/qemu-rv/rv-virt/src/CMakeLists.txt
+++ b/boards/risc-v/qemu-rv/rv-virt/src/CMakeLists.txt
@@ -20,7 +20,7 @@
 #
 # ##############################################################################
 
-set(SRCS qemu_rv_appinit.c)
+set(SRCS qemu_rv_boardinit.c)
 
 if(CONFIG_ARCH_LEDS)
   list(APPEND SRCS qemu_rv_autoleds.c)
diff --git a/boards/risc-v/qemu-rv/rv-virt/src/Makefile b/boards/risc-v/qemu-rv/rv-virt/src/Makefile
index 7b350759335..bf19bc2c40b 100644
--- a/boards/risc-v/qemu-rv/rv-virt/src/Makefile
+++ b/boards/risc-v/qemu-rv/rv-virt/src/Makefile
@@ -24,7 +24,7 @@ include $(TOPDIR)/Make.defs
 
 RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
 
-CSRCS = qemu_rv_appinit.c
+CSRCS = qemu_rv_boardinit.c
 
 ifeq ($(CONFIG_BUILD_KERNEL),y)
 ifeq ($(CONFIG_RISCV_SEMIHOSTING_HOSTFS),)
diff --git a/boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_appinit.c b/boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_boardinit.c
similarity index 77%
rename from boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_appinit.c
rename to boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_boardinit.c
index 12f8c3893ab..584bd74ec39 100644
--- a/boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_appinit.c
+++ b/boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_appinit.c
+ * boards/risc-v/qemu-rv/rv-virt/src/qemu_rv_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -92,71 +92,6 @@ static void qemu_virtio_register_mmio_devices(void)
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-#ifdef CONFIG_FS_PROCFS
-  mount(NULL, "/proc", "procfs", 0, NULL);
-#endif
-
-#ifdef CONFIG_FS_TMPFS
-  mount(NULL, CONFIG_LIBC_TMPDIR, "tmpfs", 0, NULL);
-#endif
-
-#endif
-
-#ifdef CONFIG_DRIVERS_VIRTIO_MMIO
-#ifndef CONFIG_BOARD_EARLY_INITIALIZE
-  qemu_virtio_register_mmio_devices();
-#endif
-#endif
-
-#ifdef CONFIG_RPTUN
-  qemu_rptun_init();
-#endif
-
-#ifdef CONFIG_USERLED
-  /* Register the LED driver */
-
-  int ret = userled_lower_initialize("/dev/userleds");
-  if (ret < 0)
-    {
-      syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret);
-    }
-#endif
-
-  return OK;
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -195,7 +130,23 @@ void board_late_initialize(void)
     }
 #endif /* CONFIG_BUILD_KERNEL && !CONFIG_RISCV_SEMIHOSTING_HOSTFS */
 
+#ifdef CONFIG_FS_PROCFS
   mount(NULL, "/proc", "procfs", 0, NULL);
+#endif
+
+#ifdef CONFIG_FS_TMPFS
+  mount(NULL, CONFIG_LIBC_TMPDIR, "tmpfs", 0, NULL);
+#endif
+
+#ifdef CONFIG_DRIVERS_VIRTIO_MMIO
+#ifndef CONFIG_BOARD_EARLY_INITIALIZE
+  qemu_virtio_register_mmio_devices();
+#endif
+#endif
+
+#ifdef CONFIG_RPTUN
+  qemu_rptun_init();
+#endif
 
 #ifdef CONFIG_USERLED
   /* Register the LED driver */
diff --git a/boards/risc-v/rp23xx-rv/common/src/rp23xx_usbmsc.c b/boards/risc-v/rp23xx-rv/common/src/rp23xx_usbmsc.c
index c27607d82a8..fdd952da765 100644
--- a/boards/risc-v/rp23xx-rv/common/src/rp23xx_usbmsc.c
+++ b/boards/risc-v/rp23xx-rv/common/src/rp23xx_usbmsc.c
@@ -52,8 +52,7 @@
 int board_usbmsc_initialize(int port)
 {
   /* If system/usbmsc is built as an NSH command, then SD slot should
-   * already have been initialized in board_app_initialize()
-   * (see stm32_appinit.c).
+   * already have been initialized.
    * In this case, there is nothing further to be done here.
    */
 
diff --git a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/CMakeLists.txt b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/CMakeLists.txt
index d61f0c7e85f..0f3a8dd784d 100644
--- a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/CMakeLists.txt
+++ b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/CMakeLists.txt
@@ -34,10 +34,6 @@ if(CONFIG_ARCH_BUTTONS)
   list(APPEND SRCS rp23xx_buttons.c)
 endif()
 
-if(CONFIG_BOARDCTL)
-  list(APPEND SRCS rp23xx_appinit.c)
-endif()
-
 target_sources(board PRIVATE ${SRCS})
 
 if(CONFIG_BOOT_RUNFROMFLASH)
diff --git a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/Make.defs b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/Make.defs
index 54506c702c6..6c59b1f1818 100644
--- a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/Make.defs
+++ b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/Make.defs
@@ -21,7 +21,6 @@
 include $(TOPDIR)/Make.defs
 
 CSRCS = rp23xx_boardinitialize.c
-CSRCS += rp23xx_appinit.c
 CSRCS += rp23xx_bringup.c
 
 ifeq ($(CONFIG_DEV_GPIO),y)
diff --git a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_appinit.c b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_appinit.c
deleted file mode 100644
index 43ebdf5e8ea..00000000000
--- a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_appinit.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_appinit.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-#include <nuttx/board.h>
-
-#include "rp23xx_pico.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return rp23xx_bringup();
-#endif
-}
diff --git a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_boardinitialize.c b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_boardinitialize.c
index c91cd6d6451..00c2ebf0f17 100644
--- a/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_boardinitialize.c
+++ b/boards/risc-v/rp23xx-rv/raspberrypi-pico-2-rv/src/rp23xx_boardinitialize.c
@@ -29,6 +29,7 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "rp23xx_pico.h"
 #include "rp23xx_gpio.h"
 
 #ifdef CONFIG_RP23XX_RV_PSRAM
@@ -92,3 +93,30 @@ void rp23xx_boardinitialize(void)
 
   /* --- Place any board specific initialization here --- */
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  rp23xx_bringup();
+}
+#endif
diff --git a/boards/risc-v/rv32m1/rv32m1-vega/src/Makefile b/boards/risc-v/rv32m1/rv32m1-vega/src/Makefile
index fd3de5139c3..f706c52d52a 100644
--- a/boards/risc-v/rv32m1/rv32m1-vega/src/Makefile
+++ b/boards/risc-v/rv32m1/rv32m1-vega/src/Makefile
@@ -24,10 +24,6 @@ include $(TOPDIR)/Make.defs
 
 CSRCS  = rv32m1_bringup.c rv32m1_boot.c
 
-ifeq ($(CONFIG_BOARDCTL),y)
-CSRCS += rv32m1_appinit.c
-endif
-
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += rv32m1_autoleds.c
 endif
diff --git a/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_appinit.c b/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_appinit.c
deleted file mode 100644
index a44a188dca5..00000000000
--- a/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_appinit.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_appinit.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-
-#include <nuttx/board.h>
-
-#include "rv32m1.h"
-#include "rv32m1-vega.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  return rv32m1_bringup();
-#endif
-}
diff --git a/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_boot.c b/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_boot.c
index 21a25e2b9d8..3da1edc71a5 100644
--- a/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_boot.c
+++ b/boards/risc-v/rv32m1/rv32m1-vega/src/rv32m1_boot.c
@@ -31,6 +31,8 @@
 #include <nuttx/board.h>
 #include <arch/board/board.h>
 
+#include "rv32m1-vega.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -62,3 +64,30 @@ void rv32m1_boardinitialize(void)
   board_autoled_initialize();
 #endif
 }
+
+/****************************************************************************
+ * Name: board_late_initialize
+ *
+ * Description:
+ *   If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
+ *   initialization call will be performed in the boot-up sequence to a
+ *   function called board_late_initialize().  board_late_initialize() will
+ *   be called immediately after up_initialize() is called and just before
+ *   the initial application is started.  This additional initialization
+ *   phase may be used, for example, to initialize board-specific device
+ *   drivers.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   None.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+void board_late_initialize(void)
+{
+  rv32m1_bringup();
+}
+#endif
diff --git a/boards/risc-v/sg2000/milkv_duos/src/Makefile b/boards/risc-v/sg2000/milkv_duos/src/Makefile
index 9103b16b861..9c82dcc629a 100644
--- a/boards/risc-v/sg2000/milkv_duos/src/Makefile
+++ b/boards/risc-v/sg2000/milkv_duos/src/Makefile
@@ -24,6 +24,6 @@ include $(TOPDIR)/Make.defs
 
 RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
 
-CSRCS = sg2000_appinit.c
+CSRCS = sg2000_boardinit.c
 
 include $(TOPDIR)/boards/Board.mk
diff --git a/boards/risc-v/sg2000/milkv_duos/src/sg2000_appinit.c b/boards/risc-v/sg2000/milkv_duos/src/sg2000_boardinit.c
similarity index 75%
rename from boards/risc-v/sg2000/milkv_duos/src/sg2000_appinit.c
rename to boards/risc-v/sg2000/milkv_duos/src/sg2000_boardinit.c
index 0de34974830..da43ffd991a 100644
--- a/boards/risc-v/sg2000/milkv_duos/src/sg2000_appinit.c
+++ b/boards/risc-v/sg2000/milkv_duos/src/sg2000_boardinit.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/risc-v/sg2000/milkv_duos/src/sg2000_appinit.c
+ * boards/risc-v/sg2000/milkv_duos/src/sg2000_boardinit.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -92,44 +92,6 @@ static int mount_ramdisk(void)
  * Public Functions
  ****************************************************************************/
 
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform architecture specific initialization
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initialization logic and the
- *         matching application logic.  The value could be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-int board_app_initialize(uintptr_t arg)
-{
-#ifdef CONFIG_BOARD_LATE_INITIALIZE
-  /* Board initialization already performed by board_late_initialize() */
-
-  return OK;
-#else
-  /* Perform board-specific initialization */
-
-  mount(NULL, "/proc", "procfs", 0, NULL);
-
-  return OK;
-#endif
-}
-
 /****************************************************************************
  * Name: board_late_initialize
  *
@@ -149,6 +111,7 @@ int board_app_initialize(uintptr_t arg)
  *
  ****************************************************************************/
 
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
 void board_late_initialize(void)
 {
   /* Mount the RAM Disk */
@@ -159,3 +122,4 @@ void board_late_initialize(void)
 
   mount(NULL, "/proc", "procfs", 0, NULL);
 }
+#endif