Commit Graph

809 Commits

Author SHA1 Message Date
Nachiket Kukade
4c76af3f68 esp_wifi: Add support for NAN Discovery and Datapath
Update wifi lib with below -
1. Create NAN Discovery SM for beaconing & cluster formation
2. Create NAN interface for Tx/Rx of beacons & action frames
3. Add commands & events for NAN Services Publish/Subscribe/Followup
4. Add NAN Datapath definitions, Events, Peer structures
5. Support for forming and parsing of Datapath related attributes
6. Modules for NDP Req, Resp, Confirm, Term, Peer management
7. NAN Interface related additions in Datapath, Data Tx Q's

In addition include below changes -
1. Add netif and driver support for NAN Interface
2. Add simple examples for Publisher-Subscriber usecases
3. Add an advanced console example that supports commands
   for NAN Discovery, Services & Datapath
4. Add wifi_apps for providing better NAN API's and Peer management

Co-authored-by: Shyamal Khachane <shyamal.khachane@espressif.com>
2023-03-10 11:18:23 +05:30
Mahavir Jain
00f30bb199 Merge branch 'esp32c6/fix_pmp_config' into 'master'
esp32c6: Fix incorrect PMP configuration

Closes IDF-6927

See merge request espressif/esp-idf!22435
2023-03-10 12:21:30 +08:00
Cao Sen Miao
bc655a6890 spi_flash: Allow clock frequency up to 64M, and make it default on ESP32H2 2023-03-10 11:39:53 +08:00
Marius Vikhammer
dfedaa2b65 Merge branch 'feature/c6_ulp' into 'master'
ulp: added basic support for building and running a binary in the lp core

Closes IDF-6829 and IDF-6272

See merge request espressif/esp-idf!22554
2023-03-10 09:56:38 +08:00
Armando
36532aaea8 mspi: make mspi_timing_tuning.h available for all supported targets 2023-03-09 10:38:32 +00:00
Armando
99882ac2d1 mspi: mspi timing tuning ll 2023-03-09 10:38:32 +00:00
Sachin Parekh
ed0a1f7b52 esp32c6: Fix incorrect PMP configuration
- Enable pytest memprot tests for C6
2023-03-09 11:37:29 +05:30
Sachin Parekh
7bd5d93905 esp_hw_support: Move cpu protection in port files 2023-03-09 11:37:29 +05:30
Marius Vikhammer
284dabf17f ulp: added basic support for building and running a binary in the lp core 2023-03-09 10:12:23 +08:00
wuzhenghui
43bf9fd3ab bugfix: fix wrong lock in sleep retention entry destroy 2023-03-07 20:56:13 +08:00
Li Shuai
ffcec33057 modem clock: enable all clock enable of wifi module when PMU switch to ACTIVE from sleep state 2023-03-07 16:19:39 +08:00
wuzhenghui
f44e0cdb80 bugfix: add SPI_MEM_MMU_POWER_CTRL_REG to REGDMA_SPIMEM_LINK 2023-03-06 13:41:36 +08:00
wuzhenghui
fd7e8abd73 workaround: bypass esp32c6 flash powedown sleep time adjustment 2023-03-04 00:17:40 +08:00
wuzhenghui
45c2900ec0 resolve WIFI-5150
bugfix: Don't hold CS pin when VDDSDIO is power down to reduce the base current
2023-03-04 00:17:40 +08:00
Li Shuai
1a10eabe41 Power Management: refactor the configuration of each module in sleep mode 2023-03-04 00:17:40 +08:00
Li Shuai
200f69e6eb auto beacon: support esp32c6 autobeacon (advanced DTIM sleep feature)
modem retention: Support esp32c6 wifi MAC and baseband sleep retention

sleep_modem: wifi MAC modem wakeup protect in modem state before PMU trigger sleep enable request

sleep modem: provide a interface to get whether the Modem power domain is allowed to power off during sleep

add i2c_ana master header file to project

auto beacon: release PMU's lock on root clock source (it is locked in the PLL)

wifi receiving beacon frame in PMU modem state strongly depends on the BBPLL
clock, PMU will forcibly lock the root clock source as PLL, when the root
clock source of the software system is selected as PLL, we need to release
the root clock source locking.

When it is judged that the PLL is locked by PMU after wakeing up from the PMU
modem state, switch the root clock source to the PLL in the sleep process (a
critical section).

auto beacon: fix the failure to receive broadcast/multicast frames in modem state

