Commit Graph
100 Commits
Author SHA1 Message Date
Lou Tianhao 7a750a55f8 change(esp_pm): change pm_slp_iram_opt dependence 2024-12-11 10:15:56 +08:00
Lou Tianhao b1c6f48c10 fix(pm): cancel cache_safe_assertion when using ext0 & ext1 2024-09-04 17:10:31 +08:00
Lou Tianhao 81ad2d8e7b docs(pm): add description for gpio_wakeup 2024-06-26 14:08:46 +08:00
Lou Tianhao 063ea6f1ef docs(pm): add description for ext1 2024-04-15 20:17:06 +08:00
Lou Tianhao 640ce31dae change(pm): add ext1 new api 2024-04-15 20:16:49 +08:00
Lou Tianhao f0ae83d056 change(pm): use old ext1 api for pytest 2024-02-22 20:06:28 +08:00
Lou Tianhao 901c5624d3 change(pm): change CMakeLists for wakeup pytest 2024-02-21 10:42:39 +08:00
Lou Tianhao 229a974252 change(pm): change test_io_wakeup 2024-02-21 10:42:39 +08:00
Lou Tianhao 0cdaf0008d feat(pm): add test_io_wakeup 2024-02-21 10:42:39 +08:00
Lou Tianhao 745a1f492e feat(pm): support PMU trigger regdma when PU TOP 2024-01-08 21:23:28 +08:00
Lou Tianhao 7b5799830c change(pm): change macro SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG 2023-12-19 11:52:25 +08:00
Lou Tianhao 09a3d068d9 docs(pm):add uart wakeup description when pd top 2023-11-28 19:39:53 +08:00
Lou Tianhao 70e83a5871 docs(pm):add gpio wakeup description when pd top 2023-11-28 19:39:53 +08:00
Lou Tianhao e849809f4b docs(pm):change_deepsleep_example_readme 2023-11-28 19:39:53 +08:00
Lou Tianhao d7ae1665f1 fix(pm/ext1): fix c6 h2 lp_aon_ll_ext1_set_wakeup_pins func 2023-11-21 11:31:53 +08:00
Lou Tian Hao ca32e5268b Merge branch 'change/change_some_code_for_sleep_callback' into 'master'
change(pm): change sleep callback implement

See merge request espressif/esp-idf!26461
2023-10-24 10:15:09 +08:00
Lou Tianhao 13a405a32b change(pm): Change sleep callback implement 2023-10-23 08:13:47 +00:00
Lou Tianhao 2d3f95dad4 bugfix(pm): fix esp_sleep_enable_ext1_wakeup func
regression introduced in commit<808a01e65>
2023-10-10 19:30:38 +08:00
Lou Tian Hao adae54faca Merge branch 'bringup/support_callback_mechanism_in_lightsleep_flow' into 'master'
Power Management: support_callback_mechanism_in_lightsleep_flow

Closes WIFI-5936

See merge request espressif/esp-idf!24597
2023-10-08 20:16:01 +08:00
Lou Tianhao 450e685cb7 feat(PowerManagement/lightsleep): Support ESP_SLEEP_EVENT_CALLBACKS 2023-09-25 15:39:18 +08:00
Lou Tianhao a28a09855d feat(PowerManagement/lightsleep): Support PM_LIGHT_SLEEP_CALLBACKS 2023-09-25 15:39:12 +08:00
Lou Tianhao 34f8f1bb2c feat(PowerManagement/lightsleep): Define and export a strong symbol of rv_core_critical_regs_restore 2023-09-20 21:49:57 +08:00
Lou Tian Hao 925a7310ca Merge branch 'feat/add_internal_pull_up_or_pull_down_option_for_deepsleep_wakeup_prepare' into 'master'
feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup

Closes IDFGH-10994

