Commit Graph

789 Commits

Author SHA1 Message Date
Ivan Grokhotkov
f1abda1535 Merge branch 'feature/cache_access_counters' into 'master'
feat(esp_hw_support): add cache access counter API

See merge request espressif/esp-idf!50600
2026-09-14 17:21:49 +02:00
morris
9e2cd97330 refactor(cache): move cache profile counter support to hal
Move the cache profile counter type definitions to hal/cache_types.h so
that
esp_cache_cnt.h can use them without depending on the public soc header
soc/cache_periph.h (which CI rejects as non-public).

The remaining cache_periph.h header and its per-target cache_periph.c
sources
are moved from the soc component into the hal component, with the
sources
organized per target directory as usual for the hal component.

Removes the soc/cache_periph.h dependency from esp_cache_cnt.h and
hal/cache_ll.h by using hal/cache_periph.h instead.
2026-09-11 11:30:29 +02:00
Ivan Grokhotkov (bot)
16078650c8 feat(esp_hw_support): add cache access counter API 2026-09-11 11:30:28 +02:00
Tomas Rezucha
994d2b4203 fix(usb_phy): Fixed USB PHY clock during low-power modes
On ESP32-S3, USB PHY is clocked from BBPLL,
however if the BBPLL is not used as CPU clock source,
the power management unit can turn it off.
This commit registers USB as BBPLL consumer so it is not turned off.

Closes https://github.com/espressif/esp-idf/issues/15451
2026-09-08 14:47:25 +02:00
wuzhenghui
11c590c053 change(esp_hw_support): optimize retention driver RAM cost 2026-08-31 15:26:18 +08:00
wuzhenghui
a3b62bc3c4 fix(esp_hw_support): fix ESP32-S31 CPU/DFS clk_tree refcount and keep clock source during DFS 2026-08-20 16:00:52 +08:00
cjin
5533d153f5 feat(sleep): applied regi2c conflict process at regdma rf 2026-08-14 16:29:55 +08:00
Sudeep Mohanty
9ab3da0da8 feat(freertos): speed up SMP critical section enter and exit
The critical section port already disables interrupts and reads the core id for
the whole section, but spinlock_acquire()/spinlock_release() then disabled
interrupts again to the same level and re-read the core id register.

Add spinlock_acquire_impl()/spinlock_release_impl(), which take a caller-supplied
owner id and skip interrupt management, and reuse them from
spinlock_acquire()/spinlock_release() to avoid duplicated code. The Xtensa and
RISC-V ports now read the core id once and call the impl variants, removing one
core id read and one interrupt mask/restore per critical section enter and exit.

Closes https://github.com/espressif/esp-idf/issues/18908
2026-08-06 12:43:28 +02:00
hebinglin
57daf0a8f7 feat(esp_hw_support): add backup clk icg support 2026-07-29 17:09:34 +08:00
hebinglin
a4889bd73d change(esp_hw_support): refactor pmu/esp_sleep param struct 2026-07-29 15:23:09 +08:00
hebinglin
33591e16b6 change(esp_hw_support): split the sleep_clock_icg APIs into sleep_clock_icg.c 2026-07-29 15:23:09 +08:00
hebinglin
d6b0a50c5d change(esp_hw_support): add esp sleep lock APIs for use in the sleep flow 2026-07-29 15:23:09 +08:00
wuzhenghui
11ccd4c304 feat(esp_hw_support): support esp32s31 clock tree management 2026-07-22 16:32:12 +08:00
cjin
63565f7f02 feat(modem): add phy retention related api 2026-07-17 11:04:26 +08:00
cjin
23239e4d99 feat(phy): add skip list to sleep phy link context and fix deinit crash 2026-07-17 11:04:26 +08:00
cjin
0d8ef62e8f feat(sleep): add config SOC_PM_SUPPORT_REGDMA_TRIGGERED_PHY 2026-07-17 11:04:26 +08:00
cjin
6ec7a718f9 feat(sleep_modem): allow multi modem to enable rf with regdma 2026-07-17 11:04:26 +08:00
cjin
226f11da96 feat(modem): rename the sleep modem functions 2026-07-17 11:04:26 +08:00
cjin
62397932f9 feat(phy): added skip method for phy retention list 2026-07-17 11:04:26 +08:00
cjin
d151c1804b feat(phy): rename sleep modem state to sleep phy 2026-07-17 11:04:26 +08:00
morris
50bce17e15 Merge branch 'refactor/move_etm_retention_to_driver_layer' into 'master'
refactor(etm): move ETM retention info from HAL to driver layer

