Commit Graph

3130 Commits

Author SHA1 Message Date
Jiang Jiang Jian
eabb439dc0 Merge branch 'fix/esp32s31-static-cpu-retention' into 'master'
esp32s31: fix build failure when CONFIG_PM_CPU_RETENTION_STATIC is enabled

Closes IDFGH-17896

See merge request espressif/esp-idf!50458
2026-07-16 11:38:44 +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
He Binglin
a82577b080 Merge branch 'feat/esp_idf_h4_support_bus_lowpower' into 'master'
feat(esp_hw_support): support esp32h4 esp32s31 bus hw low power

Closes PM-812

See merge request espressif/esp-idf!50563
2026-07-15 11:31:26 +08:00
hebinglin
7d6c54996a feat(esp_hw_support): support esp32h4 esp32s31 bus hw low power 2026-07-14 18:14:07 +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
He Binglin
e1b1969b8a Merge branch 'fix/esp_idf_h4h21_ana_wait_short' into 'master'
fix(esp_hw_support): fix xtal unstable when carry 154 and ble cases

See merge request espressif/esp-idf!50249
2026-07-13 11:51:58 +08:00
wuzhenghui
1b842d163e fix(esp_hw_support): update memory pointer checks for SPM support 2026-07-10 14:05:50 +08:00
hebinglin
bd61356c03 feat(esp_hw_support): add analog_wait_ctrl_retention in s2m m2s m2a to reduce retention time 2026-07-09 19:43:35 +08:00
Jiang Jiang Jian
74005f29cf Merge branch 'fix/support_two_MAC_only_esp32s31' into 'master'
fix(esp32s31): restrict UNIVERSAL_MAC_ADDRESSES to Two

See merge request espressif/esp-idf!50389
2026-07-09 17:40:40 +08:00
Jiang Jiang Jian
12dd02396b Merge branch 'bugfix/change_pvt_timer_target_param' into 'master'
feat(pvt): change pvt timer target & limit on master

See merge request espressif/esp-idf!50472
2026-07-09 16:53:01 +08:00
hebinglin
4d383a7d8a fix(esp_hw_support): fix xtal unstable when carry 154 and ble cases 2026-07-09 14:29:12 +08:00
C.S.M
3359f647c5 Merge branch 'feat/h21_temperature_sensor' into 'master'
feat(temperature_sensor): Add temperature sensor support for esp32h21

Closes IDF-11624 and IDF-11625

See merge request espressif/esp-idf!50419
2026-07-08 17:02:58 +08:00
Jack
811c64c17c docs(esp_hw_support): fix IEEE 802.15.4 spelling and EUI-64 byte-range notation
Correct "802.154" to "802.15.4" and change the EUI-64 derivation notation
from base_mac[0:3]/base_mac[3:6] to the inclusive base_mac[0:2]/base_mac[3:5]
in the esp32h2/esp32h21/esp32h4 Kconfig.mac help text and the EN/zh_CN
misc_system_api docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 15:13:52 +08:00
yanzihan@espressif.com
259ecfdbeb feat(pvt): change pvt timer target & limit 2026-07-08 11:15:35 +08:00
Li Shuai
f70ea602fe Merge branch 'feat/idfgh-17859' into 'master'
add kconfig option for REGDMA sleep clock ICG

Closes IDFGH-17859

See merge request espressif/esp-idf!50228
2026-07-07 21:50:10 +08:00
Li Shuai
c84d24f3e5 fix(esp_hw_support): fix missing CPU retention register range macros for ESP32S31 2026-07-07 17:33:20 +08:00
C.S.M
fff527fbd7 feat(temperature_sensor): Add temperature sensor support for esp32h21 2026-07-07 15:05:39 +08:00
Jack
e3bc260178 docs(esp_hw_support): document one-universal-MAC scheme and esp32s31 Four-option constraint
Add help text to the esp32h2/esp32h21/esp32h4 Kconfig.mac explaining
that these chips only consume one universally administered MAC address:
the IEEE 802.154 EUI-64 is derived from the base MAC and MAC_EXT, and
Bluetooth reuses the base MAC as-is (no BT offset, since there is no
Wi-Fi).

Add a matching 1-MAC derivation table and note to misc_system_api.rst
(EN and zh_CN) under a new `.. only:: esp32h2 or esp32h21 or esp32h4`
block, and exclude these targets from the generic 4/2 table.