See merge request espressif/esp-idf!25972
2023-09-20 10:44:07 +08:00
Lou Tianhao 88364b8b11 feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup
stash
2023-09-19 11:00:59 +08:00
Lou Tian Hao 5690d7b4dc Merge branch 'docs/add_ext1_wakeup_per_pin_description_for_c6_and_h2' into 'master'
docs(pm): add ext1 wakeup per pin description

See merge request espressif/esp-idf!25759
2023-09-11 13:07:48 +08:00
Lou Tianhao 72d7a7884d docs(pm): add ext1 wakeup per pin description 2023-09-06 11:59:55 +08:00
Lou Tian Hao 0878b9bdcd Merge branch 'feature/support_EXT1_WAKEUP_MODE_PER_PIN_for_esp32c6_and_esp32h2' into 'master'
Feature: support ext1 wakeup mode per pin for esp32c6 and esp32h2

See merge request espressif/esp-idf!24875
2023-08-10 14:01:03 +08:00
Lou Tianhao 808a01e656 feat(pm/deepsleep): Support EXT1_WAKEUP_MODE_PER_PIN 2023-08-09 19:46:25 +08:00
Lou Tianhao d59e91c030 feature: support_hp_regi2c_for_esp32c6 2023-08-09 14:24:31 +08:00
Lou Tian Hao 791360336a Merge branch 'feature/support_pd_hp_aon_domain_in_deepsleep' into 'master'
Feature: support pd hp aon domain in deepsleep

See merge request espressif/esp-idf!25175
2023-08-07 17:28:40 +08:00
Lou Tianhao caddc10bf3 feat(pm/deepsleep): support pd hp aon domain in deepsleep 2023-08-03 17:23:02 +08:00
Lou Tian Hao 3f6be5938b Merge branch 'docs/rewrite_all_low_to_any_low_when_not_esp32' into 'master'
Docs: rewrite_all_low_to_any_low_when_not_esp32

See merge request espressif/esp-idf!24997
2023-08-01 20:56:36 +08:00
Lou Tian Hao 3b14a9d58e Merge branch 'support/deep_sleep_test_for_esp32h2' into 'master'
Support: enable CI test for esp32h2 deep_sleep

Closes IDF-7838

See merge request espressif/esp-idf!25002
2023-08-01 17:37:10 +08:00
Lou Tianhao f33188fb35 docs(pm/sleep): rewrite_all_low_to_any_low_when_not_esp32 2023-08-01 11:53:14 +08:00
Lou Tianhao 34b269fb03 remove(pm/deep_sleep): enable CI test for esp32h2 deepsleep 2023-07-27 12:11:35 +08:00
Lou Tian Hao 57c6c0a1a3 Merge branch 'bringup/esp32h2_deep_sleep_for_rebase' into 'master'
esp32h2: support deep_sleep

Closes IDF-6268, IDF-6572, and IDF-7406

See merge request espressif/esp-idf!24438
2023-07-24 10:47:51 +08:00
Lou Tianhao 0d30bbe855 change(pm/deepsleep): rewrite the option all low as any low for esp32s2, esp32s3, esp32c6 and esp32h2 2023-07-21 20:44:15 +08:00
Lou Tianhao 44cd96b543 change(pm/deepsleep): remove disable rtcio before hold it when ext1 wakeup 2023-07-21 20:44:09 +08:00
Lou Tianhao a80c8c018c feat(pm/deepsleep): Support EXT1 wakeup pin select 2023-07-20 11:43:57 +08:00
Lou Tianhao e70763f9a4 feat(pm/deepsleep): Support EXT1 wakeup for esp32h2 deep_sleep 2023-07-20 11:43:57 +08:00
Lou Tianhao 7bd92287c4 change(pm/deepsleep): Update deep_sleep pmu analog parameter for esp32h2 2023-07-20 11:43:57 +08:00
Lou Tianhao dcacd8cdf8 feat(pm/deepsleep): Support deep_sleep example and deep_sleep_wake_stub example for esp32h2 2023-07-20 11:43:57 +08:00
Lou Tian Hao 4cf39d7851 Merge branch 'update/pm_trace_io_num_for_esp32h2' into 'master'
bugfix: update pm trace io num for esp32h2

