From 366974f2c7040e9e9660047d6d7c62eef0e5464a Mon Sep 17 00:00:00 2001 From: Jeija Date: Thu, 16 Oct 2025 11:09:32 +0200 Subject: [PATCH] feat: Add support for ESP32-C61 as target device --- README.md | 27 ++++++++-------- .../Hello-world/ESP32_C61/bootloader.bin | Bin 0 -> 19888 bytes .../Hello-world/ESP32_C61/hello_world.bin | Bin 0 -> 63552 bytes .../Hello-world/ESP32_C61/partition-table.bin | Bin 0 -> 3072 bytes examples/binaries/RAM_APP/ESP32_C61/app.bin | Bin 0 -> 63984 bytes examples/common/example_common.c | 30 ++++++++++++++++++ include/esp_loader.h | 5 +-- src/esp_loader.c | 2 +- src/esp_stubs.c | 5 ++- src/esp_targets.c | 20 ++++++++++++ 10 files changed, 72 insertions(+), 17 deletions(-) create mode 100644 examples/binaries/Hello-world/ESP32_C61/bootloader.bin create mode 100644 examples/binaries/Hello-world/ESP32_C61/hello_world.bin create mode 100644 examples/binaries/Hello-world/ESP32_C61/partition-table.bin create mode 100644 examples/binaries/RAM_APP/ESP32_C61/app.bin diff --git a/README.md b/README.md index 2ff7c28..eb71c60 100644 --- a/README.md +++ b/README.md @@ -35,23 +35,24 @@ This library enables you to program Espressif SoCs from various host platforms u ### Supported Target Devices (ESP device being flashed) -| Target | UART | SPI | SDIO | USB CDC ACM | -| :------: | :--: | :-: | :--: | :---------: | -| ESP8266 | ✅ | ❌ | ❌ | ❌ | -| ESP32 | ✅ | ❌ | 🚧 | ❌ | -| ESP32-S2 | ✅ | ❌ | ❌ | ❌ | -| ESP32-S3 | ✅ | ✅ | ❌ | ✅ | -| ESP32-C2 | ✅ | ✅ | ❌ | ❌ | -| ESP32-C3 | ✅ | ✅ | ❌ | ✅ | -| ESP32-H2 | ✅ | ✅ | ❌ | ✅ | -| ESP32-C6 | ✅ | ❌ | ✅ | ✅ | -| ESP32-C5 | ✅ | ❌ | 🚧 | ✅ | -| ESP32-P4 | ✅ | 🚧 | ❌ | ✅ | +| Target | UART | SPI | SDIO | USB CDC ACM | +| :-------: | :--: | :-: | :--: | :---------: | +| ESP8266 | ✅ | ❌ | ❌ | ❌ | +| ESP32 | ✅ | ❌ | 🚧 | ❌ | +| ESP32-S2 | ✅ | ❌ | ❌ | ❌ | +| ESP32-S3 | ✅ | ✅ | ❌ | ✅ | +| ESP32-C2 | ✅ | ✅ | ❌ | ❌ | +| ESP32-C3 | ✅ | ✅ | ❌ | ✅ | +| ESP32-H2 | ✅ | ✅ | ❌ | ✅ | +| ESP32-C6 | ✅ | ❌ | ✅ | ✅ | +| ESP32-C5 | ✅ | ❌ | 🚧 | ✅ | +| ESP32-P4 | ✅ | 🚧 | ❌ | ✅ | +| ESP32-C61 | ✅ | ❌ | ❌ | ❌ | **Legend**: ✅ Supported | ❌ Not supported | 🚧 Under development > [!NOTE] -> **Stub support**: ESP8266, ESP32-C5, and ESP32-P4 stub support is under development +> **Stub support**: ESP8266, ESP32-C5, ESP32-P4, and ESP32-C61 stub support is under development ### Public API diff --git a/examples/binaries/Hello-world/ESP32_C61/bootloader.bin b/examples/binaries/Hello-world/ESP32_C61/bootloader.bin new file mode 100644 index 0000000000000000000000000000000000000000..ef78c5b75e7df83cf93fe903587b7bc987963afb GIT binary patch literal 19888 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

DX^s}L#ojJC~>rssN#7LdDv{M-j$QJ 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 bzi~PKqx+Y3M-2Z}{@F);WkYiZ4i5hx-^XBn literal 0 HcmV?d00001 diff --git a/examples/binaries/Hello-world/ESP32_C61/hello_world.bin b/examples/binaries/Hello-world/ESP32_C61/hello_world.bin new file mode 100644 index 0000000000000000000000000000000000000000..4310dfe61469b8627cec3d192f3342fa0aaa36ec GIT binary patch literal 63552 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 literal 0 HcmV?d00001 diff --git a/examples/binaries/Hello-world/ESP32_C61/partition-table.bin b/examples/binaries/Hello-world/ESP32_C61/partition-table.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8fa03b4b3536b1f4d0def4c1fed550e8fc2acc7 GIT binary patch literal 3072 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Ǣ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 literal 0 HcmV?d00001 diff --git a/examples/common/example_common.c b/examples/common/example_common.c index 0128a34..84c04cb 100644 --- a/examples/common/example_common.c +++ b/examples/common/example_common.c @@ -135,6 +135,16 @@ extern const uint8_t ESP32_P4_partition_table_bin[]; extern const uint32_t ESP32_P4_partition_table_bin_size; extern const uint8_t ESP32_P4_partition_table_bin_md5[]; +extern const uint8_t ESP32_C61_bootloader_bin[]; +extern const uint32_t ESP32_C61_bootloader_bin_size; +extern const uint8_t ESP32_C61_bootloader_bin_md5[]; +extern const uint8_t ESP32_C61_hello_world_bin[]; +extern const uint32_t ESP32_C61_hello_world_bin_size; +extern const uint8_t ESP32_C61_hello_world_bin_md5[]; +extern const uint8_t ESP32_C61_partition_table_bin[]; +extern const uint32_t ESP32_C61_partition_table_bin_size; +extern const uint8_t ESP32_C61_partition_table_bin_md5[]; + void get_example_binaries(target_chip_t target, example_binaries_t *bins) { if (target == ESP8266_CHIP) { @@ -267,6 +277,19 @@ void get_example_binaries(target_chip_t target, example_binaries_t *bins) bins->app.size = ESP32_P4_hello_world_bin_size; bins->app.md5 = ESP32_P4_hello_world_bin_md5; bins->app.addr = APPLICATION_ADDRESS; + } else if (target == ESP32C61_CHIP) { + bins->boot.data = ESP32_C61_bootloader_bin; + bins->boot.size = ESP32_C61_bootloader_bin_size; + bins->boot.md5 = ESP32_C61_bootloader_bin_md5; + bins->boot.addr = BOOTLOADER_ADDRESS_V1; + bins->part.data = ESP32_C61_partition_table_bin; + bins->part.size = ESP32_C61_partition_table_bin_size; + bins->part.md5 = ESP32_C61_partition_table_bin_md5; + bins->part.addr = PARTITION_ADDRESS; + bins->app.data = ESP32_C61_hello_world_bin; + bins->app.size = ESP32_C61_hello_world_bin_size; + bins->app.md5 = ESP32_C61_hello_world_bin_md5; + bins->app.addr = APPLICATION_ADDRESS; } else { abort(); } @@ -289,6 +312,8 @@ extern const uint8_t ESP32_C5_app_bin[]; extern const uint32_t ESP32_C5_app_bin_size; extern const uint8_t ESP32_P4_app_bin[]; extern const uint32_t ESP32_P4_app_bin_size; +extern const uint8_t ESP32_C61_app_bin[]; +extern const uint32_t ESP32_C61_app_bin_size; void get_example_ram_app_binary(target_chip_t target, example_ram_app_binary_t *bin) @@ -334,6 +359,11 @@ void get_example_ram_app_binary(target_chip_t target, example_ram_app_binary_t * bin->ram_app.size = ESP32_P4_app_bin_size; break; } + case ESP32C61_CHIP: { + bin->ram_app.data = ESP32_C61_app_bin; + bin->ram_app.size = ESP32_C61_app_bin_size; + break; + } default: { abort(); } diff --git a/include/esp_loader.h b/include/esp_loader.h index 30326c0..7c36196 100644 --- a/include/esp_loader.h +++ b/include/esp_loader.h @@ -66,8 +66,9 @@ typedef enum { ESP32H2_CHIP = 7, ESP32C6_CHIP = 8, ESP32P4_CHIP = 9, - ESP_MAX_CHIP = 10, - ESP_UNKNOWN_CHIP = 10 + ESP32C61_CHIP = 10, + ESP_MAX_CHIP = 11, + ESP_UNKNOWN_CHIP = 11 } target_chip_t; /** diff --git a/src/esp_loader.c b/src/esp_loader.c index ad50bff..2f711ce 100644 --- a/src/esp_loader.c +++ b/src/esp_loader.c @@ -120,7 +120,7 @@ esp_loader_error_t esp_loader_connect_with_stub(esp_loader_connect_args_t *conne RETURN_ON_ERROR(loader_detect_chip(&s_target, &s_reg)); - if (s_target == ESP32P4_CHIP || s_target == ESP32C5_CHIP) { + if (s_target == ESP32P4_CHIP || s_target == ESP32C5_CHIP || s_target == ESP32C61_CHIP) { return ESP_LOADER_ERROR_UNSUPPORTED_CHIP; } diff --git a/src/esp_stubs.c b/src/esp_stubs.c index 572a532..4bfe512 100644 --- a/src/esp_stubs.c +++ b/src/esp_stubs.c @@ -42,7 +42,8 @@ _Static_assert(ESP32C5_CHIP == 6, "Stub order matches target_chip_t enumeration" _Static_assert(ESP32H2_CHIP == 7, "Stub order matches target_chip_t enumeration"); _Static_assert(ESP32C6_CHIP == 8, "Stub order matches target_chip_t enumeration"); _Static_assert(ESP32P4_CHIP == 9, "Stub order matches target_chip_t enumeration"); -_Static_assert(ESP_MAX_CHIP == 10, "Stub order matches target_chip_t enumeration"); +_Static_assert(ESP32C61_CHIP == 10, "Stub order matches target_chip_t enumeration"); +_Static_assert(ESP_MAX_CHIP == 11, "Stub order matches target_chip_t enumeration"); #endif const esp_stub_t esp_stub[ESP_MAX_CHIP] = { @@ -188,6 +189,8 @@ const esp_stub_t esp_stub[ESP_MAX_CHIP] = { // placeholder {}, + // placeholder + {}, }; #endif diff --git a/src/esp_targets.c b/src/esp_targets.c index 9e143bc..63644a3 100644 --- a/src/esp_targets.c +++ b/src/esp_targets.c @@ -38,6 +38,7 @@ typedef struct { #define ESP32C5_SPI_REG_BASE 0x60003000 #define ESP32C6_SPI_REG_BASE 0x60003000 #define ESP32P4_SPI_REG_BASE 0x5008d000 +#define ESP32C61_SPI_REG_BASE 0x60003000 #define ESP32xx_SPI_REG_BASE 0x60002000 #define ESP32_SPI_REG_BASE 0x3ff42000 @@ -254,6 +255,25 @@ static const esp_target_t esp_target[ESP_MAX_CHIP] = { .chip_id = 18, }, + // ESP32C61 + { + .regs = { + .cmd = ESP32C61_SPI_REG_BASE + 0x00, + .usr = ESP32C61_SPI_REG_BASE + 0x18, + .usr1 = ESP32C61_SPI_REG_BASE + 0x1c, + .usr2 = ESP32C61_SPI_REG_BASE + 0x20, + .w0 = ESP32C61_SPI_REG_BASE + 0x58, + .mosi_dlen = ESP32C61_SPI_REG_BASE + 0x24, + .miso_dlen = ESP32C61_SPI_REG_BASE + 0x28, + }, + .efuse_base = 0x600B4800, + .chip_magic_value = (const uint32_t[]){ 0x7211606F }, + .magic_values_count = 1, + .read_spi_config = spi_config_unsupported, + .mac_efuse_offset = 0x44, + .encryption_in_begin_flash_cmd = true, + .chip_id = 20, + }, }; const target_registers_t *get_esp_target_data(target_chip_t chip)