Add an esp32s31-only note stating that the "Four" option may only be
used with a customer-provided custom base MAC range, since ESP32-S31
only provides two universally administered MAC addresses in eFuse.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 19:00:01 +08:00
Jack
431983a091 fix(esp_hw_support): use one universal MAC address for esp32h2/esp32h21/esp32h4
ESP32-H2/H21/H4 only provide a single universally administered MAC
address in eFuse (MAC_FACTORY), so switch their UNIVERSAL_MAC_ADDRESSES
Kconfig from "Two" to "One" to match the hardware allocation.

This is a functional no-op for MAC generation: the BT offset is only
applied when SOC_WIFI_SUPPORTED, and these chips have no Wi-Fi, so
Bluetooth already reuses the base MAC as-is; the IEEE 802.154 EUI-64 is
derived from the base MAC and MAC_EXT regardless. The only change is
the (otherwise unused) ESP_MAC_UNIVERSAL_MAC_ADDRESSES int value going
from 2 to 1.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 18:08:27 +08:00
Jack
f18f3814cc fix(esp32s31): default UNIVERSAL_MAC_ADDRESSES to Two
ESP32-S31 only provides two universally administered MAC addresses in
eFuse. The previous default of "Four" led to WiFi softap and Ethernet
consuming global MAC slots (base+1/+3) that do not exist on this chip
and could collide with the Bluetooth MAC.

Switch the default to "Two" so Softap and Ethernet fall back to locally
administered MACs derived from the WiFi station and Bluetooth MACs.

The "Four" option is retained for customers who override the base MAC
with a custom range in which four universally administered MAC
addresses are allocated per device; the help text now documents this
constraint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 15:29:37 +08:00
morris
651d6a283f refactor(esp_common): centralize ALIGN_UP/ALIGN_DOWN into esp_macros.h
Remove ~50 duplicate local definitions of ALIGN_UP/ALIGN_DOWN/ALIGN_UP_BY/
ALIGN_DOWN_BY across the codebase and replace them with canonical
ESP_ALIGN_UP/ESP_ALIGN_DOWN from esp_macros.h.
2026-07-06 13:36:06 +08:00
Li Shuai
7d31b82d27 change(esp_pm): add kconfig option for REGDMA sleep clock ICG 2026-07-06 10:34:35 +08:00
Jiang Jiang Jian
c7f22a4508 Merge branch 'fix/fix_sleep_cache_writeback_logic' into 'master'
fix(esp_hw_support): fix esp32s31 sleeping cache writeback logic

Closes PM-807

