From 0c042bd2c4f825329ffabbb4ff76cdc68ac07bef Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 17 Nov 2025 11:09:06 +0200 Subject: [PATCH 1/3] feat(core): Add option to support chip variants --- boards.txt | 9 +++++++++ platform.txt | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/boards.txt b/boards.txt index dc38debe94d..82df1e1fc30 100644 --- a/boards.txt +++ b/boards.txt @@ -19,6 +19,7 @@ menu.EraseFlash=Erase All Flash Before Sketch Upload menu.JTAGAdapter=JTAG Adapter menu.ZigbeeMode=Zigbee Mode menu.PinNumbers=Pin Numbering +menu.ChipVariant=Chip Variant # Custom options menu.Revision=Board Revision @@ -398,6 +399,7 @@ esp32p4.build.target=esp esp32p4.build.mcu=esp32p4 esp32p4.build.core=esp32 esp32p4.build.variant=esp32p4 +esp32p4.build.chip_variant=esp32p4_es esp32p4.build.board=ESP32P4_DEV esp32p4.build.bootloader_addr=0x2000 @@ -414,6 +416,13 @@ esp32p4.build.boot=qio esp32p4.build.partitions=default esp32p4.build.defines= +esp32p4.menu.ChipVariant.prev3=Before v3.00 +esp32p4.menu.ChipVariant.prev3.build.chip_variant=esp32p4_es +esp32p4.menu.ChipVariant.prev3.build.f_cpu=360000000L +esp32p4.menu.ChipVariant.postv3=v3.00 or newer +esp32p4.menu.ChipVariant.postv3.build.chip_variant=esp32p4 +esp32p4.menu.ChipVariant.prev3.build.f_cpu=400000000L + ## IDE 2.0 Seems to not update the value esp32p4.menu.JTAGAdapter.default=Disabled esp32p4.menu.JTAGAdapter.default.build.copy_jtag_files=0 diff --git a/platform.txt b/platform.txt index d715c0e2dca..f346d385b90 100644 --- a/platform.txt +++ b/platform.txt @@ -27,8 +27,8 @@ tools.gen_insights_pkg.cmd.windows="{runtime.platform.path}\tools\gen_insights_p compiler.path={tools.{build.tarch}-esp-elf-gcc.path}/bin/ compiler.prefix={build.tarch}-{build.target}-elf- -compiler.sdk.path={tools.esp32-arduino-libs.path}/{build.mcu} -compiler.sdk.path.windows={tools.esp32-arduino-libs.path}\{build.mcu} +compiler.sdk.path={tools.esp32-arduino-libs.path}/{build.chip_variant} +compiler.sdk.path.windows={tools.esp32-arduino-libs.path}\{build.chip_variant} # EXPERIMENTAL feature: optimization flags # - this is alpha and may be subject to change without notice @@ -105,6 +105,7 @@ build.event_core= build.extra_flags=-DARDUINO_HOST_OS="{runtime.os}" -DARDUINO_FQBN="{build.fqbn}" -DESP32=ESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}} {build.zigbee_mode} build.extra_libs= build.memory_type={build.boot}_qspi +build.chip_variant={build.mcu} # Custom build options build.opt.name=build_opt.h From ffe4d3639dd7fac524c24d0a0cbea0c69b7d58f1 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 17 Nov 2025 13:08:25 +0100 Subject: [PATCH 2/3] add Chip variant to pioarduino-build.py (#12037) * add `chip_variant` to pioarduino-build.py to support different variants of an MCU (p4 prev3 and postv3) * Refactor build_mcu and chip_variant assignment logic * ci(pre-commit): Apply automatic fixes * Fix chip_variant retrieval with default value --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- tools/pioarduino-build.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/pioarduino-build.py b/tools/pioarduino-build.py index 2bacd9fcaef..ac0a743610e 100644 --- a/tools/pioarduino-build.py +++ b/tools/pioarduino-build.py @@ -32,6 +32,8 @@ platform = env.PioPlatform() board_config = env.BoardConfig() build_mcu = board_config.get("build.mcu", "").lower() +chip_variant = board_config.get("build.chip_variant", "").lower() +chip_variant = chip_variant if chip_variant else build_mcu partitions_name = board_config.get("build.partitions", board_config.get("build.arduino.partitions", "")) FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32") @@ -80,7 +82,7 @@ def get_bootloader_image(variants_dir): else generate_bootloader_image( join( FRAMEWORK_LIBS_DIR, - build_mcu, + chip_variant, "bin", "bootloader_${__get_board_boot_mode(__env__)}_${__get_board_f_boot(__env__)}.elf", ) @@ -159,7 +161,7 @@ def add_tinyuf2_extra_image(): SConscript( join( FRAMEWORK_LIBS_DIR, - build_mcu, + chip_variant, "pioarduino-build.py", ) ) From 5ddff74dfe209f108c609105a2c9f65714bea12e Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 18 Nov 2025 11:51:43 +0200 Subject: [PATCH 3/3] feat(p4): Fix CPU frequency selection --- boards.txt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/boards.txt b/boards.txt index 82df1e1fc30..fee18c92c14 100644 --- a/boards.txt +++ b/boards.txt @@ -421,7 +421,7 @@ esp32p4.menu.ChipVariant.prev3.build.chip_variant=esp32p4_es esp32p4.menu.ChipVariant.prev3.build.f_cpu=360000000L esp32p4.menu.ChipVariant.postv3=v3.00 or newer esp32p4.menu.ChipVariant.postv3.build.chip_variant=esp32p4 -esp32p4.menu.ChipVariant.prev3.build.f_cpu=400000000L +esp32p4.menu.ChipVariant.postv3.build.f_cpu=400000000L ## IDE 2.0 Seems to not update the value esp32p4.menu.JTAGAdapter.default=Disabled @@ -521,12 +521,6 @@ esp32p4.menu.PartitionScheme.custom=Custom esp32p4.menu.PartitionScheme.custom.build.partitions= esp32p4.menu.PartitionScheme.custom.upload.maximum_size=16777216 -## From https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/api-reference/kconfig.html#config-esp-default-cpu-freq-mhz -esp32p4.menu.CPUFreq.360=360MHz -esp32p4.menu.CPUFreq.360.build.f_cpu=360000000L -esp32p4.menu.CPUFreq.40=40MHz -esp32p4.menu.CPUFreq.40.build.f_cpu=40000000L - esp32p4.menu.FlashMode.qio=QIO esp32p4.menu.FlashMode.qio.build.flash_mode=dio esp32p4.menu.FlashMode.qio.build.boot=qio