mirror of
https://github.com/apache/nuttx.git
synced 2026-10-03 12:18:06 +00:00
Switch all esp32s3-devkit defconfigs still on nsh_main (adc, audio,
ble, blewifi, buttons, capture, crypto, cxx, efuse, elf, eth_lan9250,
fastboot, fastboot_tcp, gpio, i2c, i2schar, knsh, ksta_softap, mbedtls,
mcuboot_nsh, mcuboot_update_agent, motor, nsh, nxlooper, oneshot,
ostest, pm, psram_octal, psram_quad, psram_usrheap, pwm, python,
qemu_debug, qemu_openeth, qemu_toywasm, qencoder, random, rmt, romfs,
rtc, sdm, sdmmc, sdmmc_spi, smp, sotest, spi, spiflash, spislv,
sta_softap, stack, temperature_sensor, tickless, timer, toywasm, twai,
ulp, usb_device, usbnsh, watchdog, wifi) to nxinit (init_main) as the
system init entry point, matching this board's adb/txtable configs
that already use nxinit, and matching the lckfb-szpi-esp32s3 board
(see 73c949c87e) for consistency across esp32s3 boards.
For each defconfig:
- CONFIG_INIT_ENTRYPOINT switched to "init_main"
- CONFIG_INIT_STACKSIZE set to 8192. Measured on lckfb-szpi-esp32s3
with CONFIG_STACK_COLORATION=y on the worst case available: a config
whose init.rc starts two services (console sh + adbd). At the 2048
Kconfig default the board panics at runtime (xtensa_user_panic, task
"sh"); at 4096 init_main reaches FILLED=99.5%, i.e. no headroom; at
8192 it settles at USED=4336 (53.6%). A single-service config only
fills 46.9% of a 3072-byte init stack, so 8192 is deliberately
uniform rather than minimal: it covers the two-service worst case
with roughly 2x margin and keeps every defconfig off the 2048
default, where the init stack overflows and clobbers the global
inode/mount tree - the procfs mount disappears, "ls /" crashes in
read_pseudodir and "ps" reports "/proc not mounted".
- CONFIG_SYSTEM_NXINIT=y added, plus its direct Kconfig dependencies
(CONFIG_EXPERIMENTAL, CONFIG_LIBC_EXECFUNCS, CONFIG_SCHED_CHILD_STATUS,
which depends on CONFIG_SCHED_HAVE_PARENT)
- CONFIG_SYSTEM_NSH_STACKSIZE=8192 added: nsh now runs as a service
spawned by init.rc instead of being init itself, so the shell
workload is carried by its own stack rather than the init stack.
Without this it falls back to CONFIG_DEFAULT_TASK_STACKSIZE (2048
unless the defconfig overrides it) and crashes in getumask while
running "ps", too small to reach the procfs read path.
esp32s3-devkit:stack was the only defconfig that already set this
option (at 4096); it is raised to 8192 with the rest.
- ETC_ROMFS/FS_ROMFS added where missing, needed to ship init.rc via
the board's ROMFS
nsh continues to run as a console service started by init.rc
(boards/xtensa/esp32s3/common/src/etc/init.d/init.rc), not as the
top-level init, matching this board's existing adb/txtable configs.
Verified 59 of the 60 changed defconfigs build cleanly with make.
esp32s3-devkit:qemu_openeth fails to link on this host both before
and after this change (MERGEBIN error: missing ESPTOOL_BINDIR, a
pre-existing local build-invocation issue unrelated to this patch).
esp32s3-devkit:stack segfaults the linker on this host both before
and after this change (pre-existing toolchain issue on this host,
unrelated to this patch). esp32s3-devkit:ulp fails at context/rule
generation on this host due to a missing local RISC-V ULP toolchain
setup, also unrelated to this patch.
Runtime behavior (init_main spawning nsh as a console service) was
confirmed on lckfb-szpi-esp32s3 hardware, which shares the same
nxinit/init.rc mechanism; this board has no hardware attached for a
flash/boot pass in this session, so the build-verified defconfigs are
the extent of local testing here.
Assisted-by: Kiro:claude-sonnet-5
Assisted-by: Kiro:claude-opus-5
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
63 lines
1.7 KiB
Text
63 lines
1.7 KiB
Text
#
|
|
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
|
#
|
|
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
|
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
|
# modifications.
|
|
#
|
|
# CONFIG_ARCH_LEDS is not set
|
|
# CONFIG_NSH_ARGCAT is not set
|
|
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
|
|
CONFIG_ARCH="xtensa"
|
|
CONFIG_ARCH_BOARD="esp32s3-devkit"
|
|
CONFIG_ARCH_BOARD_COMMON=y
|
|
CONFIG_ARCH_BOARD_ESP32S3_DEVKIT=y
|
|
CONFIG_ARCH_CHIP="esp32s3"
|
|
CONFIG_ARCH_CHIP_ESP32S3=y
|
|
CONFIG_ARCH_CHIP_ESP32S3WROOM1N4=y
|
|
CONFIG_ARCH_INSTRUMENT_ALL=y
|
|
CONFIG_ARCH_INTERRUPTSTACK=2048
|
|
CONFIG_ARCH_IRQ_TO_NDX=y
|
|
CONFIG_ARCH_MINIMAL_VECTORTABLE_DYNAMIC=y
|
|
CONFIG_ARCH_NUSER_INTERRUPTS=2
|
|
CONFIG_ARCH_STACKDUMP=y
|
|
CONFIG_ARCH_XTENSA=y
|
|
CONFIG_BOARD_LOOPSPERMSEC=16717
|
|
CONFIG_BUILTIN=y
|
|
CONFIG_DEBUG_FULLOPT=y
|
|
CONFIG_DEBUG_SYMBOLS=y
|
|
CONFIG_ESP32S3_UART0=y
|
|
CONFIG_ETC_ROMFS=y
|
|
CONFIG_EXPERIMENTAL=y
|
|
CONFIG_FS_PROCFS=y
|
|
CONFIG_FS_ROMFS=y
|
|
CONFIG_HAVE_CXX=y
|
|
CONFIG_HAVE_CXXINITIALIZE=y
|
|
CONFIG_IDLETHREAD_STACKSIZE=3072
|
|
CONFIG_INIT_ENTRYPOINT="init_main"
|
|
CONFIG_INIT_STACKSIZE=8192
|
|
CONFIG_INTELHEX_BINARY=y
|
|
CONFIG_LIBC_EXECFUNCS=y
|
|
CONFIG_LINE_MAX=64
|
|
CONFIG_NSH_BUILTIN_APPS=y
|
|
CONFIG_NSH_FILEIOSIZE=512
|
|
CONFIG_NSH_READLINE=y
|
|
CONFIG_PREALLOC_TIMERS=4
|
|
CONFIG_RAM_SIZE=114688
|
|
CONFIG_RAM_START=0x20000000
|
|
CONFIG_RR_INTERVAL=200
|
|
CONFIG_RTC=y
|
|
CONFIG_RTC_DRIVER=y
|
|
CONFIG_SCHED_BACKTRACE=y
|
|
CONFIG_SCHED_CHILD_STATUS=y
|
|
CONFIG_SCHED_HAVE_PARENT=y
|
|
CONFIG_SCHED_STACK_RECORD=32
|
|
CONFIG_SCHED_WAITPID=y
|
|
CONFIG_START_DAY=6
|
|
CONFIG_START_MONTH=12
|
|
CONFIG_START_YEAR=2011
|
|
CONFIG_SYSLOG_BUFFER=y
|
|
CONFIG_SYSTEM_NSH=y
|
|
CONFIG_SYSTEM_NSH_STACKSIZE=8192
|
|
CONFIG_SYSTEM_NXINIT=y
|
|
CONFIG_UART0_SERIAL_CONSOLE=y
|