Commit Graph

65 Commits

Author SHA1 Message Date
Konstantin Kondrashov
ff53d5d32c Merge branch 'feature/iram_esp_system' into 'master'
feat(esp_system): Adds Kconfigs to place code in IRAM

Closes IDF-11426

See merge request espressif/esp-idf!38292
2025-06-24 05:46:09 +08:00
Konstantin Kondrashov
ff0408c087 feat(esp_system): Adds Kconfigs to place code in IRAM 2025-06-23 13:23:33 +03:00
yanzihan@espressif.com
08eea3c058 feat(esp_hw_support): use pvt to auto control digital ldo and rtc ldo for esp32p4 2025-06-23 00:28:53 +08:00
harshal.patil
46225a4026 feat(esp_psram): Add a new API to just detect and enable the PSRAM
- esp_psram_chip_init() just detects and does basic initialisations of PSRAM
- esp_psram_init() initialises and maps/loads the PSRAM pages
2025-04-29 11:48:27 +05:30
Mahavir Jain
55a2ad3df3 fix(esp_system): reset crypto peripherals before device restart
This change addresses a rare but critical issue observed on certain
ESP32-C3 and ESP32-S3 devices, where secure boot verification
intermittently fails due to improper cleanup of crypto peripherals
during a restart.

Background – Restart Behavior in IDF
------------------------------------
In ESP-IDF, when the device restarts (via `esp_restart()` or due to a
panic/exception), a partial peripheral reset is performed followed by a
CPU reset. However, until now, crypto-related peripherals were not
included in this selective reset sequence.

Problem Scenario
----------------
If a restart occurs while the application is in the middle of a bignum
operation (i.e., using the MPI/Bignum peripheral), the ROM code may
encounter an inconsistent peripheral state during the subsequent boot.
This leads to transient RSA-PSS secure boot verification failures.

Following such a failure, the ROM typically triggers a full-chip reset
via the watchdog timer (WDT). This full reset clears the crypto
peripheral state, allowing secure boot verification to succeed on the
next boot.

Risk with Aggressive Revocation
-------------------------------
If secure boot aggressive revocation is enabled (disabled by default in
IDF), this transient verification failure could mistakenly lead to
revocation of the secure boot digest.

If your product configuration has aggressive revocation enabled,
applying this fix is strongly recommended.

Frequency of Occurrence
-----------------------
The issue is rare and only occurs in corner cases involving
simultaneous use of the MPI peripheral and an immediate CPU reset.

Fix
---
This fix ensures that all crypto peripherals are explicitly reset prior
to any software-triggered restart (including panic scenarios),
guaranteeing a clean peripheral state for the next boot and preventing
incorrect secure boot behavior.
2025-04-15 19:06:26 +05:30
Wu Zheng Hui
38fcc41ff2 Merge branch 'feat/enable_esp32p4_auto_clock_gate' into 'master'
feat(esp_hw_support): enable auto clock gating for multi peripherals

See merge request espressif/esp-idf!37986
2025-04-09 21:42:04 +08:00
wuzhenghui
6ca0614e89 feat(esp_hw_support): enable auto clock gating for multi peripherals 2025-04-09 17:07:49 +08:00
Chen Jichang
2cbc297969 refactor(gptimer): use group_id in clock ctrl functions 2025-04-08 10:20:48 +08:00
morris
fbcbefe9f0 fix(dma): abort the axi dma gracefully on CPU SW reset 2025-01-09 17:12:43 +08:00
C.S.M
5e4fd8ee52 refactor(bod): Move brownout handling file from esp_system to esp_hw_support 2025-01-08 14:41:37 +08:00
Erhan Kurubas
88b137c121 fix(system): avoid unexcpected hp_sys_wdt reset 2024-12-17 18:29:45 +03:00
Song Ruo Jing
c5ab71e3db fix(esp_system): still gate hp periph clk on core/system reset for power saving
Leaving only hp periph clk source should not be gated on core/system reset
2024-12-12 20:45:06 +08:00
Song Ruo Jing
7b852faf66 fix(esp_system): hp periph clk should not be gated on core/system reset 2024-11-29 21:42:06 +08:00
Song Ruo Jing
aa35807198 fix(clk): add an inevitable kconfig option to be selected to use rc32k 2024-11-26 21:20:32 +08:00
morris
83c9cffd2b change(soc): vectorize bitscrambler regsiter layout 2024-11-14 17:26:57 +08:00
Jeroen Domburg
ab75a94877 feat(bitscrambler): add hal driver support 2024-11-14 17:26:57 +08:00
Marius Vikhammer
f8ddcee8cd Merge branch 'refactor/cache_err_panic' into 'master'
refactor(panic): refactor and unify cache panic errors

See merge request espressif/esp-idf!34382
2024-11-13 10:19:38 +08:00
wuzhenghui
9a41a61dd5 fix(esp_system): writeback L1 Dcache before disable L2 if PSRAM used 2024-11-08 18:44:14 +08:00
Marius Vikhammer
9c5dde5536 refactor(panic): refactor and unify cache panic errors 2024-11-07 11:39:40 +08:00
C.S.M
75aea08703 fix(bod): Remove config for bod on p4 v0.x 2024-11-05 10:39:28 +08:00
wuzhenghui
7fdfa6c227 fix(esp_hw_support): disable unused clock sources after rtc clock switching complete 2024-10-28 15:57:26 +08:00
C.S.M
c2d1f7a48c feat(esp32p4): Introduce p4 eco2 configuration 2024-10-12 15:08:24 +08:00
wuzhenghui
04b2afed44 change(esp_hw_support): switch lp_cpu power mode with clock src to save lp_cpu working power 2024-09-26 11:23:06 +08:00
Marius Vikhammer
564d777018 Merge branch 'feature/lp_core_40_mhz' into 'master'
feat(system): support choosing xtal as rtc-fast clock src on P4 and C5

