Commit Graph
572 Commits
Author SHA1 Message Date
Jiang Jiang Jian f409428bf3 Merge branch 'bugfix/esp32c5_encrypted_flash_write_v6.0' into 'release/v6.0'
fix(spi_flash): Add CPU frequency switching during flash encrypted write (v6.0)

See merge request espressif/esp-idf!44304
2025-12-21 15:28:33 +08:00
Chen Jichang 10c473fbbd feat(hal): graudate the RMT hal driver into a new component 2025-12-17 22:31:25 +08:00
morris 311bec8f82 Merge branch 'fix/spi_edma_and_hal_component_6.0' into 'release/v6.0'
feat(driver_spi): split esp_hal_gpspi and support master driver edma (v6.0)

See merge request espressif/esp-idf!44222
2025-12-17 14:54:05 +08:00
Xiao Xufeng ae7124abe3 feat(spi_flash): implement dynamic CPU frequency switching workaround for encrypted writes
This commit implements a workaround that allows ESP32-C5 to run at 240MHz CPU frequency
normally, while automatically reducing CPU frequency during encrypted flash writes to
ensure correct operation. The frequency limit is chip revision dependent:
- v1.2 and above: limited to 160MHz during encrypted writes
- v1.0 and below: limited to 80MHz during encrypted writes

Key implementation details:
- Frequency limiting is triggered automatically when esp_flash_write_encrypted() is called
- Uses start() flags (ESP_FLASH_START_FLAG_LIMIT_CPU_FREQ) to integrate with OS layer
- Works with both PM enabled and disabled configurations
- Frequency is automatically restored after encrypted write completes
- For ESP32-C5 with 120MHz flash, Flash clock and timing registers are adjusted when
  CPU frequency is reduced to 80MHz
- SPI1 timing registers are configured during frequency switching since encrypted writes
  use SPI1 and must work correctly at reduced CPU frequencies

Code improvements:
- Use SOC_MSPI_FREQ_AXI_CONSTRAINED capability macro instead of hardcoded chip checks
- Control workaround via Kconfig (CONFIG_PM_WORKAROUND_FREQ_LIMIT_ENABLED) instead of
  hardcoded macros
- Add comprehensive test cases covering various PM configurations and edge cases

This workaround enables ESP32-C5 applications to benefit from 240MHz CPU performance
while maintaining reliable encrypted flash write functionality.
2025-12-17 01:21:45 +08:00
wanckl d12f941787 feat(driver_spi): split spi hal component 2025-12-16 20:38:09 +08:00
Chen Chen 1b015d22eb refactor(esp_system): clear dependency on hal components 2025-12-16 09:11:59 +08:00
Island 068473abc8 Merge branch 'fix/add_soc_caps_for_pawr_feat_v6.0' into 'release/v6.0'
fix(ble): add soc caps feat for PAwR (v6.0)

See merge request espressif/esp-idf!44151
2025-12-15 14:23:28 +08:00
sibeibei 7d013fb36d fix: add mutex protection for software trigger RegDMA start to avoid data races 2025-12-11 20:31:50 +08:00
Jin Chen 77ef80081d fix(ble): add soc caps config for pawr feat on ESP32C5
(cherry picked from commit 19130df4f3)

