nuttx/boards/xtensa/esp32s3/esp32s3-devkit/configs/python/defconfig

130 lines
3.3 KiB
Text
Raw Normal View History

#
# 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_ALLOW_BSD_COMPONENTS=y
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_ESP32S3WROOM2N32R8V=y
CONFIG_ARCH_INTERRUPTSTACK=2048
xtensa/espressif: Update common-source integration for Xtensa devices This commit updates the common-source integration for Xtensa-based Espressif devices (ESP32, ESP32-S2, and ESP32-S3). This is part of a larger common-source update split by architecture for better maintainability. Major components updated: - IRQ allocator refactoring with intr_alloc integration - Common-source drivers (GPIO, RMT, I2C, SPI, UART, etc.) - Espressif components upgrade to release/master.b-test - Peripheral drivers (ADC, PWM, LEDC, MCPWM, PCNT, Temperature Sensor, etc.) - Wireless adapters (Wi-Fi and BLE) - esp_timer migration to the common-source path for Xtensa devices - Common-source power management implementation (auto-sleep and wakeup paths) - Board defconfigs for all Xtensa Espressif boards - SMP support improvements for ESP32-S3 - Critical section handling improvements Key architectural changes: - IRQ Allocator: The new interrupt allocator enables multiple mapping options from interrupt sources to CPU interrupts, providing flexibility required by modern peripherals. Although this introduces breaking changes to the interrupt handling API, the required ARCH_MINIMAL_VECTORTABLE Kconfig option is explicitly checked during startup to ensure proper configuration. This validation prevents runtime issues from configuration mismatches. - Xtensa-specific interrupt handling via esp_xtensa_intr.c providing NuttX-native implementations of xt_ints_on/off and interrupt handlers, avoiding conflicts with NuttX's core Xtensa macros. - Timer/RTC unification: ESP32/ESP32-S2/ESP32-S3 move from chip-specific RTC/RT-timer code to common-source Espressif integration, including esp_timer_adapter/esp_rtc paths and the required bringup/defconfig updates. - Power management consolidation: Xtensa PM follows the common-source implementation, including common-source auto-sleep behavior, UART/Wi-Fi wakeup coordination, and tickless-safe sleep flow compatibility. Note: This is a large commit to maintain bisectability. Breaking the changes into smaller commits would result in non-building intermediate states across the common-source infrastructure update. Tested configurations: - All defconfigs were tested, including `ostest`. Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-02-27 15:06:57 -03:00
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_BOARDCTL_ROMDISK=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BUILTIN=y
CONFIG_DEV_URANDOM=y
CONFIG_DRIVERS_IEEE80211=y
CONFIG_DRIVERS_WIRELESS=y
CONFIG_ESP32S3_DEVKITC_1_V11=y
CONFIG_ESP32S3_FLASH_FREQ_80M=y
CONFIG_ESP32S3_FLASH_MODE_OCT=y
CONFIG_ESP32S3_FLASH_SAMPLE_MODE_STR=y
CONFIG_ESP32S3_SPIFLASH=y
CONFIG_ESP32S3_SPIFLASH_SPIFFS=y
CONFIG_ESP32S3_SPIRAM=y
CONFIG_ESP32S3_SPIRAM_MODE_OCT=y
CONFIG_ESP32S3_STORAGE_MTD_OFFSET=0xF00000
CONFIG_ESP32S3_UART0=y
CONFIG_ESPRESSIF_WIFI=y
CONFIG_ESP_RMT=y
boards/esp32s3-devkit: switch defconfigs to nxinit entrypoint 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 73c949c87e5a) 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>
2026-08-24 23:27:37 +08:00
CONFIG_ETC_ROMFS=y
CONFIG_EVENT_FD=y
CONFIG_EXAMPLES_WGET=y
CONFIG_EXAMPLES_WS2812=y
CONFIG_EXPERIMENTAL=y
CONFIG_FS_LINKS=y
CONFIG_FS_PROCFS=y
CONFIG_FS_ROMFS=y
CONFIG_FS_TMPFS=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_IDLETHREAD_STACKSIZE=3072
boards/esp32s3-devkit: switch defconfigs to nxinit entrypoint 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 73c949c87e5a) 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>
2026-08-24 23:27:37 +08:00
CONFIG_INIT_ENTRYPOINT="init_main"
CONFIG_INIT_STACKSIZE=8192
CONFIG_INTELHEX_BINARY=y
CONFIG_INTERPRETERS_CPYTHON=y
CONFIG_IOB_BUFSIZE=400
CONFIG_IOB_NBUFFERS=100
CONFIG_IOB_NCHAINS=32
CONFIG_IOB_THROTTLE=40
CONFIG_LIBC_ELF_HAVE_SYMTAB=y
CONFIG_LIBC_ELF_SYSTEM_SYMTAB=y
CONFIG_LIBC_EXECFUNCS=y
CONFIG_LIBC_LOCALE=y
CONFIG_LIBC_LOCALE_GETTEXT=y
CONFIG_LIB_ZLIB=y
CONFIG_LINE_MAX=64
CONFIG_MM_REGIONS=2
CONFIG_MODULE=y
CONFIG_NETDB_DNSCLIENT=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_PHY_IOCTL=y
CONFIG_NETDEV_WIRELESS_IOCTL=y
CONFIG_NETUTILS_CJSON=y
CONFIG_NETUTILS_WEBCLIENT=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_ETH_PKTSIZE=1514
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_TCP=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_UDP=y
CONFIG_NET_UDP_WRITE_BUFFERS=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_READLINE=y
CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_RAM_SIZE=114688
CONFIG_RAM_START=0x20000000
CONFIG_RR_INTERVAL=200
xtensa/espressif: Update common-source integration for Xtensa devices This commit updates the common-source integration for Xtensa-based Espressif devices (ESP32, ESP32-S2, and ESP32-S3). This is part of a larger common-source update split by architecture for better maintainability. Major components updated: - IRQ allocator refactoring with intr_alloc integration - Common-source drivers (GPIO, RMT, I2C, SPI, UART, etc.) - Espressif components upgrade to release/master.b-test - Peripheral drivers (ADC, PWM, LEDC, MCPWM, PCNT, Temperature Sensor, etc.) - Wireless adapters (Wi-Fi and BLE) - esp_timer migration to the common-source path for Xtensa devices - Common-source power management implementation (auto-sleep and wakeup paths) - Board defconfigs for all Xtensa Espressif boards - SMP support improvements for ESP32-S3 - Critical section handling improvements Key architectural changes: - IRQ Allocator: The new interrupt allocator enables multiple mapping options from interrupt sources to CPU interrupts, providing flexibility required by modern peripherals. Although this introduces breaking changes to the interrupt handling API, the required ARCH_MINIMAL_VECTORTABLE Kconfig option is explicitly checked during startup to ensure proper configuration. This validation prevents runtime issues from configuration mismatches. - Xtensa-specific interrupt handling via esp_xtensa_intr.c providing NuttX-native implementations of xt_ints_on/off and interrupt handlers, avoiding conflicts with NuttX's core Xtensa macros. - Timer/RTC unification: ESP32/ESP32-S2/ESP32-S3 move from chip-specific RTC/RT-timer code to common-source Espressif integration, including esp_timer_adapter/esp_rtc paths and the required bringup/defconfig updates. - Power management consolidation: Xtensa PM follows the common-source implementation, including common-source auto-sleep behavior, UART/Wi-Fi wakeup coordination, and tickless-safe sleep flow compatibility. Note: This is a large commit to maintain bisectability. Breaking the changes into smaller commits would result in non-building intermediate states across the common-source infrastructure update. Tested configurations: - All defconfigs were tested, including `ostest`. Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-02-27 15:06:57 -03:00
CONFIG_RTC=y
CONFIG_RTC_DRIVER=y
CONFIG_SCHED_BACKTRACE=y
boards/esp32s3-devkit: switch defconfigs to nxinit entrypoint 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 73c949c87e5a) 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>
2026-08-24 23:27:37 +08:00
CONFIG_SCHED_CHILD_STATUS=y
CONFIG_SCHED_CPULOAD_SYSCLK=y
boards/esp32s3-devkit: switch defconfigs to nxinit entrypoint 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 73c949c87e5a) 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>
2026-08-24 23:27:37 +08:00
CONFIG_SCHED_HAVE_PARENT=y
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_THREAD_LOCAL=y
CONFIG_SIG_DEFAULT=y
CONFIG_SMP=y
CONFIG_SMP_NCPUS=2
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_SYSLOG_BUFFER=y
CONFIG_SYSTEM_CPULOAD=y
CONFIG_SYSTEM_DHCPC_RENEW=y
CONFIG_SYSTEM_NSH=y
boards/esp32s3-devkit: switch defconfigs to nxinit entrypoint 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 73c949c87e5a) 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>
2026-08-24 23:27:37 +08:00
CONFIG_SYSTEM_NSH_STACKSIZE=8192
CONFIG_SYSTEM_NXINIT=y
CONFIG_SYSTEM_PING=y
CONFIG_SYSTEM_SYSTEM=y
CONFIG_SYSTEM_SYSTEM_STACKSIZE=4096
CONFIG_TESTING_OSTEST=y
CONFIG_TIMER=y
CONFIG_TIMER_FD=y
CONFIG_TLS_NELEM=4
CONFIG_TLS_TASK_NELEM=4
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_WIRELESS_WAPI=y
CONFIG_WIRELESS_WAPI_CMDTOOL=y
CONFIG_WIRELESS_WAPI_STACKSIZE=4096
CONFIG_WS2812=y
CONFIG_WS2812_NON_SPI_DRIVER=y
CONFIG_XTENSA_EXTMEM_BSS=y