When the multicast field in the beacon frame received in the PMU modem state is
True, the PMU switches to the PMU active state (the PMU waits for the HP LDO to
stabilize and then restores the MAC context) and starts to receive
broadcast/multicast frames (Broadcast/Multicast frames will be sent after a
minimum delay of 48 us after the beacon frame), because the PMU waits for the HP
LDO to stabilize too long (~154 us), which will cause broadcast/multicast frame
reception to be missed.

auto beacon: select the PLL clock source as the REGDMA backup clock source when the PMU switches to ACTIVE from MODEM state

update Digital Peripheral (M2A switch) REGDMA restore time parameter

auto beacon: fix the issue that only channel 1 can connect to AP in modem state
2023-03-04 00:17:40 +08:00
Li Shuai
93c02fed3b light sleep: add modem power domain and power down the modem power domain during sleep 2023-03-04 00:17:40 +08:00
Li Shuai
3a5fe2ab63 light sleep: rename sleep mac bb to modem, it includes MAC and baseband of wifi, bt and ieee802.15.4 modules 2023-03-04 00:17:40 +08:00
wuzhenghui
186da9af93 codeclean: rename sleep_periph to sleep_sys_periph 2023-03-04 00:17:40 +08:00
wuzhenghui
6f7eadf1ea bugfix: fix wrong _ms suffix 2023-03-04 00:17:40 +08:00
wuzhenghui
975a53aee1 bugfix: workaround for CPU stuck due to DBUS request blocking when fetching unaligned instructions in LP_RAM 2023-03-02 18:10:10 +08:00
wuzhenghui
7ee64bd8e8 refactor: always jump to wake stub wrapper after wakeup 2023-03-02 18:10:06 +08:00
wuzhenghui
9eae151f7c esp32c6: bringup deepsleep examples 2023-03-02 15:06:05 +08:00
wuzhenghui
d3ec7880fe bugfix: support GPIO current leakage workaround for esp32c6/esp32h2 2023-03-02 15:06:05 +08:00
wuzhenghui
d1d6b7349f pmu: pmu parameter adjustment 2023-03-02 15:06:05 +08:00
wuzhenghui
709adaaa37 soc_caps: since esp32c6 only support one ext wakeup src, split SOC_PM_SUPPORT_EXT_WAKEUP
Close IDF-5924
2023-03-02 15:06:05 +08:00
Marius Vikhammer
2f6a362be9 Merge branch 'bugfix/c6_pmp_ulp' into 'master'
hw-support: configure PMP to allow writing to ULP memory area

See merge request espressif/esp-idf!22555
2023-03-02 11:56:48 +08:00
zhangwenxu
c07ec73201 efuse: fix esp_read_mac on esp32h2 2023-03-01 14:14:30 +08:00
Marius Vikhammer
3f65959eef hw-support: configure PMP to allow writing to ULP memory area 2023-03-01 12:50:28 +08:00
Armando
663e881868 gdma: fix potential unaligned cache writeback issue 2023-02-28 10:42:22 +08:00
Song Ruo Jing
8486a2c3ad Merge branch 'bugfix/revert_rtc_clock_bbpll_power_on_with_usb' into 'master'
usb_serial_jtag: Improve the code for the issue of usb cdc device unable to work during sleep

Closes IDFGH-6887

See merge request espressif/esp-idf!20973
2023-02-27 23:18:54 +08:00
Song Ruo Jing
1a66459b44 usb_serial_jtag: Improve the code for the issue of usb cdc device unable to work during sleep
1. Remove RTC_CLOCK_BBPLL_POWER_ON_WITH_USB Kconfig option
   During sleep, BBPLL clock always gets disabled
   esp_restart does not disable BBPLL clock, so that first stage bootloader log can be printed
2. Add a new Kconfig option PM_NO_AUTO_LS_ON_USJ_CONNECTED
   When this option is selected, IDF will constantly monitor USB CDC port connection status.
   As long as it gets connected to a HOST, automatic light-sleep will not happen.

Closes https://github.com/espressif/esp-idf/issues/8507
2023-02-27 12:10:49 +08:00
Armando
4997689de5 cache: support h2 and c6 cache error 2023-02-24 16:16:46 +08:00
Armando (Dou Yiwen)
4452a3cf3e Merge branch 'feature/support_h2_adc' into 'master'
adc: support adc h2

Closes IDF-6124, IDF-6214, IDF-6543, IDF-6215, IDF-6664, and IDF-6695