Closes IDF-7657

See merge request espressif/esp-idf!24559
2023-07-04 23:14:14 +08:00
Lou Tianhao 3513d82df0 remove: TODO IDF-7555 2023-07-03 20:29:27 +08:00
Lou Tianhao bedc26d032 bugfix: update pm trace io num for esp32h2 2023-07-03 17:23:48 +08:00
Lou Tian Hao 7c2ac1feb6 Merge branch 'bringup/esp32h2_light_sleep_for_rebase' into 'master'
esp32h2: support light_sleep

Closes IDF-6266 and IDF-7359

See merge request espressif/esp-idf!23567
2023-06-28 10:37:18 +08:00
Lou Tianhao c7c937ea75 bugfix: set FORCE_INLINE_ATTR for resume_uart 2023-06-27 18:35:16 +08:00
Lou Tianhao 5c608f0f50 TODO: IDF-7657 2023-06-27 18:34:33 +08:00
Lou Tianhao d585861d22 TODO: IDF-7555 2023-06-26 21:05:17 +08:00
Lou Tianhao 6ee0f89676 Power Management: fix hp xtal wait bug for esp32h2 and esp32c6 2023-06-26 21:05:17 +08:00
Lou Tianhao a329b15e7e Power Management: support pu xtal in light sleep for esp32h2 2023-06-26 21:05:16 +08:00
Lou Tianhao 117008143b bugfix: remove the workaround implemented in MR 22773 about the lp_timer 2023-06-26 21:05:16 +08:00
Lou Tianhao 01fb28b65b Power Management: move lp_timer_hal.c to upper hal layer for esp32h2 and esp32c6 2023-06-26 21:05:16 +08:00
Lou Tianhao b5a293ab69 Power Management: support RC32K or Crystal32K powered down 2023-06-26 21:05:16 +08:00
Lou Tianhao 9613692350 codeclean: fix prefix to LP_AON and add LP_AON_STORE8_REG 2023-06-26 21:05:16 +08:00
Lou Tianhao 7fd74057a3 example: bringup light sleep example for esp32h2 2023-06-26 21:05:16 +08:00
Lou Tianhao 2657d8f307 Power Management: change the IO hold interface for esp32c6 2023-06-26 21:05:16 +08:00
Lou Tianhao ca55b91242 Power Management: update pmu init and sleep parameter 2023-06-26 21:05:16 +08:00
Lou Tianhao b06cadddb3 Power Management: fix REGDMA clock issue when wake up form light sleep 2023-06-26 21:05:10 +08:00
Lou Tianhao d3ca0656c8 Power Management: support MODEM domain powered down in light sleep for esp32h2 2023-06-26 20:58:59 +08:00
Lou Tianhao 8457998505 Power Management: fix REGDMA power issue when TOP domain powered down during light sleep for esp32h2 2023-06-26 20:58:59 +08:00
Lou Tianhao b4210682c8 Power Management: support TOP domain powered down in light sleep for esp32h2 2023-06-26 20:58:59 +08:00
Lou Tianhao 46cf3ecdc2 Power Management: support PAU REGDMA feature for esp32h2 2023-06-26 20:58:59 +08:00
Lou Tianhao 6ea441c815 Power Management: support CPU powered down in light sleep for esp32h2 2023-06-26 20:57:55 +08:00
Lou Tianhao 63d32ab620 Power Management: support DFS and PMU feature for esp32h2 2023-06-26 20:57:55 +08:00
Lou Tianhao a07c736d71 bugfix: make ahb freq consistent with cpu freq 2023-01-28 10:48:51 +08:00
Tian Hao 30fbd99ad0 fix bug sleep may cause HCI timeout
When Host run different cpu and sleep enable, it may cause hci
timeout about 10s.
2020-01-20 17:44:03 +08:00
Tian Hao f351effdb2 fix Kconfig use mistake cause some config not effect
1. Fix bluedroid task pinned_to_core un-effected
2. other minor sdkconfig bugs
2020-01-20 17:43:36 +08:00
Tian Hao bcce4e3052 fix bug that phy_enter_critical cannot effect on dual-core
Sometimes, libphy.a call phy_enter_critical() to protect accessing
critical sections, such like operating on I2C, but it may not effect
when both the CPU core call it. It may cause accessing I2C blocking
and cannot recover by esp_restart(), until do HW reboot.
2019-12-02 14:56:18 +08:00
Tian Hao 4987a5ad90 fix bug that semaphore may schedule out in Critical Section
1. Since BLE full-scan feature for BLE mesh change the controller code cause this problem,
it cause coex semaphore take in "interrupt disable", then it may cause task schedule
and cause crash in freertos
2. Fix newlib lock ISR context and critical section check
3. Fix bt controller ISR context and critical section check
2019-10-28 18:43:35 +08:00
Tian Hao 3af18c0422 fix some coex bugs
1. fix the bug that bb reset lock unhandled may cause assert in vPortCPUReleaseMutexIntsDisabledInternal
2. fix wifi mac reset may blocking then cause wdt timeout
3. fix bug wifi mac reset before coex init
2019-08-30 22:06:29 +08:00
Tian Hao a9dfae66ea bugfix btdm sleep twice after wakeup request
This problem may cause HCI send command timeout.

When host call VHCI api to do btdm_wakeup_request, then controller
wakeup process will be handled in ISR and controller task context.
As host task priority is lower than controller task and ISR,
it will cause an incorrect behavior that before VHCI take the
rx_flow_on_semaphore, controller sleep again, then VHCI cannot take
the semaphore and has to wait the automatic wakeup.
2019-08-04 07:17:13 +00:00
Tian Hao 2ad65bb434 Support timeout of fixed_queue and osi_thread
1. remove fixed_queue_try_dequeue and fixed_queue_try_enqueue,
2. add timeout parameter for fixed_queue_enqueue and fixed_queue_dequeue
3. replace where call fixed_queue_try_dequeue/enqueue to fixed_queue_dequeue/enqueue(..., timeout = 0)
4. replace where call fixed queue_enqueue/dequeue to fixed_queue_enqueue/dequeue( ..., timeout = FIXED_QUEUE_MAX_TIMEOUT)
5. modify the blocking_type of osi_thread_post to timeout.
2019-06-20 17:12:04 +08:00
Tian Hao b39bd0615c fix the bug assert(8192 0) in rwble.c 234 2019-03-14 15:38:23 +08:00
Tian Hao d877ca4438 component/bt : fix bug that there's low ratio crash when BLE do re-connect/re-scan/re-adv
fix 3 bugs:
1. do BLE connect (both of slave and master), it mgiht cause crash due to there's much interrupts happens effect ble code running, for example, wifi run on the same core as bluetooth controller and wifi run throughtput test.
2. do BLE scan stop or adv stop or connection stop, it might cause ASSERT or crash due to memory corrupted in controller memory poll.
3. minor bug fix, not really effect bluetooth.
2019-02-22 06:24:03 +00:00
Tian Hao 64b7b0f94c Reduce part of IRAM consumption in wifi libnet80211.a
It might be a little effect of WIFI max TX throughput if the limitation is cache hit rate
2019-02-19 15:43:56 +08:00
Tian Hao 2cf4c02be9 component/esp32 : fix coexist lc protect cause memory corrupted
The bug will cause memory corrupted (the largest range is from 0x3ffc0000 ~ 0x3ffc8000),
some strange error will happen, like IllegalInstruction, LoadProhibited and .etc.
2019-02-19 03:28:47 +00:00
Tian Hao 6c8a8664aa component/bt: add a option to make report adv data and scan response individually
Originally, when doing BLE active scan, Bluedroid will not report adv to
application layer until receive scan response. This option is used to
disable the behavior. When enable this option, Bluedroid will report
adv data or scan response to application layer immediately.
2019-01-24 14:30:02 +08:00
Tian Hao 423fbf0006 Fix some bugs in phy
1. fix bug PHY/RTC functions called in ISR (update phy to v4007)
2. add UnitTest to test it
3. disable/enable agc to mac deinit/init
2019-01-16 22:41:17 +08:00
Tian Hao 1a4fa06125 fix bug that there's very low ratio to cause BLE assert(65536, 0) in rwble.c at line 222 2018-12-14 17:38:52 +08:00
Tian Hao 357f2264e6 fix bug that there's very low ratio to cause BLE assert(32768, 0) in rwble.c at line 222 2018-12-06 16:54:14 +08:00
Tian Hao a9429ee5da component/bt and esp32: fix two bluetooth bugs that caused by coexist module
1. Fix interrupt watchdog timeout in bluetooth "btdm_bb_isr"
    2. Fix BLE assert(512) or assert(1536)  in rwble.c at line 222
    3. Update librtc.a to fix BLE assert(512) in rwble.c at line 222

    The #1 and #2 occurs random.
    The #3 bug occurs in certain scenario:
    	1. If Wifi start softap and BLE is working
    	2. If wifi start station, but do not use normal station operation, such
    		as just use espnow, while BLE is working
    	3. Any other scenario, that wifi works without use software coexist
    		operation, while BLE is working(such as do advertising and ...)

    4. update libcoexist.a version to v1.1.2
2018-12-03 19:41:43 +08:00
Tian Hao f3bfdeaeec fix bug to unsupport rf reg access from hci cmd
Always return 0 when read rf register and do nothing when write rf register
2018-11-27 12:00:06 +08:00
Tian Hao 9c9aa4ea4c Fix two bugs when disable bluetooth controller
1. Fix the bug that disable controller suddenly cause crash when ble is working. (585cfba1)
2. Fix the bug that when disable controller, it will cause wifi cannot RX, TX timeout, buffer lack and etc. (f8546145)
2018-11-16 02:42:38 +00:00
Tian Hao 6934a739d7 coexist : fix coexist bugs related to coex hw blocking
1. fix some bugs by previous coex hw blocking bugfix,
   such like, rwble.c (64, 0) line 222
2. fix bug that ble scan performance is very low when software coexist
   is working.
3. update libcoexist version to v1.1.0
2018-10-18 11:49:10 +08:00
Tian Hao 337960338d component/bt : fix coexist hardware blocking bug
fix the bug following:
1. after disable bluetooth controller, wifi cannot TX/RX any packets.
2. when software coexist working, there's a little ratio cause wifi task watchdog timeout
3. when software coexist working, there's a little ratio cause bluetooth cannot receive anything.

feature:
1. add libbtdm_app.a git commit local and remote checking

Known issues:
1. there's still a bug occurs with a very very low ratio cause bluetooth
   cannot receive anything. The reproduce interval may great than 3days ~ 1week via
   7x24 hours heavy testing.
2018-09-26 21:24:46 +08:00
Tian Hao b9382b29fa fix TX power value in ble adv data is incorrect
refence to https://github.com/espressif/esp-idf/issues/2284
Before fixing, the tx power in adv data is always 0xeb(-21dbm).

restriction:
    If change BLE advertising TX power, please call esp_ble_gap_config_adv_data()
    after BLE adv TX power changed.

    Later, will implement set BLE advertising TX power via HCI, then the
    TX power value in adv data can be update automatically after BLE adv
    TX power changed.
2018-09-12 20:23:45 +08:00
Tian Hao 069f495006 component/bt : fix bug that set discovery mode will stop ble adv
As the bluedroid original implmentation of BR/EDR and BLE dual mode about discovery mode,
when set discovery mode for BR/EDR, it will stop ble advertising.

Reference to https://github.com/espressif/esp-idf/issues/2306
2018-09-04 17:07:10 +08:00
Tian Hao 5a8917c337 fix bluetooth security vulnerability of ECDH publick key checking 2018-08-30 11:39:19 +08:00
Tian Hao eb3f280cd3 component/bt : fix get acl number incorrect due to memory release
1. after memory release MR merged, due to the get acl number condition is not completed, it will cause get acl number value incorrect
2. It may cause set Security Mode (BR/EDR) enable failed
2018-08-28 15:35:40 +08:00
Tian Hao 99d0624999 Fix bluetooth example sdkconfig.defaults
1. a2dp_gatts_coex
2. blufi BT_RESERVE_DRAM
2018-08-19 11:35:28 +08:00
Tian Hao ab73e0ff13 tools: fix ci example build report reassign warnning 2018-08-16 11:12:22 +08:00
Tian Hao ee787085f9 component/bt : decrease memory consumption by conn number
1. BLE only with 9(max) connection will decrease 3K DRAM
2. BR/EDR only with 7(max) connection will decrease 16K DRAM
3. Any of BLE or BR/EDR connection number decrease will also decrease DRAM consumption
4. Decrease one BLE connection will save about 1KB DRAM
5. Decrease one BR/EDR ACL connection will save about 1.2KB DRAM
6. Decrease one BR/EDR SCO/eSCO will save 2KB DRAM.
7. fix some definition and kconfig
8. remove 1.2k of vhci tx cache and make .bss & .data to heap about 1.4K
9. modify BT Reserved Memory size and modify example to support new bt kconfig
2018-08-14 02:29:17 +00:00
Tian Hao d9dc2985e7 fix bug that wifi sleep before receive beacon
it will resolve the problem:
        1. when bluetooth is running (For example: a2dp sink), wifi station cannot connect to AP easily
        2. improve wifi connection success ratio when coexist is working
2018-08-03 05:07:06 +00:00
Tian Hao 6e4342a877 bt : fix bug that bluetooth controller init/disable/enable/disable may cause exception
1. when one task do deinit/init/disable/enable, especially different cpu
core, it may cause controller crash in ISR handler
2. fix while BLE is scanning, bluetooth controller is disabled cause BLE
scan is not abort.
2018-07-20 14:10:55 +08:00
Tian Hao cf14826100 fix coex pause cause bluetooth performance decrease
1. it may cause BLE connection unstable
2. it may cause Classic BT connection unstable
3. it may cause BLE/BREDR scan performance decrease
2018-07-17 21:06:57 +08:00
Tian Hao e3df7d97a7 esp32: fix coex bug
1. fix BLE connection missing in coex mode
    2. modify other parameters to make coex priority more reasonable
    3. fix modem sleep procedure trap cause Wifi disable RF when BT is
    working. Such cause that BR/EDR is difficult to be connected, BLE
    connection stability decrease and so on.
    4. modify BR/EDR coexist duration to imrove BR/EDR connect success
    ratio.
    5. Due to the hardware coexist bug, BLE scan interval/window should
    be less than 0x100(about 160ms). Therefore, it will cause BLE cannot
    scan any advertising packet while WiFi have higher priority
    behaviour(such like RX beacon, scan, TX/RX VO packets and etc.).
2018-06-29 16:28:11 +08:00
Tian Hao e3d3ed5a06 bt : fix read rssi conflict when in dual mode 2018-06-22 11:16:16 +08:00
Tian Hao 294a4bd1f4 fix bluetootm(dual-mode) tx power value 2018-06-12 19:18:47 +08:00
Tian Hao 21cb7226a2 component/bt : enlarge the A2DP SINK FRAME QUEUE SIZE to make A2DP more fluent 2018-06-01 16:51:23 +08:00