Co-authored-by: cjin <jinchen@espressif.com>
2025-12-11 16:23:22 +08:00
morris 11ce7a9011 refactor(soc): remove soc_caps_full.h 2025-12-11 10:29:01 +08:00
laokaiyao 841cb4caa1 feat(hal): graudate the adc/dac hal driver into a new component 2025-12-11 10:27:00 +08:00
laokaiyao 55537c99db feat(hal): graudate the ana_cmpr hal driver into a new component 2025-12-11 10:27:00 +08:00
laokaiyao b8824d2d1a refactor(parlio): refactor of the private parlio caps 2025-12-11 10:26:07 +08:00
laokaiyao e964c74618 feat(hal): graudate the parlio hal driver into a new component 2025-12-11 10:26:05 +08:00
laokaiyao 73ebd544fd refactor(i2s): refactor of the private i2s caps 2025-12-11 10:25:42 +08:00
laokaiyao fd918efe43 feat(hal): graudate the I2S hal driver into a new component 2025-12-11 10:25:40 +08:00
morris 37c614d626 feat(twai): graduate the hal drivers into esp_hal_twai component 2025-12-10 13:56:47 +08:00
Song Ruo Jing 4d3a9b0157 refactor(esp_hal_gpio): move some caps definitions to esp_hal_gpio 2025-12-08 14:33:26 +08:00
Song Ruo Jing 62899cbba6 refactor(gpio): split GPIO HAL into separate component
cleaned up some includes in GPIO peripheral files
2025-12-08 14:33:26 +08:00
morris 69a76c5170 refactor(hal_dma): move bitscrambler from hal component
because bitscrambler can't live without DMA, it's highly binded with the
GDMA peripheral.
2025-11-27 16:06:52 +08:00
Jiang Jiang Jian 34b0344d32 Merge branch 'fix/backport_some_wifi_fixes_v6.0' into 'release/v6.0'
bugfix(wifi): backport some wifi fixes v6.0

See merge request espressif/esp-idf!43455
2025-11-25 10:02:59 +08:00
morris 72159c2361 Merge branch 'feat/esp_hal_pcnt_v6.0' into 'release/v6.0'
feat(hal): graudate the PCNT hal driver into a new component (v6.0)

See merge request espressif/esp-idf!43444
2025-11-24 22:35:51 +08:00
Jiang Jiang Jian ee4be1af57 Merge branch 'feat/flash_enc_using_key_manager_v6.0' into 'release/v6.0'
Support Flash Encryption using Key Manager (v6.0)

See merge request espressif/esp-idf!43459
2025-11-24 10:35:48 +08:00
Alexey Gerenkov d8e47c5e43 Merge branch 'feature/dynamic_flags_in_toolchain_cmake_v6.0' into 'release/v6.0'
feat(build): propagate compiler flags from files to toolchain.cmake (v6.0)

See merge request espressif/esp-idf!43499
2025-11-21 16:19:34 +08:00
Chen Jichang c84773f307 feat(hal): graudate the PCNT hal driver into a new component 2025-11-21 11:22:41 +08:00
morris 8242e6914b Merge branch 'feature/ledc_etm_support_v6.0' into 'release/v6.0'
feat(ledc): add ETM support for LEDC peripheral (v6.0)

See merge request espressif/esp-idf!43401
2025-11-21 10:38:11 +08:00
harshal.patil 172f904e23 feat(bootloader_support): Support FE XTS-AES-256 using Key Manager for ESP32-C5 2025-11-20 11:37:07 +05:30
harshal.patil c1503cd847 feat(bootloader_support): Support Flash Encryption using Key Manager 2025-11-20 11:37:05 +05:30
Song Ruo Jing c1209fc2ac refactor(gpio): remove some useless macros from io_mux_reg.h 2025-11-19 12:17:52 +08:00
Alexey Lapshin 5f9e3bffe2 feat(build): add COMPILER_ENABLE_RISCV_ZCMP option
Applicable for chips affected by interrupt issue:
  - ESP32C5
  - ESP32C61
  - ESP32H4

For all other chips that support the ZCMP extension without issues,
it will be enabled unconditionally.
2025-11-19 01:12:40 +07:00
muhaidong cd2187e026 docs(wifi): update wifi fragment doc 2025-11-18 11:48:28 +08:00
morris a5a355d17f refactor(etm): move etm_periph.c to hal component 2025-11-16 22:13:30 +08:00
Song Ruo Jing 68f9d729cf feat(ledc): add ETM support for LEDC peripheral
Closes https://github.com/espressif/esp-idf/issues/11855
2025-11-14 20:58:17 +08:00
morris cc5bad7e39 Merge branch 'feature/esp32p4_eco5_io_hold_v6.0' into 'release/v6.0'
feat(gpio): add IO hold support for Deep-sleep for ESP32-P4 ECO5 (v6.0)

See merge request espressif/esp-idf!43307
2025-11-14 15:51:25 +08:00
Mahavir Jain 145de94717 Merge branch 'fix/axi_dma_ext_mem_alignment_c5_v6.0' into 'release/v6.0'
Align AES and SHA buffers to 16 when SPIRAM encryption is enabled (v6.0)

