Li Shuai
6e9885f7e6
Merge branch 'bugfix/idfgh-16634' into 'master'
...
remove the configurable constraint for sleep memory usage optimization option
Closes IDFGH-16634 and IDF-13780
See merge request espressif/esp-idf!42882
2025-12-31 12:57:50 +08:00
Li Shuai
a10fbdba4c
change(esp_pm): add dependencies on the rtc clock and rtc_time modules for power managment module
2025-12-27 12:34:17 +08:00
Xiao Xufeng
230ee88d99
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-16 17:42:44 +08:00
wuzhenghui
b71a6ce55a
change(esp_hw_support): update TOP pd sleep dependency
...
Disable peripheral powerdown lightsleep if PSRAM if enabled on P4 v3
Force powerdown Flash if peripheral power down lightsleep is enabled
2025-10-20 15:56:15 +08:00
wuzhenghui
065dd70056
change(esp_hw_support): move ESP_SLEEP_POWER_DOWN_CPU to Kconfig
2025-10-14 16:33:30 +08:00
wuzhenghui
af1c8a568d
feat(esp_hw_support): update cpu_pd support for esp32p4 v3.0
2025-10-14 16:33:28 +08:00
Li Shuai
b43f0ddc70
feat(sleep): Modify the build system
2025-08-27 09:50:21 +08:00
Song Ruo Jing
9a2984b4c0
fix(gpio): fix ESP32 GPIO sleep mode handling
...
The previous workaround does not work, the backup/restore should apply to RTC IO registers.
Also moved the workaround to sleep_gpio.c to avoid gpio hal using kconfig.
2025-08-05 21:02:09 +08:00
Li Shuai
f8832b583c
Revert "fix(esp_pm): esp32c5 eco2 disable top pd to avoid mem being changed during sleep"
...
This reverts commit 8c2ea986b4 .
2025-06-04 14:15:16 +08:00
Li Shuai
8c2ea986b4
fix(esp_pm): esp32c5 eco2 disable top pd to avoid mem being changed during sleep
2025-05-29 20:14:13 +08:00
Li Shuai
0cb211489f
fix(ci): fix ci build error
2025-04-17 22:06:21 +08:00
Li Shuai
b7e26d5546
change: power management iram memory usage optimization is only effective for esp32c2
2025-04-17 22:01:10 +08:00
Marius Vikhammer
55be8bdc0d
feat(esp_timer): added kconfig option for placing IRAM code into flash
2025-03-18 15:23:43 +08:00
wuzhenghui
6bd6be3ed8
fix(esp_hw_support): warning instead of error when enabling uart/gpio wakeup in pd_top sleep
2025-02-27 16:15:36 +08:00
wuzhenghui
0f69fda3d5
change(doc): added more usage notes about PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP
2025-02-19 20:54:21 +08:00
Lou Tianhao
4393343ac9
fix(ci): some actions taken to pass ci
2024-08-29 14:15:41 +08:00
wuzhenghui
a68668c392
change(esp_hw_support): do timergroup watchdogs retention by needs
2024-05-28 15:17:19 +08:00
gaoxu
cbef285352
feat(pm): add SOC_PM_SUPPORTED in soc caps
2024-05-11 10:51:17 +08:00
gaoxu
3db559ab21
feat(gpio): update gpio docs on ESP32C5 MP version
2024-05-11 10:49:42 +08:00
gaoxu
605f2309bf
feat(gpio): add gpio support on ESP32C5 MP version
2024-04-26 12:27:53 +08:00
wuzhenghui
01dce77fa7
feat(esp_pm): fix esp32p4 cpu powerdown kconfig dependency error
2024-04-23 11:54:45 +08:00
wuzhenghui
f1beed90ff
feat(esp_hw_support): support esp32p4 sleep clock retention
2024-03-28 19:18:24 +08:00
wuzhenghui
bbc8fd5c9c
feat(esp_hw_support): support esp32p4 sleep cpu retention
2024-03-15 18:13:25 +08:00
Jakub Kocka
0b00e49ac5
fix: Fixed KConfig files that were not succesfully checked
2024-02-02 14:13:45 +01:00
wuzhenghui
232187d12c
change(esp_pm): improve POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP description
...
Rename PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP to PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP
and improve the description for it
2023-11-13 16:32:25 +08:00
wuzhenghui
97e001d603
fix(esp_hw_support): fix pm tests failure caused by non-iram safe test code
2023-10-17 20:56:43 +08:00
Lou Tianhao
450e685cb7
feat(PowerManagement/lightsleep): Support ESP_SLEEP_EVENT_CALLBACKS
2023-09-25 15:39:18 +08:00
Lou Tianhao
a28a09855d
feat(PowerManagement/lightsleep): Support PM_LIGHT_SLEEP_CALLBACKS
2023-09-25 15:39:12 +08:00
Armando
7dbd3f6909
feat(ci): Enable p4 example, test_apps and unit tests CI build
2023-08-24 12:51:19 +08:00
wuzhenghui
a5c992c8af
fix(esp_pm): fix PM_SLP_IRAM_OPT/PM_RTOS_IDLE_OPT feature
...
- Fix flash accessed code to resolve issues with PM_SLP_IRAM_OPT/PM_RTOS_IDLE_OPT enabled
2023-07-14 21:21:19 +08:00
Lou Tianhao
7fd74057a3
example: bringup light sleep example for esp32h2
2023-06-26 21:05:16 +08:00
Lou Tianhao
6ea441c815
Power Management: support CPU powered down in light sleep for esp32h2
2023-06-26 20:57:55 +08:00
Lou Tianhao
63d32ab620
Power Management: support DFS and PMU feature for esp32h2
2023-06-26 20:57:55 +08:00
wuzhenghui
388746ca31
Kconfig: add more help info for pm related options help
2023-05-29 16:35:03 +08:00
wuzhenghui
dcab6368ce
feature: support configuration of sleep clock calibration frequency
2023-05-04 12:09:26 +08:00
wuzhenghui
332d6fddb9
esp_pm: check sleep retention frame integrity in ci UT
2023-04-11 11:18:52 +08:00
wuzhenghui
fcf0498da8
esp_pm: update doc for PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP
2023-03-30 10:33:47 +08:00
fuzhibo@espressif.com
e252748d92
periph retention: runtime critical digital peripherals sleep retention support
2023-02-15 11:46:40 +08:00
Li Shuai
68594abe05
sleep: light sleep supported for esp32c6
2023-01-31 22:12:58 +08:00
Li Shuai
0f6cda1dd3
Power Management: support DFS
2023-01-31 22:12:27 +08:00
Cao Sen Miao
94120b82c2
esp32h2: add build test
2023-01-17 10:29:04 +08:00
Song Ruo Jing
2557e24a28
ci: Enable esp32c6 example, test_apps, and unit tests CI build stage
2022-11-01 11:23:21 +08:00
Darian Leung
546a7fc495
esp_pm: Disable esp_pm when SMP FreeRTOS is enabled
...
SMP FreeRTOS currently does not support power management yet. This
commit makes SMP FreeRTOS and esp_pm mutually exclusive.
2022-06-15 16:17:59 +08:00
Marius Vikhammer
edb76f14d6
esp_timer: remove legacy ESP32 FRC timer implementation.
2022-02-10 15:17:49 +08:00
xiongweichao
422cf3cf37
Fix crash caused by bluetooth high level interrupt
2021-11-10 16:11:10 +08:00
Li Shuai
ccf1a9a1fc
light sleep: add i/d-cache tagmem retention support for esp32s3
2021-08-27 11:11:09 +08:00
Li Shuai
03746de96f
light sleep: add cpu power down support for esp32s3
2021-08-27 11:11:06 +08:00
Renz Bagaporo
586023790e
esp_system: move sleep modes to esp_hw_support, power down light sleep to esp_pm
2021-04-07 17:53:37 +08:00
Li Shuai
1595973fe8
light sleep: some default parameters optimization
2021-03-10 18:22:41 +00:00
ninh
27aa6c289f
components/pm: Add slp gpio configure workaround
2021-01-15 15:34:45 +08:00