Commit Graph
100 Commits
Author SHA1 Message Date
Li Shuai 8920cce89e Merge branch 'bugfix/pm-107' into 'master'
fix esp32c6 failed to enter light sleep caused by soc wakeup request signal

Closes PM-107

See merge request espressif/esp-idf!30551
2024-05-08 16:39:05 +08:00
Li Shuai ddd65e1f54 fix(esp_wifi): clear soc wakeup request signal at tbtt process 2024-05-08 10:40:16 +08:00
Li Shuai f6478e3ced change(soc): update pmu register map struct for esp32c5 beta3 2024-04-09 20:58:42 +08:00
Li Shuai 3698d0a408 Merge branch 'bugfix/sleep_clock_domain_pd_allowed' into 'master'
fix some errors with sleep's power domain management

See merge request espressif/esp-idf!30076
2024-04-08 16:18:02 +08:00
Li Shuai 75cf573637 fix(esp_hw_support): fix some errors with sleep's power domain management 2024-04-07 17:39:48 +08:00
Li Shuai 608713a72a fix(esp_hw_support): fixed modem hang caused by incorrect configuration of power and isolate signals 2024-04-01 15:21:07 +08:00
Li Shuai a054f89021 fix: modify some typos to ensure CI pipeline run pass 2024-03-30 11:51:52 +08:00
Li Shuai 7a4d92a7ef fix(example/bluetooth): fix app partition is to small for binary esp_hid_device.bin and esp_hid_host.bin 2024-03-30 11:51:52 +08:00
Li Shuai fc308a4234 change(driver/i2c): modify i2c sleep retention test case to fix memory leakage issue 2024-03-30 11:51:52 +08:00
Li Shuai b1540e2470 change(esp_hw_support): use power down peripheral in light sleep option to determine TOP to off 2024-03-30 11:51:52 +08:00
Li Shuai 91bb0e7276 change(driver/i2c): use new retention api to implement i2c retention 2024-03-30 11:51:52 +08:00
Li Shuai c07be48edb change(esp_hw_support): add adc retention module and it is dependencies on the clock modem 2024-03-30 11:51:52 +08:00
Li Shuai 67f1de5e99 change(esp_hw_support): dump sleep retention context to io stream 2024-03-30 11:51:52 +08:00
Li Shuai 4ffa5c23af change(ieee802154): use new sleep retention api to implement ieee802154 mac retention 2024-03-30 11:51:52 +08:00
Li Shuai c0f3570237 change(bt): use new retention api to implement BT mac and bb retention 2024-03-30 11:51:52 +08:00
Li Shuai 57c8fdfd86 change(esp_hw_support): use new retention api to implement gdma retention 2024-03-30 11:51:52 +08:00
Li Shuai a0a343cb13 change(wifi): use new retention api to implement wifi mac and bb retention 2024-03-30 11:51:50 +08:00
Li Shuai 262be04b21 change(esp_hw_support): modify system and modem clock to support modem domain power down 2024-03-29 16:13:52 +08:00
Li Shuai 59115cd2d1 change(esp_hw_support): some system peripherals to use a retention module number 2024-03-29 15:27:08 +08:00
Li Shuai 7092cf7d3e feat(esp_hw_support): implement of sleep retention module initialize and dependency management 2024-03-29 15:22:53 +08:00
Li Shuai 080d09387c change(esp_hw_support): modify the style of module argument from bitmap to number 2024-03-29 15:22:52 +08:00
Li Shuai fd421ba9bb change(esp_hw_support): rename interface name of get modules bitmap to get created modules 2024-03-29 14:41:57 +08:00
Li Shuai b521fb4efe change(esp_hw_support): rename sleep retention module to created module 2024-03-29 14:36:11 +08:00
Li Shuai 28835624d9 fix(example): fixed app partition is too small for binary size 2024-01-11 10:42:38 +08:00
Li Shuai fa489d3c20 change(Power Management): the xpd_xtal32k value depends on system slow clock source config option when pmu initialize 2023-10-24 17:11:53 +08:00
Li Shuai 0f103817bc fix(esp32c6/power save): optimize the retention step of the APM and TEE modules to set only the critical parts that affect wifi data frame receipt to level 2 priority 2023-09-06 14:57:46 +08:00
Li Shuai 0c9eba8a2a fix(esp32c6/power save): improve TEE and APM module retention priority to 2 to avoid the wifi fail to read the rxbuf link and trigger the rxbuf overflow error 2023-08-21 12:28:51 +00:00
Li Shuai 6ba55e1b78 fix(wifi/phy): fix the issue of vTaskStepTick assert failed caused by wifi baseband retention linked list 2023-07-28 13:46:30 +08:00
Li Shuai e79d6a59ec Merge branch 'bugfix/mac_hw_parse_beacon_ie_len_eqz_bug' into 'master'
fix the mac bug that hardware parse beacon of ie length equal to zero

Closes WIFI-5829

