【中文】 针对 PR #1943 的评审建议(Y1hsiaochunnn + laride):当前市面的 ESP32-P4 几乎都是 rev v1.x / v2.x 硅片,IDF 默认 REV_MIN_301 会让 bootloader 被 bootloader.rev3.ld 链到高位 HP_SRAM,导致在存量硬件上第一条指令就 panic。 未来 ESP32-P4X(rev >= 3.x)又需要保留默认配置,因此不能在所有 P4 board 上一刀切地写死 CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y。 方案:对所有 P4 config.json 的每个现有变体,添加 REV_LESS_V3 + REV_MIN_100, 并复制一份加 `-p4x` 后缀的孪生变体(不加上述两行,保持 IDF 默认 REV_MIN_301 以支持未来 P4X 芯片)。 受影响的 6 份 config.json,共 14 个原变体,复制后新增 14 个 `-p4x` 变体: - main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json(8 -> 16 变体, 其中 7b 变体保留 32MB flash + custom 分区配置) - main/boards/waveshare/esp32-p4-wifi6-touch-lcd-3.5/config.json - main/boards/waveshare/esp32-p4-nano/config.json - main/boards/esp-p4-function-ev-board/config.json - main/boards/wireless-tag-wtp4c5mp07s/config.json - main/boards/m5stack-tab5/config.json --- [English] Per review on PR #1943 (Y1hsiaochunnn + laride): almost all ESP32-P4 silicon on the market today is rev v1.x / v2.x. IDF's default REV_MIN_301 links the bootloader via bootloader.rev3.ld into the upper HP_SRAM window, which those chips cannot execute; the CPU panics on the first opcode. Future ESP32-P4X (rev >= 3.x) still needs the IDF default, so we cannot hard-code CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y across all P4 boards. Strategy: for each existing variant in every P4 config.json, add REV_LESS_V3 + REV_MIN_100 to target current silicon, and add a `-p4x` twin variant without those two configs (keeping IDF default REV_MIN_301) for future P4X chips. Affects 6 config.json files, 14 original variants duplicated into 14 `-p4x` twins: - main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json (8 -> 16 variants; the 7b variant keeps its 32 MB flash + custom partition configs) - main/boards/waveshare/esp32-p4-wifi6-touch-lcd-3.5/config.json - main/boards/waveshare/esp32-p4-nano/config.json - main/boards/esp-p4-function-ev-board/config.json - main/boards/wireless-tag-wtp4c5mp07s/config.json - main/boards/m5stack-tab5/config.json
Wireless-Tag WTP4C5MP07S
Wireless-Tag WTP4C5MP07S product is a combo of
- Wireless-Tag WT99P4C5-S1 ESP32-P4 development board and
- 7 inch 1024x600 ZX7D00C1060M002A MIPI DSI LCD display
Configuration
ESP32P4 Configuration
-
Set the compilation target to ESP32P4
idf.py set-target esp32p4 -
Open menuconfig
idf.py menuconfig -
Select the board
Xiaozhi Assistant -> Board Type -> Wireless-Tag WTP4C5MP07S -
Select PSRAM
Component config -> ESP PSRAM -> PSRAM config -> Try to allocate memories of WiFi and LWIP in SPIRAM firstly -> No -
Select Wi-Fi slave target
Component config -> Wi-Fi Remote -> choose slave target -> esp32c5 -
Select Wi-Fi buffers
Component config -> Wi-Fi Remote -> Wi-Fi configuration -> Max number of WiFi static RX buffers -> 10 Component config -> Wi-Fi Remote -> Wi-Fi configuration -> Max number of WiFi dynamic RX buffers -> 24 Component config -> Wi-Fi Remote -> Wi-Fi configuration -> Max number of WiFi static TX buffers -> 10 -
Build
idf.py build
ESP32C5 Configuration
- Flash the slave example from the esp-hosted-mcu library for the target chip ESP32C5. The esp-hosted-mcu version must match the one used in the xiaozhi-esp32 library.