See merge request espressif/esp-idf!50346
2026-07-03 22:29:21 +08:00
wuzhenghui
18dac21544 fix(esp_hw_support): fix esp32s31 sleeping cache writeback logic 2026-07-03 19:13:05 +08:00
nilesh.kale
dd0cd88756 fix(esp_hw_support): Keep D-ROM PMP entry so newer apps boot on old bootloaders
ESP32-C6/H2 bootloaders <= v5.2.1 configure and lock PMP entries 3-4 as their
D-ROM region; a locked PMP entry cannot be reconfigured until CPU reset.
Commit 366e4ee944 ("Remove redundant PMP entry for ROM region") dropped the
D-ROM entry, and commit d4167fea60 (which also restructured C6/H2 PMP setup)
then renumbered the regions down, placing the application IRAM/DRAM split on
entries 3-4. On an already-deployed older bootloader those entries are locked,
so IRAM never gains execute permission and the chip resets before app_main()
(GitHub issue #18769).

Restore the separate (redundant) D-ROM PMP entry on indices 3-4 so the
application IRAM/DRAM split stays on entries 5-7, clear of the locked range.
This keeps newer applications bootable on older bootloaders.

Closes https://github.com/espressif/esp-idf/issues/18769
2026-07-02 16:56:42 +05:30
Wu Zheng Hui
d8b255280b Merge branch 'fix/fix_mpll_enable_order' into 'master'
fix(esp_hw_support): fix esp32s31 mpll initialization

Closes IDF-15820

See merge request espressif/esp-idf!49927
2026-07-01 16:35:20 +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
Michael (XIAO Xufeng)
c1b218b640 Merge branch 'fix/mmap_cache_flash_wr' into 'master'
fix(mmap): fixed mmap read data wrong when flash being erased/written and cache not disabled

Closes IDFGH-14084

See merge request espressif/esp-idf!29804
2026-06-29 11:44:10 +08:00
Li Shuai
b624a348ad fix(esp_hw_support): apply some suggestions 2026-06-26 15:18:44 +08:00
Li Shuai
a9f278d9ba change(esp_hw_support): maintain runtime retention module information 2026-06-25 15:55:08 +08:00
wuzhenghui
ba1df35672 fix(esp_hw_support): fix esp32s31 mpll initialization 2026-06-25 12:20:57 +08:00
He Binglin
12ad118657 Merge branch 'change/esp_idf_dpd_optimize' into 'master'
Change/esp idf dpd optimize

Closes PM-765 and PM-728

See merge request espressif/esp-idf!49761
2026-06-23 19:55:08 +08:00
hebinglin
a6884a9d4d change(esp_hw_support): support optional delay for DPD entry and exit 2026-06-23 14:54:30 +08:00
wuzhenghui
3a18ec3b7f feat(freertos): make FREERTOS_PORT_THREAD_SAFE_CLAIM optinal 2026-06-22 10:15:32 +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
bbfde331f1 fix(esp_hw_support): fix s31 sleep CPU retention state atomic declaration 2026-06-18 09:41:41 +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
d4e3109c1b feat(esp_hw_support): claim thread-safe in sleep process to avoid deadlock and fastup process 2026-06-18 09:41:41 +08:00
Alexey Lapshin
e389f3e4df Merge branch 'feature/upgrade_toolchain_to_16.1.0_20260609' into 'master'
Upgrade GNU toolchain to 16.1.0_20260609

See merge request espressif/esp-idf!49523
2026-06-18 00:55:07 +04:00
Jiang Jiang Jian
a602e67b0b Merge branch 'feat/update_s31_wifi_lower_power' into 'master'
feat: update_s31_wifi_low_power

See merge request espressif/esp-idf!49753
2026-06-17 20:06:56 +08:00
Jiang Jiang Jian
41a7095015 Merge branch 'feat/support_usb_wakeup_from_light_sleep' into 'master'
feat: support usb wakeup from light sleep

Closes IDF-7212

See merge request espressif/esp-idf!48988
2026-06-17 19:50:11 +08:00
sibeibei
3c98f90da9 update(pmu_param): update mdoem icg func clk
Due to c-channel design, ETM and BUS must be set to 1
2026-06-17 17:25:04 +08:00
sibeibei
9fd50d50ce update(pm_sleep): update modem_wait_target_cycle for s31 2026-06-17 17:19:53 +08:00
Alexey Lapshin
b3c222724c Merge branch 'feat/enable_zcmp_for_c5_c61' into 'master'
feat(soc): esp32c5, esp32c61: enable zc extensions

See merge request espressif/esp-idf!49218
2026-06-17 10:13:30 +04:00
wuzhenghui
61be47b739 feat(esp_hw_support): support PMU clock ICG management for esp32s31 2026-06-17 11:34:37 +08:00
Song Ruo Jing
a66f9463c1 Merge branch 'feature/dma2d_ppa_sleep_retention_support' into 'master'
feat(ppa): add sleep retention support for DMA2D and PPA

Closes IDF-9961, IDF-9930, IDF-14764, and IDF-14770

See merge request espressif/esp-idf!45587
2026-06-16 14:56:19 +08:00
Xiao Xufeng
789ce684c9 fix(mmap): fixed some API read wrong data via mmap when flash being erased/written while XIP on PSRAM
Before:

The cache won't be disabled when XIP on psram. But during flash
erasing/programming, read data will be courrupt.

When XIP in psram is enabled, the image is not mapped to the cache so
usually there will be no flash access. The only way to read from flash
is via the driver or use mmap. The driver has protection during erasing,
while th mmap region not.

Now:

Mmap APIs provide a flag to make mmap->unmap region mutually exclusive
to flash erase/programming when XIP from psram. SPI Flash write APIs
will benefit from this. When the flag is used, no concurrent access to
mapped region will happen while writing; otherwise the cache will be
disable to avoid data corruption.

Most ESP-IDF APIs calls mmap with this flag. As for users calling
mmap-like APIs directly, they can choose whether to enable this by a
flag.

Closes https://github.com/espressif/esp-idf/issues/14897
2026-06-16 01:00:43 +08:00