See merge request espressif/esp-idf!24255
2023-07-14 14:37:28 +08:00
Li Shuai b84d811684 Wi-Fi/power save: fix the some mac issues of wifi power save
Some APs are configured to hide the SSID, the length field of the SSID element
in the Beacon frame is set to 0. This can cause incorrect parsing of the Beacon
by the Wi-Fi MAC hardware.

Some APs send two beacon frames with different BSSID in a TBTT cycle. After
correctly parsing the beacon of the associated AP, it continue to receive the
other beacon frame, which will cause the MAC to remain in a wait RX/TXING
state, blocking the Wi-Fi go to sleep.
2023-07-13 21:25:07 +08:00
Li Shuai efa4eeafd0 light sleep: enable system clock in PMU HP sleep state when selecting a 40 MHz XTAL as low power clock source of ble 2023-07-13 20:44:56 +08:00
Li Shuai 21781b1ab1 modem clock: provide a protected wifipwr clock enable/disable interface to fix the bug of selecting xtal as the low power clock source for ble 2023-07-13 20:44:56 +08:00
Li Shuai 9950b6a527 modem clock: gatable clock interface which can gate or ungate modem clock domain 2023-07-13 20:44:56 +08:00
Li Shuai 19809bdebf power save: fix bcn_timeout and disconnect with error code 201, m f probe req l=0 issue 2023-07-13 16:59:31 +08:00
Li Shuai f4c3b07436 fix(rtc_clk): fix the issue of missing configuration for calibration cycles of the internal 32 kHz RC 2023-07-04 11:23:07 +08:00
Li Shuai e505e19798 Merge branch 'bugfix/fix_rc_fast_calibration' into 'master'
rtc_clk: fix esp32c6/esp32h2 eco chip `RC_FAST` bad calibration value

Closes WIFI-5938

See merge request espressif/esp-idf!23927
2023-05-29 19:57:46 +08:00
Li Shuai 87dd7bb51a Merge branch 'bugfix/support_esp32c6_sleep_retention_extra_link' into 'master'
support extra linked list retention for BLE and 15.4

Closes IDF-6528

See merge request espressif/esp-idf!22985
2023-05-10 15:07:03 +08:00
Li Shuai 2e22491b02 sleep retention: implement the extra linked list retention for modules with retention clock bugs 2023-05-06 14:58:00 +08:00
Li Shuai 94ebda298a fix the issue of failure of receiving beacons in modem state caused by enabling light sleep in wifi min/max modem sleep mode 2023-04-07 05:57:15 +00:00
Li Shuai 10d02c6c5c power save: add txq memory to mac retention link to fix tx m f null failure 2023-04-06 11:09:46 +08:00
Li Shuai ec61a0e3cc sleep retention: fix crash issue caused by destroying the module after the module node creation fails 2023-04-03 19:24:33 +08:00
Li Shuai a25ce78392 sleep: fix sleep current issue caused by sar adc 2023-03-17 13:06:39 +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
Li Shuai 7ee1b09433 power save: wifi beacon monitor support for esp32c6
power save: fix multicast more data always true cause wifi goto sleep fail
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
Li Shuai f95854dc8f soc_caps: add SOC_PM_MODEM_RETENTION_BY_REGDMA caps
soc_caps: add SOC_PM_SUPPORT_BEACON_WAKEUP caps
soc_caps: add SOC_PM_SUPPORT_PMU_MODEM_STATE caps
soc_caps: add SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW caps
soc_caps: add SOC_PM_SUPPORT_MAC_BB_PD caps
2023-03-04 00:17: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
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
Li Shuai 5850cd7492 pau: implement the pau regdma hal&ll layer for esp32c6 2023-02-15 10:45:44 +08:00
Li Shuai 180199319b soc_caps: add pau link number caps
soc_caps: add SOC_PAU_SUPPORTED caps
soc_caps: add SOC_PM_SUPPORT_TOP_PD caps
2023-02-15 10:45:44 +08:00
Li Shuai 68594abe05 sleep: light sleep supported for esp32c6 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 0f6cda1dd3 Power Management: support DFS 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
Li Shuai c0ddaa5920 lp_timer: add hal-layer codes for esp32c6 2023-01-31 22:12:27 +08:00
Li Shuai 1eb08db0df lp_timer: lp_timer register address mapping structure redefinition 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
Li Shuai 6c1f58f135 pmu: add hal layer codes for esp32c6 2023-01-31 22:12:27 +08:00
Li Shuai 34d0464662 pmu: pmu register address mapping structure redefinition 2023-01-31 22:12:22 +08:00
Li Shuai 4e2a32d9b3 soc_cap: add SOC_PM_SUPPORT_VDDSDIO_PD soc_caps
soc_cap: add SOC_PM_CPU_RETENTION_BY_SW/REGDMA

