Skip to content

arch/risc-v: rename ESP32-C3 boards - #17417

Merged
xiaoxiang781216 merged 3 commits into
apache:masterfrom
fdcavalcanti:feature/rename-esp32c3-legacy
Dec 3, 2025
Merged

arch/risc-v: rename ESP32-C3 boards#17417
xiaoxiang781216 merged 3 commits into
apache:masterfrom
fdcavalcanti:feature/rename-esp32c3-legacy

Conversation

@fdcavalcanti

Copy link
Copy Markdown
Contributor

This PR deprecates the legacy ESP32-C3 board implementation and renames the generic implementation to become the main supported board.

Summary

  • documentation: update ESP32-C3 board names for legacy and new devkit
  • boards/risc-v/esp32c3: deprecate esp32c3 boards based on esp32c3-legacy arch
  • arch/risc-v/esp32c3: rename ESP32-C3 Generic configs

This change makes the esp32c3-generic the main ESP32-C3 supported board: esp32c3-devkit. The now esp32c3-legacy is not maintained anymore. Difference is that esp32c3-devkit shares the same common driver implementation as ESP32-C6 and ESP32-H2 which makes it easier to maintain.

Main Changes

esp32c3-devkit -> esp32c3-legacy
esp32c3-generic -> esp32c3-devkit
ARCH_CHIP_ESP32C3_LEGACY created
ARCH_CHIP_ESP32C3_GENERIC is now ARCH_CHIP_ESP32C3

  • Renames architecture configurations:
    ARCH_CHIP_ESP32C3_GENERIC → ARCH_CHIP_ESP32C3
    Introduces ARCH_CHIP_ESP32C3_LEGACY for the deprecated implementation

  • Reorganizes board structure:
    esp32c3-devkit → esp32c3-legacy (deprecated, no longer maintained)
    esp32c3-generic → esp32c3-devkit (becomes the main supported board)

The new esp32c3-devkit uses the same driver implementation as ESP32-C6 and ESP32-H2, improving code maintainability and consistency for Espressif RISC-V platforms.

Impact

  • Impact on user: Yes, this is a breaking change for users.

    • Applications using esp32c3-devkit:
      Must migrate to esp32c3-legacy-devkit to keep the legacy implementation, or
      Switch to the new esp32c3-devkit (formerly esp32c3-generic) which uses the shared driver architecture
      Update build scripts, CI/CD pipelines, and documentation that reference the old board name

    • Applications using esp32c3-generic:
      The board is now named esp32c3-devkit
      Update all references from esp32c3-generic to esp32c3-devkit in build configurations and scripts

    • Configuration changes:
      If using ARCH_CHIP_ESP32C3_GENERIC in Kconfig, change to ARCH_CHIP_ESP32C3
      If using ARCH_CHIP_ESP32C3 (old), change to ARCH_CHIP_ESP32C3_LEGACY

  • Impact on build: Significant build system changes.

    • Board path changes:
      Old: boards/risc-v/esp32c3/esp32c3-devkit/ → New: boards/risc-v/esp32c3-legacy/esp32c3-legacy-devkit/
      Old: boards/risc-v/esp32c3/esp32c3-generic/ → New: boards/risc-v/esp32c3/esp32c3-devkit/
    • Defconfig updates:
      CONFIG_ARCH_BOARD changed from "esp32c3-devkit" to "esp32c3-legacy-devkit" for legacy boards
      CONFIG_ARCH_BOARD changed from "esp32c3-generic" to "esp32c3-devkit" for the new main board
      CONFIG_ARCH_CHIP changed from "esp32c3" to "esp32c3-legacy" for legacy architecture
      CONFIG_ARCH_CHIP remains "esp32c3" for the new architecture (previously "esp32c3-generic")
  • Impact on hardware: Only affects ESP32-C3.

  • Impact on documentation: Yes. Renamed boards to reflect changes.

  • Impact on security: No.

  • Impact on compatibility: Yes, breaking changes affecting backward compatibility.

Testing

Due to the high number of configs and the type of change, testing was done in the following manner:

  1. Executed the refresh.sh script to esp32c3 and esp32c3-legacy
  2. Manually tested nsh configs of both legacy and new board
  3. Modified Espressif internal CI for new board name all tests results are as expected.
  4. Built documentation locally to verify changes

Results

All boards are building with no issue. Test on Espressif CI and QEMU gives results as expected.

@fdcavalcanti fdcavalcanti changed the title Feature/rename esp32c3 legacy arch/risc-v: rename ESP32-C3 boards Dec 1, 2025
@github-actions github-actions Bot added Area: Documentation Improvements or additions to documentation Arch: risc-v Issues related to the RISC-V (32-bit or 64-bit) architecture Board: risc-v Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces. labels Dec 1, 2025
tmedicci
tmedicci previously approved these changes Dec 1, 2025

