Commit Graph

67 Commits

Author SHA1 Message Date
Darian Leung
baa28b54a2 esp_hw_support: Fix esp_light_sleep_start() deadlock
esp_light_sleep_start() will stall the other CPU via esp_ipc_isr_stall_other_cpu(). After stalling the other CPU,
will call esp_clk_... API which themselves take locks. If the other stalled CPU is holding those locks, this will
result in a deadlock.

This commit adds a workaround calling esp_clk_private_lock() to take the lock before stalling the other CPU.
2022-09-16 17:02:38 +08:00
Marius Vikhammer
228737d978 docs: fix documentation wrongly stating ESP_SLEEP_WAKEUP_GPIO is light sleep only
ESP_SLEEP_WAKEUP_GPIO is also a valid deep sleep wakeup cause on targets
with SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP

Closes https://github.com/espressif/esp-idf/issues/9567
2022-08-24 10:50:59 +08:00
Marius Vikhammer
f8f93d936e ulp-riscv: add support for using ADC as well as an example show-casing it. 2022-08-09 09:21:15 +08:00
Marius Vikhammer
90e58c3721 docs: fix all doxygen warnings
Doxygen warnings would previously not result in a failed pipeline.
Fixed this as well as all current warnings.
2022-07-05 11:14:40 +08:00
Marius Vikhammer
957505136b spinlock: fixed spinlocks not working on S3 if placed in PSRAM
The compare and set instruction (S32C1I) cannot be used when
lock is not in internal memory.

Closes https://github.com/espressif/esp-idf/issues/9120
2022-06-09 10:39:19 +08:00
Michael (XIAO Xufeng)
c2c4b126f7 Merge branch 'feature/support_new_psram_v4.4' into 'release/v4.4'
psram: add ESP32-D0WD-R2-V3 support(backport v4.4)

See merge request espressif/esp-idf!16705
2022-02-13 14:13:38 +00:00
Martin Vychodil
7d9652dccf System/Security: Memprot API unified (ESP32C3,ESP32S3)
Unified Memory protection API for all PMS-aware chips

Closes JIRA IDF-3849
2022-01-27 12:40:27 +08:00
Cao Sen Miao
e2ef65e117 psram: add ESP32-D0WD-R2-V3 support 2022-01-10 10:39:00 +08:00
Darian Leung
c5efb55d43 freertos: Add portTRY_ENTRY_CRITICAL() and deprecate legacy spinlock fucntions
Add TRY_ENTRY_CRITICAL() API to all for timeouts when entering critical sections.
The following port API were added:
- portTRY_ENTER_CRITICAL()
- portTRY_ENTER_CRITICAL_ISR()
- portTRY_ENTER_CRITICAL_SAFE()

Deprecated legacy spinlock API in favor of spinlock.h. The following API were deprecated:
- vPortCPUInitializeMutex()
- vPortCPUAcquireMutex()
- vPortCPUAcquireMutexTimeout()
- vPortCPUReleaseMutex()

Other Changes:
- Added portMUX_INITIALIZE() to replace vPortCPUInitializeMutex()
- The assembly of the critical section functions ends up being about 50 instructions longer,
  thus the spinlock test pass threshold had to be increased to account for the extra runtime.

Closes https://github.com/espressif/esp-idf/issues/5301
2021-11-22 18:42:10 +08:00
Jiang Jiang Jian
f5ae8b0533 Merge branch 'feature/ledc_use_rtc8m_or_xtal_lightsleep' into 'master'
support RTC8M and XTAL power domain in light sleep mode

Closes IDF-3419

See merge request espressif/esp-idf!15152
2021-09-27 04:02:29 +00:00
Li Shuai
b59902f4d1 Merge branch 'bugfix/esp32s3_lightsleep_psram_leakage_current' into 'master'
fix SPIRAM leakage when its CS pin has no hardware pullup

See merge request espressif/esp-idf!14730
2021-09-16 04:07:58 +00:00
chenjianqiang
9b53e18c44 add flash and PSRAM CS IO acquire function 2021-09-15 20:34:17 +08:00
Ivan Grokhotkov
e21e5aac64 esp_hw_support: update esp32s3 chip ID to the MP version
- Update 7.2.5 chip ID (4) to 7.2.8 chip ID (9).
- Remove TODO in espcoredump regarding this mismatch.
2021-09-13 15:16:45 +02:00
Li Shuai
e44ead5356 Power Management: add RTC8M power domain to control whether internal 8m oscillator is powered down during sleep 2021-09-13 17:36:54 +08:00
Sachin Parekh
fd5a7df404 esp32h2: Replicated HMAC JTAG downstream enable mode implementation 2021-09-06 11:06:50 +05:30
Sachin Parekh
fa2707f1f3 hmac: Added Downstream JTAG enable mode for esp32c3 and esp32s3
If JTAG is disabled temporarily by burning SOFT_DIS_JTAG, it can be
re-enabled temporarily through esp_hmac_jtag_enable API
2021-09-06 11:06:50 +05:30
Jiang Jiang Jian
316988bd2d Merge branch 'feature/support_esp32s3_cpu_tagmem_retention' into 'master'
support esp32s3 cpu + tagmem retention