See merge request espressif/esp-idf!50669
2026-07-15 12:07:17 +08:00
He Binglin
fcf2df659d Merge branch 'feat/esp_idf_h4_cut_m2a_analog_wait' into 'master'
Feat/esp idf h4 cut m2a analog wait

See merge request espressif/esp-idf!49061
2026-07-15 11:44:05 +08:00
hebinglin
e71b30c279 feat(esp_hw_support): add analog_wait calibration in sleep flow for h4 2026-07-14 17:13:32 +08:00
morris
bedeedafec refactor(etm): move ETM retention info from HAL to driver layer
Move soc_etm_retention_desc_t type definition and soc_etm_retention_info
data from hal component to esp_hw_support component, following the
pattern of other peripheral retention data (e.g. MWDT).

- Create esp_private/etm_retention.h with type and extern declaration
- Create port/<target>/etm_retention.c for each target with retention data
- Remove hal/<target>/etm_periph.c and hal/include/hal/etm_periph.h
- Update esp_etm.c to include the new header
- Update CMakeLists.txt in both components
2026-07-13 15:37:52 +08:00
wuzhenghui
1b842d163e fix(esp_hw_support): update memory pointer checks for SPM support 2026-07-10 14:05:50 +08:00
wuzhenghui
18dac21544 fix(esp_hw_support): fix esp32s31 sleeping cache writeback logic 2026-07-03 19:13:05 +08:00
morris
aa4532395a fix(esp_crc): clarify CRC helper usage documentation
Document the implicit bitwise inversion behavior in the CRC ROM wrappers
and add regression tests covering continuous-buffer examples.

Closes https://github.com/espressif/esp-idf/issues/18715
2026-06-30 15:37:06 +08:00
Li Shuai
d69aed64ad Merge branch 'feat/pm-788' into 'master'
support sleep retention destroy callback

Closes PM-788

See merge request espressif/esp-idf!49568
2026-06-30 11:55:57 +08:00
Li Shuai
b624a348ad fix(esp_hw_support): apply some suggestions 2026-06-26 15:18:44 +08:00
Wu Zheng Hui
7e4773ef38 Merge branch 'feat/support_esp32s31_icg_control' into 'master'
feat(esp_hw_support): support PMU clock ICG management for esp32s31

Closes PM-760

See merge request espressif/esp-idf!48863
2026-06-18 16:21:32 +08:00
wuzhenghui
0c7caf79b5 feat(esp_hw_support): implement software CPU retention synchronization for SMP sleep modes 2026-06-18 09:41:41 +08:00
wuzhenghui
61be47b739 feat(esp_hw_support): support PMU clock ICG management for esp32s31 2026-06-17 11:34:37 +08:00
Li Shuai
4011a4de74 feat(esp_hw_support): support sleep retention destroy callback 2026-06-11 11:32:31 +08:00
JiangGuangMing
6020aec177 fix(usb): address wakeup example review comments
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 18:59:24 +08:00
Jiang Guang Ming
d65b467108 fix(usb): address usb wakeup review comments 2026-06-10 15:14:37 +08:00
JiangGuangMing
87b0c4c40d feat(sleep/usb): support usb as wakeup source from light sleep 2026-06-08 16:31:21 +08:00
Sudeep Mohanty
8a2e56810c Merge branch 'task/v2_aware_component_and_test_gates' into 'master'
fix(components): linux host-build failure fixes+ disable esp_tee in buildv2 + esp_hw_support and xtensa fixes