See merge request espressif/esp-idf!43260
2025-11-13 13:27:04 +05:30
Mahavir Jain 59895d5956 Merge branch 'feature/enable_ecc_const_time_support_for_esp32p4_eco5_v6.0' into 'release/v6.0'
feat(hal): add support for ECC constant time function in ESP32-P4 ECO5 (v6.0)

See merge request espressif/esp-idf!43015
2025-11-13 12:33:19 +05:30
Song Ruo Jing e28ff72154 feat(gpio): add IO hold support for Deep-sleep for ESP32-P4 ECO5 2025-11-12 22:28:03 +08:00
morris c4f9d7177c Merge branch 'refactor/mcpwm_independent_hal_v6.0' into 'release/v6.0'
refactor(mcpwm): make mcpwm_hal independent & cleanup soc_caps (Backport v6.0)

See merge request espressif/esp-idf!43103
2025-11-12 14:39:00 +08:00
harshal.patil 10cefdd975 fix(mbedtls/port): Align AES and SHA DMA buffers to 16 when SPIRAM encryption is enabled
- Targets that support GDMA and MSPI encryption module need data and addresses aligned to 16
2025-11-11 17:39:39 +05:30
Chen Chen ed64a767ef refactor(mcpwm): make mcpwm_hal independent & cleanup soc_caps 2025-11-10 10:47:10 +08:00
hebinglin 585c8302b1 fix(esp_hw_support): resolved setting mie to disable interrupts failed in sleep flow 2025-11-04 21:09:32 +08:00
nilesh.kale 52b1f896cb feat: added test_cases for ECC P-384 curve operations 2025-10-31 10:38:39 +05:30
morris d4d8b09ced feat(hal):graudate the LCD hal driver into a new component
- Introduced new HAL components for LCD and MIPI DSI, including:
  - `lcd_hal.c` and `lcd_hal.h` for LCD hardware abstraction layer.
  - `mipi_dsi_hal.c` and `mipi_dsi_hal.h` for MIPI DSI hardware
abstraction layer.
  - Peripheral connection definitions in `lcd_periph.c` and
`lcd_periph.h`.
  - Added necessary types and utility functions in `lcd_types.h` and
`mipi_dsi_types.h`.

- Updated CMakeLists to include the new HAL components in the build
system.
- Removed legacy references to LCD and MIPI DSI in the HAL and SOC
CMakeLists.
2025-10-22 17:00:18 +08:00
morris 2de3be7300 feat(dma): graduate the dma driver into a single component 2025-10-19 22:06:46 +08:00
morris ab149384e1 Merge branch 'refactor/clean_soc_caps_gptimer' into 'master'
refactor(hal): graduate watch dog hal driver into a new component: esp_hal_wdt

Closes IDF-14091

See merge request espressif/esp-idf!42338
2025-10-15 17:18:20 +08:00
morris e8de5b5a95 refactor(gptimer): clean up SOC capabilities for GPTIMER and Timer Group
- Remove GPTIMER and TIMG related definitions from soc_caps_full.h files
- Move timer peripheral definitions to appropriate HAL layer files
- Update references across components to use proper HAL abstractions
- Consolidate timer group and GPTIMER capabilities organization
- Ensure consistent timer configuration across all ESP32 variants

This refactoring improves the separation of concerns between SOC
capabilities and HAL implementations for timer-related functionality.
2025-10-14 11:44:38 +08:00
morris 56c3dc4755 feat(wdt): graduate watch dog hal driver into a new component: esp_hal_wdt 2025-10-14 11:44:32 +08:00
Song Ruo Jing 9056974051 feat(gpio): ESP32P4 ECO5 GPIO related update 2025-10-13 11:48:47 +08:00
Chen Jichang d0e24e4a81 refactor(hw_support): remove unused periph_module_t members 2025-10-09 15:27:20 +08:00
laokaiyao fec96035be refactor(i2s): replace the enum i2s_port_t with int type 2025-10-01 21:53:55 +08:00