@tmedicci tmedicci left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @fdcavalcanti !

xiaoxiang781216
xiaoxiang781216 previously approved these changes Dec 1, 2025
anchao
anchao previously approved these changes Dec 2, 2025
@simbit18

simbit18 commented Dec 2, 2025

Copy link
Copy Markdown
Contributor

Hi @fdcavalcanti @tmedicci @eren-terzioglu,

I believe we also need to rename this configuration.
https://github.com/fdcavalcanti/nuttx/tree/feature/rename-esp32c3-legacy/boards/risc-v/esp32c3

esp32c3-generic/configs/pm -> esp32c3-devkit/configs/pm

https://github.com/fdcavalcanti/nuttx/tree/feature/rename-esp32c3-legacy/boards/risc-v/esp32c3/esp32c3-generic/configs/pm

there is an error

====================================================================================
Configuration/Tool: esp32c3-devkit/bmp180
2025-12-01 18:21:16
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pullup_en':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:60:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   60 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:60:46: note: each undeclared identifier is reported only once for each function it appears in
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pullup_dis':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:79:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   79 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pulldown_en':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:98:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   98 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pulldown_dis':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:117:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
  117 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:144: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.o] Error 1
make[1]: Target 'libarch.a' not remade because of errors.
make: *** [tools/LibTargets.mk:170: arch/risc-v/src/libarch.a] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  [1/1] Normalize esp32c3-devkit/bmp180
====================================================================================

@fdcavalcanti

Copy link
Copy Markdown
Contributor Author

Hi @fdcavalcanti @tmedicci @eren-terzioglu,

I believe we also need to rename this configuration. https://github.com/fdcavalcanti/nuttx/tree/feature/rename-esp32c3-legacy/boards/risc-v/esp32c3

esp32c3-generic/configs/pm -> esp32c3-devkit/configs/pm

https://github.com/fdcavalcanti/nuttx/tree/feature/rename-esp32c3-legacy/boards/risc-v/esp32c3/esp32c3-generic/configs/pm

there is an error

====================================================================================
Configuration/Tool: esp32c3-devkit/bmp180
2025-12-01 18:21:16
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pullup_en':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:60:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   60 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:60:46: note: each undeclared identifier is reported only once for each function it appears in
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pullup_dis':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:79:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   79 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pulldown_en':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:98:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
   98 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c: In function 'gpio_pulldown_dis':
Error: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.c:117:46: error: 'SOC_GPIO_SUPPORT_RTC_INDEPENDENT' undeclared (first use in this function)
  117 |     if (!rtc_gpio_is_valid_gpio(gpio_num) || SOC_GPIO_SUPPORT_RTC_INDEPENDENT) {
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:144: chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_gpio/src/gpio.o] Error 1
make[1]: Target 'libarch.a' not remade because of errors.
make: *** [tools/LibTargets.mk:170: arch/risc-v/src/libarch.a] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  [1/1] Normalize esp32c3-devkit/bmp180
====================================================================================

Must have been happened after rebase. Will fix, thanks!

- ARCH_CHIP_ESP32C3_LEGACY created
- ARCH_CHIP_ESP32C3_GENERIC is now ARCH_CHIP_ESP32C3

This is part of deprecating esp32c3-devkit as esp32c3-legacy and
using esp32c3-generic (now esp32c3-devkit) instead.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
…cy arch

This change makes the esp32c3-generic the main esp32c3 supported board: esp32c3-devkit.
The now esp32c3-legacy is pure register based and not maintained anymore.
Now, esp32c3-devkit shares the same driver implementation as ESP32-C6 and ESP32-H2.

- esp32c3-devkit  -> esp32c3-legacy
- esp32c3-generic -> esp32c3-devkit

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
Updates the docs to the new esp32c3-devkit naming, after deprecating support
for now esp32c3-legacy.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
@fdcavalcanti
fdcavalcanti dismissed stale reviews from xiaoxiang781216 and tmedicci via 0686d72 December 2, 2025 13:38
@fdcavalcanti
fdcavalcanti force-pushed the feature/rename-esp32c3-legacy branch from 2c6d408 to 0686d72 Compare December 2, 2025 13:38
@xiaoxiang781216
xiaoxiang781216 merged commit 2b39147 into apache:master Dec 3, 2025
24 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Arch: risc-v Issues related to the RISC-V (32-bit or 64-bit) architecture Area: Documentation Improvements or additions to documentation Board: risc-v Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants