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 221a4b2e4cd4f8c35a0ef2979c07e5ad91d8ef13
Author: wangjianyu3 <[email protected]>
AuthorDate: Sat Sep 5 16:51:36 2026 +0800

    boards/risc-v/qemu-rv: switch rv-virt pnsh/pnsh64 to nxinit entrypoint
    
    Follow-up to the previous commit, which switched every flat-build
    rv-virt nsh defconfig from nsh_main to nxinit (init_main) but left
    pnsh and pnsh64 (CONFIG_BUILD_PROTECTED=y) on nsh_main. Under protected
    build nxinit's "console sh" service failed to start:
    posix_spawnp("sh") resolves through the kernel-space binfmt "builtin"
    loader / BINFS, but the kernel-space g_builtins/g_builtin_count table
    those rely on was never populated -- CONFIG_BUILD_PROTECTED links
    apps/builtin/builtin_list.c only into the user blob (nuttx_user), and
    nothing called the boardctl(BOARDIOC_BUILTINS) hand-off NuttX has
    provided for this since release 8.1.
    
    With that hand-off now issued by apps/system/nxinit early in init_main()
    (nuttx-apps, "system/nxinit: register g_builtins with the kernel under
    PROTECTED build"), pnsh/pnsh64 can use nxinit like every other
    flat-build rv-virt nsh defconfig. Apply the same minimal
    nxinit-essential delta used for the 23 configs switched previously.
    
    Verified on rv-virt:pnsh: `ps` shows init_main as the parent with sh
    as its Running child, `ls /bin` lists the builtins, and `hello` runs
    (see the PR description for logs).
    
    Assisted-by: opencode-agent/claude-sonnet-5
    Signed-off-by: wangjianyu3 <[email protected]>
---
 boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig   | 9 ++++++++-
 boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig | 9 ++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig 
b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig
index c2b559e05b2..4da643db487 100644
--- a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig
+++ b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig
@@ -37,11 +37,15 @@ CONFIG_DEBUG_FULLOPT=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=4096
 CONFIG_ELF=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
+CONFIG_FS_BINFS=y
 CONFIG_FS_HOSTFS=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_IDLETHREAD_STACKSIZE=2048
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_INIT_STACKSIZE=3072
 CONFIG_LIBC_ENVPATH=y
 CONFIG_LIBC_EXECFUNCS=y
@@ -60,6 +64,8 @@ CONFIG_RAM_START=0x80000000
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RISCV_SEMIHOSTING_HOSTFS=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_WAITPID=y
 CONFIG_SERIAL_UART_ARCH_MMIO=y
 CONFIG_STACK_COLORATION=y
@@ -67,6 +73,7 @@ CONFIG_START_MONTH=12
 CONFIG_START_YEAR=2021
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
 CONFIG_USEC_PER_TICK=1000
diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig 
b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig
index 353070577c6..3f1ba1807f7 100644
--- a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig
+++ b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig
@@ -37,11 +37,15 @@ CONFIG_DEBUG_FULLOPT=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEFAULT_TASK_STACKSIZE=4096
 CONFIG_ELF=y
+CONFIG_ETC_ROMFS=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXPERIMENTAL=y
+CONFIG_FS_BINFS=y
 CONFIG_FS_HOSTFS=y
 CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
 CONFIG_IDLETHREAD_STACKSIZE=2048
-CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_ENTRYPOINT="init_main"
 CONFIG_LIBC_ENVPATH=y
 CONFIG_LIBC_EXECFUNCS=y
 CONFIG_LIBC_PERROR_STDOUT=y
@@ -59,6 +63,8 @@ CONFIG_RAM_START=0x80000000
 CONFIG_READLINE_CMD_HISTORY=y
 CONFIG_RISCV_SEMIHOSTING_HOSTFS=y
 CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_CHILD_STATUS=y
+CONFIG_SCHED_HAVE_PARENT=y
 CONFIG_SCHED_WAITPID=y
 CONFIG_SERIAL_UART_ARCH_MMIO=y
 CONFIG_STACK_COLORATION=y
@@ -66,6 +72,7 @@ CONFIG_START_MONTH=12
 CONFIG_START_YEAR=2021
 CONFIG_SYMTAB_ORDEREDBYNAME=y
 CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NXINIT=y
 CONFIG_TESTING_GETPRIME=y
 CONFIG_TESTING_OSTEST=y
 CONFIG_USEC_PER_TICK=1000

Reply via email to