soc caps: add SOC_PMU_SUPPORTED
2023-01-31 22:12:18 +08:00
Li Shuai 3ce896429c periph clock: implemented the modem module enable, disable and reset for esp32c6 2022-12-27 21:31:59 +08:00
Li Shuai e9172ddcea initialize the clock gating control signal of each modem clock domain 2022-12-27 21:31:59 +08:00
Li Shuai 63af1e9631 modem clock(driver): implemented the modem clock driver for esp32c6 2022-12-27 21:31:59 +08:00
Li Shuai 8c05d6fd9d modem clock(hal): implemented the modem clock hal-layer for esp32c6 2022-12-27 21:31:21 +08:00
Li Shuai 28dfaeaaef modem clock(ll): implemented the modem clock ll-layer (include modem syscon and lpcon) for esp32c6 2022-12-27 21:31:21 +08:00
Li Shuai 17f9285524 esp32c6: add SOC_MODEM_CLOCK_IS_INDEPENDENT soc_cap and more pd_caps 2022-12-27 21:31:21 +08:00
Li Shuai 526a9c665a backup dma: force clear reset signal to fix the backup dma operation failure caused by RTC_SW_CPU_RST 2022-10-20 03:24:49 +00:00
Li Shuai 4f2cec8495 1. Wi-Fi: update tsf tick interval when lpclk is modified
2. Move register_lpclk_callback to coexistence
2022-08-04 14:11:25 +08:00
Li Shuai 4afc115397 Power Management: fix the issue of sleeping time error beacause external 32kHz xtal does not exist 2022-08-04 14:01:34 +08:00
Li Shuai 7efa8b855a sleep: beacon loss and noise check timer optimize for wifi power save 2022-06-09 15:52:05 +08:00
Li Shuai 5b766e63c0 Merge branch 'bugfix/wifi_bt_mac_bb_pd_light_sleep' into 'master'
fixes some sleep related issues

Closes AUD-3278

See merge request espressif/esp-idf!15844
2021-11-15 05:05:47 +00:00
Li Shuai 37e1e9c540 Merge branch 'bugfix/memory_region_define_rtc_fast' into 'master'
substract rtc_iram_seg memory region size from ESP_BOOTLOADER_RESERVE_RTC

Closes WIFI-4115

See merge request espressif/esp-idf!15743
2021-11-15 02:34:35 +00:00
Li Shuai c99cb930c3 sleep: deep sleep does not need cpu and wifi/bt mac retention 2021-11-12 17:46:56 +08:00
Li Shuai d9e3204115 light sleep: replace new kconfig option of mac bb power down & phy reduce tx power 2021-11-12 17:46:18 +08:00
Li Shuai bf650edc55 fix the wifi scan fail issue caused by the power off the wifi power domain 2021-11-08 20:59:10 +08:00
Li Shuai 1bae39887c docs: add a note for deep sleep crc check 2021-11-06 14:31:07 +08:00
Li Shuai 9ac58e32a2 substract rtc_iram_seg memory region size from ESP_BOOTLOADER_RESERVE_RTC 2021-10-29 21:24:09 +08:00
Li Shuai e8188e5d8f ci: replacing old header with new SPDX header style 2021-10-20 11:36:23 +08:00
Li Shuai 7c7f3aa84e unit test: add sleep test case for esp32s3 2021-10-20 11:36:23 +08:00
Li Shuai a939f7d34b light sleep: add software workaround for esp32s3 gpio reset issue 2021-10-20 11:36:22 +08:00
Li Shuai 44da7d27ef heap: add a new heap caps attribute for RTC fast memory 2021-10-20 11:36:22 +08:00
Li Shuai 62a4587e87 deep sleep: modified to support dual-core mode 2021-10-20 11:36:22 +08:00
Li Shuai 881e1b0fd5 deep sleep: add deep sleep support for esp32s3 2021-10-20 11:36:20 +08:00
Li Shuai 9298db641e deep sleep: fix some rtc fast memory definition errors in esp32s3 2021-10-19 21:47:27 +08:00
Li Shuai a50312fa63 unit-test: fix esp32 phy enable test case 2021-10-18 19:42:52 +08:00
Li Shuai c2910c15f4 Merge branch 'bugfix/wifi_bt_power_domain_leakage_current' into 'master'
fix wifi and bt power domain leakage current in light sleep

See merge request espressif/esp-idf!15236
2021-10-14 05:10:55 +00:00
Li Shuai 46dedca23c ci: replace old header with new SPDX header style 2021-10-14 10:51:10 +08:00
Li Shuai 73829221f5 esp_hw_support: force power down wifi and bt power domain when rtc module init 2021-10-14 10:51:10 +08:00
Li Shuai b774342402 Power Management: power up or down wifi power domain when wifi init or deinit 2021-10-14 10:51:07 +08:00
Li Shuai b3e27403f3 esp_hw_support: keep external 40 MHz xtal related analog circuit power on during sleep 2021-09-16 14:46:21 +08:00
Li Shuai 58292a7d22 Power Management: add XTAL power domain to control whether external 40MHz xtal is powered down during sleep 2021-09-16 14:43:43 +08:00
Li Shuai f5b39a7cde esp_hw_support: No voltage drop during light sleep to ensure stable output clock of rtc8m oscillator 2021-09-16 14:40:46 +08:00