See merge request espressif/esp-idf!14579
2021-09-06 03:47:44 +00:00
Sachin Billore
f80d6f8c21 Digital Signature support for S3
Closes IDF-1791
2021-09-02 11:59:24 +05:30
Martin Vychodil
58aed7df98 ESP32S2: No assert()/abort() in Memprot API, use esp_err_t instead
JIRA IDF-3634
2021-08-26 09:20:00 +02:00
Li Shuai
15fc449793 light sleep: separate sleep retention function 2021-08-24 11:54:47 +08:00
Li Shuai
90a0a83c0f light sleep: separate sleep wifi/bt mac bb function 2021-08-23 10:25:04 +08:00
Li Shuai
b0757dfcfa light sleep: separate sleep gpio function 2021-08-23 10:22:12 +08:00
Zim Kalinowski
dcff1baab5 Merge branch 'bugfix/fix_esp32s2_deep_sleep_timer_wake_up_fail' into 'master'
rtc: fix esp32s2 fall into sleep forever when deep-sleep time is set to 0

Closes IDF-2712

See merge request espressif/esp-idf!12438
2021-08-19 03:20:15 +00:00
Jakob Hasse
1c3be690ed [esp_hw_support]: HMAC upstream support for S3 2021-08-13 12:01:06 +08:00
Jan Brudný
db41f2efdd esp_hw_support: update copyright notice 2021-08-05 16:30:10 +02:00
Konstantin Kondrashov
f00c204fbc Merge branch 'feature/adds_custom_mac_address' into 'master'
efuse: Add CUSTOM_MAC address for ESP32-C3/-S2/-S3/-H2

Closes IDF-1326

See merge request espressif/esp-idf!14417
2021-08-04 06:35:29 +00:00
Konstantin Kondrashov
4972605b16 esp_common: Add API for IPC to run small pieces of code on the other CPU, in the context of the level 4 interrupt 2021-08-03 14:35:29 +08:00
KonstantinKondrashov
40c360a096 efuse: Add CUSTOM_MAC address for ESP32-C3/-S2/-S3/-H2 2021-08-02 14:43:27 +05:00
morris
21067a0455 spiram: add getter function to check psram initialization state 2021-07-30 11:23:26 +08:00
Shu Chen
dadaf30d17 Merge branch 'feature/add_eui64_for_esp32h2_efuse' into 'master'
efuse: add mac extension address for esp32h2

See merge request espressif/esp-idf!14363
2021-07-21 03:46:58 +00:00
zhangwenxu
d5b9078e23 efuse: add mac extension address for esp32h2 2021-07-20 12:03:17 +08:00
Chen Yi Qun
835c0ca32c fix esp32s2 fall into sleep forever when deep-sleep time is set to 0 2021-07-19 14:43:47 +08:00
Omar Chebib
a7b6ec85b8 Merge branch 'feature/move_memory_layout_to_heap' into 'master'
G0: Memory layouts are now part of heap components

Closes IDF-1264

See merge request espressif/esp-idf!14028
2021-07-19 06:23:19 +00:00
Michael (XIAO Xufeng)
59195b6fb3 Merge branch 'bugfix/update_gdma_soc' into 'master'
gdma: alignment setting for PSRAM transfer

Closes IDF-1524

See merge request espressif/esp-idf!13976
2021-07-17 14:04:03 +00:00
Angus Gratton
9d6366f290 esp_hw_support: Move rtc.h header from target components 2021-07-16 20:14:28 +08:00
Angus Gratton
f0471b18b2 esp32h2: Move from target component to esp_hw_support (new structure) 2021-07-16 20:14:27 +08:00
Renz Bagaporo
844af01eb4 esp32: move spiram, himem 2021-07-16 20:14:26 +08:00
Renz Bagaporo
452bfda367 esp32: move dport_access 2021-07-16 20:14:26 +08:00
Renz Bagaporo
702e41e1c8 esp32s2: move crypto related functions 2021-07-16 20:14:26 +08:00
Renz Bagaporo
ea2aafbb7a esp32s2: move memprot api 2021-07-16 20:14:26 +08:00
morris
d9819bc7ae gdma: set transfer ability 2021-07-16 14:47:09 +08:00
Omar Chebib
c4f57af6c9 G0: Memory layouts are now part of heap components 2021-07-15 11:38:23 +10:00
Shu Chen
5e3689ae0f esp32h2: update esp_system and esp_hw_support to support esp32h2 2021-07-01 19:53:11 +08:00
Shu Chen
7d4b2617e1 esp32h2: copy esp_system and esp_hw_support from esp32c3
Copy the esp32c3 code without any change:
 * components/esp_hw_support/include/soc/esp32h2
 * components/esp_hw_support/port/esp32h2
 * components/esp_system/port/soc/esp32h2
2021-07-01 19:53:11 +08:00
Angus Gratton
5c812742c6 docs: Add description for Linux getrandom() function 2021-05-20 17:08:17 +10:00
Angus Gratton
e14edecf5f docs: Add random number generation to the API Reference System section 2021-05-18 16:05:42 +10:00
Angus Gratton
4d4e094d81 esp_hw_support: Clarify the documentation about hardware RNG entropy 2021-05-06 16:59:02 +10:00
ninh
f1ee8aa14f esp_wifi: fix nolightsleep after wifi init 2021-04-29 18:50:28 +08:00
Angus Gratton
7cb83c8787 system doc: Re-structure description of MAC addresses, especially on newer chip targets
Includes a note about calculating the Ethernet MAC on platforms with no built-in
Ethernet, and removes documentation for esp_efuse_mac_get_custom() on targets
other than ESP32
2021-04-22 16:08:55 +10:00
Angus Gratton
c8cb803378 system: Simplify esp_derive_local_mac() function
Previously this function included a loop but would never run more
than one iteration of it.
2021-04-22 12:22:46 +10:00