From 2461efdc7212f118df79f963277e8149935408d4 Mon Sep 17 00:00:00 2001 From: zqyhimself Date: Sat, 18 Apr 2026 01:32:30 +0800 Subject: [PATCH] fix(waveshare-p4-7b): target v1.x chip rev and 32MB flash layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【中文】 7B 变体使用 v1.x 版本的 ESP32-P4 芯片和 32MB flash,但 config.json 中 对应的 sdkconfig_append 既没声明芯片版本,也没声明 flash 大小。IDF 因此 默认按 rev v3.1 + 16MB flash 构建,bootloader 被链接脚本 bootloader.rev3.ld 放到 0x4ffa_xxxx 的高位 HP_SRAM,这个区域在 v1.x 硅上不可取指,ROM 加载完跳过去,CPU 在第一条指令就 "Guru Meditation Error: Core 0 panic'ed (Illegal instruction)", bootloader log 一行都打不出来。 添加 CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y + CONFIG_ESP32P4_REV_MIN_100=y 让 bootloader.ld(低位 HP_SRAM 0x4ff2_xxxx)被选中,并声明 CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y + partitions/v2/32m.csv,使 image header 和分区表和板子实际硬件对齐;CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=n 与已知 32MB 板子 sensecap-watcher 保持一致。 在 v1.3 版本的 P4-WIFI6-Touch-LCD-7B 上验证通过:bootloader 段现在加载到 0x4ff33ce0 / 0x4ff29ed0 / 0x4ff2cbd0;启动过程中 MIPI-DSI LCD、GT911 触控、OV5647 摄像头、ES8311+ES7210 音频和 ESP32-C6 SDIO 协处理器 全部正常初始化;状态机进入 wifi_configuring,对外发出 Xiaozhi-XXXX 配网热点。 --- [English] The 7B variant ships with a v1.x ESP32-P4 silicon and a 32 MB flash, but the existing sdkconfig_append declared neither. IDF then defaults to rev v3.1 + 16 MB, and the bootloader is linked via bootloader.rev3.ld into the 0x4ffa_xxxx upper HP_SRAM window. That range is not fetchable on v1.x silicon, so the ROM jumps to the loaded bootloader and the CPU panics on the first opcode with "Guru Meditation Error: Core 0 panic'ed (Illegal instruction)" before any bootloader log is printed. Add CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y + CONFIG_ESP32P4_REV_MIN_100=y so bootloader.ld (low HP_SRAM 0x4ff2_xxxx) is used, and declare CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y + partitions/v2/32m.csv so the image header and partition offsets match the board. Disable flash-mode auto-detect for parity with the other known 32 MB board (sensecap-watcher). Verified on a v1.3 P4-WIFI6-Touch-LCD-7B: bootloader segments now load at 0x4ff33ce0 / 0x4ff29ed0 / 0x4ff2cbd0; boot completes through MIPI DSI, GT911 touch, OV5647 camera, ES8311+ES7210 audio and the ESP32-C6 SDIO coprocessor; device reaches wifi_configuring and exposes the Xiaozhi-XXXX AP. --- main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json b/main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json index 971934a..483ad2d 100644 --- a/main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json +++ b/main/boards/waveshare/esp32-p4-wifi6-touch-lcd/config.json @@ -41,7 +41,12 @@ "CONFIG_CAMERA_OV5647=y", "CONFIG_CAMERA_OV5647_AUTO_DETECT_MIPI_INTERFACE_SENSOR=y", "CONFIG_CAMERA_OV5647_MIPI_RAW8_800X800_50FPS=y", - "CONFIG_XIAOZHI_ENABLE_CAMERA_ENDIANNESS_SWAP=y" + "CONFIG_XIAOZHI_ENABLE_CAMERA_ENDIANNESS_SWAP=y", + "CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y", + "CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/32m.csv\"", + "CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=n", + "CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y", + "CONFIG_ESP32P4_REV_MIN_100=y" ] }, {