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 b6af2d4fac46926f498d34964a93e4666345d2ac
Author: wangjianyu3 <[email protected]>
AuthorDate: Thu Aug 27 18:45:58 2026 +0800

    boards/arm64/qemu-armv8a: switch all nsh defconfigs to nxinit entrypoint
    
    Switch every qemu-armv8a defconfig whose init entry point was nsh_main
    (20 configs) to nxinit (init_main). nsh now runs as a "console sh"
    service started by init.rc instead of being the top-level init task.
    
    Each switched defconfig only gains the nxinit-essential keys (minimal
    delta):
    - CONFIG_INIT_ENTRYPOINT="init_main"
    - CONFIG_SYSTEM_NXINIT=y plus its Kconfig deps not already set:
      CONFIG_EXPERIMENTAL, CONFIG_LIBC_EXECFUNCS, CONFIG_SCHED_CHILD_STATUS
      (depends on CONFIG_SCHED_HAVE_PARENT)
    - CONFIG_ETC_ROMFS=y / CONFIG_FS_ROMFS=y to ship init.rc via ROMFS
    No stack-size overrides: INIT_STACKSIZE/SYSTEM_NSH_STACKSIZE keep their
    Kconfig defaults (DEFAULT_TASK_STACKSIZE, already 8192 on this board).
    
    Add boards/arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc, shipped via
    ROMFS in the Make build (RCSRCS) and CMake (nuttx_add_romfs()), gated on
    CONFIG_ETC_ROMFS && CONFIG_SYSTEM_NXINIT. Omitting this ROMFS plumbing
    causes a link-time "undefined reference to romfs_img".
    
    Testing: qemu-armv8a:nsh (and nsh_smp with -smp 4) boot into nxinit with
    nsh spawned as its service (init task = init_main, sh = its child),
    confirmed via qemu-system-aarch64 in an earlier run of this series. The
    removed explicit 8192 stack sizes equal this board's DEFAULT_TASK_STACKSIZE,
    so runtime behavior is unchanged. Note: current apache/master fails to
    build locally this round (empty -Wstack-usage=, missing libfdt.h)
    independent of this change.
    
    Assisted-by: opencode-agent/claude-opus-4-8
    Signed-off-by: wangjianyu3 <[email protected]>
---
 .../qemu/qemu-armv8a/configs/fastboot/defconfig    |  6 +++-
 boards/arm64/qemu/qemu-armv8a/configs/fb/defconfig |  7 ++++-
 .../qemu/qemu-armv8a/configs/gdbstub/defconfig     |  6 +++-
 .../arm64/qemu/qemu-armv8a/configs/mte/defconfig   |  6 +++-
 .../qemu/qemu-armv8a/configs/netnsh/defconfig      |  7 ++++-
 .../qemu/qemu-armv8a/configs/netnsh_hv/defconfig   |  7 ++++-
 .../qemu/qemu-armv8a/configs/netnsh_smp/defconfig  |  7 ++++-
 .../qemu-armv8a/configs/netnsh_smp_hv/defconfig    |  7 ++++-
 .../arm64/qemu/qemu-armv8a/configs/nsh/defconfig   |  6 +++-
 .../qemu/qemu-armv8a/configs/nsh_fiq/defconfig     |  7 ++++-
 .../qemu/qemu-armv8a/configs/nsh_gicv2/defconfig   |  6 +++-
 .../qemu/qemu-armv8a/configs/nsh_smp/defconfig     |  6 +++-
 .../qemu-armv8a/configs/nsh_smp_tickless/defconfig |  6 +++-
 .../qemu/qemu-armv8a/configs/rpproxy/defconfig     |  5 +++-
 .../qemu/qemu-armv8a/configs/rpserver/defconfig    |  5 +++-
 .../qemu/qemu-armv8a/configs/sotest/defconfig      |  6 +++-
 .../qemu/qemu-armv8a/configs/sw_tags/defconfig     |  6 +++-
 .../qemu/qemu-armv8a/configs/xedge_demo/defconfig  |  7 ++++-
 boards/arm64/qemu/qemu-armv8a/src/.gitignore       |  1 +
 boards/arm64/qemu/qemu-armv8a/src/CMakeLists.txt   | 14 +++++++++
 boards/arm64/qemu/qemu-armv8a/src/Makefile         |  6 ++++
 .../arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc  | 33 ++++++++++++++++++++++
 22 files changed, 149 insertions(+), 18 deletions(-)

diff --git a/boards/arm64/qemu/qemu-armv8a/configs/fastboot/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/fastboot/defconfig
index d73d4758121..1bb1b88fb08 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/fastboot/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/fastboot/defconfig
@@ -30,17 +30,20 @@ CONFIG_DRIVERS_VIRTIO_NET=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_FS_V9FS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_ALIGNMENT=16
 CONFIG_IOB_BUFSIZE=1534
@@ -97,6 +100,7 @@ CONFIG_SYSTEM_FASTBOOTD=y
 CONFIG_SYSTEM_FASTBOOTD_SHELL=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/fb/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/fb/defconfig
index c0f92f0d220..a5b22390448 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/fb/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/fb/defconfig
@@ -26,18 +26,21 @@ CONFIG_DRIVERS_VIDEO=y
 CONFIG_DRIVERS_VIRTIO_GPU=y
 CONFIG_DRIVERS_VIRTIO_MMIO=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_FB=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_LARGEFILE=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_ALIGNMENT=16
 CONFIG_IOB_BUFSIZE=1534
@@ -56,6 +59,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -68,6 +72,7 @@ CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/gdbstub/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/gdbstub/defconfig
index c3f725a61af..023b772d512 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/gdbstub/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/gdbstub/defconfig
@@ -28,6 +28,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FRAME_POINTER=y
@@ -39,7 +40,7 @@ CONFIG_FS_TMPFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBC_MEMFD_ERROR=y
@@ -57,6 +58,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SERIAL_GDBSTUB=y
@@ -68,6 +71,7 @@ CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_GPROF=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/mte/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/mte/defconfig
index 1b7ef28de0f..5876ed13c56 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/mte/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/mte/defconfig
@@ -28,6 +28,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FRAME_POINTER=y
@@ -39,7 +40,7 @@ CONFIG_FS_TMPFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBC_MEMFD_ERROR=y
@@ -55,6 +56,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -64,6 +67,7 @@ CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_GPROF=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/netnsh/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/netnsh/defconfig
index 1f075e6fed4..85fad7adc18 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/netnsh/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/netnsh/defconfig
@@ -37,17 +37,20 @@ CONFIG_DRIVERS_VIRTIO_PCI_POLLING_PERIOD=100
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_FS_V9FS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_ALIGNMENT=16
 CONFIG_IOB_BUFSIZE=1534
@@ -89,6 +92,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -102,6 +106,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_DHCPC_RENEW=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_hv/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_hv/defconfig
index 7e6243f1065..0a72d5c2da0 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_hv/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_hv/defconfig
@@ -31,16 +31,19 @@ CONFIG_DRIVERS_VIRTIO_NET=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_ALIGNMENT=16
 CONFIG_IOB_BUFSIZE=1534
@@ -80,6 +83,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -93,6 +97,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_DHCPC_RENEW=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp/defconfig
index f914b4df735..749f2423d86 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp/defconfig
@@ -29,16 +29,19 @@ CONFIG_DRIVERS_VIRTIO_NET=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_BUFSIZE=1534
 CONFIG_IOB_NBUFFERS=64
@@ -77,6 +80,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -91,6 +95,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_DHCPC_RENEW=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp_hv/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp_hv/defconfig
index bc97cc7b674..edddfa4e649 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp_hv/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/netnsh_smp_hv/defconfig
@@ -31,15 +31,18 @@ CONFIG_DRIVERS_VIRTIO_NET=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_BUFSIZE=1534
 CONFIG_IOB_NBUFFERS=64
@@ -78,6 +81,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -92,6 +96,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_DHCPC_RENEW=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/nsh/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/nsh/defconfig
index c0c4cf8069b..2e42ff26b29 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/nsh/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/nsh/defconfig
@@ -27,6 +27,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FRAME_POINTER=y
@@ -38,7 +39,7 @@ CONFIG_FS_TMPFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBC_MEMFD_ERROR=y
@@ -55,6 +56,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -64,6 +67,7 @@ CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_GPROF=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/nsh_fiq/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/nsh_fiq/defconfig
index dc310319e48..f2a43df926d 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/nsh_fiq/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/nsh_fiq/defconfig
@@ -29,6 +29,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FS_HOSTFS=y
@@ -38,8 +39,9 @@ CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
+CONFIG_LIBC_EXECFUNCS=y
 CONFIG_NSH_BUILTIN_APPS=y
 CONFIG_NSH_FILEIOSIZE=512
 CONFIG_NSH_READLINE=y
@@ -51,6 +53,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -59,6 +63,7 @@ CONFIG_START_MONTH=3
 CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/nsh_gicv2/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/nsh_gicv2/defconfig
index 3f491cd8e9e..4b0f24d8cbf 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/nsh_gicv2/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/nsh_gicv2/defconfig
@@ -24,6 +24,7 @@ CONFIG_DEBUG_SCHED_ERROR=y
 CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FS_PROCFS=y
@@ -31,7 +32,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBM=y
@@ -46,6 +47,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -54,6 +57,7 @@ CONFIG_START_MONTH=3
 CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp/defconfig
index 307125d9648..032ce4a17e4 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp/defconfig
@@ -33,6 +33,7 @@ CONFIG_DEBUG_SCHED_ERROR=y
 CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=16384
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FRAME_POINTER=y
@@ -42,7 +43,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_FS_TMPFS=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=16384
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBC_MEMFD_ERROR=y
@@ -59,6 +60,8 @@ CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
 CONFIG_SCHED_BACKTRACE=y
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SMP=y
@@ -69,6 +72,7 @@ CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_GCOV=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_SYSTEM_TASKSET=y
 CONFIG_TESTING_GETPRIME=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp_tickless/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp_tickless/defconfig
index 1da7968ef34..a9c57dd3b23 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp_tickless/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/nsh_smp_tickless/defconfig
@@ -23,12 +23,13 @@ CONFIG_DEBUG_SCHED_ERROR=y
 CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=16384
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FS_PROCFS=y
 CONFIG_FS_ROMFS=y
 CONFIG_IDLETHREAD_STACKSIZE=16384
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_NSH_BUILTIN_APPS=y
@@ -42,6 +43,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SCHED_TICKLESS=y
@@ -51,6 +54,7 @@ CONFIG_START_MONTH=3
 CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_SYSTEM_TASKSET=y
 CONFIG_TESTING_GETPRIME=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/rpproxy/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/rpproxy/defconfig
index 304beb7e1b3..7ab131c654b 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/rpproxy/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/rpproxy/defconfig
@@ -36,6 +36,7 @@ CONFIG_DRIVERS_VHOST_RNG=y
 CONFIG_DRIVERS_VHOST_RPMSG=y
 CONFIG_DRIVERS_VIRTIO_MMIO=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXAMPLES_RPMSGSOCKET=y
 CONFIG_EXPERIMENTAL=y
@@ -50,7 +51,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_FS_RPMSGFS=y
 CONFIG_FS_TMPFS=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_ENVPATH=y
 CONFIG_LIBC_EXECFUNCS=y
@@ -79,6 +80,7 @@ CONFIG_RPTUN_IVSHMEM=y
 CONFIG_RPTUN_IVSHMEM_NAME="0:server:s"
 CONFIG_RPTUN_STACKSIZE=8192
 CONFIG_SCHED_BACKTRACE=y
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_EVENTS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
@@ -110,6 +112,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_CUTERM=y
 CONFIG_SYSTEM_DUMPSTACK=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_UART1_BASE=0x9000000
 CONFIG_UART1_IRQ=33
 CONFIG_UART1_PL011=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/rpserver/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/rpserver/defconfig
index c44322e4f39..b9916f4bcb1 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/rpserver/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/rpserver/defconfig
@@ -36,6 +36,7 @@ CONFIG_DRIVERS_VIRTIO_MMIO=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_RPMSG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXAMPLES_RPMSGSOCKET=y
 CONFIG_EXPERIMENTAL=y
@@ -50,7 +51,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_FS_RPMSGFS_SERVER=y
 CONFIG_FS_TMPFS=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_ENVPATH=y
 CONFIG_LIBC_EXECFUNCS=y
@@ -80,6 +81,7 @@ CONFIG_RPTUN_IVSHMEM=y
 CONFIG_RPTUN_IVSHMEM_NAME="0:proxy:m"
 CONFIG_RPTUN_STACKSIZE=8192
 CONFIG_SCHED_BACKTRACE=y
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_EVENTS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
@@ -111,6 +113,7 @@ CONFIG_SYSTEM_CUTERM=y
 CONFIG_SYSTEM_CUTERM_DEFAULT_DEVICE="/dev/ttyproxy"
 CONFIG_SYSTEM_DUMPSTACK=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_UART1_BASE=0x9000000
 CONFIG_UART1_IRQ=33
 CONFIG_UART1_PL011=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/sotest/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/sotest/defconfig
index 400009d93ba..5de8f343a77 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/sotest/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/sotest/defconfig
@@ -32,6 +32,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXAMPLES_SOTEST=y
 CONFIG_EXAMPLES_SOTEST_DEVMINOR_MAX=10
@@ -43,7 +44,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_DLFCN=y
 CONFIG_LIBC_ELF_DUMPBUFFER=y
@@ -59,6 +60,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -67,6 +70,7 @@ CONFIG_START_MONTH=3
 CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/sw_tags/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/sw_tags/defconfig
index b1278a6541f..33f65db7277 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/sw_tags/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/sw_tags/defconfig
@@ -27,6 +27,7 @@ CONFIG_DEBUG_SCHED_WARN=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=8192
 CONFIG_DEVICE_TREE=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_FS_HOSTFS=y
@@ -36,7 +37,7 @@ CONFIG_FS_ROMFS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LTO_FULL=y
@@ -53,6 +54,8 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
 CONFIG_SPINLOCK=y