See merge request espressif/esp-idf!22205
2023-02-24 14:28:33 +08:00
Jing Li
a529771d88 Merge branch 'refactor/pm_use_unified_esp_pm_config_t' into 'master'
pm: refactor pm codes to use unified esp_pm_config_t

See merge request espressif/esp-idf!22472
2023-02-24 14:06:19 +08:00
Armando (Dou Yiwen)
aeaf119338 Merge branch 'refactor/resolve_mmu_soc_dependency_to_sdkconfig_h' into 'master'
g0: resolve MMU_PAGE_SIZE not defined in g0 build issue

Closes IDF-5219

See merge request espressif/esp-idf!22447
2023-02-23 12:05:13 +08:00
Armando
486c765a93 adc: remove adc_hal_conf.h
Macros inside adc_hal_conf.h are moved to adc_ll.h
2023-02-23 11:48:31 +08:00
Armando
c2d5c19b28 adc: ll enum renaming 2023-02-23 11:48:31 +08:00
Armando
5653018cd1 esp_adc: support selecting clock source for oneshot driver 2023-02-23 11:48:31 +08:00
Armando
d0e4d36fb6 esp_adc: support h2 oneshot mode and continuous mode 2023-02-23 11:48:31 +08:00
jingli
3a648e8ed6 ci: h2 does not support deep sleep currently, comment some codes to avoid ci error 2023-02-23 11:36:13 +08:00
jingli
4c3d1e24d7 codeclean: remove unused sleep related functions 2023-02-23 11:36:13 +08:00
Alexey Lapshin
1e3c18a94a esp_hw_support: fix gcc-12 compile errors 2023-02-22 05:33:03 +00:00
Armando
c56eb8646b g0: resolve MMU_PAGE_SIZE not defined in g0 build issue 2023-02-22 12:37:40 +08:00
Song Ruo Jing
987fd3208a Merge branch 'feature/esp32h2_clock_basic_support' into 'master'
clk: Add basic clock support for esp32h2

Closes IDF-6265 and IDF-5973

See merge request espressif/esp-idf!21943
2023-02-21 16:16:05 +08:00
Jing Li
75a82988f1 Merge branch 'refactor/wdt_use_unified_type' into 'master'
wdt: refactor wdt codes to use unified type

Closes IDF-5653

See merge request espressif/esp-idf!22378
2023-02-21 09:46:06 +08:00
Song Ruo Jing
2c2a62e323 clk_tree: Add basic clock support for esp32h2
- Support SOC ROOT clock source switch
- Support CPU frequency change
- Support RTC SLOW clock source switch
- Support RTC SLOW clock + RC FAST calibration

Remove FPGA build for esp32h2
2023-02-20 17:15:02 +08:00
Omar Chebib
5e5343d429 TWDT: Use the new TWDT Kconfig options in the examples and tests 2023-02-17 11:22:25 +08:00
Armando
b96c370ab8 esp_hw_support: move driver/intr_types.h to esp_hw_support to make it available to all g1+ components 2023-02-15 19:52:06 +08:00
Wu Zheng Hui
113132e4f4 Merge branch 'feature/bringup_esp32c6_light_sleep_pd_top' into 'master'
esp32c6: support light_sleep (Stage 2: support Digital Peripheral power down)

See merge request espressif/esp-idf!22197
2023-02-15 16:17:53 +08:00
jingli
9c37441b17 wdt: refactor wdt codes to use unified type 2023-02-15 12:08:55 +08:00
wuzhenghui
a0492202b7 bugfix: unhold SPI CS pin in pd_top lightsleep 2023-02-15 11:46:41 +08:00
wuzhenghui
0b0da680d2 codeclean: turn on the regdma clock only once 2023-02-15 11:46:40 +08:00
wuzhenghui
248aa6109d codeclean: add sleep_mode args to esp_sleep_start() 2023-02-15 11:46:40 +08:00
Li Shuai
aec3f6db1d light sleep: supported SoC TOP domain powered down 2023-02-15 11:46:40 +08:00
Li Shuai
6e307c04a3 clock retention: supported soc and modem system power and clock sleep retention 2023-02-15 11:46:40 +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
d097bbe40b sleep retention: wraps the regdma link and hardware driver to provide system sleep retention (WiFi, BLE, 15.4 and digital peripheral) support 2023-02-15 11:46:40 +08:00
Li Shuai
8c18393d23 regdma: add regdma link operation api support 2023-02-15 11:46:36 +08:00
Li Shuai
d3e0e3e3b6 pau: implement the pau regdma driver for esp32c6 2023-02-15 10:45:44 +08:00
Cao Sen Miao
fd3e0b0b18 esp32h2(ci): enable target test 2023-02-15 10:20:43 +08:00
morris
e0c98da169 Merge branch 'feature/glitch_filter_h2' into 'master'
gpio: support glitch filter on esp32h2