See merge request espressif/esp-idf!48743
2026-05-26 13:09:58 +02:00
Sudeep Mohanty
301eeba878 Merge branch 'task/buildv2_hygiene_and_dep_declarations' into 'master'
fix(components): generic dep-declaration and scope-leakage hygiene exposed by cmakev2

See merge request espressif/esp-idf!48739
2026-05-26 10:18:22 +02:00
Sudeep Mohanty
7b294c4ab9 fix(esp_hw_support): move linux spinlock.h to esp_hw_support/include/linux
Moved the linux spinlock.h stub into esp_hw_support/include/linux.
esp_hw_support's INCLUDE_DIRS already places include/linux before
include, so the correct include files are picked up for the linux
target.

- Drop the FreeRTOS-Kernel-SMP linux spinlock.h duplicate.
- rv_decode_test: use PRIV_REQUIRES esp_hw_support instead of
  hardcoding component include paths.
2026-05-25 15:24:25 +02:00
morris
7ce07cb910 Merge branch 'refactor/enable_io_mux_clock' into 'master'
fix(iomux): move source gating to IOMUX consumers

Closes IDF-12975 and IDF-12852

See merge request espressif/esp-idf!48530
2026-05-25 12:31:50 +08:00
Aditi
18cbdbf2b1 feat(esp_wifi): Add improvements for privacy extension
1) Add support for MAC randomization in Active scan and connect
  2) Add support for randomizaton of sequence numbers
  3) Add support for randomization of dialog token for GAS frames
2026-05-25 11:22:45 +08:00
morris
38c4f27102 fix(iomux): move clock source gating to IOMUX consumers
Remove io_mux_set_clock_source internal source enabling and make SDM,
ana_cmpr, and gpio glitch filter drivers explicitly manage clock source
enable/disable with safe cleanup paths.
2026-05-22 19:10:08 +08:00
hebinglin
b160ba668d change(esp_hw_support): add i2c_mst_st_map and lp_apb_st_map in h4 i2c_mst enable way 2026-05-22 15:18:31 +08:00
He Binglin
9c3a6b3f5d Merge branch 'feat/esp_idf_h4_optimize' into 'master'
Feat/esp idf h4 retention and active clk power optimize

Closes PM-746, PM-745, and PM-736

See merge request espressif/esp-idf!48319
2026-05-22 10:55:43 +08:00
Ondrej Kosta
fc41e66e47 Merge branch 'feat/gmac_s31' into 'master'
Feat/gmac s31

Closes IDF-14730

See merge request espressif/esp-idf!48029
2026-05-21 22:51:44 +08:00
hebinglin
1c279178fa feat(esp_hw_support): support bbpll pd in modem state 2026-05-21 20:03:45 +08:00
hebinglin
5710783a89 feat(esp_hw_support): support entry 2 xtalx2 power pu in esp32h4 2026-05-21 19:55:37 +08:00
Sudeep Mohanty
fbddd41690 fix(esp_hw_support): use elif __riscv guard in spinlock.h
spinlock.h used #else to include riscv/rv_utils.h for all non-Xtensa
targets. On Linux host (neither __XTENSA__ nor __riscv defined), this
pulls in a non-existent header. Change to #elif __riscv, matching
esp_cpu.h's existing pattern.
2026-05-21 10:05:48 +02:00
Ondrej Kosta
c7d6c41198 feat(clk_tree): support derived PLL clocks
Add a generic derived-PLL clock engine to esp_clk_tree_common that
handles acquire/release, mux selection, and divider programming for
target-defined derived clocks. Per-target descriptors (ESP32-P4,
ESP32-S31) plug into the engine via
esp_clk_tree_get_derived_clk_desc().
2026-05-21 15:59:42 +08:00
Li Shuai
7b541be9d5 add comment for sleep_retention_module_detach interface 2026-05-21 11:46:16 +08:00