@@ -61,6 +64,7 @@ CONFIG_START_MONTH=3
 CONFIG_START_YEAR=2022
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_SYSTEM=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_KASAN=y
diff --git a/boards/arm64/qemu/qemu-armv8a/configs/xedge_demo/defconfig 
b/boards/arm64/qemu/qemu-armv8a/configs/xedge_demo/defconfig
index 95be379c162..279076a4734 100644
--- a/boards/arm64/qemu/qemu-armv8a/configs/xedge_demo/defconfig
+++ b/boards/arm64/qemu/qemu-armv8a/configs/xedge_demo/defconfig
@@ -31,18 +31,21 @@ CONFIG_DRIVERS_VIRTIO_NET=y
 CONFIG_DRIVERS_VIRTIO_RNG=y
 CONFIG_DRIVERS_VIRTIO_SERIAL=y
 CONFIG_DRIVERS_VIRTIO_SOUND=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
 CONFIG_EXAMPLES_XEDGE_DEMO=y
+CONFIG_EXPERIMENTAL=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
 CONFIG_FS_FAT=y
 CONFIG_FS_FATTIME=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_FS_V9FS=y
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
 CONFIG_IDLETHREAD_STACKSIZE=8192
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INTELHEX_BINARY=y
 CONFIG_IOB_ALIGNMENT=16
 CONFIG_IOB_BUFSIZE=1534
@@ -87,6 +90,7 @@ CONFIG_RAM_START=0x40000000
 CONFIG_RAW_BINARY=y
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
 CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_HPWORK=y
 CONFIG_SCHED_HPWORKPRIORITY=192
@@ -101,6 +105,7 @@ CONFIG_SYSLOG_TIMESTAMP=y
 CONFIG_SYSTEM_DHCPC_RENEW=y
 CONFIG_SYSTEM_FDTDUMP=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_SYSTEM_NXPLAYER=y
 CONFIG_SYSTEM_NXRECORDER=y
 CONFIG_SYSTEM_PING=y
diff --git a/boards/arm64/qemu/qemu-armv8a/src/.gitignore 
b/boards/arm64/qemu/qemu-armv8a/src/.gitignore
new file mode 100644
index 00000000000..1baf09ba3ae
--- /dev/null
+++ b/boards/arm64/qemu/qemu-armv8a/src/.gitignore
@@ -0,0 +1 @@
+/etctmp*
diff --git a/boards/arm64/qemu/qemu-armv8a/src/CMakeLists.txt 
b/boards/arm64/qemu/qemu-armv8a/src/CMakeLists.txt
index fad82a2fb4a..cf921494a04 100644
--- a/boards/arm64/qemu/qemu-armv8a/src/CMakeLists.txt
+++ b/boards/arm64/qemu/qemu-armv8a/src/CMakeLists.txt
@@ -31,3 +31,17 @@ if(CONFIG_LIBC_FDT)
 endif()
 
 target_sources(board PRIVATE ${SRCS})
+
+if(CONFIG_ETC_ROMFS AND CONFIG_SYSTEM_NXINIT)
+  nuttx_add_romfs(
+    NAME
+    etc
+    MOUNTPOINT
+    etc
+    RCSRCS
+    etc/init.d/init.rc
+    PATH
+    ${CMAKE_CURRENT_BINARY_DIR}/etc)
+
+  target_link_libraries(board PRIVATE romfs_etc)
+endif()
diff --git a/boards/arm64/qemu/qemu-armv8a/src/Makefile 
b/boards/arm64/qemu/qemu-armv8a/src/Makefile
index f276114b2ae..f846e911a50 100644
--- a/boards/arm64/qemu/qemu-armv8a/src/Makefile
+++ b/boards/arm64/qemu/qemu-armv8a/src/Makefile
@@ -28,6 +28,12 @@ ifeq ($(CONFIG_BOARDCTL),y)
 CSRCS += qemu_power.c
 endif
 
+ifeq ($(CONFIG_ETC_ROMFS),y)
+ifeq ($(CONFIG_SYSTEM_NXINIT),y)
+  RCSRCS += etc/init.d/init.rc
+endif
+endif
+
 ifeq ($(CONFIG_LIBC_FDT),y)
 CFLAGS += 
${INCDIR_PREFIX}$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)fdt$(DELIM)dtc$(DELIM)libfdt
 endif
diff --git a/boards/arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc 
b/boards/arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc
new file mode 100644
index 00000000000..d66203f6c7d
--- /dev/null
+++ b/boards/arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc
@@ -0,0 +1,33 @@
+/****************************************************************************
+ * boards/arm64/qemu/qemu-armv8a/src/etc/init.d/init.rc
+ *
+ * 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.
+ *
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#ifdef CONFIG_SYSTEM_NSH
+service console sh
+   restart_period 1000
+#endif
+
+on init
+#ifdef CONFIG_SYSTEM_NSH
+   start console
+#endif

Reply via email to