Closes IDF-6286

See merge request espressif/esp-idf!22273
2023-02-14 13:07:44 +08:00
Mahavir Jain
ac7b42d742
esp_hw_support: fix test apps build for IDF_ENV_FPGA case 2023-02-13 10:27:23 +05:30
Mahavir Jain
e4e4ffa3f4
esp32h2: enable DS peripheral support in driver and test application 2023-02-13 10:27:15 +05:30
Mahavir Jain
2974e8f487 Merge branch 'feature/apm_support_esp32c6' into 'master'
apm: added support for APM on esp32c6

Closes IDF-5819 and IDF-5818

See merge request espressif/esp-idf!22157
2023-02-13 12:45:41 +08:00
morris
a3f887a1fe gpio: support glitch filter on esp32h2 2023-02-11 23:01:01 +08:00
jingli
28c7620cba sleep: fix gpio wakeup not working properly in some cases
Before this fix, when we call esp_pm_configure after gpio_wakeup_enable,
the configuration of GPIO in sleep state in gpio_wakeup_enable will be
overwritten by esp_pm_configure.
2023-02-11 01:06:18 +00:00
jingli
557a1ed1a5 soc_caps: remove SOC_GPIO_SUPPORT_SLP_SWITCH
all esp chips support this feature
2023-02-11 01:06:18 +00:00
Kapil Gupta
30a2558450 esp_wifi: Merge wpa_supplicant and esp_wifi Kconfig 2023-02-11 07:38:45 +08:00
Sachin Billore
8d0f6dab0f apm: added support for APM on esp32c6
Closes: IDF-5819 IDF-5818
2023-02-10 08:18:07 +00:00
wanlei
5300bd3b2f spi: support H2 spi master, slave, slave_hd driver 2023-02-08 11:38:45 +08:00
morris
990c6f58a6 Merge branch 'feature/etm_support_h2' into 'master'
etm: add basic driver on esp32h2

Closes IDF-6225

See merge request espressif/esp-idf!22246
2023-02-08 10:42:10 +08:00
morris
6f8ee89302 etm: add basic driver on esp32h2 2023-02-07 14:54:08 +00:00
wuzhenghui
75d15e8b80 bugfix: remove redundant SOC_PM_SUPPORT_XTAL_PD wrapping
Closes https://github.com/espressif/esp-idf/issues/10681
2023-02-07 20:25:59 +08:00
Jing Li
409804f673 Merge branch 'feature/support_feature_depend_on_rtc_fast_mem_for_esp32c2' into 'master'
esp32c2: support feature(rtc time) depend on rtc fast mem

Closes IDF-3901, IDF-4239, IDF-5053, IDF-5060, and IDF-5131

See merge request espressif/esp-idf!19067
2023-02-07 15:16:01 +08:00
Song Ruo Jing
b72d759290 uart: Add support for esp32h2 2023-02-06 00:48:04 +08:00
jingli
af9c6e3175 esp32c2/rtc: fix 8md256 as rtc slow clk not work properly during deep sleep 2023-02-02 20:41:11 +08:00
jingli
2e4f0c7926 UT/esp32c2: reenable rtc clk calibration compensation UT 2023-02-02 20:26:08 +08:00
jingli
f8cc2ec86d esp32c2: support rtc time feature depend on rtc memory, since c2 does not have rtc memory 2023-02-02 20:25:59 +08:00
Wu Zheng Hui
04987ac201 Merge branch 'feature/add_ram_loadable_app_support' into 'master'
feature: add ram loadable app support

See merge request espressif/esp-idf!19465
2023-02-02 10:28:13 +08:00
wuzhenghui
44df5b31af feature: add ram loadable app support 2023-02-01 17:57:22 +08:00
Wu Zheng Hui
33ae2e1073 Merge branch 'feature/bringup_esp32c6_light_sleep_pd_cpu' into 'master'
esp32c6: support light_sleep (Stage 1: support CPU power down)

