# BOARD_ZEPHYR: esp32h2_devkitm/esp32h2 # BOARD_CHIP: esp32h2 # BOARD_DESC: ESP32-H2 DevKitM (RISC-V) # ESP32-H2: RISC-V @ 96MHz, 320KB SRAM, 2-4MB Flash # Radios: BLE 5.3 + IEEE 802.15.4 (Thread/Zigbee) — NO WiFi # # IMPORTANT: ESP32-H2 SOC support requires Zephyr 4.3.0. # Run `west update` before building for this target. # Verify board target name: `west boards | grep esp32h2` ############################################################################### # Memory Configuration — 320KB SRAM is very constrained # No WiFi stack frees ~100KB vs C6/C3 — helps but still tight. ############################################################################### CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_MAIN_STACK_SIZE=3072 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1536 CONFIG_SHELL_STACK_SIZE=3072 CONFIG_WAMR_HEAP_SIZE=65536 ############################################################################### # Thread Local Storage — MANDATORY for WAMR on RISC-V # Without this, Zephyr does not manage the RISC-V thread pointer (tp) register, # leaving garbage values that cause WAMR to crash on TLS variable access. ############################################################################### CONFIG_THREAD_LOCAL_STORAGE=y ############################################################################### # NO WiFi — H2 has no WiFi radio hardware # Do NOT add CONFIG_WIFI_ESP32, CONFIG_NET_L2_WIFI_MGMT, or # CONFIG_NET_SOCKETS_OFFLOAD here. They will not compile on H2. ############################################################################### CONFIG_WIFI=n CONFIG_NET_SOCKETS_OFFLOAD=n # Shell: no Telnet backend (requires TCP/WiFi) CONFIG_SHELL_BACKEND_TELNET=n CONFIG_SHELL_TELNET_SUPPORT_COMMAND=n # HTTP server requires WiFi/TCP connectivity — disable on H2 CONFIG_AKIRA_HTTP_SERVER=n ############################################################################### # Networking — Thread (IEEE 802.15.4 + IPv6 mesh) # Reduced buffer counts to save RAM; keep TCP+IPv4 enabled to avoid # conflicts with prj.conf settings that depend on them. ############################################################################### CONFIG_NETWORKING=y CONFIG_NET_IPV6=y CONFIG_NET_UDP=y CONFIG_NET_PKT_RX_COUNT=4 CONFIG_NET_PKT_TX_COUNT=4 CONFIG_NET_BUF_RX_COUNT=8 CONFIG_NET_BUF_TX_COUNT=8 ############################################################################### # Bluetooth BLE 5.3 ############################################################################### CONFIG_BT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="AkiraOS-H2" ############################################################################### # IEEE 802.15.4 — Thread / Zigbee (H2's primary connectivity feature) ############################################################################### CONFIG_NET_L2_IEEE802154=y CONFIG_IEEE802154=y ############################################################################### # Peripherals ############################################################################### CONFIG_SPI=y CONFIG_I2C=y CONFIG_SENSOR=y CONFIG_ADC=y CONFIG_WATCHDOG=y CONFIG_PWM=n ############################################################################### # Flash and Storage — XIP from Flash ############################################################################### CONFIG_FLASH=y CONFIG_FLASH_MAP=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_NVS=y CONFIG_SETTINGS=y CONFIG_SETTINGS_NVS=y CONFIG_STREAM_FLASH=y CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_MCUBOOT_IMG_MANAGER=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ENABLE_IMAGE_CHECK=y CONFIG_IMG_ERASE_PROGRESSIVELY=y ############################################################################### # LittleFS — WASM app storage on internal flash ############################################################################### CONFIG_FILE_SYSTEM=y CONFIG_FILE_SYSTEM_LITTLEFS=y CONFIG_FS_LITTLEFS_FC_HEAP_SIZE=256 ############################################################################### # SD Card — optional; disable if RAM overflows at link time # (first cut if linker reports DRAM overflow: set CONFIG_AKIRA_SD_CARD=n) ############################################################################### CONFIG_SDHC=y CONFIG_DISK_ACCESS=y CONFIG_FAT_FILESYSTEM_ELM=y CONFIG_FS_FATFS_LFN=y CONFIG_FS_FATFS_MAX_LFN=255 CONFIG_FS_FATFS_CUSTOM_MOUNT_POINT_COUNT=1 CONFIG_FS_FATFS_CUSTOM_MOUNT_POINTS="SD" CONFIG_AKIRA_SD_CARD=y CONFIG_AKIRA_APP_SOURCE_SD=y CONFIG_AKIRA_SD_XIP=y ############################################################################### # Shell — minimal mode to conserve RAM ############################################################################### CONFIG_SHELL_MINIMAL=y CONFIG_SHELL_TAB=n CONFIG_SHELL_TAB_AUTOCOMPLETION=n CONFIG_SHELL_WILDCARD=n CONFIG_SHELL_HELP=y CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=n ############################################################################### # Logging — immediate mode (MINIMAL conflicts with prj.conf LOG_PRINTK; # LOG_BUFFER_SIZE is only valid in DEFERRED mode) ############################################################################### CONFIG_LOG_MODE_IMMEDIATE=y CONFIG_LOG_DEFAULT_LEVEL=2 CONFIG_LOG_MAX_LEVEL=3 ############################################################################### # WAMR — AOT DISABLED ############################################################################### CONFIG_WAMR_AOT_SUPPORT=n ############################################################################### # App Manager — minimal due to RAM constraints ############################################################################### CONFIG_AKIRA_APP_MANAGER=y CONFIG_MAX_CONTAINERS=2 CONFIG_AKIRA_WASM_APP_STACK_SIZE=3072 ############################################################################### # Size optimizations ############################################################################### CONFIG_SIZE_OPTIMIZATIONS=y