Closes IDF-10203

See merge request espressif/esp-idf!32450
2024-09-20 10:57:15 +08:00
Marius Vikhammer
00eb97725b feat(system): support choosing xtal as rtc-fast clock src on P4 and C5
With xtal as rtc-fast clock source the LP-Core can run at twice the default
clock frequency. 40 MHz as opposed to 20 MHz.
2024-09-19 17:30:44 +08:00
wuzhenghui
05e74480f5 feat(esp_system): gate some clock by default to optmize esp32p4 active power 2024-09-11 10:53:00 +08:00
Alexey Lapshin
7498f4655a fix(esp_system): fix GCC 14 analyzer warnings 2024-09-08 13:53:52 +07:00
harshal.patil
b729a0a732 change(esp_security): Move crypto clk configuration into the security component 2024-08-20 12:35:22 +08:00
Armando
564b74a9c0 feat(cache): supported cache panic on p4 2024-07-12 12:42:10 +08:00
wuzhenghui
aa1ff4e167 fix(esp_system): fix stuck in bootloader_random_enable after lightsleep 2024-07-03 18:03:06 +08:00
Armando (Dou Yiwen)
7755ce186e Merge branch 'bugfix/fix_none_iram_code_before_xip_psram' into 'master'
rtc: fixed non-iram rtc code in early stage on p4 leading xip_psram stuck

See merge request espressif/esp-idf!31742
2024-06-26 20:47:10 +08:00
Armando
5fe080ea5a fix(rtc): fixed non-iram rtc code in early stage on p4 leading xip_psram stuck 2024-06-26 17:30:59 +08:00
Wu Zheng Hui
ee372c4842 Merge branch 'feat/esp32p4eco_sleep_feature_update' into 'master'
feat(esp_hw_support): esp32p4eco1 sleep feature update

Closes IDF-9564

See merge request espressif/esp-idf!30899
2024-06-24 11:15:47 +08:00
Xiao Xufeng
5b71b949be fix(startup): move rtc initialization before MSPI timing tuning to improve stability 2024-06-18 01:16:24 +08:00
wuzhenghui
7a9fb14f90 feat(esp_hw_support): bypass rst_reason override for esp32p4eco1 2024-05-31 14:51:15 +08:00
C.S.M
9b3bd13a13 feat(brownout): Add brownout detector support on esp32p4 2024-05-21 15:03:28 +08:00
wuzhenghui
f3d963a93b fix(esp_system): update power domain configuration with slow clock source selection 2024-04-17 15:45:52 +08:00
harshal.patil
6ec486e351 fix(esp_system): Enable crpyto peripherals related clocks for specific ESP32-P4 ECOs 2024-04-12 14:56:53 +05:30
Marius Vikhammer
1c73c657c9 Merge branch 'ci/console_test_coverage' into 'master'
ci(console): improve esp-system console test-coverage

Closes IDFCI-1856, IDF-9576, and IDF-9577

See merge request espressif/esp-idf!29748
2024-03-28 11:14:57 +08:00
wuzhenghui
621effce5b fix(esp_system): workaround for CI pass
1. workaround esp32p4 rev0 wrong deepsleep wakeup cause

2. workaround esp32p4 lightsleep stuck issue with PSRAM enabled
2024-03-27 13:59:37 +08:00
wuzhenghui
ccaae61fee feat(esp_hw_support): support esp32p4 deepsleep 2024-03-27 13:59:36 +08:00
Marius Vikhammer
42fc463c81 fix(console): fixed CONSOLE_NONE not working on C2/C3 2024-03-26 13:39:10 +08:00
Konstantin Kondrashov
3f89072af1 feat(all): Use PRIx macro in all logs 2024-03-12 11:15:53 +02:00
nilesh.kale
f6a7fb13cd feat: re enables tests on p4
This commit re-enables mbedtls and hal/crypto testapos on p4.
2024-03-05 17:48:05 +08:00
Marius Vikhammer
4ce4af61ad fix(system): update reset reasons for P4 and C5 2024-02-21 11:59:28 +08:00
liuning
3fa9c578f9 fix(clk): clear all lpclk source at clk init 2024-02-07 13:49:18 +08:00
Marius Vikhammer
06850e0e1e refactor(system): removed esp_system from astyle ignore list and reformated it 2024-01-30 15:17:15 +08:00
Song Ruo Jing
cf93777077 refactor(rtc): move soc/rtc.h from soc to esp_hw_support component
Deprecated rtc_xtal_freq_t, replaced with soc_xtal_freq_t defined in
clk_tree_defs.h in soc component.
2024-01-25 19:15:33 +08:00
Omar Chebib
102d5bbf72 refactor(riscv): added a new API for the interrupts 2024-01-18 16:36:53 +08:00
Cao Sen Miao
6768805d20 fix(uart,usj...): Fix wrong serial number that has been parsed to rom functions,
Closes https://github.com/espressif/esp-idf/issues/12958
2024-01-18 10:51:51 +08:00