See merge request espressif/esp-idf!21985
2023-02-01 14:11:15 +08:00
wuzhenghui
cd9d914ba0 codeclean: clean esp32c6 rtc_sleep related code 2023-01-31 22:12:58 +08:00
Li Shuai
68594abe05 sleep: light sleep supported for esp32c6 2023-01-31 22:12:58 +08:00
wuzhenghui
a5467f42a0 codeclean: only S series chip VDDSDIO is configurable 2023-01-31 22:12:58 +08:00
Li Shuai
9b99fc9033 cpu retention: software cpu retention support for esp32c6
cpu retention: add riscv core sleep critical and non-critical register layout structure definition

cpu retention: add assembly subroutine for cpu critical register backup and restore

cpu retention: add cpu core critical register context backup and restore support

cpu retention: add cpu core non-critical register context backup and restore support

cpu retention: add interrupt priority register context backup and restore support

cpu retention: add cache config register context backup and restore support

cpu retention: add plic interrupt register context backup and restore support

cpu retention: add clint interrupt register context backup and restore support

cpu retention: wait icache state idle before pmu enter sleep
2023-01-31 22:12:54 +08:00
Li Shuai
1c39d64f95 cpu retention: refactor cpu retention and add cpu retention versions option in soc caps 2023-01-31 22:12:50 +08:00
Li Shuai
02f5df3b3e Power Management: added protection to the configuration of each power domain 2023-01-31 22:12:27 +08:00
Li Shuai
2b5618606b pmu: clean modem clock pmu related code 2023-01-31 22:12:27 +08:00
cje
0fb408cc68 pmu active state ICG map initialize and modify i2c master force enable to enable 2023-01-31 22:12:27 +08:00
Li Shuai
c0ddaa5920 lp_timer: add hal-layer codes for esp32c6 2023-01-31 22:12:27 +08:00
Li Shuai
59cf87fe7d pmu: sleep initialization and sleep start support for esp32c6
Initialize the pmu sleep machine constant when pmu is initialized, and calculate
the pmu sleep time adjustment value and hardware configuration value according
to the machine constant during system sleep.

Calibrate fast OSC before each sleep and use the calibration value to calculate
PMU hardware wait cycles when use the fast OSC as the work clock.
2023-01-31 22:12:27 +08:00
morris
dbca74f1ef gdma: prevent mutli-channels connect to the same peripheral
1. add check in the gdma driver, to prevent multiple channels connecting
   to the same peripheral
2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP
   targets (e.g. esp32c3/s3). We should search for a free one when
install async memcpy driver.

Closes https://github.com/espressif/esp-idf/issues/10575
2023-01-31 15:18:19 +08:00
Song Ruo Jing
ad55230b0a ledc: Add support for esp32h2; Refactor ledc driver clock source selection related code
LEDC examples and test cases are supported on ESP32H2.
   Switch to use general clock IDs for ledc_clk_cfg_t enum values.
   Deprecate LEDC_USE_RTC8M_CLK.
2023-01-30 19:19:34 +08:00
Mahavir Jain
8203d40fc3
esp32h2: add support for SHA peripheral
Closes IDF-6275
2023-01-30 10:08:58 +05:30
Lou Tianhao
a07c736d71 bugfix: make ahb freq consistent with cpu freq 2023-01-28 10:48:51 +08:00
Guillaume Souchere
a5d6f62e7e heap: Prevent alloc from IRAM to call dram_alloc_to_iram() on esp32c6 target
Since DRAM and IRAM are superposed on esp32c6 it is not necessary to convert a freshly allocated
DRAM addr to its IRAM equivalent when MALLOC_CAP_EXEC is passed to heap_caps_malloc(). Instead,
proceed with a default allocation since the address returned by multi_heap_malloc() already belongs
to the IRAM region.

Applies for esp32c6 and every boards with superposed DRAM and IRAM addresses.
2023-01-23 07:42:20 +01:00
Mahavir Jain
e7ca2f2622 Merge branch 'feature/esp32c6_enable_hmac_and_ds_support' into 'master'
Feature/esp32c6 enable hmac and ds support

Closes IDF-5355 and IDF-5360

See merge request espressif/esp-idf!21761
2023-01-20 20:30:54 +08:00
Martin Vychodil
a2b0068478 Merge branch 'bugfix/linux_build_errors' into 'master'
fix(linux): fix build errors without --skip-setting-flags

See merge request espressif/esp-idf!22063
2023-01-20 14:46:36 +08:00
Aditya Patwardhan
4084ab38a1
esp32c6/soc: Enable DS and HMAC capabilities for esp32c6 in soc_caps.h 2023-01-19 09:53:34 +05:30